:root{
  --bg:#070708; --fg:#e8e6e1; --muted:#8a8c90; --subtle:#6b6e73;
  --surface:#121214; --surface-2:#1c1c20; --border:#e8e6e11f; --shadow-border:0 0 0 1px #ffffff14;
  --font-display:"Barlow Condensed","Arial Narrow",sans-serif;
  --font-sans:"Barlow","Segoe UI",system-ui,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,monospace;
  --warn:#f0b25a; --ok:#76c893; --blue:#7fb0e0; --gap:12px;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);-webkit-font-smoothing:antialiased}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);letter-spacing:.01em}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--fg);outline-offset:2px;border-radius:4px}
.mono{font-family:var(--font-mono);text-transform:uppercase}
.label{display:block;font-size:10px;letter-spacing:.16em;color:var(--subtle);margin:0 0 .4rem;overflow-wrap:anywhere}
.hint{color:var(--subtle);font-size:.8rem;line-height:1.45;margin:.45rem 0 0}
.muted{color:var(--muted)}

.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;min-height:56px;padding:8px 16px;
  background:#070708eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 -1px 0 var(--border)}
.tb-left{display:flex;align-items:baseline;gap:16px;min-width:0;flex:1 1 auto;flex-wrap:wrap;row-gap:2px}
.tb-title{margin:0;font-family:var(--font-display);font-weight:500;font-size:22px;line-height:1.1;letter-spacing:.18em;text-transform:uppercase}
.tb-sub{margin:0;color:var(--muted);font-size:.9rem}
.tb-btn{display:inline-flex;align-items:center;height:32px;padding:0 12px;border-radius:8px;border:0;background:var(--surface);color:var(--muted);
  font-size:10px;letter-spacing:.14em;box-shadow:var(--shadow-border)}
.tb-btn:hover{color:var(--fg);background:var(--surface-2)}

.wrap{display:grid;gap:var(--gap);padding:var(--gap);grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);
  grid-template-areas:"ctl ctl" "grp chart"}
.panel{background:var(--surface);border-radius:14px;box-shadow:var(--shadow-border);min-width:0}
.controls{grid-area:ctl;display:grid;grid-template-columns:auto auto minmax(0,1fr);gap:24px;padding:16px 18px;align-items:start}
.groups{grid-area:grp}.chart{grid-area:chart}
.p-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:14px 18px 10px;border-bottom:1px solid var(--border)}
.p-head h2{margin:0;font-family:var(--font-display);font-weight:500;font-size:16px;letter-spacing:.18em;text-transform:uppercase}
.p-head .sub{font-size:10px;letter-spacing:.14em;color:var(--subtle)}

.stepper{display:inline-flex;align-items:stretch;height:36px;border-radius:8px;background:var(--surface-2);box-shadow:var(--shadow-border);overflow:hidden}
.st-btn{width:34px;border:0;background:transparent;color:var(--muted);font-size:18px;line-height:1}
.st-btn:hover{color:var(--fg);background:#ffffff0d}
.stepper input{width:64px;border:0;background:transparent;text-align:center;font-family:var(--font-mono);font-size:.95rem;-moz-appearance:textfield}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper input:focus{outline:none}.stepper:focus-within{box-shadow:0 0 0 1px var(--fg)}
.stepper.sm{height:32px}.stepper.sm .st-btn{width:28px;font-size:16px}.stepper.sm input{width:52px;font-size:.9rem}
.stepper.off{opacity:.35}
select{height:36px;padding:0 10px;border-radius:8px;border:0;background:var(--surface-2);box-shadow:var(--shadow-border);font-size:.9rem}
select option{background:var(--surface-2)}
.rate-cell{display:flex;align-items:center;gap:8px}
.rate-cell select{height:32px;font-size:.85rem}

.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.kpi{background:var(--surface-2);border-radius:10px;padding:10px 12px;box-shadow:var(--shadow-border);min-width:0}
.kpi b{display:block;font-family:var(--font-mono);font-weight:500;font-size:1.15rem;overflow-wrap:anywhere}
.kpi.big b{color:var(--ok);font-size:1.35rem}

.table-scroll{overflow:visible}
.gtable{width:100%;border-collapse:collapse;font-size:.92rem}
.gtable th,.gtable td{padding:9px 12px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--border)}
.gtable thead th{font-family:var(--font-mono);font-weight:400;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--subtle)}
.gtable .num{text-align:right;font-family:var(--font-mono)}
.gtable td.grp{font-family:var(--font-display);font-size:1.05rem;letter-spacing:.08em;font-weight:600}
.gtable tfoot th{font-family:var(--font-mono);font-weight:500;color:var(--fg);border-bottom:0;font-size:.9rem}
.gtable tfoot th.muted{color:var(--muted)}
.tag{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:5px;font-size:9px;letter-spacing:.12em;font-family:var(--font-mono);vertical-align:1px}
.tag.g{background:#ffffff10;color:var(--muted)}.tag.o{background:#f0b25a1f;color:var(--warn)}
.swatch{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:8px;vertical-align:1px}

.chart-box{padding:12px 14px 16px}
.chart-box svg{display:block;width:100%;height:auto}
.chart-box text{font-family:var(--font-mono);fill:var(--muted)}

.foot{padding:8px 16px 22px;color:var(--subtle);font-size:.8rem;line-height:1.5;text-align:center}

@media (max-width:1100px){
  .wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"ctl" "grp" "chart"}
  .controls{grid-template-columns:auto auto;}
  .kpis{grid-column:1/-1}
}
@media (max-width:640px){
  .controls{grid-template-columns:1fr;gap:16px}
  .kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tb-sub{font-size:.8rem}
  .tb-title{font-size:19px;letter-spacing:.12em}
  /* stacked cards for the group table */

}

