*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f7faf5;--bg2:#ffffff;--bg3:#f0f7ed;--bg4:#e8f5e3;--bd:rgba(34,139,34,.12);--bd2:rgba(34,139,34,.25);--tx:#1a2e1a;--tx2:#3d6b3d;--tx3:#7aaa7a;--ac:#22a722;--ac2:#1a8c1a;--ac-d:rgba(34,167,34,.12);--ok:#16a34a;--ok-d:rgba(22,163,74,.1);--wn:#ea6c00;--wn-d:rgba(234,108,0,.1);--er:#dc2626;--er-d:rgba(220,38,38,.1);--pu:#7c3aed;--pu-d:rgba(124,58,237,.1);--or:#ea6c00;--or2:#c45a00;--or-d:rgba(234,108,0,.13);--r:10px;--rs:6px;--f:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;--m:'JetBrains Mono','Fira Code',monospace}html,body{height:100%}body{font-family:var(--f);background:var(--bg);color:var(--tx);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}#app{height:100%}.app-shell{display:flex;height:100vh;overflow:hidden}.sidebar{width:230px;min-width:230px;height:100vh;background:var(--bg2);border-right:2px solid var(--bd2);display:flex;flex-direction:column;overflow-y:auto;box-shadow:2px 0 12px rgba(34,167,34,.07)}.s-logo{padding:16px;border-bottom:2px solid var(--bd2);display:flex;align-items:center;gap:10px;background:linear-gradient(135deg,#e8f5e3,#fff8f0)}.s-logo-box{width:34px;height:34px;background:linear-gradient(135deg,var(--ac),var(--ac2));border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 2px 8px rgba(34,167,34,.3)}.s-logo-box.admin{background:linear-gradient(135deg,var(--or),var(--or2));box-shadow:0 2px 8px rgba(234,108,0,.3)}.s-logo-name{font-size:15px;font-weight:800;letter-spacing:-.3px;color:var(--tx)}.s-logo-sub{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:.6px}.s-section{padding:8px 8px 2px}.s-label{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:1px;padding:4px 10px 5px;font-weight:700}.s-item{display:flex;align-items:center;gap:9px;padding:8px 10px;border-radius:var(--rs);cursor:pointer;font-size:13px;color:var(--tx2);transition:all .13s;margin-bottom:1px;user-select:none;font-weight:500}.s-item:hover{background:var(--ac-d);color:var(--ac)}.s-item.active{background:linear-gradient(90deg,var(--ac-d),rgba(34,167,34,.06));color:var(--ac);border-left:3px solid var(--ac);padding-left:7px;font-weight:600}.s-badge{margin-left:auto;background:var(--or);color:#fff;font-size:10px;font-weight:700;padding:1px 7px;border-radius:20px}.s-footer{margin-top:auto;padding:12px;border-top:2px solid var(--bd)}.s-status{display:flex;align-items:center;gap:8px;background:var(--bg3);border:1px solid var(--bd2);border-radius:var(--rs);padding:8px 10px}.s-dot{width:7px;height:7px;border-radius:50%;background:var(--tx3);flex-shrink:0}.s-dot.on{background:var(--ok);box-shadow:0 0 6px var(--ok)}.s-dot.off{background:var(--er);box-shadow:0 0 6px var(--er)}.main-area{flex:1;display:flex;flex-direction:column;height:100vh;overflow:hidden;min-width:0}.topbar{height:56px;background:var(--bg2);border-bottom:2px solid var(--bd2);display:flex;align-items:center;justify-content:space-between;padding:0 22px;flex-shrink:0;box-shadow:0 2px 8px rgba(34,167,34,.06)}.topbar-title{font-size:18px;font-weight:700;color:var(--tx)}.topbar-right{display:flex;align-items:center;gap:10px}.balance-chip{background:linear-gradient(90deg,var(--ok-d),var(--wn-d));border:1px solid var(--bd2);border-radius:20px;padding:5px 14px;font-family:var(--m);font-size:13px;color:var(--ok);font-weight:700}.topbar-logout{background:0;border:1.5px solid var(--bd2);border-radius:var(--rs);padding:4px 10px;font-size:12px;color:var(--tx2);cursor:pointer;display:none}.topbar-logout:hover{background:var(--er-d);color:var(--er);border-color:var(--er)}.page-content{flex:1;overflow-y:auto;padding:22px;background:var(--bg)}.card{background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--r);padding:18px 20px;box-shadow:0 1px 4px rgba(34,167,34,.06)}.card+.card{margin-top:14px}.card-title{font-size:14px;font-weight:700;margin-bottom:14px;color:var(--tx)}.card-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:8px}.card-hdr .card-title{margin-bottom:0}.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.mb14{margin-bottom:14px}.stat{background:var(--bg2);border:1px solid var(--bd2);border-radius:var(--r);padding:16px;box-shadow:0 1px 4px rgba(34,167,34,.06);text-align:center}.stat-label{font-size:11px;color:var(--tx3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-weight:600}.stat-val{font-size:26px;font-weight:800;line-height:1.2}.stat-sub{font-size:11px;color:var(--tx3);margin-top:3px}.fg{margin-bottom:13px}.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{display:block;font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px}input,select,textarea{width:100%;background:#fff;border:1.5px solid var(--bd2);border-radius:var(--rs);color:var(--tx);padding:9px 12px;font-size:13px;font-family:var(--f);outline:0;transition:border .13s,box-shadow .13s;min-height:44px}input:focus,select:focus,textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px var(--ac-d)}input::placeholder,textarea::placeholder{color:var(--tx3)}select option{background:#fff}textarea{resize:vertical;min-height:80px}.mono{font-family:var(--m)!important;font-size:12px!important}.hint{font-size:11px;color:var(--tx3);margin-top:4px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--rs);font-size:13px;font-weight:600;cursor:pointer;border:0;font-family:var(--f);transition:all .13s;white-space:nowrap;min-height:44px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-p{background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff;box-shadow:0 2px 6px rgba(34,167,34,.3)}.btn-p:hover:not(:disabled){background:linear-gradient(135deg,var(--ac2),#167a16);box-shadow:0 3px 10px rgba(34,167,34,.4)}.btn-or{background:linear-gradient(135deg,var(--or),var(--or2));color:#fff;box-shadow:0 2px 6px rgba(234,108,0,.3)}.btn-or:hover:not(:disabled){box-shadow:0 3px 10px rgba(234,108,0,.4)}.btn-g{background:#fff;color:var(--tx2);border:1.5px solid var(--bd2)}.btn-g:hover:not(:disabled){background:var(--bg3);color:var(--tx);border-color:var(--ac)}.btn-d{background:var(--er-d);color:var(--er);border:1px solid rgba(220,38,38,.25)}.btn-sm{padding:5px 11px;font-size:12px;min-height:36px}.btn:active{transform:scale(.98);opacity:.95}.btn-block{width:100%;justify-content:center;margin-top:6px}table{width:100%;border-collapse:collapse;line-height:1.6}.tbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}thead th{text-align:left;font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.8px;padding:9px 12px;border-bottom:2px solid var(--bd2);white-space:nowrap;background:var(--bg3)}tbody tr{border-bottom:1px solid var(--bd);transition:background .1s}tbody tr:hover{background:var(--bg3)}tbody td{padding:10px 12px;font-size:13px;color:var(--tx2);word-break:break-word}tbody td:first-child{color:var(--tx);font-weight:500}.badge{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.b-ok{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0}.b-wn{background:#fff7ed;color:#c2410c;border:1px solid #fed7aa}.b-er{background:#fef2f2;color:#b91c1c;border:1px solid #fecaca}.b-ac{background:#f0fdf4;color:var(--ac2);border:1px solid #bbf7d0}.b-pu{background:var(--pu-d);color:var(--pu);border:1px solid rgba(124,58,237,.2)}.b-nt{background:var(--bg3);color:var(--tx3);border:1px solid var(--bd2)}.b-or{background:#fff7ed;color:var(--or2);border:1px solid #fed7aa}.al{padding:11px 14px;border-radius:var(--rs);font-size:13px;margin-bottom:14px;line-height:1.5;font-weight:500}.al-ok{background:#f0fdf4;border:1.5px solid #86efac;color:#15803d}.al-er{background:#fef2f2;border:1.5px solid #fca5a5;color:#b91c1c}.al-wn{background:#fff7ed;border:1.5px solid #fdba74;color:#c2410c}.al-in{background:#f0fdf4;border:1.5px solid #86efac;color:var(--ac2)}.resp{background:#1a2e1a;border:1px solid var(--bd2);border-radius:var(--rs);padding:12px;font-family:var(--m);font-size:11px;color:#86efac;white-space:pre-wrap;word-break:break-all;line-height:1.6;min-height:60px;max-height:360px;overflow-y:auto}.empty{text-align:center;padding:32px 20px;color:var(--tx3)}.empty-icon{font-size:34px;margin-bottom:10px}.empty-title{font-size:14px;color:var(--tx2);font-weight:600;margin-bottom:4px}.pager{display:flex;align-items:center;gap:5px;margin-top:14px;flex-wrap:wrap}.pager-btn{padding:5px 11px;border-radius:var(--rs);background:#fff;border:1.5px solid var(--bd2);color:var(--tx2);font-size:12px;cursor:pointer;transition:all .13s;font-weight:500;min-height:36px;min-width:36px}.pager-btn:hover{background:var(--bg3);border-color:var(--ac);color:var(--ac)}.pager-btn.active{background:var(--ac);color:#fff;border-color:var(--ac)}.pager-btn:disabled{opacity:.4;cursor:not-allowed}.spin{width:18px;height:18px;border:2px solid var(--bd2);border-top-color:var(--ac);border-radius:50%;animation:sp .7s linear infinite;flex-shrink:0}@keyframes sp{to{transform:rotate(360deg)}}.toast-wrap{position:fixed;bottom:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:8px;pointer-events:none}.toast{background:#fff;border:1.5px solid var(--bd2);border-radius:var(--r);padding:12px 16px;font-size:13px;min-width:240px;max-width:320px;box-shadow:0 4px 20px rgba(34,167,34,.15);pointer-events:auto;animation:tin .25s cubic-bezier(.34,1.56,.64,1);font-weight:500;color:var(--tx)}.toast.ok{border-left:4px solid var(--ok);background:#f0fdf4}.toast.er{border-left:4px solid var(--er);background:#fef2f2;color:#b91c1c}.toast.in{border-left:4px solid var(--ac);background:#f0fdf4;color:var(--ac2)}.toast.wn{border-left:4px solid var(--or);background:#fff7ed;color:var(--or2)}@keyframes tin{from{transform:translateX(60px);opacity:0}to{transform:translateX(0);opacity:1}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f5e3 0%,#fff8f0 50%,#f0fdf4 100%);position:relative;overflow:hidden}.login-bg{position:absolute;inset:0;display:flex;gap:18px;justify-content:center;padding:0 10px;opacity:.55;filter:saturate(.9);pointer-events:none;transform:rotate(-8deg) scale(1.25);transform-origin:center}.login-bg-col{flex:1;max-width:240px;display:flex;flex-direction:column;gap:12px;animation:loginScroll 38s linear infinite}.login-bg-col.rev{animation-direction:reverse;animation-duration:46s}@keyframes loginScroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}.login-chip{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.85);border:1.5px solid var(--bd2);border-radius:10px;padding:10px 13px;box-shadow:0 2px 10px rgba(34,167,34,.07);backdrop-filter:blur(2px)}.login-chip-dot{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,var(--ac),var(--ac2));box-shadow:0 0 6px rgba(34,167,34,.5);flex-shrink:0}.login-chip-name{font-size:12.5px;font-weight:600;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.login-chip-grp{font-size:10px;color:var(--tx3);font-family:var(--m);margin-left:auto;white-space:nowrap;text-transform:uppercase;letter-spacing:.3px}.login-bg-fade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 520px 460px at center,rgba(247,250,245,.96) 0%,rgba(247,250,245,.7) 45%,rgba(247,250,245,.25) 75%,transparent 100%)}.login-card{position:relative;z-index:2;background:rgba(255,255,255,.97);border:2px solid var(--bd2);border-radius:18px;padding:38px 34px;width:100%;max-width:400px;box-shadow:0 12px 48px rgba(34,167,34,.18),0 2px 8px rgba(0,0,0,.04);backdrop-filter:blur(6px)}.login-logo{display:flex;align-items:center;gap:12px}.login-logo-box{width:44px;height:44px;background:linear-gradient(135deg,var(--ac),var(--ac2));border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 4px 14px rgba(34,167,34,.35)}.login-title{font-size:18px;font-weight:800;letter-spacing:-.3px;color:var(--tx)}.login-sub{font-size:10px;color:var(--tx3);text-transform:uppercase;letter-spacing:.7px;margin-top:1px}.login-welcome{font-size:20px;font-weight:800;color:var(--tx);margin-top:22px;letter-spacing:-.3px}.login-welcome-sub{font-size:13px;color:var(--tx3);margin-bottom:22px;margin-top:3px}.login-foot{text-align:center;font-size:11px;color:var(--tx3);margin-top:18px;letter-spacing:.2px}@media(max-width:560px){.login-bg{opacity:.3}.login-bg-col:nth-child(n+4){display:none}}.svc-item{display:flex;align-items:center;justify-content:space-between;padding:11px 13px;background:#fff;border:1.5px solid var(--bd);border-radius:var(--rs);cursor:pointer;transition:all .13s;margin-bottom:6px}.svc-item:hover{border-color:var(--ac);background:var(--ac-d);box-shadow:0 2px 6px rgba(34,167,34,.1)}.svc-item.sel{border-color:var(--ac);background:var(--ac-d)}.svc-name{font-size:13px;font-weight:600;color:var(--tx)}.svc-meta{font-size:11px;color:var(--tx3);font-family:var(--m);margin-top:1px}.svc-price{font-size:13px;color:var(--or);font-weight:700;font-family:var(--m)}hr{border:0;border-top:1.5px solid var(--bd);margin:16px 0}.txt-ok{color:var(--ok)}.txt-er{color:var(--er)}.txt-wn{color:var(--or)}.txt-ac{color:var(--ac)}.txt-muted{color:var(--tx3)}.fw6{font-weight:600}.fw7{font-weight:700}.fs11{font-size:11px}.fs12{font-size:12px}.flex{display:flex}.fc{display:flex;align-items:center}.gap8{gap:8px}.gap12{gap:12px}.ml-auto{margin-left:auto}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px}::-webkit-scrollbar-track{background:0}a{color:var(--ac);text-decoration:none}a:hover{text-decoration:underline}code{font-family:var(--m);background:var(--bg3);padding:1px 5px;border-radius:4px;font-size:12px;color:var(--ac2);border:1px solid var(--bd)}.mob-menu-btn{display:none;position:fixed;top:12px;left:12px;z-index:200;background:var(--ac);color:#fff;border:0;border-radius:8px;width:40px;height:40px;font-size:20px;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(34,167,34,.4)}.sidebar-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:149}.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));gap:10px}.info-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:10px}.info-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.filter-bar input,.filter-bar select{flex:1;min-width:100px}@media(max-width:1024px){.g4{grid-template-columns:1fr 1fr}}@media(max-width:768px){.mob-menu-btn{display:flex}.sidebar-overlay.open{display:block}.sidebar{position:fixed;left:-250px;top:0;height:100vh;z-index:150;transition:left .22s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 24px rgba(0,0,0,.18)}.sidebar.open{left:0}.main-area{width:100%}.app-shell{display:flex;flex-direction:column}.topbar{padding:0 10px 0 52px;height:54px}.topbar-title{font-size:14px}.balance-chip{font-size:11px;padding:4px 10px}.page-content{padding:12px 10px}.g2,.g3{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}.card{padding:16px;border-radius:10px}.card-hdr{flex-wrap:wrap}.card-hdr>div{width:100%}.fg{margin-bottom:14px}input,select,textarea{padding:12px 13px;font-size:16px}textarea{min-height:90px}.btn{padding:11px 16px;font-size:13px;min-height:40px}.btn-sm{padding:7px 12px;font-size:12px;min-height:32px}.tbl-wrap{margin:0!important;padding:0!important;overflow-x:visible!important;width:100%}table{font-size:12px;width:100%}tbody td{padding:8px 10px;font-size:12px;word-break:break-word}thead th{padding:8px 10px;font-size:10px}[style*=max-width:520px]{margin:0 10px!important;border-radius:12px!important;max-height:90vh!important}.svc-grid{grid-template-columns:1fr 1fr}.svc-header-search{width:100%!important}.info-grid-3{grid-template-columns:1fr 1fr}.info-grid-2{grid-template-columns:1fr}.stat{padding:16px 12px}.stat-val{font-size:24px}}@media(max-width:480px){.page-content{padding:10px 8px}.card{padding:14px;border-radius:9px}input,select,textarea{padding:11px 12px;font-size:16px}textarea{min-height:80px}.btn{padding:10px 14px;font-size:12px;min-height:38px}.btn-sm{padding:6px 10px;font-size:11px}.g2,.g3,.g4{grid-template-columns:1fr!important}.tbl-wrap{overflow-x:visible!important;margin:0!important;padding:0!important;width:100%}table{white-space:normal!important;font-size:11px;width:100%}tbody td{padding:6px 8px;font-size:11px;word-break:break-word;overflow-wrap:break-word}thead th{padding:6px 8px;font-size:9px}[style*=max-width:520px]{max-width:100%!important;margin:0 6px!important;border-radius:10px!important}.topbar{padding:0 8px 0 48px;height:52px}.topbar-title{font-size:13px}.balance-chip{font-size:10px;padding:3px 8px}.topbar-logout{display:inline-flex}.stat{padding:14px 10px}.stat-label{font-size:10px}.stat-val{font-size:20px}.flex{gap:6px}.badge{padding:3px 8px;font-size:10px}.pager-btn{min-width:32px;min-height:32px;padding:5px 9px;font-size:12px}}@media(max-width:374px){.page-content{padding:8px 6px}.card{padding:12px}.btn{font-size:11px;padding:9px 12px}.topbar-title{font-size:12px}.balance-chip{display:none}tbody td{padding:5px 7px;font-size:10px}thead th{padding:5px 7px;font-size:8px}}

