/* DIA_ADMIN_V2 (build run L): the Administration area. Colours and font ONLY from css/diano-theme.css (var(--dia-*));
   no colour is written here (scripts/build-l/admin.page.emulator.mjs checks it). */
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--dia-font);background:var(--dia-page);color:var(--dia-text);font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}
a{color:var(--dia-ink)}
a:hover{color:var(--dia-link-hover)}
h1{font-size:26px;line-height:1.2;margin:0}
h2{font-size:18px;margin:26px 0 10px}
h3{font-size:16px;margin:18px 0 8px}
.adm-muted{color:var(--dia-muted)}
.adm-small{font-size:13px}
[hidden]{display:none!important}

/* which half is shown: decided before the first paint (admin.html head) */
html[data-admin="signin"] #adminShell{display:none}
html[data-admin="shell"] #adminSignIn{display:none}

/* ---------- sign-in ---------- */
.adm-signin{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px 16px}
.adm-signin-card{width:100%;max-width:420px;background:var(--dia-surface);border:2px solid var(--dia-ink);border-radius:var(--dia-radius-card);box-shadow:var(--dia-shadow-strong);padding:28px 24px}
/* Jonathan (run 2026-10-17): the sign-in card stands out as on the landing page -- 2px ink border, stronger shadow, clearly visible fields */
.adm-signin-card input{border:1.5px solid var(--dia-field)}
.adm-signin-card h1{margin:18px 0 6px}
.adm-brand{display:inline-flex;align-items:center;gap:10px;font-weight:800;text-decoration:none;color:var(--dia-ink);font-size:17px}
.adm-mark{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:8px;background:var(--dia-gold);color:var(--dia-ink);font-weight:800}
.adm-form{display:grid;gap:12px;margin-top:16px}
.adm-form label,.adm-field{display:grid;gap:4px;font-weight:600;font-size:14px}
input,select,textarea{font:inherit;color:var(--dia-text);background:var(--dia-surface);border:1px solid var(--dia-input);border-radius:var(--dia-radius);padding:9px 11px;min-height:42px;width:100%}
textarea{min-height:90px}
input[type="checkbox"]{width:auto;min-height:0}
input:focus,select:focus,textarea:focus,.adm-btn:focus-visible,a:focus-visible{outline:2px solid var(--dia-gold);outline-offset:1px}
.adm-msg{min-height:42px;margin:12px 0 0;font-size:14px;color:var(--dia-danger)}
/* DIA_ADMIN_NOT_YET_V1 (F40): a part not switched on yet on this project -- a plain line, not an error */
.adm-notyet{margin:12px 0 0;font-size:15px;color:var(--dia-muted)}

/* ---------- buttons, pills ---------- */
.adm-btn{font:inherit;font-weight:700;font-size:14px;border-radius:var(--dia-radius);padding:9px 14px;min-height:42px;cursor:pointer;border:1px solid var(--dia-input);background:var(--dia-surface);color:var(--dia-ink);display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;white-space:nowrap}
.adm-btn:hover{border-color:var(--dia-ink)}
.adm-btn[disabled]{opacity:.55;cursor:default}
.adm-primary{background:var(--dia-ink);border-color:var(--dia-ink);color:var(--dia-surface)}
.adm-primary:hover{background:var(--dia-ink-2);color:var(--dia-surface)}
.adm-gold{background:var(--dia-gold);border-color:var(--dia-gold);color:var(--dia-ink)}
.adm-gold:hover{background:var(--dia-gold-2)}
.adm-danger{color:var(--dia-danger);border-color:var(--dia-danger)}
.adm-sm{min-height:34px;padding:5px 10px;font-size:13px}
.adm-pill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:12px;font-weight:700;border:1px solid var(--dia-line);background:var(--dia-page);color:var(--dia-ink);white-space:nowrap}
.adm-pill.ok{border-color:var(--dia-success);color:var(--dia-success);background:var(--dia-surface)}
.adm-pill.warn{border-color:var(--dia-gold);background:var(--dia-gold-soft);color:var(--dia-ink)}
.adm-pill.bad{border-color:var(--dia-danger);color:var(--dia-danger);background:var(--dia-surface)}
.adm-flag{color:var(--dia-danger);font-weight:700}

