/* Balanced Royal theme: production admin body adapter, 2026-10-07.
   Load after original page CSS and the common balanced shell.
   No state/permission changes; Pay-Late cards and TimeClock table structure stay native. */
body.royal-balanced-theme.portal-admin {
  --bg:#080d16; --bg2:#101925; --panel:#101925; --panel2:#172231;
  --line:#2d3847; --line2:#414951; --ink:#f5f5f4;
  --mut:#d5d5d4; --mut2:#cbd0d7; --blue:#b8d7f5;
  --gold:#c8a96e; --gold-soft:#e9d9ba; --blue2:#253449;
  --royal-body-panel:linear-gradient(145deg,#182332,#121c29 65%,#0f1823);
  --royal-body-raised:linear-gradient(160deg,#253449,#1a293a 55%,#132031);
  --royal-body-field:#0c1521; --royal-body-hover:#203044;
  --royal-body-edge:#ffffff25; --royal-body-shadow:#0003;
  --royal-body-header:#172231;
  color:var(--ink);font-family:var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif);
  font-weight:400;font-feature-settings:normal;
}
:root[data-theme=light] body.royal-balanced-theme.portal-admin {
  --bg:#f4f1ea;--bg2:#fffdf9;--panel:#fffdf9;--panel2:#f1ede5;
  --line:#d9d2c5;--line2:#c7bfb0;--ink:#20334a;
  --mut:#4e6277;--mut2:#566679;--blue:#315d84;
  --gold:#876022;--gold-soft:#735523;--green:#287744;--red:#b53830;--amber:#996214;
  --royal-body-panel:linear-gradient(145deg,#fffdf9,#f5f1e9);
  --royal-body-raised:linear-gradient(160deg,#fffdf9,#ece6da);
  --royal-body-field:#fffdfa;--royal-body-hover:#ece7dd;
  --royal-body-edge:#fff;--royal-body-shadow:#20365116;
  --royal-body-header:#f1ede5;
}

/* A wide data workspace can grow on 4K; prose retains a comfortable measure. */
body.royal-balanced-theme.portal-admin :is(.admin-app,.admin-workspace,.admin-main) {min-width:0}
body.royal-balanced-theme.portal-admin .admin-main {
  width:calc(100% - 52px);max-width:2200px;margin-inline:auto;
}
body.royal-balanced-theme.portal-admin .admin-main > * {max-width:100%}
body.royal-balanced-theme.portal-admin .admin-main :is(.card,.tablewrap,.topup,.form,.reg,.permcard,.box-panel,.box-summary-metrics) {
  min-width:0;border-color:var(--line2);border-top-color:var(--royal-body-edge);
  background:var(--royal-body-panel);color:var(--ink);border-radius:12px;outline:0;
  box-shadow:inset 0 1px #ffffff0c,inset 0 -1px #0003,0 8px 22px var(--royal-body-shadow);
}
body.royal-balanced-theme.portal-admin .admin-main .card {
  padding:clamp(16px,1.3vw,24px);margin-bottom:18px;
}
body.royal-balanced-theme.portal-admin .admin-main .card[style*="background:#12151c"] {
  background:var(--royal-body-panel)!important;
}
body.royal-balanced-theme.portal-admin .admin-main :is(.topup,.form,.reg) {
  gap:12px;padding:16px;align-items:center;
}
body.royal-balanced-theme.portal-admin .admin-main :is(.topup,.form,.reg)>* {min-width:0;max-width:100%}
/* Exemption/backfill labels have fixed legacy widths. Keep their fields inside
   the actual form content width at 320px without changing validation/values. */
body.royal-balanced-theme.portal-admin .admin-main form,
body.royal-balanced-theme.portal-admin .admin-main form label {min-width:0;max-width:100%}
body.royal-balanced-theme.portal-admin .admin-main :is(h2,h3,h4) {
  font-family:var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif);
  font-weight:600;letter-spacing:0;text-transform:none;line-height:1.4;text-shadow:none;
}
body.royal-balanced-theme.portal-admin .admin-main h2 {color:var(--ink);font-size:clamp(18px,1vw,23px);flex-wrap:wrap}
body.royal-balanced-theme.portal-admin .admin-main h2::after {background:linear-gradient(90deg,var(--line2),transparent)}
body.royal-balanced-theme.portal-admin .admin-main h2 .note {font-size:14px;flex-basis:100%}
body.royal-balanced-theme.portal-admin .admin-main :is(.note,p.muted,.box-page-heading p,.box-panel-head p) {
  color:var(--mut);font-family:var(--royal-prose,'Raleway',system-ui,sans-serif);
  font-weight:400;line-height:1.7;max-width:78ch;
}
body.royal-balanced-theme.portal-admin .admin-main .muted {color:var(--mut)}
body.royal-balanced-theme.portal-admin .admin-main a.tenant {color:var(--blue);border-bottom-color:var(--line2)}
body.royal-balanced-theme.portal-admin .admin-main a.tenant:hover {color:var(--ink);border-bottom-color:var(--gold)}
body.royal-balanced-theme.portal-admin .admin-main :is(.off,.plnc) {color:var(--mut2)}
body.royal-balanced-theme.portal-admin .admin-main :is(code,pre,kbd,samp,.code) {
  font-family:Consolas,ui-monospace,monospace;color:var(--mut);overflow-wrap:anywhere;
}
body.royal-balanced-theme.portal-admin .admin-main :is(.note,.err,.ok,.warnbox,.plw) {overflow-wrap:anywhere}
body.royal-balanced-theme.portal-admin .admin-main :is(.err,.ok,.warnbox,.plw) {border-radius:10px;line-height:1.6}

/* Keep true table semantics, including totals and TH/TD health pairs.
   PHP wraps the three known overflowing tables. The common adapter wraps other
   bare tables without changing cells/IDs; existing .tablewrap is reused. */
body.royal-balanced-theme.portal-admin .admin-main :is(.tablewrap,.box-table-wrap) {
  width:100%;max-width:100%;min-width:0;overflow-x:auto;
  overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;
}
body.royal-balanced-theme.portal-admin .admin-main :is(.tablewrap,.box-table-wrap)>table {
  display:table;width:100%;max-width:none;overflow:visible;
}
body.royal-balanced-theme.portal-admin .admin-main :is(th,td) {border-color:var(--line);font-family:var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif)}
body.royal-balanced-theme.portal-admin .admin-main :is(.tablewrap,.box-table-wrap) th {
  background:var(--royal-body-header);color:var(--mut);box-shadow:none;
  font-size:12px;font-weight:600;letter-spacing:.02em;line-height:1.45;text-transform:none;
}
body.royal-balanced-theme.portal-admin .admin-main table tbody tr:nth-child(even) td {background:#8c9bab08}
body.royal-balanced-theme.portal-admin .admin-main table tbody tr:hover td {background:var(--royal-body-hover)}
body.royal-balanced-theme.portal-admin .admin-main .royal-data-table:focus-visible {outline:2px solid var(--gold);outline-offset:4px}
body.royal-balanced-theme.portal-admin .royal-blacklist-table td:nth-child(3) {white-space:normal;min-width:220px;max-width:40ch;overflow-wrap:anywhere}

/* The location remains available on narrow screens. URI/coordinates are server data. */
body.royal-balanced-theme.portal-admin .royal-monitor-table #t thead th {
  background:var(--royal-body-header);color:var(--mut);border-color:var(--line2);
  font-size:12px;letter-spacing:.02em;text-transform:none;padding:13px 12px;
}
body.royal-balanced-theme.portal-admin .royal-monitor-table #t tbody td {padding:10px 12px}
body.royal-balanced-theme.portal-admin .royal-monitor-table a.sortlink {color:var(--mut)}
body.royal-balanced-theme.portal-admin .royal-monitor-table a.sortlink.on {color:var(--ink)}
body.royal-balanced-theme.portal-admin .admin-main a.royal-teleport {
  min-height:44px;padding:9px 12px;gap:7px;white-space:nowrap;
  border:1px solid #738094;border-top-color:#b5bec9;border-radius:8px;
  background:linear-gradient(160deg,#253449,#1a293a 55%,#132031);
  color:#fff;text-decoration:none;text-shadow:none;font-weight:600;font-size:13px;
  box-shadow:inset 0 1px #ffffff15,0 2px 0 #060c15,0 4px 8px #0002;
}
body.royal-balanced-theme.portal-admin .admin-main a.royal-teleport svg {flex:none;color:#e1c799;width:18px;height:18px}
body.royal-balanced-theme.portal-admin .admin-main a.royal-teleport:hover {border-color:#c8a96e;background:linear-gradient(160deg,#30435b,#243649)}
body.royal-balanced-theme.portal-admin .admin-main #shown {color:var(--mut);font-size:13px}
body.royal-balanced-theme.portal-admin .admin-main :is(input#q,select#rgn) {font:400 14px var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif);min-height:44px}
body.royal-balanced-theme.portal-admin .admin-main .bar .chip {
  min-height:44px;display:inline-flex;align-items:center;gap:8px;
  background:var(--royal-body-raised);color:var(--mut);border-color:var(--line2);
  border-radius:9px;padding:9px 12px;font-size:13px;
}
body.royal-balanced-theme.portal-admin .admin-main .bar a.chip.on {border-color:var(--gold);background:var(--royal-body-header)}
body.royal-balanced-theme.portal-admin .admin-main .bar .chip b {font-size:16px;line-height:1;font-weight:600}

/* Controls retain their names, values, native validation and submit handlers. */
body.royal-balanced-theme.portal-admin .admin-main :is(input,select,textarea) {
  max-width:100%;min-width:0;min-height:44px;border-color:var(--line2);
  background:var(--royal-body-field);color:var(--ink);font-family:var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif);
  font-size:14px;font-weight:400;box-shadow:inset 0 1px 3px #0002;
}
body.royal-balanced-theme.portal-admin .admin-main :is(input,textarea)::placeholder {color:var(--mut2);opacity:1}
body.royal-balanced-theme.portal-admin .admin-main input:is([type=checkbox],[type=radio]) {
  width:18px;height:18px;min-height:18px;min-width:18px;max-width:18px;
  margin:0 8px 0 0;padding:0;vertical-align:middle;box-shadow:none;accent-color:var(--gold);
}
body.royal-balanced-theme.portal-admin .admin-main label:has(>input:is([type=checkbox],[type=radio])) {
  display:inline-flex;align-items:center;gap:5px;min-height:44px;
  padding-block:9px;line-height:1.5;cursor:pointer;
}
body.royal-balanced-theme.portal-admin .admin-main :is(button,.btn,.box-action,.box-map-link) {
  min-height:44px;max-width:100%;font-family:var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif);
  font-weight:600;font-size:14px;line-height:1.4;text-shadow:none;white-space:normal;
}
body.royal-balanced-theme.portal-admin .admin-main :is(button,.btn):not(.g,.b,.amber,.danger,.cancel,.royal-teleport,.box-action-primary,.box-action-danger) {
  background:var(--royal-body-raised);border:1px solid var(--line2);color:var(--ink);
  box-shadow:inset 0 1px var(--royal-body-edge),inset 0 -1px #0004,0 2px 0 #0004;
}
body.royal-balanced-theme.portal-admin .admin-main :is(button.g,button.amber,button.b,.box-action-primary) {
  border:1px solid #c8a96e;border-top-color:#ead5ad;
  background:linear-gradient(145deg,#d7bf8e,#c8a96e 58%,#a88951);color:#241c11;
  box-shadow:inset 0 1px #f6e4c43d,0 2px 0 #6b512b,0 5px 10px #0003;
}
body.royal-balanced-theme.portal-admin .admin-main :is(button:disabled,.btn[aria-disabled=true],.box-action.is-disabled) {opacity:.5;cursor:not-allowed}
body.royal-balanced-theme.portal-admin .admin-main :is(input[name=box_uuid],input[name="box[]"],input[name=tenant_key],input[name=uuid]) {font-family:Consolas,ui-monospace,monospace}
body.royal-balanced-theme.portal-admin .paylate-add form>input:not([type=hidden]) {margin-bottom:8px}
body.royal-balanced-theme.portal-admin .paylate-add #plack label {display:flex!important;align-items:flex-start;gap:8px}
body.royal-balanced-theme.portal-admin .paylate-add #plack label input {flex:none;margin-top:2px}
body.royal-balanced-theme.portal-admin .admin-main .tc-view h2 {font-size:17px}
body.royal-balanced-theme.portal-admin .admin-main .tc-shift.tc-shift-own {border-top-color:var(--green)}

/* Private box detail uses its own markup, but the same typography and surfaces. */
body.royal-balanced-theme.portal-admin .box-page-heading h1 {
  color:var(--ink);font:400 clamp(40px,3.6vw,58px)/1.35 var(--royal-title,'Great Vibes',Georgia,serif);letter-spacing:0;text-shadow:none;
}
body.royal-balanced-theme.portal-admin :is(.box-metric-top,.box-metric-foot,.box-subtenant-names,.box-panel-head p) {color:var(--mut)}
body.royal-balanced-theme.portal-admin :is(.box-metric-value,.cards .card strong) {
  font-family:var(--royal-ui,'Plus Jakarta Sans',system-ui,sans-serif);font-weight:500;font-variant-numeric:tabular-nums;
}
body.royal-balanced-theme.portal-admin .box-panel-head h2 {color:var(--ink)}
body.royal-balanced-theme.portal-admin .box-facts td:last-child {color:var(--ink)}
body.royal-balanced-theme.portal-admin .box-facts td:first-child {color:var(--mut)}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main :is(.u-ok,.p-vacant) {color:#526071}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main :is(.u-over,.stale,.s-overdue,.p-overdue,.plbad,.plunres,.bad) {color:#a42d30}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main :is(.u-soon,.u-warn,.s-unknown,.p-unknown) {color:#825718}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main :is(.s-rented,.p-rented,.box-status-rented) {color:#287744}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main .s-vacant {color:#526071}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main .err {color:#8e2a2b;background:#fbe9e5;border-color:#d59c91}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main .ok {color:#25643d;background:#e9f4ea;border-color:#98bea2}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main :is(.plw,.warnbox) {color:#624713;background:#f7efd9;border-color:#b29860}
:root[data-theme=light] body.royal-balanced-theme.portal-admin .admin-main .plw h4 {color:#74500e}

@media(max-width:820px) {
  body.royal-balanced-theme.portal-admin .admin-main {width:calc(100% - 28px)}
  body.royal-balanced-theme.portal-admin .admin-main :is(.bar,.topup,.form,.reg) {gap:10px}
  body.royal-balanced-theme.portal-admin .admin-main input#q {width:100%;flex:1 1 230px}
  body.royal-balanced-theme.portal-admin .admin-main select#rgn {max-width:100%;flex:1 1 180px}
  body.royal-balanced-theme.portal-admin .admin-main .royal-monitor-table {border-radius:10px}
  body.royal-balanced-theme.portal-admin .admin-main :is(.tablewrap,.box-table-wrap)>table {display:table}
}
@media(max-width:800px) {
  /* Preserve Pay-Late's existing per-record mobile layout. */
  body.royal-balanced-theme.portal-admin .paylate-records td[data-label]::before {color:var(--mut);opacity:1;font-weight:600}
  body.royal-balanced-theme.portal-admin .paylate-records tr {padding:16px 12px;background:var(--royal-body-panel);border:1px solid var(--line2);border-radius:10px;margin:0 0 12px}
  body.royal-balanced-theme.portal-admin .paylate-records td {max-width:100%!important}
}
@media(max-width:420px) {
  body.royal-balanced-theme.portal-admin .admin-main .bar .chip {font-size:12px;padding:8px 10px;gap:6px}
  body.royal-balanced-theme.portal-admin .paylate-records tr {grid-template-columns:minmax(0,1fr)}
  body.royal-balanced-theme.portal-admin .paylate-records td {grid-column:1!important}
  body.royal-balanced-theme.portal-admin .admin-main .card {padding:14px}
}
@media(prefers-reduced-motion:reduce) {
  body.royal-balanced-theme.portal-admin .admin-main :is(button,.btn) {transition:none;transform:none}
}
@media(forced-colors:active) {
  body.royal-balanced-theme.portal-admin .admin-main :is(.card,.tablewrap,.topup,.form,.reg,.box-panel,.box-summary-metrics,.chip) {background:Canvas;color:CanvasText;border-color:CanvasText;box-shadow:none}
  body.royal-balanced-theme.portal-admin .admin-main :is(button,.btn,a.royal-teleport) {background:ButtonFace;color:ButtonText;border-color:ButtonText;box-shadow:none}
}
@media print {
  body.royal-balanced-theme.portal-admin .admin-main {width:100%;max-width:none}
  body.royal-balanced-theme.portal-admin .admin-main :is(.tablewrap,.box-table-wrap) {overflow:visible;background:#fff;box-shadow:none;border-color:#aaa}
  body.royal-balanced-theme.portal-admin .admin-main :is(th,td,.muted,.note) {color:#000;background:#fff;white-space:normal}
}
