/* ============================================================
   DACHOST panel — pages: back-office billing + system
   (/admin/invoices, /admin/ledger, /admin/plans, /admin/audit,
   /admin/health, /admin/settings/*, /admin/images).
   Page tweaks only; tokens, panels, tables, chips and stats come
   from app.css. Every rule is scoped under .p-adm.
   ============================================================ */

/* 1. vertical rhythm inside the page wrapper (the wrapper sits in .main, so .main > * + * does not reach its children) */
.p-adm > * + *{margin-top:28px}
.p-adm > .tbl-toolbar + .tblwrap,.p-adm > .tbl-toolbar + .panel{margin-top:0}
.p-adm > .panel + .panel{margin-top:16px}
.p-adm > .notice + *{margin-top:20px}
.p-adm > .stats + .tbl-toolbar,.p-adm > .stats + .panel{margin-top:24px}
.p-adm > .hint{margin:12px 0 0;font-size:var(--fs-125);color:var(--text-3)}
.p-adm > .hint + .panel{margin-top:20px}
.p-adm .panels{display:grid;gap:16px}

/* 2. stat strip tones */
.p-adm .stat .kpi-sm.is-bad{color:var(--bad-text)}
.p-adm .stat .bar{margin-top:8px}

/* 3. tables: deprecated rows fade, truncation, numeric emphasis */
.p-adm .tbl tr.is-deprecated td{opacity:.6}
.p-adm .tbl .trunc{display:inline-block;max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.p-adm .tbl td.c-actions form.inline{display:inline}
.p-adm .tbl tfoot td{border-top:1px solid var(--line);font-weight:500;background:var(--surface-2)}
.p-adm .tbl .c-name svg{vertical-align:-3px;margin-right:4px;color:var(--text-2)}

/* 4. invoices: preview panel header actions wrap on narrow widths */
.p-adm-inv .panel > header{flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.p-adm-inv .panel > header form{display:inline}
.p-adm-inv .stack{display:grid;gap:16px}
.p-invoice .grid-2{align-items:start}

/* 5. audit: mono time column, drawer JSON */
.p-adm-audit .tbl td:first-child{white-space:nowrap}
.p-adm-audit .tbl-toolbar .in.ip{width:140px}
.p-adm-audit .tbl .trunc{max-width:260px}
.au-json{margin:0;padding:10px 12px;background:var(--surface-2);border:1px solid var(--line-soft);border-radius:var(--r-sm);font:400 var(--fs-12)/1.5 var(--mono);white-space:pre-wrap;word-break:break-word;max-height:360px;overflow:auto}
.drawer .diff2{margin-top:16px}

/* 6. health */
.p-adm-health .stats.stats-6{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.p-adm-health .kv dd .bar{max-width:220px;margin-bottom:4px}
.p-adm-health .au-msg{display:inline-block;max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom;font-size:var(--fs-12)}
.p-adm-health .panel > header p.mono{font-size:var(--fs-12)}

/* 7. settings forms */
.p-adm-settings form > .panels + .sticky-save{margin-top:24px}
.p-adm-settings .panel-body .fields{max-width:760px}
.p-adm-settings .fields .tblwrap{max-width:560px}
.p-adm-settings .check-row{max-width:560px}
.maint-preview{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:36px;padding:0 14px;border-radius:var(--r-sm);background:var(--ink);color:var(--on-ink);font-size:var(--fs-13);font-weight:500}
.maint-preview .muted{color:var(--on-ink-2);font-weight:400}
.maint-preview .maint-x{display:inline-flex;color:var(--on-ink-2)}

/* 8. plans: policies rows */
.p-adm-plans .fields-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:560px}
.p-adm-plans .vat-rules td{height:auto;padding-top:6px;padding-bottom:6px}
.p-adm-plans .vat-rules .in{width:120px}
.p-adm-plans .vat-rules td.num .in{text-align:right}
.p-adm-plans .f > .tblwrap{max-width:560px}
.p-adm-plans .tbl .c-sub{white-space:normal}

/* 9. images */
.p-adm-images .tbl td .tag{margin-left:4px}

@media (max-width:640px){
  .p-adm-plans .fields-3{grid-template-columns:1fr}
  .p-adm .tbl .trunc,.p-adm-audit .tbl .trunc,.p-adm-health .au-msg{max-width:100%;white-space:normal}
  .p-adm-audit .tbl-toolbar .in.ip{width:100%}
}