/* ---------- the shell ---------- */
.adm-shell{background:linear-gradient(to right,var(--dia-surface) 235px,var(--dia-line) 235px,var(--dia-line) 236px,var(--dia-page) 236px);display:grid;grid-template-columns:236px minmax(0,1fr);grid-template-rows:60px minmax(calc(100vh - 60px),auto)}
.adm-top{grid-column:1 / -1;display:flex;align-items:center;gap:14px;padding:0 20px;background:var(--dia-ink);color:var(--dia-on-ink);position:sticky;top:0;z-index:20}
.adm-top .adm-brand{color:var(--dia-surface)}
.adm-env{display:inline-block;min-width:150px;font-size:12px;font-weight:700;letter-spacing:.06em;color:var(--dia-gold)}
.adm-who{margin-left:auto;font-size:13px;color:var(--dia-on-ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:280px}
.adm-top .adm-btn{background:transparent;color:var(--dia-on-ink-strong);border-color:var(--dia-on-ink)}
.adm-top .adm-btn:hover{border-color:var(--dia-gold);color:var(--dia-surface)}
.adm-menu-btn{display:none!important}
.adm-nav{background:var(--dia-surface);border-right:1px solid var(--dia-line);padding:16px 10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:60px;align-self:start;height:calc(100vh - 60px);overflow-y:auto}
.adm-nav a{display:block;padding:10px 12px;border-radius:var(--dia-radius);text-decoration:none;font-weight:600;color:var(--dia-ink)}
.adm-nav a:hover{background:var(--dia-page)}
.adm-nav a.is-current{background:var(--dia-gold-soft);box-shadow:inset 3px 0 0 var(--dia-gold)}
.adm-nav .adm-nav-minor{margin-top:auto;font-size:13px;font-weight:500;color:var(--dia-muted)}
.adm-main{padding:24px 28px 60px;min-width:0}
.adm-main:focus{outline:none}

/* one page at a time; the page in the address is shown from the first paint (admin.html head sets html[data-page]) */
.adm-page{display:none;max-width:1180px}
html:not([data-page]) .adm-page[data-page="today"],
html[data-page="today"] .adm-page[data-page="today"],
html[data-page="companies"] .adm-page[data-page="companies"],
html[data-page="company"] .adm-page[data-page="company"],
html[data-page="practices"] .adm-page[data-page="practices"], /* DIA_PRACTICE_PLAN_V1 (build PRACTICE) */
html[data-page="plans-prices"] .adm-page[data-page="plans-prices"], /* DIA_PLANS_V1 (build PLANS) */
html[data-page="company-plans"] .adm-page[data-page="company-plans"],
html[data-page="founding"] .adm-page[data-page="founding"],
html[data-page="requests"] .adm-page[data-page="requests"],
html[data-page="leads"] .adm-page[data-page="leads"], /* DIA_LEADS_V1 (build LEADS) */
html[data-page="onboarding"] .adm-page[data-page="onboarding"], /* DIA_ONBOARDING_V1 (build ONBOARD) */
html[data-page="extensions"] .adm-page[data-page="extensions"], /* DIA_SUBSCRIPTION_EXTENSIONS_V1 (build run N) */
html[data-page="plans"] .adm-page[data-page="plans"],
html[data-page="support"] .adm-page[data-page="support"],
html[data-page="agreements"] .adm-page[data-page="agreements"], /* DIA_AGREEMENT_SIGNING_V1 (build run H) */
html[data-page="services"] .adm-page[data-page="services"], /* DIA_SERVICES_V1 (build J) */
html[data-page="it-services"] .adm-page[data-page="it-services"], /* DIA_IT_SERVICES_V1 (build M) */
html[data-page="moves"] .adm-page[data-page="moves"], /* DIA_ADMIN_MOVES_LIST_V2 (20 Oct 2026): Moves was never shown */
html[data-page="assistant"] .adm-page[data-page="assistant"], /* DIA_MOVE_ASSISTANT_V1 (build run T): DIANO Assistant settings (run20-wy merge: the section had no rule) */
html[data-page="security"] .adm-page[data-page="security"],
html[data-page="reports"] .adm-page[data-page="reports"],
html[data-page="hr-data"] .adm-page[data-page="hr-data"], /* DIA_HR_MODULE_V1 (build run R) */
html[data-page="businesses"] .adm-page[data-page="businesses"], /* DIA_BUSINESS_ACCOUNT_V1 (build BIZ) */
html[data-page="tax-returns"] .adm-page[data-page="tax-returns"], /* DIA_TAX_RETURNS_PREVIEW_V1 (build F) */
html[data-page="afs-preview"] .adm-page[data-page="afs-preview"], /* DIA_AFS_PREVIEW_V1 (build L) */
html[data-page="item-suggestions"] .adm-page[data-page="item-suggestions"],
html[data-page="drive"] .adm-page[data-page="drive"], html[data-page="drive-overview"] .adm-page[data-page="drive-overview"] /* DIA_DRIVE_V1 (build I) */, /* DIA_ITEM_SUGGESTIONS_V1 (build run P) */
html[data-page="settings"] .adm-page[data-page="settings"],
html[data-page="diale-records"] .adm-page[data-page="diale-records"],
/* DIA_ADMIN_MODERN_V1 (build ADM): the pages split out of Plans & billing and Settings, and Older tools */
html[data-page="closures"] .adm-page[data-page="closures"], html[data-page="billing"] .adm-page[data-page="billing"], html[data-page="promotions"] .adm-page[data-page="promotions"],
html[data-page="signups"] .adm-page[data-page="signups"], html[data-page="two-step"] .adm-page[data-page="two-step"], html[data-page="policies"] .adm-page[data-page="policies"],
html[data-page="older-tools"] .adm-page[data-page="older-tools"],
/* the DIANO IT link page had a section but no rule (it opened blank since run20-ditlink; found by build ADM's inventory) */
html[data-page="diano-it"] .adm-page[data-page="diano-it"]{display:block}
.adm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:44px;margin-bottom:14px}
.adm-head .adm-sub{flex-basis:100%;margin:0}
.adm-check{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600}

