/* Raptool Service - Glass Cards components. Only var(--rt-*) for colour, font, size, corners and shadow. */
:root{
  --glass:var(--rt-color-surface);
  --glass2:color-mix(in srgb,var(--rt-color-surface-raised) 72%,transparent);
  --gl:color-mix(in srgb,var(--rt-color-text) 16%,transparent);
  --sel:var(--rt-color-accent-soft);
  /* import wizard + shared parts read these */
  --surface:var(--rt-color-surface-raised);--surface-2:var(--rt-color-surface-sunken);--border:var(--rt-color-line);--text:var(--rt-color-text);
  --text-2:var(--rt-color-text-muted);--text-3:var(--rt-color-text-subtle);--accent:var(--rt-color-accent);--accent-ink:var(--rt-color-on-accent);
  --bad:var(--rt-color-danger);--ok:var(--rt-color-success);--radius:var(--rt-radius-control);--font:var(--rt-font-body);
}
:root[data-theme="light"]{--gl:color-mix(in srgb,var(--rt-color-surface-raised) 90%,transparent);--glass2:color-mix(in srgb,var(--rt-color-surface-raised) 78%,transparent)}
*{box-sizing:border-box}
html{background:var(--rt-color-bg);color:var(--rt-color-text);font-family:var(--rt-font-body);font-size:var(--rt-body-md-size);line-height:var(--rt-body-md-line);
  -webkit-text-size-adjust:100%;overscroll-behavior:none;touch-action:manipulation}
body{margin:0;min-height:100vh;min-height:100dvh;background:linear-gradient(135deg,color-mix(in srgb,var(--rt-color-bg) 80%,var(--rt-color-accent) 20%),var(--rt-color-bg));
  isolation:isolate;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(40vw 40vw at 12% 8%,color-mix(in srgb,var(--rt-color-accent) 30%,transparent),transparent 70%),
             radial-gradient(36vw 36vw at 92% 30%,color-mix(in srgb,var(--rt-color-accent-2) 22%,transparent),transparent 70%),
             radial-gradient(42vw 42vw at 40% 100%,color-mix(in srgb,var(--rt-color-accent-3) 18%,transparent),transparent 70%)}
a{color:var(--rt-color-accent)}
h1,h2,h3{font-family:var(--rt-font-heading);margin:0}
h1{font-size:var(--rt-headline-lg-size);font-weight:var(--rt-headline-lg-weight);letter-spacing:var(--rt-headline-lg-tracking)}
h2{font-size:var(--rt-headline-md-size);font-weight:var(--rt-headline-md-weight)}
h3{font-size:var(--rt-headline-sm-size);font-weight:var(--rt-headline-sm-weight)}
.muted{color:var(--rt-color-text-muted)} .subtle{color:var(--rt-color-text-subtle)} .mono{font-family:var(--rt-font-mono)}
.ms{font-family:'Material Symbols Rounded';font-weight:normal;font-style:normal;font-size:20px;line-height:1;display:inline-block;vertical-align:middle;
  font-feature-settings:'liga';-webkit-font-smoothing:antialiased;user-select:none;width:1em;overflow:hidden}