/* ── Audit UI fixes (2026-07-14): responsive handling for inline grids, tab bars,
   wide tables, and touch targets in the newer admin views. Appended so it overrides. ── */
/* Tab bars (service manager, user edit): horizontal scroll instead of ugly wrap on mobile */
@media(max-width:768px){
  .tabbar{display:flex;gap:8px;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:6px;flex-wrap:nowrap!important}
  .tabbar .btn{flex:0 0 auto;white-space:nowrap}
}
/* Inline 3-col / 4-col grids used in Add-Service, edit-row, import form: collapse on smaller screens */
@media(max-width:1024px){
  [style*="repeat(3,1fr)"],[style*="repeat(3, 1fr)"]{grid-template-columns:1fr 1fr!important}
  [style*="1fr 1fr 1.4fr"]{grid-template-columns:1fr 1fr!important}
}
@media(max-width:768px){
  [style*="repeat(3,1fr)"],[style*="repeat(3, 1fr)"],
  [style*="1fr 1fr 1.4fr"],[style*="grid-template-columns:2fr 1fr"],
  [style*="2fr 1fr 2fr"]{grid-template-columns:1fr!important}
  /* any inline grid child that spanned columns should not overflow */
  [style*="grid-column:span 2"],[style*="grid-column:span 3"]{grid-column:1/-1!important}
}
/* Filter bars: let fixed-width inputs shrink and go full width on phones */
@media(max-width:768px){
  .card-content .flex input,.card-content .flex select{min-width:120px}
}
@media(max-width:480px){
  .card-content .flex > input,.card-content .flex > select{width:100%!important;flex:1 1 100%!important}
}
/* Bigger touch targets for table checkboxes on mobile */
@media(max-width:768px){
  table input[type=checkbox]{width:22px;height:22px;min-width:22px}
  tbody td:first-child,thead th:first-child{padding-left:10px;padding-right:6px}
}
/* Card header: stack title above actions on phones so stat boxes/buttons do not misalign */
@media(max-width:768px){
  .card-hdr{flex-direction:column;align-items:stretch}
  .card-hdr>.flex{width:100%;flex-wrap:wrap}
}
/* ── Mobile fixes (2026-07-24): collapse remaining inline multi-column grids on phones.
   Catches "1fr 1fr", "1fr 1fr 1fr" and similar spellings the older selectors missed
   (order-detail modal, license cards, provider stats). ── */