/* ---------- Today ---------- */
.adm-tiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.adm-tiles.adm-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.adm-tile{display:flex;flex-direction:column;justify-content:space-between;height:104px;padding:14px;background:var(--dia-surface);border:1px solid var(--dia-line);border-radius:var(--dia-radius-card);text-decoration:none;color:var(--dia-ink)}
.adm-tile:hover{border-color:var(--dia-ink);color:var(--dia-ink)}
.adm-tile span{font-size:13px;font-weight:600;color:var(--dia-muted)}
.adm-tile strong{font-size:28px;line-height:1.1;font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-note{min-height:20px;margin:8px 0 0}
.adm-box{background:var(--dia-surface);border:1px solid var(--dia-line);border-radius:var(--dia-radius-card);padding:6px 16px;min-height:120px}
.adm-box > p{margin:14px 0}
.adm-att{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--dia-line)}
.adm-att:first-child{border-top:0}
.adm-att b{display:block}
.adm-att small{color:var(--dia-muted);display:block}

/* ---------- tables (cards on phones) ---------- */
.adm-tools{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:12px}
.adm-tools .adm-field{min-width:150px;flex:0 1 190px}
.adm-tools .adm-search{flex:1 1 320px}
.adm-table-wrap{background:var(--dia-surface);border:1px solid var(--dia-line);border-radius:var(--dia-radius-card);overflow-x:auto}
.adm-table{width:100%;border-collapse:collapse;font-size:14px}
.adm-table th,.adm-table td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--dia-line);vertical-align:top}
.adm-table th{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--dia-muted);white-space:nowrap}
.adm-table th button{font:inherit;background:none;border:0;padding:0;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit}
.adm-table tbody tr:last-child td{border-bottom:0}
.adm-table tr[data-open]{cursor:pointer}
.adm-table tr[data-open]:hover td{background:var(--dia-page)}
.adm-num{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}
.adm-pager{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:10px;font-size:14px}
.adm-empty{padding:18px;color:var(--dia-muted)}

/* ---------- cards, details ---------- */
.adm-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.adm-card{background:var(--dia-surface);border:1px solid var(--dia-line);border-radius:var(--dia-radius-card);padding:16px 18px;min-width:0}
.adm-card h2,.adm-card h3{margin-top:0}
.adm-dl{display:grid;grid-template-columns:minmax(110px,auto) minmax(0,1fr);gap:6px 14px;margin:0;font-size:14px}
.adm-dl dt{color:var(--dia-muted)}
.adm-dl dd{margin:0;overflow-wrap:anywhere}
.adm-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.adm-formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.adm-formgrid .adm-wide{grid-column:1 / -1}
.adm-list{list-style:none;margin:0;padding:0}
.adm-list li{padding:9px 0;border-top:1px solid var(--dia-line);font-size:14px;overflow-wrap:anywhere}
.adm-list li:first-child{border-top:0}
.adm-raw{display:inline-block;margin-left:8px}.adm-raw summary{cursor:pointer;color:var(--dia-muted);font-size:12px}.adm-raw[open]{display:block;margin:4px 0 0}
.adm-target{box-shadow:0 0 0 2px var(--dia-gold)}

/* ---------- reports ---------- */
.adm-bars{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:6px;align-items:end;height:170px;padding-top:8px}
.adm-bar{display:flex;flex-direction:column;justify-content:flex-end;align-items:center;height:100%;min-width:0}
.adm-bar i{display:block;width:100%;max-width:34px;background:var(--dia-ink);border-radius:4px 4px 0 0;min-height:1px}
.adm-bar.alt i{background:var(--dia-gold)}
.adm-bar b{font-size:11px;font-weight:700;margin-bottom:3px;font-variant-numeric:tabular-nums}
.adm-bar span{font-size:11px;color:var(--dia-muted);margin-top:4px}
.adm-hbar{display:grid;grid-template-columns:minmax(90px,160px) minmax(0,1fr) auto;gap:10px;align-items:center;font-size:14px;padding:5px 0}
.adm-hbar i{display:block;height:14px;background:var(--dia-ink);border-radius:3px;min-width:1px}

/* ---------- toast ---------- */
.adm-toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);max-width:min(560px,calc(100vw - 32px));background:var(--dia-ink);color:var(--dia-surface);border-radius:var(--dia-radius);padding:12px 16px;font-size:14px;box-shadow:var(--dia-shadow-card);z-index:60;opacity:0;pointer-events:none;transition:opacity .15s}
.adm-toast.is-on{opacity:1;pointer-events:auto}
.adm-toast.is-bad{background:var(--dia-danger)}