/* ---------- shell */
.shell{display:flex;min-height:100vh;min-height:100dvh;align-items:flex-start}
.side{width:226px;flex:none;padding:14px 12px 24px;position:sticky;top:0;align-self:flex-start;min-height:100vh;min-height:100dvh}
.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 16px}
.brand .logo{width:34px;height:34px;border-radius:11px;background:var(--rt-color-accent);color:var(--rt-color-on-accent);display:grid;place-items:center;font-weight:800;box-shadow:0 4px 14px color-mix(in srgb,var(--rt-color-accent) 40%,transparent)}
.brand b{display:block;font-size:var(--rt-label-lg-size)} .brand small{color:var(--rt-color-text-muted);font-size:var(--rt-label-sm-size)}
.nav{display:flex;flex-direction:column;gap:2px}
.nav .grp{font-size:var(--rt-label-sm-size);color:var(--rt-color-text-subtle);text-transform:uppercase;letter-spacing:var(--rt-label-sm-tracking);padding:12px 10px 4px}
.nav a{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--rt-radius-control);color:var(--rt-color-text);text-decoration:none;font-weight:600;font-size:var(--rt-label-lg-size)}
.nav a:hover{background:var(--glass)} .nav a.on{background:var(--sel);color:var(--rt-color-text);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rt-color-accent) 50%,transparent)}
.nav a .ms{color:var(--rt-color-text-muted)} .nav a.on .ms{color:var(--rt-color-accent)}
.nav .cnt{margin-left:auto;font-size:var(--rt-label-sm-size);background:var(--rt-color-accent-soft);border-radius:var(--rt-radius-full);padding:1px 7px}
.main{flex:1;min-width:0;padding:14px 22px 60px}
.topbar{display:flex;align-items:center;gap:12px;min-height:46px;margin-bottom:12px;flex-wrap:wrap}
.topbar h1{margin-right:auto}
.btn.burger{display:none}
.banner{padding:10px 14px;border-radius:var(--rt-radius-control);background:var(--rt-color-danger-soft);border:1px solid var(--rt-color-danger);margin-bottom:12px}
.banner.info{background:var(--rt-color-accent-soft);border-color:var(--rt-color-accent)}
.ver{position:fixed;right:6px;bottom:3px;font-size:9px;color:var(--rt-color-text-subtle);z-index:50;pointer-events:none;font-family:var(--rt-font-mono)}

/* ---------- glass */
.card{background:var(--glass);border:1px solid var(--gl);border-radius:var(--rt-radius-card);box-shadow:var(--rt-shadow-card),inset 0 1px 0 var(--gl);
  -webkit-backdrop-filter:blur(18px) saturate(1.4);backdrop-filter:blur(18px) saturate(1.4);padding:16px}
.card.solid{background:var(--glass2);-webkit-backdrop-filter:none;backdrop-filter:none}
.card h2,.card h3{margin-bottom:10px}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.card{background:var(--glass2)}}
.grid{display:grid;gap:14px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))} .g3{grid-template-columns:repeat(3,minmax(0,1fr))} .g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap} .grow{flex:1;min-width:0} .right{margin-left:auto}
.stack{display:flex;flex-direction:column;gap:12px}

/* ---------- filter bar + KPI chips */
.fbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px;border-radius:18px;background:var(--glass);border:1px solid var(--gl);
  -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);margin-bottom:12px}
.kpis{display:flex;flex-wrap:wrap;gap:8px;margin-left:auto}
.kpi{position:relative;display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:14px;border:1px solid var(--gl);background:var(--glass);cursor:pointer;
  color:var(--rt-color-text);font:inherit;text-align:left;min-width:0}
.kpi .ic{width:30px;height:30px;border-radius:10px;display:grid;place-items:center;background:var(--rt-color-surface-sunken);color:var(--rt-color-text-muted)}
.kpi b{display:block;font-size:var(--rt-headline-md-size);line-height:1.1} .kpi small{display:block;color:var(--rt-color-text-muted);font-size:var(--rt-label-sm-size);white-space:nowrap}
.kpi.on{background:var(--sel);border-color:var(--rt-color-accent)} .kpi.on .ic{background:var(--rt-color-accent);color:var(--rt-color-on-accent)}
.kpi.warn b,.kpi.warn .ic{color:var(--rt-color-warning)} .kpi.bad b,.kpi.bad .ic{color:var(--rt-color-danger)}
.kpi.warn::after,.kpi.bad::after{content:"";position:absolute;top:6px;right:6px;border:5px solid transparent;border-top-color:currentColor;border-right-color:currentColor;border-radius:2px;color:var(--rt-color-warning)}
.kpi.bad::after{color:var(--rt-color-danger)}