/* ---------- 2027 monthly layout ---------- */
.wrap{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-areas:"ctl ctl" "setup chart" "months rev"}
.setup{grid-area:setup}.months{grid-area:months}.revenue{grid-area:rev}
.hint.pad{padding:0 18px 14px}
.legend{display:flex;flex-wrap:wrap;gap:6px 14px;padding:12px 18px 0;font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--muted)}
.mtable{width:100%;border-collapse:collapse;font-size:.88rem}
.mtable th,.mtable td{padding:6px 10px;border-bottom:1px solid var(--border);white-space:nowrap;text-align:right;font-family:var(--font-mono)}
.mtable th:first-child,.mtable td:first-child{text-align:left}
.mtable thead th{font-weight:400;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle)}
.mtable tbody th{font-weight:400;color:var(--muted);font-size:.82rem;letter-spacing:.08em}
.mtable td.tot,.mtable th.tot{color:var(--fg);font-weight:500;background:#ffffff06}
.mtable tfoot th,.mtable tfoot td{font-weight:500;color:var(--fg);border-bottom:0;border-top:1px solid #e8e6e133}
.mtable tfoot td.grand{color:var(--ok)}
.mtable td.cell-st{text-align:center;padding:4px 6px}
.mtable .changed input{color:var(--warn)}
.mtable.rev td.zero{color:var(--subtle)}
.stepper.xs{height:28px}.stepper.xs .st-btn{width:24px;font-size:15px}.stepper.xs input{width:34px;font-size:.85rem}
.stepper input::placeholder{color:var(--subtle);font-size:.75rem}
@media (max-width:1100px){
  .wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"ctl" "setup" "chart" "months" "rev"}
}
@media (max-width:640px){
  .mtable{font-size:.8rem}
  .mtable th,.mtable td{padding:5px 7px}
}
/* layout v3: setup full width, staff-by-month beside chart, revenue full width */
.wrap{grid-template-columns:minmax(0,560px) minmax(0,1fr);grid-template-areas:"ctl ctl" "setup setup" "months chart" "rev rev"}
.controls{grid-template-columns:auto auto minmax(0,1fr)}
.kpis{grid-column:3;grid-template-columns:repeat(4,minmax(150px,1fr))}
@media (max-width:1300px){.controls{grid-template-columns:auto auto}.kpis{grid-column:1/-1}}
@media (max-width:1100px){.wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"ctl" "setup" "months" "chart" "rev"}}
@media (max-width:640px){.controls{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.controls{grid-template-columns:auto auto minmax(0,1fr)}
.kpis{grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr))}
.wrap{grid-template-columns:minmax(0,660px) minmax(0,1fr)}
@media (max-width:1100px){.wrap{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){.controls{grid-template-columns:1fr}.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* v4: seven groups, export buttons, print report */
.wrap{grid-template-columns:minmax(0,780px) minmax(0,1fr)}
@media (max-width:1100px){.wrap{grid-template-columns:minmax(0,1fr)}}
.tb-right{display:flex;gap:8px;flex:none}
#pdfBtn,#xlsxBtn{color:var(--fg)}
.report{display:none}
@media (max-width:640px){.topbar{flex-wrap:wrap}.tb-right{width:100%}.tb-right .tb-btn{flex:1;justify-content:center}}
@media print{
  @page{size:letter landscape;margin:.45in}
  html,body{background:#fff!important;color:#111!important}
  body>*:not(.report){display:none!important}
  .report{display:block!important;font-family:var(--font-sans);color:#111;font-size:9.5pt}
  .rp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;border-bottom:2px solid #111;padding-bottom:8px;margin-bottom:10px}
  .rp-head h1{margin:0;font-family:var(--font-display);font-weight:600;font-size:20pt;letter-spacing:.06em;text-transform:uppercase}
  .rp-head p{margin:3px 0 0;color:#444}
  .rp-meta{display:flex;gap:18px}
  .rp-meta div{display:flex;flex-direction:column;align-items:flex-end}
  .rp-meta span{font-size:7.5pt;text-transform:uppercase;letter-spacing:.1em;color:#666}
  .rp-meta b{font-family:var(--font-mono);font-weight:500;font-size:11pt}
  .report h2{font-family:var(--font-display);font-weight:600;font-size:12pt;letter-spacing:.12em;text-transform:uppercase;margin:12px 0 4px}
  .report table{width:100%;border-collapse:collapse;page-break-inside:avoid}
  .report th,.report td{padding:3px 6px;border-bottom:1px solid #ccc;text-align:right;font-family:var(--font-mono);font-size:8.5pt;white-space:nowrap}
  .report th:first-child,.report td:first-child{text-align:left}
  .report thead th{font-weight:500;font-size:7.5pt;text-transform:uppercase;letter-spacing:.06em;color:#444;border-bottom:1.5px solid #111}
  .report tfoot td{font-weight:600;border-top:1.5px solid #111;border-bottom:0}
  .report td.tot{font-weight:600;background:#f2f2f2}
  .rp-page{page-break-before:always}
  .rp-foot{margin-top:10px;color:#555;font-size:8pt}
}
@media print{.rp-meta span,.rp-meta b{white-space:nowrap}.rp-head>div:first-child{min-width:0}}
.stepper.xs .st-btn{width:20px}.stepper.xs input{width:30px}
.mtable td.cell-st{padding:4px 3px}
#staffTable th,#staffTable td{padding-left:6px;padding-right:6px}
@media (max-width:640px){.kpi.big{grid-column:1/-1}}

/* ---------- v5: no horizontal scrolling. Tables switch to cards when their panel is too narrow. ---------- */
.setup,.months,.revenue{container-type:inline-size}
.label-cell{display:none}
/* group setup -> cards under 1000px of panel width */
@container (max-width:1200px){
  .gtable thead{display:none}
  .gtable,.gtable tbody,.gtable tfoot,.gtable tr{display:block;width:100%}
  .gtable tbody tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 14px;padding:12px 16px;border-bottom:1px solid var(--border)}
  .gtable tbody td{display:block;padding:0;border:0;white-space:normal;min-width:0}
  .gtable tbody td::before{content:attr(data-l);display:block;font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--subtle);margin-bottom:4px}
  .gtable tbody td.grp{grid-column:1/-1}.gtable tbody td.grp::before{display:none}
  .gtable tbody td.num{text-align:left}
  .gtable tbody td.rate{grid-column:span 2}
  .gtable tfoot tr{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;padding:12px 16px}
  .gtable tfoot th{padding:0;border:0}
  .gtable tfoot th:empty,.gtable tfoot th:last-child{display:none}
  .gtable tfoot th#tYear{text-align:left;color:var(--ok)}
  .gtable .rate-cell{flex-wrap:wrap}
}
@container (max-width:340px){.gtable tbody td.rate{grid-column:1/-1}}
/* month tables -> one card per month */
@container (max-width:760px){ #staffTable{--cards:1} }
@container (max-width:1000px){ .mtable.rev{--cards:1} }
@container (max-width:760px){
  #staffTable thead{display:none}
  #staffTable,#staffTable tbody,#staffTable tfoot,#staffTable tr{display:block;width:100%}
  #staffTable tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px 10px;padding:10px 14px;border-bottom:1px solid var(--border)}
  #staffTable th,#staffTable td{display:block;padding:0;border:0;text-align:left;background:none;position:static}
  #staffTable tbody th{grid-column:1/-1;color:var(--fg);font-size:.9rem}
  #staffTable td::before{content:attr(data-l);display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle);margin-bottom:3px}
  #staffTable td.cell-st{text-align:left}
  #staffTable td.tot{align-self:end;padding-bottom:6px}
}
@container (max-width:1000px){
  .mtable.rev thead{display:none}
  .mtable.rev,.mtable.rev tbody,.mtable.rev tfoot,.mtable.rev tr{display:block;width:100%}
  .mtable.rev tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:6px 12px;padding:10px 14px;border-bottom:1px solid var(--border)}
  .mtable.rev th,.mtable.rev td{display:block;padding:0;border:0;text-align:left;background:none;position:static;white-space:normal}
  .mtable.rev tbody th,.mtable.rev tfoot th{grid-column:1/-1;color:var(--fg);font-size:.9rem}
  .mtable.rev td::before{content:attr(data-l);display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle);margin-bottom:2px}
  .mtable.rev tfoot tr{border-top:1px solid #e8e6e133}
}
.stepper{max-width:100%}
/* v6: DEWC / AERC / PPRM */
.gtable .rc{text-align:center}
.gtable td.role{text-align:center;padding-left:4px;padding-right:4px}
.gtable td.stot b{font-family:var(--font-mono);font-weight:500;font-size:1rem}
.gtable td.stot .tag{display:block;margin:4px 0 0 auto;width:max-content}
@container (max-width:1200px){
  .gtable tbody td.role{text-align:left}
  .gtable td.stot .tag{margin-left:0}
  .gtable tfoot th[data-l]::before{content:attr(data-l) " ";color:var(--subtle);font-weight:400}
}

/* ---------- v7: password screen ---------- */
.gate{display:none}
html.locked body>*:not(.gate){display:none!important}
html.locked .gate{display:flex;min-height:100vh;min-height:100dvh;align-items:center;justify-content:center;padding:24px}
.gate-card{width:100%;max-width:420px;background:var(--surface);border-radius:16px;box-shadow:var(--shadow-border);padding:28px 26px 22px}
.gate-title{margin:0 0 6px;font-family:var(--font-display);font-weight:500;font-size:24px;letter-spacing:.14em;text-transform:uppercase;line-height:1.15}
.gate-sub{margin:0 0 18px;color:var(--muted)}
.gate-row{display:flex;gap:8px}
.gate-row input{flex:1;min-width:0;height:42px;padding:0 12px;border-radius:9px;border:0;background:var(--surface-2);box-shadow:var(--shadow-border);font-size:1rem}
.gate-row input:focus{outline:none;box-shadow:0 0 0 1px var(--fg)}
.gate-btn{height:42px;padding:0 18px;border:0;border-radius:9px;background:var(--fg);color:var(--bg);font-size:11px;letter-spacing:.16em}
.gate-msg{min-height:1.3em;margin:10px 0 0;color:#ef6b5b;font-size:.9rem}

/* ---------- v7: save button, viewing banner, bottom tabs, insights ---------- */
.tb-right{flex-wrap:wrap;justify-content:flex-end}
.tb-btn.tb-save{background:#76c8931f;color:var(--ok);box-shadow:inset 0 0 0 1px #76c89366}
.tb-btn.tb-save:hover{background:#76c89333;color:var(--ok)}
.viewing{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:var(--gap) var(--gap) 0;padding:10px 14px;border-radius:12px;
  background:#7fb0e014;box-shadow:inset 0 0 0 1px #7fb0e04d;color:var(--fg);font-size:.9rem}
.viewing-actions{display:flex;flex-wrap:wrap;gap:8px}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));
  max-height:38vh;overflow-y:auto;overflow-x:hidden;background:#070708f2;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 var(--border)}
html.locked .tabbar{display:none}
.tab{display:inline-flex;align-items:stretch;max-width:100%;border-radius:9px;background:var(--surface);box-shadow:var(--shadow-border);min-width:0}
button.tab,.tab-main{display:inline-flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:1px;min-width:0;max-width:100%;padding:6px 12px;border:0;border-radius:9px;background:transparent;color:var(--muted);text-align:left}
.tab.on,button.tab.on{background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--fg)}
.tab.on .tab-main,button.tab.on{color:var(--fg)}
.tab-title{font-size:.9rem;font-weight:500;max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tab-meta{font-size:9px;letter-spacing:.12em;color:var(--subtle)}
.tab-icon{width:28px;border:0;background:transparent;color:var(--subtle);font-size:14px;border-radius:7px}
.tab-icon:hover{color:var(--fg);background:#ffffff0d}.tab-del:hover{color:#ef6b5b}
.tab-input{height:38px;width:min(240px,70vw);padding:0 10px;border:0;border-radius:9px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--fg);font-size:.9rem}
.tab-input:focus{outline:none}
.tab-hint{color:var(--subtle);font-size:.82rem;padding:0 6px}
.insights{grid-area:ins}
.wrap{grid-template-areas:"ctl ctl" "setup setup" "months chart" "rev rev" "ins ins"}
@media (max-width:1100px){.wrap{grid-template-areas:"ctl" "setup" "months" "chart" "rev" "ins"}}
.ins-callouts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;padding:14px 16px 4px}
.kpi-sub{display:block;margin-top:3px;color:var(--muted);font-size:.8rem}
.ins-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:12px;padding:12px 16px 16px}
.ins-card{margin:0;background:var(--surface-2);border-radius:12px;box-shadow:var(--shadow-border);padding:12px 12px 8px;min-width:0}
.ins-canvas{position:relative;height:250px}
@media print{.tabbar,.viewing,.gate{display:none!important}.report .rp-cfg{margin:2px 0 0;color:#111;font-weight:600}}
@media (max-width:640px){.topbar{position:static}}

/* ---------- v8: 14-month period, work days / holidays, yellow active tab ---------- */
.wrap{grid-template-columns:minmax(0,1fr);grid-template-areas:"ctl" "setup" "months" "chart" "rev" "ins"}
.mtable th.wd,.mtable td.wd{text-align:center;color:var(--muted)}
.mtable td.wd.eff{color:var(--fg);font-weight:500}
.mtable td.wd.eff.less{color:var(--warn)}
.mtable tfoot tr.sub th,.mtable tfoot tr.sub td{font-weight:400;color:var(--muted);border-top:1px solid var(--border)}
#staffTable thead th:nth-child(4),#staffTable tbody td.eff{box-shadow:inset -1px 0 0 #e8e6e133}
@container (max-width:1060px){
  #staffTable thead{display:none}
  #staffTable,#staffTable tbody,#staffTable tfoot,#staffTable tr{display:block;width:100%}
  #staffTable tr{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px 10px;padding:10px 14px;border-bottom:1px solid var(--border)}
  #staffTable th,#staffTable td{display:block;padding:0;border:0;text-align:left;background:none;position:static;box-shadow:none}
  #staffTable tbody th{grid-column:1/-1;color:var(--fg);font-size:.9rem}
  #staffTable td::before{content:attr(data-l);display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--subtle);margin-bottom:3px}
  #staffTable td.cell-st,#staffTable td.wd{text-align:left}
  #staffTable td.wd:not(.cell-st),#staffTable td.tot{align-self:end;padding-bottom:6px}
}
/* active tab: yellow */
.tab.on,button.tab.on{background:#f0b25a;box-shadow:none}
.tab.on .tab-main,button.tab.on{color:#070708}
.tab.on .tab-meta{color:#070708b3}
.tab.on .tab-icon{color:#070708b3}.tab.on .tab-icon:hover{color:#070708;background:#0000001a}
.tab-upd{align-self:center;margin:0 2px 0 -4px;height:24px;padding:0 8px;border:0;border-radius:6px;font-size:9px;letter-spacing:.12em;background:#76c893;color:#070708}
.tab.on .tab-upd{background:#070708;color:#f0b25a}
@container (max-width:1060px){#staffTable tbody td.eff{box-shadow:none}}

/* ---------- v9: name on unlock, cloud chip, work-day stepper ---------- */
.gate-who-l{margin-top:16px}
.gate-who-l .opt{letter-spacing:.08em;color:#6b6e7399;text-transform:none}
.gate-who{width:100%;height:38px;padding:0 12px;border-radius:9px;border:0;background:var(--surface-2);box-shadow:var(--shadow-border);font-size:.95rem}
.gate-who:focus{outline:none;box-shadow:0 0 0 1px var(--fg)}
.cloud-wrap{margin-left:auto;display:inline-flex;align-items:center;gap:4px;max-width:100%;min-width:0}
.cloud{display:inline-flex;align-items:center;gap:2px;min-width:0;max-width:100%;height:30px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:var(--subtle);font-size:9.5px;letter-spacing:.12em;box-shadow:var(--shadow-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cloud.ok{color:var(--ok)}.cloud.warn{color:var(--warn)}
.cloud-who{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.cloud-refresh{width:30px;height:30px;border:0;border-radius:8px;background:transparent;color:var(--muted);box-shadow:var(--shadow-border);font-size:14px}
.cloud-refresh:hover,.cloud:hover{color:var(--fg)}
#staffTable td.wd.changed input{color:var(--warn)}
/* v7: seven staff categories, keep the wide table compact */
.gtable thead th.rc{white-space:normal;line-height:1.3;padding-left:4px;padding-right:4px;max-width:78px;vertical-align:bottom}
.gtable thead th{vertical-align:bottom}