/* ---------- tablets ---------- */
@media (max-width:1100px){
  .adm-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
}
/* ---------- phones: the menu collapses into a top menu ---------- */
@media (max-width:760px){
  .adm-shell{background:var(--dia-page);grid-template-columns:minmax(0,1fr);grid-template-rows:56px auto}
  .adm-top{padding:0 12px;gap:8px;height:56px}
  .adm-top .adm-brand > span:last-child,.adm-env,.adm-who{display:none}
  .adm-menu-btn{display:inline-flex!important;margin-left:auto;max-width:60vw;overflow:hidden;text-overflow:ellipsis}
  .adm-nav{display:none;position:fixed;top:56px;left:0;right:0;height:auto;max-height:calc(100vh - 56px);border-right:0;border-bottom:1px solid var(--dia-line);box-shadow:var(--dia-shadow-card);z-index:30}
  html[data-menu-open] .adm-nav{display:flex}
  .adm-nav .adm-nav-minor{margin-top:8px}
  .adm-main{padding:18px 16px 50px}
  h1{font-size:22px}
  .adm-tiles,.adm-tiles.adm-four{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .adm-tile{height:92px;padding:12px}
  .adm-tile strong{font-size:22px}
  .adm-grid2,.adm-formgrid{grid-template-columns:minmax(0,1fr)}
  .adm-tools .adm-field,.adm-tools .adm-search{flex:1 1 100%}
  .adm-table-wrap{border:0;background:transparent;overflow:visible}
  .adm-table thead{display:none}
  .adm-table,.adm-table tbody,.adm-table tr,.adm-table td{display:block;width:100%}
  .adm-table tr{background:var(--dia-surface);border:1px solid var(--dia-line);border-radius:var(--dia-radius-card);margin-bottom:10px;padding:6px 0}
  .adm-table td{display:flex;justify-content:space-between;gap:12px;border:0;padding:6px 14px;text-align:right;overflow-wrap:anywhere}
  .adm-table td::before{content:attr(data-label);font-weight:700;color:var(--dia-muted);text-align:left;flex:0 0 auto}
  .adm-table td.adm-num{text-align:right!important}
  .adm-att{grid-template-columns:minmax(0,1fr)}
  .adm-att .adm-btn{justify-self:start}
  .adm-bars{gap:3px}
  .adm-bar b{font-size:9px}
  .adm-bar span{font-size:9px}
  .adm-hbar{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}
}

/* ---------- Jonathan (run 2026-10-17, 21:09 SAST): stronger, easier to scan ---------- */
/* side menu: bold capitals; the current item clearly marked (gold bar + stronger tint) */
.adm-nav a{font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:13px}
.adm-nav a.is-current{background:var(--dia-gold-tint);box-shadow:inset 5px 0 0 var(--dia-gold)}
.adm-nav .adm-nav-minor{font-weight:800;color:var(--dia-ink)}
/* tables: bold header band, clear row lines, alternate shading, hover, numbers right */
.adm-table-wrap{border-color:var(--dia-input)}
.adm-table th{background:var(--dia-table-head);color:var(--dia-ink);font-weight:800;border-bottom:2px solid var(--dia-ink)}
.adm-table td{border-bottom:1px solid var(--dia-input)}
.adm-table tbody tr:nth-child(even) td{background:var(--dia-row-alt)}
.adm-table tbody tr:hover td{background:var(--dia-row-hover)}
.adm-table .adm-num{text-align:right;font-variant-numeric:tabular-nums}
/* records: each its own bordered row, a bold title line, the key facts on a second line */
.adm-att{border:1px solid var(--dia-input);border-radius:var(--dia-radius);padding:12px 14px;margin-bottom:8px;background:var(--dia-surface)}
.adm-att:first-child{border-top:1px solid var(--dia-input)}
.adm-att b{font-weight:800}
.adm-list li{border:1px solid var(--dia-input);border-radius:var(--dia-radius);padding:10px 12px;margin-bottom:8px;background:var(--dia-surface)}
.adm-list li:first-child{border-top:1px solid var(--dia-input)}
.adm-list li:nth-child(even){background:var(--dia-row-alt)}
.adm-rec-title{display:block;font-weight:800;color:var(--dia-ink)}
.adm-rec-facts{display:block;font-size:13px;color:var(--dia-muted);margin-top:2px}
/* status badges in clear colours */
.adm-pill{font-weight:800;border-width:1.5px}
.adm-pill.ok{background:var(--dia-success-soft);border-color:var(--dia-success);color:var(--dia-success)}
.adm-pill.warn{background:var(--dia-gold-soft);border-color:var(--dia-link-hover);color:var(--dia-ink)}
.adm-pill.bad{background:var(--dia-danger-soft);border-color:var(--dia-danger);color:var(--dia-danger)}
/* the sign-in card heading stays bold */
.adm-signin-card h1{font-weight:800}
@media (max-width:760px){
  .adm-table tr{border-color:var(--dia-input)}
  .adm-table tbody tr:nth-child(even) td{background:transparent}
  .adm-table tbody tr:nth-child(even){background:var(--dia-row-alt)}
}
/* DIA_CALL_LOGGING_V1 (build run Q2): the clock (amber at 75 %, red at 100 %), the one-tap steps, the Accept card from the e-mail */
.adm-clock{display:inline-block;font-size:12px;font-weight:700;border-radius:999px;padding:1px 8px;border:1px solid var(--dia-line);white-space:nowrap;color:var(--dia-ink)}
.adm-clock-ok{border-color:var(--dia-success);color:var(--dia-success)}
.adm-clock-amber{border-color:var(--dia-gold);background:var(--dia-gold-soft);color:var(--dia-ink)}
.adm-clock-red{border-color:var(--dia-danger);background:var(--dia-danger-soft);color:var(--dia-danger)}
.adm-clock-done{color:var(--dia-muted)}
a.adm-clock-red{border:0;background:none;padding:0}
.adm-steps .adm-btn.is-current{outline:2px solid var(--dia-gold);outline-offset:1px}
.adm-steps-accept{border:2px solid var(--dia-gold)}
.adm-btn.adm-big{font-size:17px;padding:12px 26px}
.adm-table select.adm-sm{font-size:13px;padding:4px 6px;max-width:100%}
[data-sup-admin="notices"]>li{display:flex;flex-wrap:wrap;gap:4px 10px}
@media (max-width:760px){.adm-steps .adm-actions .adm-btn{flex:1 1 45%}.adm-clock{white-space:normal}}

/* DIA_SERVICES_V1 (build J): Administration › Services sub-pages */
.adm-tabs{display:flex;flex-wrap:wrap;gap:4px 10px;margin:-4px 0 14px}.adm-tabs a{font-weight:600}.adm-tabs a.is-current{text-decoration:underline;color:var(--dia-ink)}

/* DIA_IT_SERVICES_V1 (build M): Administration › IT Services -- the quote lines and the price list stay inside the page on a phone */
[data-page="it-services"] .adm-table input{max-width:100%;min-width:0}[data-it="lines"] select{min-width:96px}[data-it="lines"] [data-f="description"]{min-width:180px}[data-it="lines"] [data-f="supplier"]{min-width:120px}[data-it="lines"] [data-f="cost"]{min-width:90px}[data-page="it-services"] fieldset{border:1px solid var(--dia-line,#e2e8f0);border-radius:8px;margin:6px 0;padding:6px 10px;min-width:0}[data-page="it-services"] fieldset input{margin:2px 6px 2px 0;max-width:160px}

/* ============================================================
   DIA_ADMIN_MODERN_V1 (build ADM, Jonathan 23 Oct 2026): plain menu groups under gold headings (the client side's heading
   pill), one page pattern (title, one line on what it is for, Back, cards), the red confirm, the "⋯" row menu, sticky table
   headers, the search at the top, 44 px touch targets, and on a phone the menu as a drawer. Theme colours only.
   ============================================================ */
.adm-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* the header: brand, search, who, sign out */
.adm-top .adm-brand{flex:0 0 auto}
.adm-search-top{position:relative;flex:1 1 380px;max-width:520px;margin-left:12px}
.adm-search-top input{background:var(--dia-ink-2);border-color:var(--dia-on-ink);color:var(--dia-surface);min-height:40px}
.adm-search-top input::placeholder{color:var(--dia-on-ink)}
.adm-search-list{position:absolute;top:calc(100% + 6px);left:0;right:0;margin:0;padding:6px;list-style:none;background:var(--dia-surface);color:var(--dia-text);border:1px solid var(--dia-input);border-radius:var(--dia-radius);box-shadow:var(--dia-shadow-card);max-height:min(70vh,520px);overflow-y:auto;z-index:40}
.adm-search-list li{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:10px;align-items:baseline;padding:9px 10px;border-radius:8px;cursor:pointer;min-height:44px}
.adm-search-list li b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.adm-search-list li small{grid-column:2;color:var(--dia-muted)}
.adm-search-list li[aria-selected="true"],.adm-search-list li:hover{background:var(--dia-gold-soft)}
.adm-search-list .adm-sr-kind{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--dia-muted)}
.adm-search-list .adm-sr-none{display:block;cursor:default;color:var(--dia-muted)}
.adm-search-btn{display:none!important}
.adm-who{margin-left:auto}
/* the menu: gold group headings, plain lines */
.adm-nav{gap:1px;padding:12px 10px 24px}
.adm-nav-rule{margin:0 4px 6px;padding:8px 10px;font-size:12px;line-height:1.35;color:var(--dia-muted);border:1px dashed var(--dia-input);border-radius:var(--dia-radius)}
.adm-nav .adm-group{margin:14px 0 4px;padding:6px 10px;border:3px solid var(--dia-gold-deep);border-radius:10px;background:var(--dia-gold-wash);color:var(--dia-ink);font-size:12.5px;font-weight:800;letter-spacing:.04em;line-height:1.25;text-transform:uppercase}
.adm-nav .adm-group:first-of-type{margin-top:4px}
.adm-nav a,.adm-nav a.dpm-headline{display:flex;align-items:center;min-height:40px;padding:8px 12px;font-size:14px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--dia-ink);border:0;background:transparent;box-shadow:none;margin:0}
.adm-nav a:hover{background:var(--dia-page)}
.adm-nav a.is-current{background:var(--dia-gold-tint);box-shadow:inset 5px 0 0 var(--dia-gold);font-weight:800}
/* every page: the title, then one line on what it is for */
.adm-head h1{order:0}
.adm-purpose{order:3;flex-basis:100%;margin:4px 0 0;font-size:15px;color:var(--dia-muted)}
.adm-head .adm-sub{order:4;margin-top:2px}
.adm-main h2{color:var(--dia-ink)}
.adm-card + .adm-card{margin-top:16px}
.adm-grid2 > .adm-card + .adm-card{margin-top:0}
/* Today */
.adm-launch-line{margin:0 0 14px;padding:10px 14px;border:1px solid var(--dia-gold);border-radius:var(--dia-radius);background:var(--dia-gold-soft);font-size:14px;min-height:42px}
.adm-today-cards{margin-top:16px}
.adm-today-cards .adm-card h2{margin-bottom:6px}
.adm-big-figure{margin:0 0 8px;font-size:15px}.adm-big-figure b{font-size:24px;font-variant-numeric:tabular-nums}
.adm-today-list li a{text-decoration:none}
/* tables: the header stays in view; actions in a "⋯" menu */
.adm-table-wrap{overflow:visible}
.adm-table th{position:sticky;top:60px;z-index:3}
.adm-table td{overflow-wrap:anywhere}
.adm-rowmenu{position:relative;display:inline-block}
.adm-dots{min-width:44px;font-size:18px;line-height:1}
.adm-rowmenu-list{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:210px;padding:6px;background:var(--dia-surface);border:1px solid var(--dia-input);border-radius:var(--dia-radius);box-shadow:var(--dia-shadow-card);display:flex;flex-direction:column}
.adm-rowmenu-list[hidden]{display:none!important}
.adm-rowmenu-list button{font:inherit;font-size:14px;text-align:left;background:none;border:0;border-radius:8px;padding:10px 12px;min-height:44px;color:var(--dia-ink);cursor:pointer;white-space:nowrap}
.adm-rowmenu-list button:hover,.adm-rowmenu-list button:focus-visible{background:var(--dia-gold-soft);outline:none}
.adm-rowmenu-list button.is-danger{color:var(--dia-danger)}
/* "Details for support": ids only here */
.adm-support-details{margin-top:14px;border-top:1px solid var(--dia-line);padding-top:8px}
.adm-support-details summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--dia-muted);min-height:32px;display:flex;align-items:center}
.adm-support-details code{font-size:13px;overflow-wrap:anywhere}
.adm-raw.adm-support-details{border-top:0;padding-top:0;margin-top:2px}
/* saved state next to a card's Save */
.adm-saved{font-size:13px;font-weight:700;color:var(--dia-success);align-self:center}
/* the red confirm (js/dia-dialog.js draws it; build ADM marks a dangerous one) */
.dia-dlg.dia-dlg-danger{border-top:6px solid var(--dia-danger)}
.dia-dlg.dia-dlg-danger h2{color:var(--dia-danger)!important}
/* buttons: 44 px to touch */
.adm-btn{min-height:44px}
.adm-sm{min-height:36px}
@media (pointer:coarse){.adm-sm{min-height:44px}.adm-nav a{min-height:44px}}
.adm-btn.adm-danger:not([disabled]):hover{background:var(--dia-danger-soft)}