/* ---------- dashboard tiles */
.tile{cursor:pointer;transition:transform var(--rt-motion-fast)}
.tile:hover{transform:translateY(-2px)}
.tile .big{font-size:var(--rt-display-md-size);font-weight:800;line-height:1}
.tile .lbl{color:var(--rt-color-text-muted);font-size:var(--rt-label-md-size);font-weight:600}
.tile .sub{display:flex;gap:14px;margin-top:10px;flex-wrap:wrap}
.tile .sub span{font-size:var(--rt-label-md-size);color:var(--rt-color-text-muted)} .tile .sub b{color:var(--rt-color-text)}
.tile .head{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.tile .head .ms{color:var(--rt-color-accent)}
.tile.warn .big{color:var(--rt-color-warning)} .tile.bad .big{color:var(--rt-color-danger)}

/* ---------- buttons, inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 14px;border-radius:var(--rt-radius-control);border:1px solid var(--gl);
  background:var(--glass);color:var(--rt-color-text);font:600 var(--rt-label-lg-size)/1.2 var(--rt-font-body);cursor:pointer;white-space:nowrap;text-decoration:none;min-height:36px}
.btn:hover{border-color:var(--rt-color-accent)} .btn:disabled{opacity:.5;cursor:default}
.btn.primary{background:var(--rt-color-accent);color:var(--rt-color-on-accent);border-color:transparent;box-shadow:0 4px 14px color-mix(in srgb,var(--rt-color-accent) 40%,transparent)}
.btn.primary:hover{background:var(--rt-color-accent-hover)}
.btn.danger{color:var(--rt-color-danger);border-color:color-mix(in srgb,var(--rt-color-danger) 50%,transparent)}
.btn.sm{padding:5px 9px;min-height:30px;font-size:var(--rt-label-md-size)} .btn.icon{padding:6px;min-width:34px}
.btn.ghost{background:transparent;border-color:transparent}
label.f,div.f{display:flex;flex-direction:column;gap:4px;font-size:var(--rt-label-md-size);font-weight:600;color:var(--rt-color-text-muted);min-width:0}
label.f.req>span::after{content:" *";color:var(--rt-color-danger)}
input,textarea{font:var(--rt-body-md-size)/1.4 var(--rt-font-body);color:var(--rt-color-text);background:var(--rt-color-surface-sunken);border:1px solid var(--rt-color-line-strong);
  border-radius:var(--rt-radius-control);padding:8px 10px;min-height:38px;width:100%;min-width:0}
textarea{min-height:90px;resize:vertical}
input:focus,textarea:focus,.dd-btn:focus{outline:2px solid var(--rt-color-accent);outline-offset:1px}
input.bad,textarea.bad,.dd.bad .dd-btn{border-color:var(--rt-color-danger);box-shadow:0 0 0 2px var(--rt-color-danger-soft)}
input[type=checkbox]{width:18px;height:18px;min-height:0;accent-color:var(--rt-color-accent)}
.check{display:flex;align-items:center;gap:8px;font-weight:600;cursor:pointer}
.form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form .full{grid-column:1/-1}
.search{position:relative;min-width:180px} .search .ms{position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--rt-color-text-subtle);font-size:18px}
.search input{padding-left:32px}

/* ---------- custom dropdown (never the native select look) */
.dd{position:relative;display:inline-block;min-width:150px}
.dd.block{display:block;width:100%}
.dd-btn{width:100%;display:flex;align-items:center;gap:8px;padding:7px 10px;min-height:38px;border-radius:var(--rt-radius-control);border:1px solid var(--rt-color-line-strong);
  background:var(--rt-color-surface-sunken);color:var(--rt-color-text);font:600 var(--rt-label-lg-size) var(--rt-font-body);cursor:pointer;text-align:left}
.fbar .dd-btn{background:var(--glass);border-color:var(--gl);border-radius:var(--rt-radius-full)}
.dd-btn .v{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .dd-btn .ph{color:var(--rt-color-text-subtle);font-weight:500}
.dd-btn .ms{font-size:18px;color:var(--rt-color-text-muted)}
.dd-menu{position:absolute;z-index:400;left:0;top:calc(100% + 4px);min-width:100%;max-width:min(420px,92vw);background:var(--rt-color-surface-raised);border:1px solid var(--rt-color-line);
  border-radius:var(--rt-radius-control);box-shadow:var(--rt-shadow-raised);padding:4px}
.dd-menu input{margin-bottom:4px;min-height:34px}
.dd-opt{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;cursor:pointer;white-space:nowrap}
.dd-opt:hover,.dd-opt.hl{background:var(--sel)} .dd-opt.on{font-weight:700;color:var(--rt-color-accent)} .dd-opt .ms{font-size:18px}
.dd-more{padding:6px 10px;color:var(--rt-color-text-subtle);font-size:var(--rt-label-sm-size)}

/* ---------- badges */
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--rt-radius-full);font-size:var(--rt-label-sm-size);font-weight:700;white-space:nowrap;
  background:var(--rt-color-surface-sunken);border:1px solid var(--rt-color-line);color:var(--rt-color-text)}