@media(max-width:480px){
  [style*="grid-template-columns:1fr 1fr"],.row2{grid-template-columns:1fr!important}
}
/* ── Mobile fixes (2026-07-24) v2: tables scroll horizontally on phones instead of
   character-wrapping. The old wrap strategy crushed 6-7 column tables into
   one-character-per-line columns (order ids and emails became vertical strips).
   Natural cell widths + a swipeable overflow container read far better. ── */
@media(max-width:768px){
  .tbl-wrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch}
  .tbl-wrap tbody td{word-break:normal!important;overflow-wrap:normal!important}
  .tbl-wrap td.mono,.tbl-wrap .badge{white-space:nowrap}
  .topbar{padding-left:58px}
}
@media(max-width:480px){
  .topbar{padding-left:56px}
}
/* ── Mobile fixes (2026-07-24) v3: card layout for data tables on phones.
   A table tagged class="rt" renders as stacked cards at ≤600px: each row becomes
   a bordered card, each cell a "LABEL   value" line (label text from the cell's
   data-l attribute; cells without data-l — e.g. action buttons — right-align
   without a label). Cells with class rt-full (long text like order results) go
   full-width with the label above. Desktop rendering is untouched. ── */
@media(max-width:600px){
  table.rt{display:block;white-space:normal!important}
  table.rt thead{display:none}
  table.rt tbody{display:flex;flex-direction:column;gap:10px}
  table.rt tbody tr{display:block;border:1.5px solid var(--bd2);border-radius:10px;padding:3px 12px;background:var(--bg2);box-shadow:0 1px 3px rgba(34,167,34,.05)}
  table.rt tbody tr:hover{background:var(--bg2)}
  table.rt td{display:flex;align-items:baseline;justify-content:flex-end;gap:12px;padding:8px 0!important;border-bottom:1px dashed var(--bd);font-size:12.5px!important;text-align:right;word-break:normal!important;overflow-wrap:anywhere!important;max-width:none!important;overflow:visible!important;white-space:normal!important}
  table.rt td:last-child{border-bottom:0}
  table.rt td:empty{display:none}
  table.rt td[data-l]::before{content:attr(data-l);font-size:10px;font-weight:700;color:var(--tx3);text-transform:uppercase;letter-spacing:.6px;margin-right:auto;flex:0 0 auto;padding-top:1px;text-align:left}
  table.rt td.rt-full{display:block;text-align:left}
  table.rt td.rt-full::before{display:block;margin-bottom:5px}
}
/* Chart date ticks are unreadable once the 560-unit viewBox shrinks to a phone
   width — hide them there; the range caption under each chart carries the dates. */
@media(max-width:600px){
  svg .ctick{display:none}
}

.topbar-logout{align-items:center;gap:4px}.tb-lbl{font-weight:600}@media(max-width:480px){.tb-lbl{display:none}}