/* ---------- phones: the menu is a drawer, the search opens under the header, no sideways scrolling ---------- */
@media (max-width:760px){
  .adm-top{gap:6px}
  .adm-menu-btn{order:-1;margin-left:0;max-width:58vw;gap:8px}
  .adm-menu-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .adm-top .adm-brand{display:none}
  .adm-search-btn{display:inline-flex!important;margin-left:auto;min-width:44px}
  .adm-signout{flex:0 0 auto}
  .adm-search-top{display:none;position:fixed;top:56px;left:0;right:0;max-width:none;margin:0;padding:8px 12px;background:var(--dia-ink);z-index:35}
  html[data-search-open] .adm-search-top{display:block}
  .adm-search-list{left:12px;right:12px}
  /* a fixed grid child keeps the desktop align-self:start (its height would be its content's): stretch it between top and bottom */
  .adm-nav,html[data-menu-open] .adm-nav{display:flex;position:fixed;top:56px;left:0;bottom:0;right:auto;width:min(320px,86vw);height:auto;align-self:stretch;justify-self:start;margin:0;overflow-y:auto;overscroll-behavior:contain;max-height:none;border-right:1px solid var(--dia-line);border-bottom:0;transform:translateX(-105%);transition:transform .18s ease;visibility:hidden;z-index:31}
  html[data-menu-open] .adm-nav{transform:none;visibility:visible}
  .adm-scrim{position:fixed;inset:56px 0 0 0;background:color-mix(in srgb,var(--dia-ink) 45%,transparent);z-index:30}
  .adm-table th{position:static}
  .adm-table td .adm-rowmenu{margin-left:auto}
  .adm-rowmenu-list{right:0;left:auto}
  .adm-launch-line{font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){.adm-nav{transition:none!important}}
/* the Companies filters: in a row on a laptop, folded under "Filters" on a phone */
.adm-filters{display:contents}
.adm-filters > summary{display:none}
.adm-filters-in{display:contents}
@media (max-width:760px){
  .adm-filters{display:block;flex:1 1 100%}
  .adm-filters > summary{display:flex;align-items:center;min-height:44px;font-weight:700;cursor:pointer}
  .adm-filters-in{display:grid;gap:10px}
}
/* Today: every box filled after the first paint keeps its size from the start (build L's rule: nothing moves) */
.adm-today-cards .adm-card{height:268px;overflow:hidden;display:flex;flex-direction:column}
.adm-today-cards .adm-card .adm-actions{margin-top:auto;padding-top:8px}
.adm-today-list li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.adm-launch-line{height:44px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;display:flex;align-items:center;gap:4px}
@media (max-width:760px){.adm-launch-line{height:auto;min-height:0;white-space:normal;display:block;height:84px}}
.adm-pick{border:1px solid var(--dia-line);border-radius:8px;padding:8px 10px;margin:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.adm-pick legend{font-size:14px;font-weight:600;padding:0 4px}

/* =====================================================   DIA_ADMIN_PAGES_MODERN_V1 (build ADM2, Jonathan 23 Oct 2026 22:05: "the side bar is done perfect, but the right side is not
   done... way too technical"): the top bar's one "Show test companies" switch, the Test badge, "Updated … ago" with Refresh,
   the search and filters in one row (chips + compact lists, wrapping on a phone), plan cards, ticks and chips, the refund
   panel, charts with axes and tooltips. Theme colours only.
   ============================================================ */
.adm-test-switch{display:inline-flex;align-items:center;gap:8px;margin-left:auto;font-size:13px;font-weight:700;color:var(--dia-on-ink-strong);cursor:pointer;white-space:nowrap;min-height:44px}
.adm-test-switch input{position:absolute;opacity:0;width:1px;height:1px}
.adm-switch-track{position:relative;width:38px;height:22px;border-radius:999px;background:var(--dia-ink-2);border:1px solid var(--dia-on-ink);flex:0 0 auto;transition:background .15s}
.adm-switch-track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--dia-on-ink-strong);transition:transform .15s}
.adm-test-switch input:checked + .adm-switch-track{background:var(--dia-gold);border-color:var(--dia-gold)}
.adm-test-switch input:checked + .adm-switch-track::after{transform:translateX(16px);background:var(--dia-ink)}
.adm-test-switch input:focus-visible + .adm-switch-track{outline:2px solid var(--dia-gold);outline-offset:2px}
.adm-test-switch ~ .adm-who{margin-left:8px}
.adm-pill.adm-test{border-color:var(--dia-muted);background:var(--dia-page);color:var(--dia-muted);text-transform:uppercase;font-size:10.5px;letter-spacing:.06em;vertical-align:2px}
.adm-updated{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--dia-muted);white-space:nowrap}
.adm-updated .adm-btn{min-height:32px;padding:3px 9px;font-size:13px}
.adm-ghost{background:transparent;border-color:transparent}
.adm-ghost:hover{border-color:var(--dia-input)}
.adm-count{display:inline-block;min-width:20px;padding:0 6px;border-radius:999px;background:var(--dia-page);font-size:12px;font-weight:700;color:var(--dia-muted);text-align:center;font-variant-numeric:tabular-nums}
/* the search and the filters: one row above the table */
.adm-filterbar{display:flex;flex-wrap:wrap;gap:8px 10px;align-items:center;margin:0 0 12px}
.adm-filter-search{flex:1 1 260px;min-width:0;max-width:420px}
.adm-chips{display:flex;flex-wrap:wrap;gap:6px}
.adm-chip{font:inherit;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 12px;border-radius:999px;border:1px solid var(--dia-input);background:var(--dia-surface);color:var(--dia-ink);cursor:pointer}
.adm-chip:hover{border-color:var(--dia-ink)}
.adm-chip.is-on{background:var(--dia-ink);border-color:var(--dia-ink);color:var(--dia-surface)}
.adm-chip.is-on .adm-count{background:var(--dia-ink-2);color:var(--dia-surface)}
.adm-compact{flex:0 0 auto}
.adm-compact select{width:auto;min-height:36px;padding:5px 30px 5px 10px;font-size:13px;font-weight:600;border-radius:999px}
.adm-rowbtns{display:flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:nowrap}
/* Today */
.adm-att-group{padding:4px 0 6px}
.adm-att-group h3{display:flex;align-items:center;gap:8px;margin:12px 0 6px;font-size:15px}
.adm-tile small{font-weight:600}
/* plan cards */
.adm-plan-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.adm-plan-head h2{margin:0}
.adm-price{margin:10px 0 4px;font-size:15px}.adm-price b{font-size:26px;font-variant-numeric:tabular-nums}
.adm-plan .adm-dl{margin:10px 0}
.adm-ticks{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
.adm-ticks li{font-size:14px}.adm-ticks li::before{content:"✓ ";color:var(--dia-success);font-weight:800}
.adm-chiplist{list-style:none;margin:6px 0 8px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.adm-chiplist .adm-chip{cursor:default}
.adm-chiplist .adm-chip button{font:inherit;background:none;border:0;color:inherit;cursor:pointer;padding:0 0 0 4px;font-size:16px;line-height:1;min-width:24px;min-height:24px}
.adm-limit{display:flex;gap:10px;align-items:center}
.adm-limit input[type=number],.adm-limit input:not([type]){flex:1 1 auto;min-width:0}
.adm-limit .adm-check{flex:0 0 auto;font-weight:600}
.adm-income-line{margin:0 0 12px}
.adm-ok-line{margin:0 0 6px;padding:10px 14px;border:1px solid var(--dia-success);border-radius:var(--dia-radius);background:var(--dia-success-soft);font-weight:700;color:var(--dia-success)}
.adm-note-box{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;padding:10px 14px;margin:0 0 12px;border:1px solid var(--dia-gold);border-radius:var(--dia-radius);background:var(--dia-gold-soft)}
.adm-note-box p{margin:0;flex:1 1 320px;font-size:14px}
.adm-howto{margin:0 0 12px;font-size:14px}.adm-howto summary{cursor:pointer;font-weight:700;color:var(--dia-muted);min-height:32px;display:flex;align-items:center}
/* the refund panel */
.adm-refund{margin-bottom:16px;border:2px solid var(--dia-gold)}
.adm-pick-list{list-style:none;margin:6px 0 0;padding:0;max-height:260px;overflow-y:auto}
.adm-pick-list li button{font:inherit;font-size:14px;width:100%;text-align:left;background:var(--dia-surface);border:1px solid var(--dia-input);border-radius:8px;padding:9px 12px;margin-bottom:6px;min-height:44px;cursor:pointer;color:var(--dia-ink);overflow-wrap:anywhere}
.adm-pick-list li button:hover{border-color:var(--dia-ink);background:var(--dia-gold-soft)}
/* additional businesses: the preview */
.adm-preview-box{background:var(--dia-gold-wash)}
.adm-preview-in{display:flex;flex-wrap:wrap;gap:10px;align-items:end;margin-top:8px}
.adm-preview-in label{display:grid;gap:4px;font-size:13px;font-weight:600;flex:1 1 140px}
/* charts: axes, gridlines, a tooltip per bar */
.adm-chart{position:relative;margin:6px 0 4px}
.adm-chart svg{display:block;width:100%;height:auto;overflow:visible}
.adm-chart .adm-grid{stroke:var(--dia-line);stroke-width:1}
.adm-chart .adm-grid.adm-base{stroke:var(--dia-muted)}
.adm-chart .adm-axis{fill:var(--dia-muted);font-size:12px;font-family:var(--dia-font)}
.adm-chart .adm-barfill{fill:var(--dia-ink)}
.adm-chart .adm-hit{fill:transparent}
.adm-chart .adm-barg{cursor:pointer;outline:none}
.adm-chart .adm-barg.is-on .adm-hit,.adm-chart .adm-barg:focus .adm-hit{fill:var(--dia-gold-soft)}
.adm-chart .adm-barg.is-on .adm-barfill{fill:var(--dia-ink-2)}
.adm-tip{position:absolute;width:160px;padding:6px 10px;border-radius:8px;background:var(--dia-ink);color:var(--dia-surface);font-size:13px;font-weight:700;text-align:center;pointer-events:none;box-shadow:var(--dia-shadow-card);transform:translateY(-110%)}
.adm-hbar > span:first-child small{display:block;font-size:12px;color:var(--dia-muted);font-weight:500}
@media (max-width:760px){
  .adm-test-switch .adm-switch-label{font-size:0}
  .adm-test-switch .adm-switch-label::after{content:"Test";font-size:12px}
  .adm-test-switch{margin-left:0;gap:6px}
  .adm-filter-search{flex:1 1 100%;max-width:none}
  .adm-chips{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:2px}
  .adm-chip{flex:0 0 auto}
  .adm-rowbtns{justify-content:flex-end;flex-wrap:wrap}
  .adm-limit{flex-wrap:wrap}
  .adm-updated .adm-updated-text{display:none}
  .adm-hbar{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .adm-hbar > span:nth-child(2){grid-column:1 / -1;grid-row:2}
}
/* words wrap between words in a table cell, never inside one (a long e-mail address still breaks when it must) */
.adm-table td{overflow-wrap:break-word}
.adm-table td small{overflow-wrap:anywhere}
.adm-hbar{grid-template-columns:minmax(160px,300px) minmax(0,1fr) auto}
@media (max-width:760px){.adm-hbar{grid-template-columns:minmax(0,1fr) auto}}
.adm-date-words{display:block;font-size:12.5px;font-weight:600;color:var(--dia-muted);min-height:16px;margin-top:2px}
.adm-form label.adm-check,label.adm-check{display:flex;align-items:center;gap:8px}
/* ---------- DIA_LEADS_V1 (build LEADS): Sign-ups and leads ---------- */
.adm-leads-filters p{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.adm-leads-filters input[type=search]{min-width:220px;flex:1 1 220px}
.adm-leads-legend{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0;font-size:13px;color:var(--dia-muted)}
.adm-leads-legend i,.adm-dot{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.adm-leads-chart{overflow-x:auto;padding-bottom:6px}.adm-leads-chart svg{display:block;height:auto}
.adm-leads-card{display:block;text-decoration:none;color:var(--dia-ink)}.adm-leads-card:hover{border-color:var(--dia-ink)}
.adm-tile .adm-small{font-size:11px;white-space:normal}
.dia-dlg.adm-leads-preview{max-width:720px}.adm-leads-preview iframe{width:100%;height:360px;border:1px solid var(--dia-line);border-radius:8px;background:#fff}
@media (max-width:760px){.adm-leads-preview iframe{height:300px}}
.adm-box.adm-leads-line{min-height:0}
.adm-table[data-leads-table]{font-size:13px}.adm-table[data-leads-table] td.adm-lead-who{width:34%}
.adm-leads-extra{margin-top:16px}.adm-leads-extra .adm-card + .adm-card{margin-top:0}
.adm-funnel-row{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 48px 48px;gap:8px;align-items:center;font-size:13px;margin:6px 0}
.adm-funnel-bar{background:var(--dia-line);border-radius:4px;height:10px;overflow:hidden}.adm-funnel-bar i{display:block;height:100%;background:#2a5bb8;border-radius:4px}
.adm-funnel-row strong{text-align:right;font-variant-numeric:tabular-nums}.adm-funnel-row em{font-style:normal;color:var(--dia-muted);text-align:right}

/* DIA_ADMIN_SESSION_V1: the idle warning and the sign-out notice */
.dia-idle-warn { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 9999; max-width: min(92vw, 460px);
  background: var(--adm-surface, #fff); color: var(--adm-text, #1f2937); border: 1px solid var(--adm-border, #d1d5db); border-radius: 10px;
  box-shadow: 0 8px 24px rgba(0,0,0,.18); padding: 14px 16px; font-size: 14px; }
.dia-idle-warn p { margin: 0 0 10px; }
.dia-session-notice { position: sticky; top: 0; left: auto; bottom: auto; transform: none; max-width: none; border-radius: 0; }
/* DIA_PRACTICE_PLAN_V1 (build PRACTICE): the Practices table scrolls sideways in its box: its header stays in the table, not over the rows */
.adm-table[data-pr-table] thead th{position:static}