.badge .ms{font-size:14px}
.b-ok,.b-covered,.b-done,.b-active,.b-warranty{color:var(--rt-color-success);border-color:color-mix(in srgb,var(--rt-color-success) 45%,transparent)}
.b-warn,.b-expiring,.b-waiting_parts,.b-high{color:var(--rt-color-warning);border-color:color-mix(in srgb,var(--rt-color-warning) 45%,transparent)}
.b-bad,.b-expired,.b-urgent,.b-not_covered{color:var(--rt-color-danger);border-color:color-mix(in srgb,var(--rt-color-danger) 45%,transparent)}
.b-info,.b-new,.b-assigned,.b-scheduled,.b-in_progress,.b-planned{color:var(--rt-color-accent);border-color:color-mix(in srgb,var(--rt-color-accent) 45%,transparent)}
.b-closed,.b-archived,.b-decommissioned,.b-low,.b-cancelled,.b-unknown{color:var(--rt-color-text-muted)}

/* ---------- data table */
.dt-wrap{background:var(--glass2);border:1px solid var(--gl);border-radius:18px;overflow:hidden}
.dt-tools{display:flex;gap:8px;align-items:center;padding:10px;flex-wrap:wrap;border-bottom:1px solid var(--rt-color-line)}
.dt-scroll{overflow-x:auto;scrollbar-width:none} .dt-scroll::-webkit-scrollbar{display:none}
table.dt{border-collapse:separate;border-spacing:0;table-layout:fixed;min-width:100%;font-size:var(--rt-body-md-size)}
table.dt th{position:relative;text-align:left;font-size:var(--rt-label-md-size);font-weight:700;color:var(--rt-color-text-muted);background:var(--rt-color-surface-sunken);
  padding:8px 10px;border-bottom:1px solid var(--rt-color-line);user-select:none;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.dt th .arr{font-size:16px;color:var(--rt-color-accent)}
table.dt th .rs{position:absolute;right:0;top:0;bottom:0;width:7px;cursor:col-resize}
table.dt th .rs:hover{background:var(--rt-color-accent-soft)}
table.dt tr.flt td{padding:4px 6px;background:var(--rt-color-surface-sunken);border-bottom:1px solid var(--rt-color-line)}
table.dt tr.flt input{min-height:28px;padding:4px 7px;font-size:var(--rt-label-md-size)}
table.dt td{padding:8px 10px;border-bottom:1px solid var(--rt-color-line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
table.dt tbody tr{cursor:pointer} table.dt tbody tr:hover td{background:var(--sel)}
table.dt tr.r-expired td{background:var(--rt-color-danger-soft)} table.dt tr.r-expiring td{background:color-mix(in srgb,var(--rt-color-warning) 14%,transparent)}
table.dt tr.r-archived td,table.dt tr.r-decommissioned td{color:var(--rt-color-text-subtle)}
table.dt td.num,table.dt th.num{text-align:right}
table.dt td.sel,table.dt th.sel{width:38px;text-overflow:clip}
.dt-foot{display:flex;align-items:center;gap:8px;padding:8px 12px;color:var(--rt-color-text-muted);font-size:var(--rt-label-md-size);flex-wrap:wrap}
.legend{display:flex;gap:12px;align-items:center;font-size:var(--rt-label-md-size);color:var(--rt-color-text-muted)}
.legend i{display:inline-block;width:12px;height:12px;border-radius:4px;vertical-align:-2px;margin-right:4px}
.legend i.exp{background:var(--rt-color-danger-soft);border:1px solid var(--rt-color-danger)} .legend i.soon{background:color-mix(in srgb,var(--rt-color-warning) 25%,transparent);border:1px solid var(--rt-color-warning)}
.ctx{position:fixed;z-index:500;background:var(--rt-color-surface-raised);border:1px solid var(--rt-color-line);border-radius:var(--rt-radius-control);box-shadow:var(--rt-shadow-raised);padding:6px;min-width:200px}
.ctx label{display:flex;gap:8px;align-items:center;padding:6px 8px;border-radius:8px;cursor:pointer} .ctx label:hover{background:var(--sel)}

/* ---------- modal, toast */
.modal-bg{position:fixed;inset:0;z-index:300;background:color-mix(in srgb,var(--rt-color-bg) 65%,transparent);display:flex;justify-content:center;align-items:flex-start;
  overflow-y:auto;padding:5vh 12px 40px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.modal{width:min(720px,100%);background:var(--rt-color-surface-raised);border:1px solid var(--rt-color-line);border-radius:var(--rt-radius-card);box-shadow:var(--rt-shadow-raised)}
.modal.wide{width:min(1000px,100%)}
.modal header{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--rt-color-line)} .modal header h2{flex:1;margin:0}
.modal .body{padding:16px} .modal footer{display:flex;gap:8px;justify-content:flex-end;padding:12px 16px;border-top:1px solid var(--rt-color-line);flex-wrap:wrap}
.toasts{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:600;display:flex;flex-direction:column;gap:8px;align-items:center}
.toast{background:var(--rt-color-surface-raised);border:1px solid var(--rt-color-line);border-left:4px solid var(--rt-color-success);padding:10px 14px;border-radius:12px;box-shadow:var(--rt-shadow-raised);max-width:90vw}
.toast.err{border-left-color:var(--rt-color-danger)}

/* ---------- detail parts */
.kv{display:grid;grid-template-columns:150px 1fr;gap:6px 12px;font-size:var(--rt-body-md-size)} .kv dt{color:var(--rt-color-text-muted);font-weight:600} .kv dd{margin:0;min-width:0;overflow-wrap:anywhere}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rt-color-line);margin-bottom:12px;flex-wrap:wrap}
.tabs button{background:none;border:0;border-bottom:2px solid transparent;color:var(--rt-color-text-muted);font:600 var(--rt-label-lg-size) var(--rt-font-body);padding:8px 10px;cursor:pointer}
.tabs button.on{color:var(--rt-color-text);border-bottom-color:var(--rt-color-accent)}
.thumbs{display:flex;flex-wrap:wrap;gap:8px} .thumbs img{width:110px;height:84px;object-fit:cover;border-radius:12px;border:1px solid var(--rt-color-line);cursor:zoom-in}
.thread{display:flex;flex-direction:column;gap:8px}
.msg{padding:9px 12px;border-radius:14px;background:var(--rt-color-surface-sunken);border:1px solid var(--rt-color-line)}
.msg.ev{background:transparent;border-style:dashed;color:var(--rt-color-text-muted)} .msg.pub{border-color:var(--rt-color-accent)}
.msg .meta{font-size:var(--rt-label-sm-size);color:var(--rt-color-text-subtle);margin-bottom:3px}
.steps{display:flex;gap:4px;flex-wrap:wrap}
.steps span{padding:4px 10px;border-radius:var(--rt-radius-full);font-size:var(--rt-label-sm-size);font-weight:700;background:var(--rt-color-surface-sunken);color:var(--rt-color-text-subtle);border:1px solid var(--rt-color-line)}
.steps span.done{color:var(--rt-color-text)} .steps span.cur{background:var(--rt-color-accent);color:var(--rt-color-on-accent);border-color:transparent}
.empty{padding:26px;text-align:center;color:var(--rt-color-text-muted)}
.qrbox{background:var(--rt-color-on-accent);padding:8px;border-radius:12px;width:150px} .qrbox svg{width:100%;height:auto;display:block}
.lightbox{position:fixed;inset:0;z-index:700;background:color-mix(in srgb,var(--rt-color-bg) 88%,transparent);display:grid;place-items:center;padding:20px}
.lightbox img{max-width:100%;max-height:90vh;border-radius:12px;object-fit:contain}
.sigpad{width:100%;height:180px;border-radius:12px;border:1px dashed var(--rt-color-line-strong);touch-action:none;background:var(--rt-color-surface-sunken)}

/* ---------- planner */
.plan{display:grid;gap:12px;grid-template-columns:260px minmax(0,1fr)}
.pool .job{padding:9px 10px;border-radius:14px;border:1px solid var(--gl);background:var(--glass2);margin-bottom:8px;cursor:grab}
.pool .job b{display:block;font-size:var(--rt-label-lg-size)} .pool .job small{color:var(--rt-color-text-muted)}
.board{overflow-x:auto;scrollbar-width:none} .board::-webkit-scrollbar{display:none}
.board table{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed}
.board th{font-size:var(--rt-label-md-size);color:var(--rt-color-text-muted);padding:6px;border-bottom:1px solid var(--rt-color-line);text-align:left;background:var(--rt-color-surface-sunken)}
.board th.hol{color:var(--rt-color-warning)} .board th.today{color:var(--rt-color-accent)}
.board td{vertical-align:top;border-bottom:1px solid var(--rt-color-line);border-left:1px solid var(--rt-color-line);padding:0;height:86px;position:relative}
.board td.who{border-left:0;padding:8px;width:150px;font-weight:700;font-size:var(--rt-label-lg-size)} .board td.who small{display:block;font-weight:500;color:var(--rt-color-text-muted)}
.board td.off{background:repeating-linear-gradient(135deg,transparent 0 6px,color-mix(in srgb,var(--rt-color-text) 6%,transparent) 6px 8px)}
.board td.drop{background:var(--sel)}
.board .lane{position:absolute;inset:0}
.board .blk{position:absolute;top:4px;bottom:4px;border-radius:9px;padding:4px 6px;font-size:var(--rt-label-sm-size);font-weight:700;overflow:hidden;cursor:pointer;
  background:var(--rt-color-accent-soft);border:1px solid var(--rt-color-accent);color:var(--rt-color-text);white-space:nowrap;text-overflow:ellipsis}
.board .blk.done{opacity:.55} .board .blk.in_progress{border-color:var(--rt-color-success)}
.board .blk small{display:block;font-weight:500;color:var(--rt-color-text-muted)}
.board .absent{position:absolute;inset:4px;border-radius:9px;display:grid;place-items:center;font-size:var(--rt-label-sm-size);color:var(--rt-color-text-muted);border:1px dashed var(--rt-color-line-strong)}
.board .hours{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:0 3px;font-size:9px;color:var(--rt-color-text-subtle);pointer-events:none}
.cap{height:5px;border-radius:9px;background:var(--rt-color-surface-sunken);margin-top:5px;overflow:hidden} .cap i{display:block;height:100%;background:var(--rt-color-accent)}
.cap.over i{background:var(--rt-color-danger)}

/* ---------- phone */
@media (max-width:767px){
  .side{position:absolute;top:0;left:0;z-index:250;width:270px;transform:translateX(-102%);transition:transform var(--rt-motion-normal);background:var(--rt-color-surface-raised);
    min-height:100%;overflow:visible}
  .shell.menu-open .side{transform:none;box-shadow:var(--rt-shadow-raised)}
  .main{padding:calc(8px + var(--rt-safe-top, env(safe-area-inset-top, 0px))) 12px 60px}
  .btn.burger{display:inline-flex}
  .topbar{position:sticky;top:0;z-index:100;margin:-8px -12px 10px;padding:calc(6px + var(--rt-safe-top, env(safe-area-inset-top, 0px))) 12px 6px;background:var(--rt-color-bg);flex-wrap:nowrap}
  .topbar h1{font-size:var(--rt-headline-sm-size);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .g2,.g3,.g4,.form{grid-template-columns:minmax(0,1fr)}
  .kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin-left:0}
  .kpi{padding:6px} .kpi .ic{display:none}
  .plan{grid-template-columns:minmax(0,1fr)}
  .kv{grid-template-columns:110px 1fr}
  .fbar .dd{min-width:0;flex:1 1 40%}
  .hide-phone{display:none!important}
  .only-phone{display:block!important}
}
.only-phone{display:none}
/* 1.0.1 branded sign-in page: the company logo is shown whole (never cropped) */
.brand .brand-logo{max-height:46px;max-width:170px;object-fit:contain;background:#fff;border-radius:10px;padding:4px 6px}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
