:root{--red:#9b1734;--red2:#7c1028;--ink:#241b20;--muted:#766b70;--line:#eadde1;--bg:#fbf7f8;--card:#fff;--soft:#fff4f6;--ok:#e8f7ee;--warn:#fff7df;--bad:#fff0f0;--shadow:0 18px 45px rgba(99,35,52,.09)}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#fff 0,#fbf7f8 260px);color:var(--ink);font:15px/1.45 Inter,Segoe UI,Arial,sans-serif}button,input,select,textarea{font:inherit}button,.file-label{border:0;border-radius:14px;background:var(--red);color:#fff;padding:11px 16px;font-weight:800;cursor:pointer;box-shadow:0 8px 18px rgba(155,23,52,.18)}button:hover{background:var(--red2)}button.secondary,.file-label.secondary,.secondary,.ghost{background:#fff;color:var(--red);border:1px solid var(--line);box-shadow:none}.ghost.active,.segmented button.active,.tabs button.active,.nav.active{background:var(--red);color:#fff;border-color:var(--red)}button.danger,.danger{background:#fff1f1;color:#a11717;border:1px solid #ffd1d1;box-shadow:none}.muted{color:var(--muted)}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--red);font-size:12px;font-weight:900;margin:0}.logo{width:min(300px,40vw);height:auto;object-fit:contain}.logo.big{width:260px;max-width:90%;display:block;margin:0 auto 12px}.login{position:fixed;inset:0;display:grid;place-items:center;background:radial-gradient(circle at top,#fff,#fbf7f8);z-index:50}.login-card{width:min(460px,92vw);background:#fff;border:1px solid var(--line);border-radius:28px;padding:34px;box-shadow:var(--shadow);text-align:center}.login-card h1{font-size:40px;margin:8px 0}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.wide{width:100%;margin-top:16px}label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted);font-weight:800;text-align:left}input,select,textarea{border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;color:var(--ink)}textarea{width:100%;resize:vertical}.logged-out .topbar,.logged-out .main-nav,.logged-out .shell{display:none}body:not(.logged-out) .login{display:none!important}.topbar{max-width:1480px;margin:0 auto;padding:22px 24px 12px;display:flex;justify-content:space-between;gap:24px;align-items:center}.brand{display:flex;align-items:center;gap:24px}.brand h1{margin:2px 0 0;font-size:30px}.top-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.user-pill,.badge,.status-pill{display:inline-flex;border-radius:999px;background:var(--soft);color:var(--red);padding:7px 12px;font-weight:900;font-size:12px;border:1px solid var(--line)}.week-nav{display:flex;gap:8px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:22px;padding:10px;box-shadow:var(--shadow)}.week-nav label{display:flex;flex-direction:row;align-items:center;gap:8px}.main-nav,.tabs{max-width:1480px;margin:0 auto;padding:8px 24px;display:flex;gap:10px;flex-wrap:wrap}.main-nav button,.tabs button{background:#fff;color:var(--muted);border:1px solid var(--line);box-shadow:none}.status-box.inline{margin-left:auto;background:#fff;border:1px solid var(--line);border-radius:999px;padding:6px 10px;display:flex;align-items:center;gap:8px;color:var(--muted)}.shell{max-width:1480px;margin:0 auto;padding:10px 24px 50px}.page,.tab{display:none}.page.active,.tab.active{display:block}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin:14px 0 18px}.page-head h2{font-size:34px;margin:0}.page-head p{margin:5px 0 0;color:var(--muted)}.toolbar,.actions,.add-row{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.panel,.metric,.metrics>div,.banner{background:rgba(255,255,255,.92);border:1px solid var(--line);border-radius:24px;padding:20px;box-shadow:var(--shadow);margin-bottom:18px}.banner{display:none}.banner.show{display:block;background:var(--soft);color:var(--red);font-weight:800}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1fr 1fr}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.metrics span{display:block;color:var(--muted);font-weight:800}.metrics strong{display:block;margin-top:6px;font-size:30px}.calendar{overflow:auto;border-radius:24px;border:1px solid var(--line);background:white;box-shadow:var(--shadow);margin-bottom:18px}.cal-table{width:100%;border-collapse:separate;border-spacing:0;min-width:1120px}.cal-table th{position:sticky;top:0;background:#fff;z-index:2;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.04em}.cal-table th,.cal-table td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:8px;text-align:left;vertical-align:top}.cal-table th:first-child,.cal-table td:first-child,.cal-table .person{position:sticky;left:0;background:#fff;z-index:3;border-left:1px solid var(--line);min-width:190px}.person-name{font-weight:900}.person-position{font-size:12px;color:var(--muted)}.slot{min-height:90px;border-radius:16px;padding:10px;background:#f5f1f2;cursor:pointer;position:relative;border:1px solid transparent}.slot.available,.slot.assigned{background:#eaf7f0;border-color:#c7ead4}.slot.own{outline:2px solid rgba(155,23,52,.35)}.slot.open-swap{background:#fff7df;border-color:#f2d070}.slot.pending{background:#fff4f6;border-color:#e7b4c1}.slot.approved{background:#e8f7ee}.slot.rejected{background:#fff0f0}.slot .name{font-weight:900}.slot .zone,.slot .meta{display:block;color:var(--muted);margin-top:4px;font-size:12px}.slot select,.slot input{width:100%;margin-top:6px;padding:7px;border-radius:10px}.tag{display:inline-block;margin-top:6px;padding:4px 8px;border-radius:999px;background:#fff;color:var(--red);font-size:11px;font-weight:900}.tag.pending{background:var(--warn)}.tag.approved{background:var(--ok)}.tag.rejected{background:var(--bad)}.note-card,.zone-card,.swap-card,.status-row,.cost-row{border:1px solid var(--line);border-radius:16px;padding:12px;background:#fff;margin-bottom:10px}.note-card strong,.zone-card strong{display:block}.note-card p,.zone-card p{margin:4px 0 0;color:var(--muted)}.zone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.zone-card span{color:var(--red);font-size:12px;font-weight:900}.notes-editor{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.swap-list{display:grid;gap:10px}.swap-card{display:grid;grid-template-columns:1.2fr .8fr .8fr auto;gap:10px;align-items:center}.swap-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.data{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}.data th,.data td{border-bottom:1px solid var(--line);padding:10px;text-align:left}.data th{color:var(--muted);font-size:12px;text-transform:uppercase}.data input,.data select{width:100%}.zone-table{min-width:900px}.bar{height:10px;border-radius:20px;background:#f2e7eb;overflow:hidden;margin-top:5px}.bar span{display:block;height:100%;background:var(--red);border-radius:20px}.file-label input{display:none}dialog{border:0;border-radius:24px;padding:24px;max-width:760px;width:92%;box-shadow:0 30px 90px rgba(0,0,0,.25)}dialog::backdrop{background:rgba(0,0,0,.35)}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}


/* v13 simplification: employees have one calendar page only. */
.employee .owner-only{display:none!important}
.owner .employee-copy{display:none!important}
.employee .owner-copy{display:none!important}
.owner .owner-only{display:inline-flex}
.employee #page-employee{display:none!important}
.employee .main-nav{grid-template-columns:1fr}
.employee .main-nav .nav{width:auto}
.employee .status-box.inline{margin-left:auto}

.empty-label{font-size:11px;color:#9a8f88;font-weight:600;opacity:.75;}
.slot.empty{background:#f1eeeb;border-color:#e2ddd8;}
.slot.empty:hover .empty-label{opacity:1;}

/* v17: tighter owner calendar, no repeated Published labels, totals + freeze panes */
.cal-table th{top:0}
.cal-table thead tr:nth-child(2) th{top:49px;z-index:4}
.cal-table .person{z-index:6!important}
.cal-table thead .person{z-index:8!important}
.cal-table .total{position:sticky;right:0;background:#fff;z-index:5;border-left:1px solid var(--line);min-width:86px;text-align:center}
.cal-table thead .total{z-index:7;color:var(--red)}
.total-cell{background:#fffafb;text-align:center!important;color:var(--red)}
.totals-row td{position:sticky;bottom:0;z-index:4;background:#fffafb;border-top:2px solid var(--line);box-shadow:0 -6px 16px rgba(99,35,52,.05)}
.totals-row .person{z-index:7!important;background:#fffafb!important}
.slot.is-published{box-shadow:inset 4px 0 0 rgba(155,23,52,.45)}
.slot .zone-select.compact{font-size:11px;padding:5px 7px;margin:0 0 5px;border-radius:9px;font-weight:800;color:var(--red);background:#fff;width:100%;min-height:28px}
.slot .zone-select.compact + .meta{margin-top:2px}
.slot.available .zone-select.compact{border-color:#bde4c9}
.slot .tag.approved{display:none}
.owner .slot .name{font-size:12px;line-height:1.15;margin-bottom:5px}
.owner .slot .meta{font-size:11px;margin-top:3px}
.owner .slot{min-height:82px;padding:8px}


/* v21: denser full-week calendar + position coloring */
.cal-table{table-layout:fixed;min-width:1320px}
.cal-table th,.cal-table td{padding:6px}
.cal-table th:first-child,.cal-table td:first-child,.cal-table .person{min-width:150px;width:150px}
.cal-table .total{min-width:62px;width:62px}
.slot{min-height:76px;padding:7px;border-radius:13px}
.slot .name{font-size:14px;line-height:1.15}
.slot .zone,.slot .meta,.empty-label{font-size:11px}
.slot .zone-select.compact{font-size:10px;padding:4px 6px;min-height:24px}
.owner .slot{min-height:70px;padding:6px}
.owner .slot .name{font-size:11px}
.owner .slot .meta{font-size:10px}
.slot.available.pos-maitre,.slot.assigned.pos-maitre{background:#e9f2ff;border-color:#bed7ff}
.slot.available.pos-chef,.slot.assigned.pos-chef{background:#eaf7f0;border-color:#c7ead4}
.slot.available.pos-barman,.slot.assigned.pos-barman{background:#fff2df;border-color:#f0d3a3}
.slot.available.pos-extra,.slot.assigned.pos-extra{background:#f1ecff;border-color:#d5c7ff}
.slot.available.pos-other,.slot.assigned.pos-other{background:#eef6f6;border-color:#cfe4e4}
.position-hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
.position-total{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px}
.position-total span{color:var(--muted);font-weight:800;font-size:12px}
.position-total strong{color:var(--red);font-size:18px}
.position-total.grand{background:var(--soft)}
.compact-panel{padding:14px}
@media(min-width:1200px){.shell,.topbar,.main-nav,.tabs{max-width:1540px}.cal-table{min-width:1280px}.cal-table th:first-child,.cal-table td:first-child,.cal-table .person{min-width:140px;width:140px}.slot{min-height:70px}.slot .name{font-size:13px}.cal-table th,.cal-table td{padding:5px}}
.position-total-row td{background:#fff8fa!important;border-top:1px solid var(--line)}
.position-total-row .person{font-size:.78rem;color:var(--red)}
.position-subtotal{font-size:.78rem;opacity:.95}
.order-actions{white-space:nowrap;width:110px}.mini{padding:.55rem .7rem;border-radius:12px;margin-right:.25rem}.mini:disabled{opacity:.35;cursor:not-allowed}
/* v24 structure + zone coverage visuals */
.zone-total{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px dashed #d8c8ce;background:#fff;border-radius:14px;padding:10px 12px}
.zone-total span{color:#6b6065;font-weight:800;font-size:12px}
.zone-total strong{color:#7c1028;font-size:18px}
.zone-total.grand{background:#fff8e8;border-style:solid}
.zone-hours{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:10px}
.zone-summary h3::before{content:'WHERE · ';color:var(--red);font-size:11px;letter-spacing:.12em}
.position-summary h3::before,.compact-panel:not(.zone-summary) h3::before{content:'WHO · ';color:var(--red);font-size:11px;letter-spacing:.12em}

/* Cost and dashboard KPI cards */
.kpi-grid{grid-template-columns:repeat(6,1fr)}
.kpi-grid small{display:block;margin-top:4px;color:var(--muted);font-size:12px;font-weight:700}
.alert-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.alert-card{border:1px solid var(--line);border-radius:16px;padding:13px;background:#fff}
.alert-card strong{display:block;margin-bottom:4px}
.alert-card span{color:var(--muted);font-size:13px}
.alert-card.ok{background:#f1fbf5;border-color:#ccefd8}
.alert-card.warn{background:#fff9e9;border-color:#f1d99a}
.alert-card.neutral{background:#f7f3f5}
.mini-chart{min-height:220px}
.chart-bars{height:220px;display:grid;grid-template-columns:repeat(8,1fr);gap:10px;align-items:end;padding-top:20px}
.chart-col{height:100%;display:grid;grid-template-rows:auto 1fr auto;gap:6px;text-align:center;color:var(--muted);font-size:11px;font-weight:800}
.chart-value{height:24px;white-space:nowrap;color:var(--ink);font-size:11px}
.chart-track{height:150px;border-radius:14px;background:#f3e8ec;display:flex;align-items:flex-end;overflow:hidden}
.chart-track span{display:block;width:100%;background:var(--red);border-radius:14px 14px 0 0;min-height:3px}
.insight-table .mini-bar{height:6px;background:#f3e8ec;border-radius:999px;margin-top:6px;overflow:hidden}
.insight-table .mini-bar span{display:block;height:100%;background:var(--red);border-radius:999px}
.insight-table tr.top-worker td:first-child strong{color:var(--red)}
@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.alert-grid{grid-template-columns:repeat(2,1fr)}}
/* Cost and dashboard analytics refinements */
.analytics-controls{display:flex;align-items:center;justify-content:space-between;gap:16px}.analytics-controls h3{margin:0}.analytics-controls p{margin:4px 0 0}.segmented.small{display:flex;grid-template-columns:none;margin:0;gap:8px}.segmented.small button{padding:9px 13px;border-radius:12px}
.combo-row{display:grid;grid-template-columns:210px 1fr;gap:14px;align-items:center;border:1px solid var(--line);border-radius:15px;background:#fff;padding:11px;margin-bottom:9px}.combo-row strong{display:block}.combo-row small{display:block;color:var(--muted);margin-top:2px;font-weight:800}.combo-bar{height:12px;border-radius:999px;background:#f2e7eb;overflow:hidden}.combo-bar span{display:block;height:100%;border-radius:999px;background:var(--red)}.zone-combo .combo-bar{background:#fff8e8}.zone-combo .combo-bar span{background:#d2a933}
.stacked-chart{overflow:auto;padding-bottom:6px}.stacked-bars{display:flex;gap:14px;align-items:flex-end;min-height:245px;padding:12px 4px 6px}.stacked-bars.wide-bars{min-width:760px}.stacked-col{flex:1;min-width:72px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:7px;text-align:center}.chart-value{font-size:12px;color:var(--muted);font-weight:900;min-height:34px}.stacked-track{width:52px;min-height:18px;border-radius:14px 14px 6px 6px;background:#f2e7eb;overflow:hidden;display:flex;flex-direction:column-reverse;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}.stacked-track span{display:block;width:100%;min-height:2px}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:8px;color:var(--muted);font-size:12px;font-weight:900}.legend span{display:inline-flex;align-items:center;gap:6px}.legend i{display:inline-block;width:12px;height:12px;border-radius:4px}.pos-maitre,.combo-bar .pos-maitre,.legend .pos-maitre,.stacked-track .pos-maitre{background:#f6d7df!important}.pos-chef,.combo-bar .pos-chef,.legend .pos-chef,.stacked-track .pos-chef{background:#dff1ff!important}.pos-barman,.combo-bar .pos-barman,.legend .pos-barman,.stacked-track .pos-barman{background:#e4f6dd!important}.pos-extra,.combo-bar .pos-extra,.legend .pos-extra,.stacked-track .pos-extra{background:#fff0c9!important}.pos-other,.combo-bar .pos-other,.legend .pos-other,.stacked-track .pos-other{background:#eee!important}
@media(max-width:900px){.analytics-controls{display:block}.segmented.small{margin-top:12px;display:grid;grid-template-columns:1fr}.combo-row{grid-template-columns:1fr}.stacked-col{min-width:62px}.stacked-track{width:44px}.stacked-bars{min-width:620px}}

/* v29 premium calendar polish */
.calendar{
  border-radius:28px;
  border:1px solid rgba(155,23,52,.14);
  box-shadow:0 18px 55px rgba(99,35,52,.10);
  background:linear-gradient(180deg,#fff,#fffafa);
}
.cal-table th{
  background:linear-gradient(180deg,#fff,#fff8fa);
  color:#7b6870;
  border-bottom:1px solid rgba(155,23,52,.16);
}
.cal-table thead tr:first-child th{
  font-size:11px;
  letter-spacing:.08em;
}
.cal-table thead tr:first-child th small{
  display:inline-block;
  margin-top:2px;
  font-size:10px;
  color:#a08f96;
  letter-spacing:0;
}
.cal-table th:first-child,
.cal-table td:first-child,
.cal-table .person{
  box-shadow:6px 0 14px rgba(99,35,52,.035);
}
.person-name{font-size:13px;line-height:1.15}.person-position{font-size:10.5px;line-height:1.2;margin-top:3px}
.slot{
  transition:transform .12s ease, box-shadow .12s ease, border-color .12s ease, filter .12s ease;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55);
}
.slot:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(99,35,52,.10), inset 0 0 0 1px rgba(255,255,255,.75);
  filter:saturate(1.03);
}
.slot:active{transform:translateY(0)}
.slot.own{outline:0;border-color:rgba(155,23,52,.45);box-shadow:0 0 0 2px rgba(155,23,52,.16), inset 4px 0 0 rgba(155,23,52,.38)}
.slot.is-published{box-shadow:inset 4px 0 0 rgba(155,23,52,.35)}
.slot.own.is-published{box-shadow:0 0 0 2px rgba(155,23,52,.16), inset 4px 0 0 rgba(155,23,52,.48)}
.slot .name{letter-spacing:-.01em}.slot .zone{font-weight:900;color:#6e5861}.slot .meta{color:#8e7e85}
.empty-label{font-weight:800;color:#a19298;letter-spacing:-.01em}.slot.empty{background:linear-gradient(135deg,#f6f2f3,#efebec);border-color:#e5dcdf}.slot.empty:hover{border-color:#d9cdd2}
.totals-row td{
  background:linear-gradient(180deg,#fff7fa,#fff1f5)!important;
  border-top:2px solid rgba(155,23,52,.20);
  font-size:12px;
}
.totals-row .person strong{font-size:12px;color:var(--red);text-transform:uppercase;letter-spacing:.08em}
.position-total-row td,.zone-total-row td{font-size:11.5px;padding-top:7px;padding-bottom:7px}
.position-total-row:first-of-type td{border-top:10px solid #fff!important}
.position-total-row .person,
.zone-total-row .person{font-weight:900;line-height:1.1}
.position-total-row .person strong,
.zone-total-row .person strong{font-size:11.5px;letter-spacing:-.01em}
.position-total-row td{background:#fff9fb!important;border-top:1px solid rgba(155,23,52,.10)}
.zone-total-row td{background:#fffdf5!important;border-top:1px dashed #e4c978}
.position-total-row + .zone-total-row td{border-top:10px solid #fff7f1!important}
.row-kind{
  display:block;
  width:max-content;
  margin:0 0 4px 0;
  padding:2px 6px;
  font-size:9px;
  letter-spacing:.10em;
  opacity:.9;
}
.position-kind{background:#fff0f4;color:var(--red);border:1px solid rgba(155,23,52,.12)}
.zone-kind{background:#fff8df;color:#765400;border:1px dashed #dfc56e}
.position-subtotal strong,.zone-subtotal strong,.total-cell strong{font-size:11.5px}
.cal-table .total{background:linear-gradient(180deg,#fff,#fff8fa);box-shadow:-6px 0 14px rgba(99,35,52,.035)}
.total-cell{background:#fffafb!important}
.zone-subtotal{background:#fffdf5!important}.position-subtotal{background:#fff9fb!important}


/* v30: remove raised/3D styling from own employee slots; keep only the You badge on the name */
.slot.own,
.slot.own.is-published{
  outline:0!important;
  box-shadow:inset 4px 0 0 rgba(155,23,52,.35)!important;
  border-color:inherit!important;
}
.slot.own:hover{transform:translateY(-1px)}
.tag.employee-approval{background:#fff7df;color:#8a5a00;border:1px solid #f2d070}

/* v31 zone accents + no special styling on current user's slots */
.slot.own,
.slot.own.is-published{
  outline:0!important;
  border-color:inherit!important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55)!important;
}
.slot.own:hover,
.slot.own.is-published:hover{
  box-shadow:0 10px 22px rgba(99,35,52,.10), inset 0 0 0 1px rgba(255,255,255,.75)!important;
}
.slot.available::before,
.slot.assigned::before{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  top:7px;
  height:3px;
  border-radius:99px;
  background:var(--zone-accent, rgba(155,23,52,.26));
  opacity:.75;
}
.slot.available,
.slot.assigned{padding-top:14px;}
.zone-accent-ac{--zone-accent:#b0183b;--zone-soft:#fff1f5;--zone-border:#edbfd0}
.zone-accent-dom{--zone-accent:#2f80ed;--zone-soft:#f1f7ff;--zone-border:#c9dfff}
.zone-accent-ilot{--zone-accent:#8b5cf6;--zone-soft:#f6f1ff;--zone-border:#ddccff}
.zone-accent-bar{--zone-accent:#f59e0b;--zone-soft:#fff8e8;--zone-border:#f2d48c}
.zone-accent-pass{--zone-accent:#0891b2;--zone-soft:#effbff;--zone-border:#b9e7f2}
.zone-accent-sch{--zone-accent:#64748b;--zone-soft:#f6f8fb;--zone-border:#d7dee8}
.zone-accent-bouil{--zone-accent:#db2777;--zone-soft:#fff0f8;--zone-border:#f5b8d8}
.zone-accent-other{--zone-accent:#8a7b82;--zone-soft:#f7f3f4;--zone-border:#ded3d7}
.zone-total.zone-accent-ac,
.zone-total.zone-accent-dom,
.zone-total.zone-accent-ilot,
.zone-total.zone-accent-bar,
.zone-total.zone-accent-pass,
.zone-total.zone-accent-sch,
.zone-total.zone-accent-bouil,
.zone-total.zone-accent-other{
  border-left:5px solid var(--zone-accent);
  background:linear-gradient(90deg,var(--zone-soft),#fff 54%);
  border-color:var(--zone-border);
}
.zone-total-row.zone-accent-ac td,
.zone-total-row.zone-accent-dom td,
.zone-total-row.zone-accent-ilot td,
.zone-total-row.zone-accent-bar td,
.zone-total-row.zone-accent-pass td,
.zone-total-row.zone-accent-sch td,
.zone-total-row.zone-accent-bouil td,
.zone-total-row.zone-accent-other td{
  background:linear-gradient(90deg,var(--zone-soft),#fffdf5)!important;
}
.zone-total-row .person strong::before{
  content:"";
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--zone-accent,#d2a933);
  margin-right:7px;
  vertical-align:1px;
}
.zone-combo .combo-bar span{background:var(--zone-accent,#d2a933)!important}
.zone-combo{border-left:5px solid var(--zone-accent,#d2a933);background:linear-gradient(90deg,var(--zone-soft,#fff8e8),#fff 55%)}

/* v32: custom colors + lighter zone system */
.slot.available,
.slot.assigned{
  background:var(--pos-bg)!important;
  border-color:var(--pos-border)!important;
}
.slot.available::before,
.slot.assigned::before{display:none!important}
.slot.available,.slot.assigned{padding-top:7px!important}
.position-total-row .person,
.position-total-row .position-subtotal,
.position-total-row .total-cell{
  background:var(--pos-bg)!important;
  border-color:var(--pos-border)!important;
}
.position-total-row .person strong,
.position-subtotal strong{color:var(--red)}
.position-total{
  background:var(--pos-bg)!important;
  border-color:var(--pos-border)!important;
}
.combo-row.pos-maitre,
.combo-row.pos-chef,
.combo-row.pos-barman,
.combo-row.pos-extra,
.combo-row.pos-other{
  background:var(--pos-bg)!important;
  border-left:5px solid var(--pos-color)!important;
}
.combo-row .combo-bar span{background:var(--pos-color,var(--red))!important}
.legend i{background:var(--pos-color,var(--red))!important}
.stacked-track span{background:var(--pos-color,var(--red))!important}
.zone-dot{
  display:inline-block;
  width:8px;
  height:8px;
  border-radius:99px;
  background:var(--zone-accent,#8a7b82);
  margin-right:7px;
  vertical-align:1px;
  box-shadow:0 0 0 2px rgba(255,255,255,.7);
}
.slot .zone .zone-dot{width:7px;height:7px;margin-right:5px;vertical-align:0}
.zone-total,
.zone-combo{
  background:#fff!important;
  border-color:var(--line)!important;
  border-left:1px solid var(--line)!important;
}
.zone-total-row td,
.zone-total-row.zone-accent-ac td,
.zone-total-row.zone-accent-dom td,
.zone-total-row.zone-accent-ilot td,
.zone-total-row.zone-accent-bar td,
.zone-total-row.zone-accent-pass td,
.zone-total-row.zone-accent-sch td,
.zone-total-row.zone-accent-bouil td,
.zone-total-row.zone-accent-other td{
  background:#fffdf8!important;
  border-top:1px dashed #e8d7a7!important;
}
.zone-total-row .person strong::before{display:none!important}
.zone-subtotal{background:#fffdf8!important;color:#795b00!important}
.zone-combo .combo-bar span{background:var(--zone-accent,#8a7b82)!important}
.color-cell{width:76px;text-align:center!important}
.color-cell input[type="color"]{
  width:46px;
  height:34px;
  padding:2px;
  border-radius:10px;
  border:1px solid var(--line);
  background:#fff;
  cursor:pointer;
}
.zone-total span{display:flex;align-items:center;gap:0}


/* v33: restore strong position slot colors; zones stay as bullet accents only */
.slot.available,
.slot.assigned{
  background:var(--pos-bg)!important;
  border-color:var(--pos-border)!important;
}
.slot.available.pos-maitre,.slot.assigned.pos-maitre,
.slot.available.pos-chef,.slot.assigned.pos-chef,
.slot.available.pos-barman,.slot.assigned.pos-barman,
.slot.available.pos-extra,.slot.assigned.pos-extra,
.slot.available.pos-other,.slot.assigned.pos-other{
  background:var(--pos-bg)!important;
  border-color:var(--pos-border)!important;
}
.zone-total,
.zone-combo{
  background:#fff!important;
  border-left:1px solid var(--line)!important;
}
.zone-total-row td,
.zone-subtotal{
  background:#fff!important;
}
.zone-total-row .person strong,
.zone-total span,
.zone-combo strong{
  display:flex;
  align-items:center;
}
.swap-taker-select{min-width:180px;padding:9px 10px;border-radius:12px;border:1px solid var(--line);background:#fff;color:var(--ink);font-weight:800}
#swapTargetWrap{margin-bottom:10px}

/* v35 final calendar polish: night columns, position borders, empty total rows */
.cal-table th.shift-evening{
  background:linear-gradient(180deg,#fff7f9,#f8eef2)!important;
}
.cal-table td.shift-evening{
  background:rgba(36,27,32,.018)!important;
}
.shift-evening .slot.empty{
  background:linear-gradient(135deg,#eee9ea,#e8e2e4)!important;
  border-color:#dcd3d6!important;
}
.shift-evening .slot.available,
.shift-evening .slot.assigned{
  background:linear-gradient(rgba(36,27,32,.045),rgba(36,27,32,.045)),var(--pos-bg)!important;
}
.position-total-row td,
.position-total-row .person,
.position-total-row .position-subtotal,
.position-total-row .total-cell{
  border-top:1px solid var(--pos-border)!important;
  border-bottom:1px solid var(--pos-border)!important;
}
.position-total-row .person{
  border-left:5px solid var(--pos-color)!important;
}
.position-total-row .position-subtotal,
.position-total-row .total-cell{
  border-right:1px solid var(--pos-border)!important;
}
.position-total-row + .position-total-row td{
  border-top:0!important;
}
.position-total-row .person strong{
  color:#8c102c!important;
}
.zone-total-row td{
  background:#fff!important;
}
.zone-total-row td.shift-evening{
  background:#fbf8f4!important;
}
.zone-total-row .person{
  border-left:0!important;
}
.zone-total-row .zone-subtotal{
  color:#795b00!important;
}
.position-total-row td strong,
.zone-total-row td strong{
  opacity:.95;
}
.position-total-row td strong:only-child,
.zone-total-row td strong:only-child{
  white-space:nowrap;
}

/* v36: cleaner day grouping + row focus polish */
/* Remove night/evening shading; group by full day instead. */
.cal-table th.shift-evening,
.cal-table td.shift-evening,
.shift-evening .slot.empty,
.shift-evening .slot.available,
.shift-evening .slot.assigned{
  background:initial!important;
}
.cal-table th.day-base{background:linear-gradient(180deg,#fff,#fffafc)!important;}
.cal-table th.day-alt{background:linear-gradient(180deg,#fbf7f8,#f6eff2)!important;}
.cal-table td.day-base{background:rgba(255,255,255,.72)!important;}
.cal-table td.day-alt{background:rgba(155,23,52,.025)!important;}
.cal-table th.day-start,
.cal-table td.day-start{border-left:2px solid rgba(155,23,52,.18)!important;}
.cal-table thead tr:first-child th.day-start{border-left:2px solid rgba(155,23,52,.24)!important;}
/* Keep position total rows consistent across lunch/evening; the day tint stays behind the section, not on slots. */
.position-total-row td.position-subtotal,
.position-total-row td.total-cell{background:var(--pos-bg)!important;}
.position-total-row td.day-alt.position-subtotal{background:linear-gradient(rgba(255,255,255,.10),rgba(255,255,255,.10)),var(--pos-bg)!important;}
.zone-total-row td.zone-subtotal{background:#fff!important;}
.zone-total-row td.day-alt.zone-subtotal{background:#fbfaf6!important;}
.totals-row td.day-alt{background:#fff3f7!important;}
.totals-row td.day-base{background:#fff8fa!important;}
/* Row selection: subtle but obvious, works on employees, totals, positions and zones. */
.calendar-row{transition:filter .12s ease, box-shadow .12s ease;}
.calendar-row.row-selected td{
  box-shadow:inset 0 2px 0 rgba(155,23,52,.45), inset 0 -2px 0 rgba(155,23,52,.45)!important;
  filter:saturate(1.04);
}
.calendar-row.row-selected td.person{
  box-shadow:inset 4px 0 0 var(--red), 6px 0 14px rgba(99,35,52,.06)!important;
}
.calendar-row.row-selected .slot{
  transform:scale(1.015);
  box-shadow:0 8px 20px rgba(99,35,52,.10), inset 0 0 0 1px rgba(255,255,255,.7)!important;
}


/* v37: final calendar visual polish + clearer day canvas */
.cal-table td.day-base{background:linear-gradient(90deg,#ffffff 0%,#fffdfd 100%)!important;}
.cal-table td.day-alt{background:linear-gradient(90deg,#f7f1f3 0%,#fbf7f8 100%)!important;}
.cal-table th.day-base{background:linear-gradient(180deg,#fff,#fffafd)!important;}
.cal-table th.day-alt{background:linear-gradient(180deg,#faf4f6,#f4ecef)!important;}
.cal-table td{padding:7px!important;}
.cal-table .slot{margin:1px;}
.position-total-row td,
.position-total-row .person,
.position-total-row .position-subtotal,
.position-total-row .total-cell{
  background:color-mix(in srgb, var(--pos-bg) 86%, var(--pos-color) 14%)!important;
  border-top:1px solid var(--pos-border)!important;
  border-bottom:1px solid var(--pos-border)!important;
}
.position-total-row .person{
  border-left:5px solid var(--pos-color)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55), 6px 0 14px rgba(99,35,52,.035)!important;
}
.position-total-row td.day-alt.position-subtotal{
  background:color-mix(in srgb, var(--pos-bg) 78%, var(--pos-color) 22%)!important;
}
.position-total-row .position-subtotal,
.position-total-row .total-cell{border-right:1px solid var(--pos-border)!important;}
.zone-total-row td,
.zone-total-row td.zone-subtotal{
  background:#fffdf8!important;
  border-top:1px dashed #e4c978!important;
  border-bottom:1px dashed #f0e2b8!important;
}
.zone-total-row td.day-alt.zone-subtotal{background:#fbf7ee!important;}
.zone-total-row .person{box-shadow:inset 0 1px 0 rgba(255,255,255,.7), 6px 0 14px rgba(99,35,52,.025)!important;}

/* v38: position total rows fully filled and bordered consistently */
/* Keep the subtle day canvas behind regular slots, but make position total rows
   read as complete colored rows, not half-colored blocks. */
.position-total-row td,
.position-total-row .person,
.position-total-row .position-subtotal,
.position-total-row .total-cell{
  background:var(--pos-bg)!important;
  border-top:1px dashed var(--pos-border)!important;
  border-bottom:1px dashed var(--pos-border)!important;
  border-right:1px solid var(--pos-border)!important;
}
.position-total-row td.day-alt,
.position-total-row td.day-alt.position-subtotal{
  background:linear-gradient(rgba(80,40,55,.045),rgba(80,40,55,.045)),var(--pos-bg)!important;
}
.position-total-row .person{
  border-left:1px dashed var(--pos-border)!important;
  box-shadow:6px 0 14px rgba(99,35,52,.025)!important;
}
.position-total-row .total-cell.total{
  border-left:1px solid var(--pos-border)!important;
}
.position-total-row + .position-total-row td{
  border-top:1px dashed var(--pos-border)!important;
}
/* Make the visual category break cleaner. */
.position-total-row:first-of-type td{
  border-top:1px dashed var(--pos-border)!important;
}
.position-total-row + .zone-total-row td{
  border-top:10px solid #fff7f1!important;
}
/* Keep zone rows light and consistent. */
.zone-total-row td,
.zone-total-row td.zone-subtotal{
  border-top:1px dashed #e4c978!important;
  border-bottom:1px dashed #f0e2b8!important;
}

/* v39: final totals fill/border consistency
   - Position totals use position fill color only; borders use the same neutral/dashed treatment as zone rows.
   - Alternate days are slightly darker but fully filled across both lunch/evening cells.
   - Zone totals use a uniform light canvas, no left-to-right shading. */
.position-total-row td,
.position-total-row .person,
.position-total-row .position-subtotal,
.position-total-row .total-cell{
  background:var(--pos-bg)!important;
  border-top:1px dashed #e4c978!important;
  border-bottom:1px dashed #f0e2b8!important;
  border-right:1px solid rgba(226,196,110,.55)!important;
  border-left:0!important;
  box-shadow:none!important;
}
.position-total-row td.day-alt,
.position-total-row td.day-alt.position-subtotal,
.position-total-row td.day-alt.total-cell{
  background:color-mix(in srgb, var(--pos-bg) 82%, #000 5%)!important;
}
.position-total-row .person{
  border-left:1px dashed #e4c978!important;
}
.position-total-row .total-cell.total{
  border-left:1px solid rgba(226,196,110,.65)!important;
}
.position-total-row + .position-total-row td{
  border-top:1px dashed #e4c978!important;
}
.position-total-row:first-of-type td{
  border-top:1px dashed #e4c978!important;
}
.position-total-row .person strong,
.position-total-row td strong{
  color:#9b1734!important;
}
/* Make all cells in the same day block read as one consistent total area. */
.zone-total-row td,
.zone-total-row td.zone-subtotal,
.zone-total-row td.day-base,
.zone-total-row td.day-alt,
.zone-total-row td.shift-evening{
  background:#fffdf8!important;
  background-image:none!important;
  border-top:1px dashed #e4c978!important;
  border-bottom:1px dashed #f0e2b8!important;
  border-right:1px solid rgba(226,196,110,.45)!important;
}
.zone-total-row td.day-alt.zone-subtotal,
.zone-total-row td.day-alt{
  background:#fbf7ee!important;
  background-image:none!important;
}
.zone-total-row .person{
  background:#fffdf8!important;
  border-left:1px dashed #e4c978!important;
  box-shadow:none!important;
}
.position-total-row + .zone-total-row td{
  border-top:10px solid #fff7f1!important;
}

/* v40: solid day canvas + corrected total-row fills
   - Alternating day backgrounds are solid blocks behind the slots, no gradients.
   - Position total rows always keep their position fill color on every day.
   - Alternate days inside position totals are the same position color, only slightly darker.
   - Borders for position totals remain the same neutral dashed style as zone totals. */
.cal-table th.day-base,
.cal-table th.day-alt,
.cal-table td.day-base,
.cal-table td.day-alt{
  background-image:none!important;
}
.cal-table th.day-base{background:#fffdfd!important;}
.cal-table th.day-alt{background:#f5eff2!important;}
.cal-table tbody tr:not(.position-total-row):not(.zone-total-row):not(.totals-row) td.day-base{
  background:#fffdfd!important;
}
.cal-table tbody tr:not(.position-total-row):not(.zone-total-row):not(.totals-row) td.day-alt{
  background:#f5eff2!important;
}
.cal-table tbody tr:not(.position-total-row):not(.zone-total-row):not(.totals-row) td.day-start,
.cal-table th.day-start{
  border-left:2px solid rgba(155,23,52,.18)!important;
}

.cal-table .position-total-row td,
.cal-table .position-total-row td.day-base,
.cal-table .position-total-row td.position-subtotal,
.cal-table .position-total-row td.position-subtotal.day-base,
.cal-table .position-total-row td.total-cell,
.cal-table .position-total-row td.total-cell.day-base,
.cal-table .position-total-row td.person{
  background:var(--pos-bg)!important;
  background-image:none!important;
  border-top:1px dashed #e4c978!important;
  border-bottom:1px dashed #f0e2b8!important;
  border-right:1px solid rgba(226,196,110,.55)!important;
  border-left:0!important;
  box-shadow:none!important;
}
.cal-table .position-total-row td.day-alt,
.cal-table .position-total-row td.position-subtotal.day-alt,
.cal-table .position-total-row td.total-cell.day-alt{
  background:color-mix(in srgb, var(--pos-bg) 82%, #000 8%)!important;
  background-image:none!important;
}
.cal-table .position-total-row td.person{
  border-left:1px dashed #e4c978!important;
}
.cal-table .position-total-row td.day-start{
  border-left:2px solid rgba(226,196,110,.78)!important;
}
.cal-table .position-total-row td.total.total-cell{
  border-left:1px solid rgba(226,196,110,.65)!important;
}

.cal-table .zone-total-row td,
.cal-table .zone-total-row td.day-base,
.cal-table .zone-total-row td.day-alt,
.cal-table .zone-total-row td.zone-subtotal,
.cal-table .zone-total-row td.zone-subtotal.day-base,
.cal-table .zone-total-row td.zone-subtotal.day-alt{
  background:#fffdf8!important;
  background-image:none!important;
  border-top:1px dashed #e4c978!important;
  border-bottom:1px dashed #f0e2b8!important;
  border-right:1px solid rgba(226,196,110,.45)!important;
}
.cal-table .zone-total-row td.day-alt,
.cal-table .zone-total-row td.zone-subtotal.day-alt{
  background:#fbf7ee!important;
}
.cal-table .zone-total-row td.person{
  border-left:1px dashed #e4c978!important;
}

/* v41 final UX polish
   - Compact contextual notes in day headers.
   - Employee view no longer needs large note/zone-rule blocks.
   - Summary cards always render and have consistent spacing. */
.day-title{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;min-width:0}
.note-icon{width:22px;height:22px;border-radius:999px;padding:0;display:inline-grid;place-items:center;background:#fff;color:var(--red);border:1px solid var(--line);box-shadow:none;font-size:12px;font-weight:900;line-height:1;margin-top:0;text-transform:none;letter-spacing:0}
.note-icon:hover{background:var(--soft);color:var(--red2)}
.day-note-body{display:grid;gap:12px;margin-top:14px}
.day-note-card{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}
.day-note-card strong{display:block;color:var(--red);margin-bottom:4px}
.day-note-card p{margin:0;color:var(--muted);white-space:pre-wrap}
.position-hours,.zone-hours{min-height:44px}
.position-total,.zone-total{min-height:46px}
@media(max-width:760px){.note-icon{width:26px;height:26px}.day-title{gap:4px}.day-title small{font-size:10px}}

/* v42 final UI pass */
.calendar-top-metrics{margin:12px 0 16px;align-items:stretch}
.mini-summary{padding:14px 16px!important;border-radius:20px!important;box-shadow:0 14px 35px rgba(99,35,52,.055)!important}
.mini-summary h3{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:15px!important}
.mini-summary h3 span{font-size:11px;letter-spacing:.12em;color:var(--red);font-weight:900;text-transform:uppercase}
.compact-metrics{gap:7px!important;grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important;min-height:0!important}
.compact-metrics .position-total,.compact-metrics .zone-total{padding:8px 10px!important;border-radius:14px!important;font-size:12px!important;min-height:auto!important}
.compact-metrics .position-total strong,.compact-metrics .zone-total strong{font-size:16px!important}
.submit-dot{display:inline-grid;place-items:center;margin-left:7px;width:18px;height:18px;border-radius:999px;font-size:11px;font-weight:900;line-height:1;vertical-align:middle;border:1px solid var(--line);background:#fff;color:var(--muted)}
.submit-dot.submitted{background:#e8f7ee;color:#17693b;border-color:#b9e6c7}
.submit-dot.partial{background:#fff7df;color:#8a6200;border-color:#efd493}
.submit-dot.missing{background:#fff;color:#a9a0a3;border-color:#ded3d7}
.day-note-card.editable textarea{width:100%;margin-top:8px;min-height:86px;resize:vertical;border-radius:14px;border:1px solid var(--line);padding:10px;font:inherit;background:#fff}
.day-note-card.editable textarea:focus{outline:2px solid rgba(155,23,52,.14);border-color:rgba(155,23,52,.35)}

/* v43 final compact UI polish */
.app-hidden-nav{display:none!important}
.shell{padding-top:0}
.light-head{margin-top:8px;margin-bottom:10px}
.light-head h2{display:flex;align-items:center;gap:10px}
.status-icon{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:999px;border:1px solid var(--line);font-size:13px;background:#fff;color:var(--red);vertical-align:middle;cursor:help}
.status-icon.published{background:var(--soft);border-color:#e9c7d0}.status-icon.draft{color:var(--muted)}
.calendar-top-metrics{margin:8px 0 12px!important;gap:12px!important}
.mini-summary{padding:12px 14px!important;border-radius:18px!important;margin-bottom:0!important}
.metric-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.metric-title-row h3{margin:0!important;font-size:14px!important;line-height:1.1}
.metric-filter{width:auto;min-width:98px;padding:7px 9px;border-radius:999px;font-size:12px;font-weight:800;color:var(--red);background:#fff}
.position-summary h3::before{content:'WHO · ';color:var(--red);font-size:11px;letter-spacing:.12em}.zone-summary h3::before{content:'WHERE · ';color:var(--red);font-size:11px;letter-spacing:.12em}.compact-panel:not(.zone-summary) h3::before{content:''}
.compact-metrics.position-hours,.compact-metrics.zone-hours{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;min-height:0}.compact-metrics .position-total,.compact-metrics .zone-total{min-height:44px;padding:9px 10px;border-radius:14px;font-size:12px}.compact-metrics .position-total strong,.compact-metrics .zone-total strong{font-size:17px}.compact-metrics .position-total span,.compact-metrics .zone-total span{font-size:12px}.compact-metrics .grand{border-color:#d9c6cc!important;background:#fff!important}
.day-title{display:flex!important;align-items:center;justify-content:flex-start!important;gap:8px}.note-icon{order:0;flex:0 0 auto;width:24px!important;height:24px!important;padding:0!important;border-radius:999px!important;background:#fff!important;color:var(--red)!important;border:1px solid var(--line)!important;box-shadow:none!important;font-weight:900!important;line-height:1!important}.day-title span{order:1}
.owner .page-head.light-head .owner-copy{display:block}.employee .owner-copy{display:none!important}.owner .employee-copy{display:none!important}
.employee .employee-top-metrics{display:grid}.owner #page-published{display:none!important}

/* v44 compact final-space polish */
.hidden-backup{display:none!important}
.owner-head{display:none!important}
#tab-planning .compact-help{display:none!important}
.icon-actions{padding:10px!important;margin-bottom:12px!important;border-radius:18px!important;gap:8px!important;justify-content:flex-start}
.icon-action{min-width:44px!important;height:42px!important;padding:8px 11px!important;border-radius:14px!important;display:inline-grid!important;place-items:center!important;font-size:16px!important;line-height:1!important}
#publishToggleBtn.icon-action{min-width:48px!important;font-size:18px!important}
#copySchedule.icon-action,#printBtn.icon-action{min-width:46px!important;height:40px!important;padding:7px 10px!important}
.owner .tabs{padding-top:0!important;margin-top:0!important;margin-bottom:8px!important}
.owner .shell{padding-top:0!important}
.calendar-top-metrics{margin:6px 0 10px!important;gap:10px!important}
.mini-summary{padding:10px 12px!important;border-radius:16px!important;box-shadow:0 10px 24px rgba(99,35,52,.045)!important}
.metric-title-row{margin-bottom:6px!important;gap:8px!important}.metric-title-row h3{font-size:13px!important;line-height:1!important;white-space:nowrap}.metric-filter{min-width:84px!important;padding:5px 8px!important;font-size:11px!important}
.compact-metrics.position-hours,.compact-metrics.zone-hours{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))!important;gap:6px!important}.compact-metrics .position-total,.compact-metrics .zone-total{min-height:36px!important;padding:6px 8px!important;border-radius:12px!important;font-size:11px!important}.compact-metrics .position-total span,.compact-metrics .zone-total span{font-size:11px!important;line-height:1.1!important}.compact-metrics .position-total strong,.compact-metrics .zone-total strong{font-size:15px!important;line-height:1!important}.position-summary h3::before{content:'WHO · '!important}.zone-summary h3::before{content:'WHERE · '!important}.compact-panel:not(.zone-summary) h3::before{content:''}
/* day info icon after day label */
.day-title{justify-content:space-between!important;gap:6px!important}.day-title span{order:0!important}.note-icon{order:1!important;width:22px!important;height:22px!important;font-size:11px!important}
/* submission/status icon before employee name */
.submit-dot{margin-left:0!important;margin-right:6px!important;vertical-align:-2px!important}
.page-head.light-head{margin:10px 0 8px!important}.page-head.light-head h2{font-size:32px!important}.page-head.light-head p{margin-top:3px!important}.calendar{margin-bottom:12px!important}
@media(max-width:900px){.calendar-top-metrics.grid.two{grid-template-columns:1fr!important}.compact-metrics.position-hours,.compact-metrics.zone-hours{grid-template-columns:repeat(2,minmax(0,1fr))!important}.icon-actions{display:flex!important}}

/* v45 final pre-backend polish */
.topbar{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(255,255,255,.92);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(234,221,225,.75);
  box-shadow:0 10px 30px rgba(99,35,52,.035);
}
/* Keep metrics compact, but positions are intentionally a little larger than zones. */
.position-summary h3::before{content:'WHO · '!important;color:var(--red);font-size:11px;letter-spacing:.12em;font-weight:900}
.zone-summary h3::before{content:'WHERE · '!important;color:var(--red);font-size:11px;letter-spacing:.12em;font-weight:900}
.compact-metrics.position-hours{grid-template-columns:repeat(auto-fit,minmax(116px,1fr))!important;gap:7px!important}
.compact-metrics.zone-hours{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))!important;gap:6px!important}
.compact-metrics.position-hours .position-total{min-height:42px!important;padding:8px 10px!important;border-radius:13px!important}
.compact-metrics.zone-hours .zone-total{min-height:34px!important;padding:6px 8px!important;border-radius:12px!important}
.compact-metrics.position-hours .position-total strong{font-size:16px!important}
.compact-metrics.zone-hours .zone-total strong{font-size:14px!important}
/* Highlight day info icon when a note exists. */
.note-icon.has-note{
  background:var(--red)!important;
  color:#fff!important;
  border-color:var(--red)!important;
  box-shadow:0 0 0 3px rgba(155,23,52,.10)!important;
}
/* Consistent compact toolbar icons. */
#ownerCopySchedule.icon-action,#ownerPrintBtn.icon-action,.toggle-zero.icon-action{min-width:46px!important;height:40px!important;padding:7px 10px!important}
.toggle-zero.active{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important}
/* Give the calendar its own scroll area so the header and employee column feel like freeze panes. */
.calendar{max-height:calc(100vh - 215px);overflow:auto!important;scrollbar-gutter:stable both-edges}
.cal-table thead th{position:sticky!important;top:0!important;z-index:8!important}
.cal-table thead tr:nth-child(2) th{top:50px!important;z-index:8!important}
.cal-table th.person{z-index:12!important}
.cal-table td.person{z-index:5!important}
.cal-table th.total-head{z-index:10!important}
/* Compact page spacing now that the top bar is sticky. */
.page-head.light-head{margin-top:8px!important}
.owner .tabs{position:sticky;top:106px;z-index:30;background:rgba(251,247,248,.92);backdrop-filter:blur(10px);border-bottom:1px solid rgba(234,221,225,.5)}
@media(max-width:900px){
  .calendar{max-height:calc(100vh - 240px)}
  .compact-metrics.position-hours{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .compact-metrics.zone-hours{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* v46 final spacing + icon polish */
/* Remove sticky header gap between Employee and Position rows. */
.cal-table thead tr:first-child th{
  height:44px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
}
.cal-table thead tr:nth-child(2) th{
  top:44px!important;
  height:36px!important;
  padding-top:5px!important;
  padding-bottom:5px!important;
}

/* Day info icon stays minimal white; notes are indicated by border/ring only. */
.note-icon,
.note-icon.has-note{
  background:#fff!important;
  color:var(--red)!important;
  border:1px solid var(--line)!important;
  box-shadow:none!important;
}
.note-icon.has-note{
  border:2px solid var(--red)!important;
  box-shadow:0 0 0 3px rgba(155,23,52,.08)!important;
}
.note-icon.has-note::after{
  content:"";
  position:absolute;
  width:5px;
  height:5px;
  border-radius:999px;
  background:var(--red);
  right:3px;
  top:3px;
}

/* Icon-only zero-row toggle. */
.toggle-zero.icon-action{font-weight:900!important;font-size:18px!important;}
.toggle-zero.active{background:var(--red)!important;color:#fff!important;border-color:var(--red)!important;}

/* Strong total rows / grand total cards. */
.position-total.grand,
.zone-total.grand,
.compact-metrics .position-total.grand,
.compact-metrics .zone-total.grand{
  background:#21191d!important;
  border-color:#21191d!important;
  color:#fff!important;
}
.position-total.grand span,
.position-total.grand strong,
.zone-total.grand span,
.zone-total.grand strong{
  color:#fff!important;
  font-weight:950!important;
}
.totals-row td,
.totals-row td.day-base,
.totals-row td.day-alt,
.totals-row .person,
.totals-row .total-cell{
  background:#21191d!important;
  color:#fff!important;
  border-color:#3a3035!important;
  font-weight:900!important;
}
.totals-row strong,
.totals-row .person strong,
.totals-row .total-cell strong{
  color:#fff!important;
  font-weight:950!important;
}
.totals-row td.day-start{border-left:2px solid rgba(255,255,255,.22)!important;}
.totals-row .person{box-shadow:none!important;}

/* Slightly reduce card height after total color change. */
.compact-metrics .grand{min-height:34px!important;}

/* v47 compact metrics + note/freeze refinements */
/* Total hours row should scroll with the table, not stick/freeze. */
.totals-row td{position:static!important;bottom:auto!important;z-index:auto!important;}

/* One shared compact metric bar instead of two tall cards. */
.calendar-top-metrics.grid.two{
  display:grid!important;
  grid-template-columns:minmax(360px,.9fr) minmax(480px,1.1fr)!important;
  gap:12px!important;
  background:#fff!important;
  border:1px solid var(--line)!important;
  border-radius:18px!important;
  padding:10px!important;
  box-shadow:0 12px 30px rgba(99,35,52,.045)!important;
  margin:6px 0 10px!important;
}
.calendar-top-metrics .panel{
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  margin:0!important;
  background:transparent!important;
}
.metric-title-row{margin-bottom:5px!important;}
.metric-title-row h3{font-size:13px!important;}
.metric-days{display:inline-flex;align-items:center;gap:3px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px;white-space:nowrap;}
.metric-day-btn{width:25px;height:24px;min-width:0!important;padding:0!important;border-radius:999px!important;border:0!important;background:transparent!important;color:var(--muted)!important;font-size:11px!important;font-weight:900!important;box-shadow:none!important;}
.metric-day-btn:hover{background:var(--soft)!important;color:var(--red)!important;}
.metric-day-btn.active{background:var(--red)!important;color:#fff!important;}
.compact-metrics.position-hours{grid-template-columns:repeat(auto-fit,minmax(105px,1fr))!important;gap:6px!important;}
.compact-metrics.zone-hours{grid-template-columns:repeat(auto-fit,minmax(86px,1fr))!important;gap:5px!important;}
.compact-metrics .position-total,.compact-metrics .zone-total{min-height:32px!important;padding:5px 8px!important;}
.compact-metrics .position-total strong{font-size:15px!important;}
.compact-metrics .zone-total strong{font-size:13px!important;}

/* Day info icon: after day name, minimal by default; light fill when note exists. */
.day-title{justify-content:flex-start!important;}
.day-label{display:inline-flex;align-items:center;gap:6px;}
.note-icon,
.note-icon.has-note{
  position:relative!important;
  order:0!important;
  width:21px!important;height:21px!important;
  background:#fff!important;
  color:var(--red)!important;
  border:1px solid var(--line)!important;
  box-shadow:none!important;
}
.note-icon.has-note{
  background:#fff0f4!important;
  border-color:rgba(155,23,52,.55)!important;
  box-shadow:0 0 0 2px rgba(155,23,52,.055)!important;
}
.note-icon.has-note::after{display:none!important;content:none!important;}

@media(max-width:900px){
  .calendar-top-metrics.grid.two{grid-template-columns:1fr!important;padding:9px!important;}
  .metric-days{max-width:100%;overflow:auto;}
}

/* v48 compact header/metrics polish */
.topbar{padding:12px 20px 8px!important;gap:16px!important;position:sticky;top:0;z-index:60;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(234,221,225,.55)}
.logo{width:min(230px,30vw)!important}.brand{gap:18px!important}.brand h1{font-size:26px!important}.eyebrow{font-size:11px!important}.week-nav{padding:7px!important;border-radius:18px!important}.top-actions{gap:8px!important}.top-actions button,.user-pill{padding:8px 12px!important}
.shell{padding-top:8px!important}.page-head.light-head{display:none!important}
.calendar-control-strip{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:4px 0 8px;min-height:36px}.calendar-status-compact{margin-right:auto;display:flex;align-items:center}.toolbar-spacer{flex:1 1 auto}.icon-actions{margin-left:auto}.status-icon{width:28px;height:28px;display:inline-grid;place-items:center;border-radius:999px;border:1px solid var(--line);background:#fff;color:var(--red);font-size:13px}.status-icon.published{background:#fff8dd;border-color:#efda88;color:#8a6700}.status-icon.draft{background:#fff;border-color:var(--line);color:var(--muted)}
/* Separate WHO and WHERE again, but keep one shared period selector. */
.calendar-top-metrics.grid.two{display:grid!important;grid-template-columns:minmax(360px,1fr) minmax(420px,1fr)!important;gap:12px!important;background:transparent!important;border:0!important;border-radius:0!important;padding:0!important;box-shadow:none!important;margin:6px 0 10px!important}.calendar-top-metrics .panel{background:#fff!important;border:1px solid var(--line)!important;border-radius:18px!important;padding:12px!important;box-shadow:0 12px 30px rgba(99,35,52,.045)!important;margin:0!important}.metric-title-row{margin-bottom:8px!important}.metric-title-row h3{font-size:14px!important}.position-summary h3::before{content:'WHO · '!important}.zone-summary h3::before{content:'WHERE · '!important}.metric-title-row .metric-days{display:none!important}.shared-metric-days{display:inline-flex!important;align-items:center;gap:3px;border:1px solid var(--line);background:#fff;border-radius:999px;padding:2px;white-space:nowrap}.metric-day-btn{width:27px!important;height:25px!important}.compact-metrics.position-hours{grid-template-columns:repeat(auto-fit,minmax(112px,1fr))!important}.compact-metrics.zone-hours{grid-template-columns:repeat(auto-fit,minmax(88px,1fr))!important}
/* Note icons: minimal white; when note exists, use clear soft blue fill. */
.note-icon,.note-icon.has-note{background:#fff!important;color:var(--red)!important;border:1px solid var(--line)!important;box-shadow:none!important}.note-icon.has-note{background:#eaf4ff!important;border-color:#78aee8!important;color:#285f9b!important}.note-icon.has-note::after{display:none!important;content:none!important}.day-label{display:inline-flex;align-items:center;gap:6px}.day-title{justify-content:flex-start!important}
/* Owner action strip no longer needs large panel feel. */
#tab-planning>.toolbar.panel.actions{padding:8px 0!important;background:transparent!important;border:0!important;box-shadow:none!important;margin:0 0 8px!important;display:flex!important;align-items:center!important;gap:8px!important}.icon-action{min-width:42px!important;height:40px!important;padding:0 12px!important;border-radius:14px!important}.toggle-zero{font-size:0!important}.toggle-zero::before{content:'Ø';font-size:15px!important;line-height:1}.toggle-zero.active::before{content:'👁';font-size:14px!important}
@media(max-width:900px){.topbar{position:sticky!important;padding:10px 12px!important}.logo{width:210px!important}.calendar-control-strip{justify-content:flex-start;flex-wrap:wrap}.calendar-status-compact{margin-right:0}.calendar-top-metrics.grid.two{grid-template-columns:1fr!important}.shared-metric-days{order:-1;max-width:100%;overflow:auto}.icon-actions{margin-left:0}.brand h1{font-size:22px!important}}

/* v49: compact aligned toolbar/subtoolbar polish */
.topbar{
  padding:8px 18px 6px!important;
  min-height:74px!important;
}
.logo{width:min(205px,28vw)!important;}
.brand{gap:14px!important;}
.brand h1{font-size:24px!important;line-height:1.05!important;}
.eyebrow{font-size:10px!important;letter-spacing:.14em!important;}
.top-actions{gap:7px!important;}
.week-nav{padding:6px!important;border-radius:16px!important;box-shadow:0 10px 28px rgba(99,35,52,.055)!important;}
.week-nav button{min-width:36px!important;height:34px!important;padding:0 10px!important;border-radius:12px!important;}
.week-nav input{height:34px!important;padding:7px 10px!important;}
.top-actions button,.user-pill{height:34px!important;padding:7px 11px!important;border-radius:13px!important;}
.shell{padding-top:4px!important;}

/* Same compact control height for employee and owner controls. */
.calendar-control-strip{
  min-height:30px!important;
  margin:0 0 6px!important;
  gap:7px!important;
}
.shared-metric-days{
  min-height:30px!important;
  padding:2px!important;
  gap:2px!important;
  box-shadow:0 6px 18px rgba(99,35,52,.035)!important;
}
.metric-day-btn{
  width:25px!important;
  height:24px!important;
  min-width:25px!important;
  padding:0!important;
  border-radius:999px!important;
  font-size:12px!important;
}
.icon-action{
  min-width:36px!important;
  width:36px!important;
  height:34px!important;
  padding:0!important;
  border-radius:12px!important;
  display:inline-grid!important;
  place-items:center!important;
}
.toolbar.icon-actions{gap:6px!important;}

/* Remove owner sticky tab gap/overlap and make the owner subbar compact. */
#page-owner .page-head,
#page-owner .visually-hidden-actions{display:none!important;margin:0!important;padding:0!important;height:0!important;}
.owner .tabs,
#page-owner .tabs{
  position:static!important;
  top:auto!important;
  z-index:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0 0 6px!important;
  background:transparent!important;
  border:0!important;
  backdrop-filter:none!important;
  gap:7px!important;
}
#page-owner .tabs button{
  height:34px!important;
  padding:0 14px!important;
  border-radius:13px!important;
  box-shadow:none!important;
}
#tab-planning>.toolbar.panel.actions{
  min-height:34px!important;
  margin:0 0 6px!important;
  padding:0!important;
  gap:6px!important;
  align-items:center!important;
}
#tab-planning>.toolbar.panel.actions .toolbar-spacer{flex:1 1 auto!important;}
#tab-planning>.toolbar.panel.actions .shared-metric-days{margin-left:auto!important;}

/* Metrics stay close to the toolbar without extra vertical waste. */
.calendar-top-metrics.grid.two{margin:4px 0 8px!important;gap:10px!important;}
.calendar-top-metrics .panel{padding:10px!important;border-radius:16px!important;}
.metric-title-row{margin-bottom:6px!important;}
.metric-title-row h3{font-size:13px!important;line-height:1.15!important;}
.compact-metrics.position-hours{gap:6px!important;}
.compact-metrics.zone-hours{gap:5px!important;}

/* Tighten calendar start just a touch. */
.calendar{margin-top:0!important;}

@media(max-width:900px){
  .topbar{min-height:auto!important;padding:9px 12px!important;}
  .logo{width:190px!important;}
  .calendar-control-strip{gap:6px!important;}
  #page-owner .tabs{display:flex!important;overflow:auto!important;flex-wrap:nowrap!important;}
  #tab-planning>.toolbar.panel.actions{flex-wrap:wrap!important;}
}

/* v50: integrated topbar navigation + consistent compact controls */
.topbar{
  min-height:58px!important;
  padding:7px 18px!important;
  align-items:center!important;
}
.logo{width:min(180px,25vw)!important;}
.brand{gap:12px!important;align-items:center!important;}
.brand h1{font-size:23px!important;line-height:1!important;margin:0!important;}
.eyebrow{font-size:10px!important;margin-bottom:3px!important;}
.top-actions{align-items:center!important;}
.week-nav{height:40px!important;padding:4px!important;}
.week-nav button{height:30px!important;min-width:34px!important;}
.week-nav input{height:30px!important;}
.top-actions button,.user-pill{height:32px!important;padding:6px 10px!important;border-radius:13px!important;}

/* Owner navigation lives inside the topbar, under the dynamic title. */
.top-tabs{
  display:flex!important;
  gap:5px!important;
  margin:6px 0 0!important;
  padding:0!important;
  max-width:none!important;
}
.top-tabs button{
  height:28px!important;
  padding:0 10px!important;
  border-radius:11px!important;
  font-size:12px!important;
  box-shadow:none!important;
}
.employee .top-tabs{display:none!important;}
.owner .top-tabs{display:flex!important;}

/* Consistent single toolbar row for employee and owner. */
.calendar-control-strip,
#tab-planning>.toolbar.panel.actions{
  display:flex!important;
  align-items:center!important;
  gap:7px!important;
  min-height:34px!important;
  margin:2px 0 6px!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.calendar-status-compact{margin-right:0!important;}
.status-chip{
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  padding:0 11px;
  font-size:12px;
  font-weight:900;
  border:1px solid var(--line);
  background:#fff;
  color:var(--muted);
  white-space:nowrap;
}
.status-chip.published{background:#ecf8ef;border-color:#b9e4c3;color:#18703b;}
.status-chip.draft{background:#fff8df;border-color:#f0d889;color:#9a6b00;}
.shared-metric-days{margin-left:auto!important;}
.toolbar.icon-actions{margin-left:0!important;}
.icon-actions{margin-left:0!important;}
.icon-action{
  min-width:34px!important;
  width:34px!important;
  height:32px!important;
  border-radius:12px!important;
  padding:0!important;
  font-size:14px!important;
}
.toggle-zero{font-size:0!important;}
.toggle-zero::before{content:'Ø';font-size:14px!important;line-height:1;}
.toggle-zero.active::before{content:'👁';font-size:13px!important;}
#tab-planning>.toolbar.panel.actions .toolbar-spacer{display:none!important;}
#tab-planning>.toolbar.panel.actions .shared-metric-days{margin-left:auto!important;}

/* Remove the old owner tab row spacing if any legacy tabs remain. */
#page-owner > .tabs:not(.top-tabs){display:none!important;}

/* Metrics sit tighter after the compact toolbar. */
.calendar-top-metrics.grid.two{margin:3px 0 7px!important;}
.calendar-top-metrics .panel{padding:9px!important;}

@media(max-width:900px){
  .topbar{display:block!important;min-height:auto!important;padding:8px 10px!important;}
  .brand{align-items:flex-start!important;}
  .logo{width:170px!important;}
  .top-actions{margin-top:8px!important;display:grid!important;grid-template-columns:1fr 1fr!important;}
  .week-nav{grid-column:1/-1!important;}
  .top-tabs{margin-top:5px!important;overflow:auto!important;}
  .calendar-control-strip,#tab-planning>.toolbar.panel.actions{flex-wrap:wrap!important;}
  .shared-metric-days{order:2;margin-left:0!important;}
}

/* v51: final toolbar/topbar architecture polish */
.owner .employee-only{display:none!important}
.employee .employee-only{display:inline-flex!important}
.owner .owner-only{display:inline-flex!important}
.employee .owner-only{display:none!important}

/* Keep the brand bar purely about identity + navigation. */
.topbar{padding:10px 24px 8px!important;min-height:74px!important;align-items:center!important;box-shadow:0 8px 22px rgba(99,35,52,.035)!important}
.topbar .logo{width:220px!important}.brand{gap:18px!important}.brand h1{font-size:25px!important;line-height:1!important}.eyebrow{font-size:11px!important;margin-bottom:3px!important}.top-actions{gap:8px!important}.top-actions .user-pill{height:34px;align-items:center}.top-actions button{height:38px;padding:0 14px!important;border-radius:15px!important}.top-tabs{padding:0!important;margin-top:5px!important;gap:6px!important}.top-tabs button{height:28px!important;padding:0 12px!important;border-radius:12px!important;font-size:12px!important}.top-tabs button.active{display:none!important}

/* Single shared planner toolbar: status/action | week/day | utility icons. */
.planner-toolbar{max-width:1540px;margin:0 auto;padding:6px 24px;display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(210px,1fr);align-items:center;gap:10px;border-top:1px solid rgba(234,221,225,.45);border-bottom:1px solid rgba(234,221,225,.72);background:rgba(255,255,255,.78);backdrop-filter:blur(10px);position:sticky;top:74px;z-index:45}.toolbar-left,.toolbar-center,.toolbar-right{display:flex;align-items:center;gap:7px}.toolbar-left{justify-content:flex-start}.toolbar-center{justify-content:center}.toolbar-right{justify-content:flex-end}.compact-week-nav{box-shadow:none!important;padding:3px!important;border-radius:16px!important;gap:5px!important;background:#fff!important}.compact-week-nav button{width:34px!important;height:32px!important;min-width:34px!important;padding:0!important;border-radius:12px!important}.compact-week-nav label{font-size:12px!important;gap:5px!important}.compact-week-nav input{height:30px!important;padding:4px 8px!important;border-radius:10px!important;font-weight:900!important;min-width:128px}.planner-toolbar .status-chip{height:32px;align-items:center;border-radius:999px;padding:0 12px;font-weight:900}.planner-toolbar .icon-action{width:36px!important;height:34px!important;min-width:36px!important;border-radius:13px!important;padding:0!important;font-size:14px!important}.planner-toolbar .metric-days{height:32px!important;padding:2px!important}.planner-toolbar .metric-day-btn{width:25px!important;height:26px!important}.toggle-zero{font-size:0!important}.toggle-zero::before{content:'Ø';font-size:14px!important;line-height:1}.toggle-zero.active::before{content:'👁';font-size:13px!important}

/* Hide legacy nav/subcontrol space now that controls live in the topbar/toolbar. */.app-hidden-nav{display:none!important}.calendar-control-strip{display:none!important}#tab-planning>.owner-control-strip{display:none!important}.page-head.owner-head{display:none!important}.shell{padding-top:10px!important}.calendar-top-metrics.grid.two{margin-top:0!important}

/* Slot consistency and readability. */.slot .meta{white-space:nowrap!important;display:block!important}.slot .zone{white-space:nowrap!important;color:#6b4f00!important;font-weight:800!important}.zone-dot{vertical-align:middle}.owner-zone-control{display:flex;align-items:center;gap:5px;margin-top:6px}.owner-zone-control .zone-dot{flex:0 0 auto}.owner-zone-control select{margin-top:0!important;min-width:0!important;flex:1 1 auto}.slot select.zone-select.compact{height:27px!important;padding:3px 7px!important;border-radius:10px!important;font-size:11px!important;font-weight:900!important;color:#9b1734!important}


@media(max-width:900px){.topbar{position:static!important;padding:8px 12px!important}.planner-toolbar{position:sticky;top:0;grid-template-columns:1fr;padding:8px 12px}.toolbar-left,.toolbar-center,.toolbar-right{justify-content:center;flex-wrap:wrap}.topbar .logo{width:190px!important}.brand h1{font-size:22px!important}}

/* v52: final toolbar alignment and icon polish */
.brand > div{
  display:grid!important;
  grid-template-columns:auto auto!important;
  align-items:center!important;
  column-gap:12px!important;
}
.brand > div .eyebrow{grid-column:1/-1!important;line-height:1!important;margin-bottom:1px!important;}
.brand > div h1{grid-column:1!important;margin:0!important;line-height:1.05!important;}
.brand > div .top-tabs{grid-column:2!important;margin:0!important;padding:0!important;align-self:center!important;}
.top-tabs button{height:26px!important;padding:0 9px!important;font-size:11px!important;}

.planner-toolbar{
  min-height:44px!important;
  padding:7px 24px!important;
  align-items:center!important;
  gap:8px!important;
}
.toolbar-left,.toolbar-center,.toolbar-right{min-height:34px!important;align-items:center!important;}
.toolbar-left{gap:6px!important;}
.toolbar-center{gap:7px!important;}
.status-chip{height:30px!important;padding:0 12px!important;gap:6px!important;line-height:1!important;}
.publish-control{font-weight:900!important;}
.icon-action{
  width:34px!important;
  height:32px!important;
  min-width:34px!important;
  display:inline-grid!important;
  place-items:center!important;
  padding:0!important;
  font-size:13px!important;
  line-height:1!important;
  text-align:center!important;
}
#messageBtn::before{content:'💬';font-size:13px;}
#messageBtn{font-size:0!important;}
#copySchedule::before{content:'📋';font-size:13px;}
#copySchedule{font-size:0!important;}
#printBtn::before{content:'⌘';font-size:14px;font-weight:700;}
#printBtn{font-size:0!important;font-weight:500!important;}
#toggleZeroRows{font-size:0!important;font-weight:600!important;}
#toggleZeroRows::before{content:'Ø';font-size:14px!important;font-weight:700!important;line-height:1!important;}
#toggleZeroRows.active::before{content:'◉';font-size:12px!important;font-weight:700!important;}
#resetBtn::before{content:'↺';font-size:13px;font-weight:700;}
#resetBtn{font-size:0!important;}
#copyLastWeek::before{content:'⧉';font-size:13px;}
#copyLastWeek{font-size:0!important;}

/* Center metric contents inside summary panels. */
.position-summary .position-total,
.zone-summary .zone-total{
  align-items:center!important;
  text-align:center!important;
}
.position-summary .position-total span,
.position-summary .position-total strong,
.zone-summary .zone-total span,
.zone-summary .zone-total strong{
  width:100%;
  justify-content:center;
}
.zone-summary .zone-total{display:flex!important;gap:6px!important;}
.zone-summary .zone-total .zone-dot{flex:0 0 auto!important;}
.zone-summary .zone-total span{width:auto!important;}

.compact-week-nav{height:34px!important;padding:4px!important;}
.compact-week-nav button{width:30px!important;height:28px!important;min-width:30px!important;padding:0!important;}
.compact-week-nav input{height:28px!important;padding:4px 8px!important;}
.shared-metric-days{height:32px!important;padding:2px!important;}
.metric-day-btn{height:26px!important;width:26px!important;}

@media(max-width:900px){
  .brand > div{display:block!important;}
  .brand > div .top-tabs{margin-top:6px!important;}
  .planner-toolbar{padding:6px 12px!important;flex-wrap:wrap!important;}
}

/* v53: final calendar toolbar/icon fix */
/* Move owner page navigation into the open space to the right of the title. */
.brand{flex:1 1 auto!important;min-width:0!important;}
.brand>div{display:grid!important;grid-template-columns:auto minmax(260px,1fr)!important;column-gap:18px!important;align-items:center!important;min-width:0!important;}
.brand>div .eyebrow{grid-column:1/-1!important;}
.brand>div h1{grid-column:1!important;white-space:nowrap!important;}
.brand>div .top-tabs{grid-column:2!important;justify-self:start!important;margin-left:4px!important;}
.top-tabs button{height:27px!important;min-width:84px!important;}

/* Toolbar: publish button first, then one status label. */
.planner-toolbar{min-height:42px!important;padding:5px 24px!important;}
.toolbar-left{gap:8px!important;}
.toolbar-left .status-chip{order:2!important;}
#publishToggleBtn{order:1!important;}
.status-chip{height:30px!important;padding:0 13px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
.status-chip::before{content:'';width:7px;height:7px;border-radius:999px;margin-right:7px;background:currentColor;opacity:.9;}
.status-chip.published{background:#eaf8ee!important;border-color:#b9e4c3!important;color:#18703b!important;}
.status-chip.draft{background:#fff8df!important;border-color:#f0d889!important;color:#9a6b00!important;}

/* Fixed-size, centered, consistent icon buttons. */
.planner-toolbar .icon-action,
.icon-action{
  width:36px!important;height:36px!important;min-width:36px!important;max-width:36px!important;
  padding:0!important;border-radius:14px!important;display:inline-grid!important;place-items:center!important;
  line-height:1!important;font-size:0!important;box-shadow:none!important;position:relative!important;
}
.icon-action::before{font-size:16px!important;line-height:1!important;display:block!important;font-weight:800!important;color:currentColor!important;}
#publishToggleBtn::before{content:'✓';font-size:17px!important;}
#publishToggleBtn.secondary::before{content:'↩';font-size:16px!important;}
#copyLastWeek::before{content:'⧉';}
#messageBtn::before{content:'☎';font-size:15px!important;}
#copySchedule::before{content:'▣';font-size:15px!important;}
#printBtn::before{content:'⎙';font-size:17px!important;font-weight:700!important;}
#toggleZeroRows::before{content:'Ø';font-size:15px!important;font-weight:800!important;}
#toggleZeroRows.active::before{content:'◉';font-size:13px!important;}
#resetBtn::before{content:'↻';font-size:16px!important;}
#messageBtn.whatsapp{color:#167a3a!important;border-color:#d6eadc!important;background:#fff!important;}
#messageBtn.whatsapp:hover{background:#eef9f1!important;}
#printBtn{font-weight:500!important;color:var(--red)!important;}
#toggleZeroRows{font-weight:600!important;color:var(--red)!important;}
#resetBtn{color:#b34b28!important;border-color:#ffd8ca!important;background:#fff7f3!important;}
.toolbar-right.icon-actions{gap:8px!important;}

/* Reduce overall toolbar visual weight a little more. */
.compact-week-nav{height:32px!important;}
.compact-week-nav button{width:30px!important;height:28px!important;}
.shared-metric-days{height:30px!important;}
.metric-day-btn{width:25px!important;height:25px!important;}

@media(max-width:900px){
  .brand>div{display:block!important;}
  .brand>div .top-tabs{margin-top:6px!important;}
  .planner-toolbar{padding:6px 12px!important;}
}

/* v54: role visibility, cleaner toolbar, centered owner nav, restored zone bullets */
body.owner #publishedStatusIcon,
body.employee #ownerStatusChip,
body.employee #publishToggleBtn,
body.logged-out #ownerStatusChip,
body.logged-out #publishedStatusIcon,
body.logged-out #publishToggleBtn{display:none!important;}
body.owner #publishToggleBtn{display:inline-grid!important;order:1!important;}
body.owner #ownerStatusChip{display:inline-flex!important;order:2!important;}
body.employee #publishedStatusIcon{display:inline-flex!important;order:1!important;}
.toolbar-left{display:flex!important;align-items:center!important;gap:7px!important;}
.toolbar-left .status-chip::before{content:''!important;width:7px!important;height:7px!important;border-radius:99px!important;margin-right:7px!important;background:currentColor!important;opacity:.9!important;}
#publishToggleBtn{font-size:0!important;}
#publishToggleBtn::before{content:'✓'!important;font-size:18px!important;line-height:1!important;}
#publishToggleBtn.secondary::before{content:'↩'!important;font-size:16px!important;}

/* Move owner page navigation into the open center of the topbar. */
.topbar{position:sticky!important;}
.owner .topbar .top-tabs{
  position:absolute!important;
  left:52%!important;
  top:50%!important;
  transform:translate(-50%,-50%)!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  z-index:3!important;
}
.owner .topbar .top-tabs button{height:30px!important;min-width:94px!important;padding:0 12px!important;font-size:12px!important;border-radius:14px!important;}
.owner .topbar .top-tabs button.active{display:none!important;}
.employee .topbar .top-tabs{display:none!important;}

/* Modern, consistent icon buttons. */
.planner-toolbar .icon-action,
.icon-action{width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;border-radius:14px!important;padding:0!important;display:inline-grid!important;place-items:center!important;font-size:0!important;line-height:1!important;background:#fff!important;border:1px solid var(--line)!important;color:var(--red)!important;}
.planner-toolbar .icon-action:hover{background:#fff7f9!important;border-color:#e7c8d1!important;}
.icon-action::before{font-size:16px!important;font-weight:700!important;line-height:1!important;display:block!important;color:currentColor!important;}
#copyLastWeek::before{content:'⧉'!important;font-size:15px!important;}
#messageBtn::before{content:'☎'!important;font-size:16px!important;color:#168a43!important;}
#copySchedule::before{content:'📋'!important;font-size:15px!important;}
#printBtn::before{content:'⎙'!important;font-size:17px!important;font-weight:600!important;}
#toggleZeroRows::before{content:'Ø'!important;font-size:15px!important;font-weight:800!important;}
#toggleZeroRows.active::before{content:'◉'!important;font-size:12px!important;}
#resetBtn::before{content:'↻'!important;font-size:15px!important;color:#b34b28!important;}
#messageBtn.whatsapp{border-color:#d8eadf!important;}
#resetBtn{background:#fff7f3!important;border-color:#ffd8ca!important;}
.toolbar-right.icon-actions{gap:7px!important;}

/* Restore colored bullets in zone metric cards. */
.zone-summary .zone-total{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:8px!important;text-align:left!important;}
.zone-summary .zone-total span{display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;gap:5px!important;width:auto!important;min-width:0!important;line-height:1.1!important;}
.zone-summary .zone-total strong{width:auto!important;justify-content:flex-end!important;}
.zone-summary .zone-total .zone-dot{display:inline-block!important;flex:0 0 8px!important;width:8px!important;height:8px!important;margin:0 3px 0 0!important;background:var(--zone-accent,#8a7b82)!important;box-shadow:none!important;}
.zone-summary .zone-total.grand span{display:inline!important;}

/* Owner zone selector readability. Keep the bullet, make the selected zone readable. */
.owner-zone-control{display:flex!important;align-items:center!important;gap:5px!important;margin-top:5px!important;width:100%!important;}
.owner-zone-control .zone-dot{width:8px!important;height:8px!important;margin:0!important;flex:0 0 8px!important;box-shadow:none!important;}
.slot select.zone-select.compact,
.owner-zone-control select.zone-select.compact{
  width:calc(100% - 13px)!important;
  min-width:58px!important;
  max-width:78px!important;
  height:25px!important;
  padding:2px 16px 2px 6px!important;
  border-radius:10px!important;
  font-size:10.5px!important;
  line-height:1!important;
  font-weight:900!important;
  white-space:nowrap!important;
  overflow:visible!important;
  color:#9b1734!important;
  background:#fff!important;
}
.slot .name{white-space:nowrap!important;}

@media(max-width:1200px){.owner .topbar .top-tabs{left:47%!important}.owner .topbar .top-tabs button{min-width:78px!important;font-size:11px!important;padding:0 9px!important}}
@media(max-width:900px){.owner .topbar .top-tabs{position:static!important;transform:none!important;margin-top:6px!important}.topbar .brand>div{display:block!important}}

/* v55 final toolbar + zone picker refinements */
/* Remove duplicate visual content inside icon buttons and rely only on modern pseudo icons. */
.icon-action{font-size:0!important;overflow:hidden!important;text-indent:0!important;}
.icon-action > *{display:none!important;}
#publishToggleBtn::before{content:'✓'!important;font-size:18px!important;line-height:1!important;font-weight:900!important;}
#publishToggleBtn.secondary::before{content:'↩'!important;font-size:17px!important;}

/* One message control only: WhatsApp-style message opens the schedule message. */
#copySchedule{display:none!important;}
#messageBtn{display:inline-grid!important;}
body.employee #messageBtn{display:inline-grid!important;}
body.logged-out #messageBtn{display:none!important;}
.toolbar-separator{width:1px;height:24px;background:var(--line);margin:0 4px;display:inline-block;}
body.employee .toolbar-separator{display:none!important;}

/* Toolbar action order: zero rows, copy previous week, reset, separator, WhatsApp/message, print. */
#toggleZeroRows{order:1;}
#copyLastWeek{order:2;}
#resetBtn{order:3;}
.toolbar-separator{order:4;}
#messageBtn{order:5;}
#printBtn{order:6;}
#copySchedule{order:99;}
.toolbar-right.icon-actions{align-items:center!important;}

/* Cleaner, centered icon language. */
#toggleZeroRows::before{content:'○'!important;font-size:17px!important;font-weight:800!important;color:#6b5961!important;}
#toggleZeroRows.active::before{content:'●'!important;font-size:13px!important;color:#9b1734!important;}
#copyLastWeek::before{content:'⧉'!important;font-size:17px!important;font-weight:800!important;color:#9b1734!important;}
#resetBtn::before{content:'↻'!important;font-size:17px!important;font-weight:800!important;color:#b8562c!important;}
#messageBtn::before{content:'☎'!important;font-size:17px!important;font-weight:900!important;color:#168a43!important;}
#printBtn::before{content:'⎙'!important;font-size:18px!important;font-weight:800!important;color:#9b1734!important;}
#messageBtn.whatsapp{border-color:#bfe6cb!important;background:#f7fff9!important;}
#messageBtn.whatsapp:hover{background:#ebfaef!important;}
#printBtn,#copyLastWeek,#toggleZeroRows{background:#fff!important;}
#resetBtn{background:#fff7f3!important;border-color:#ffd8ca!important;}

/* Keep the top navigation centered in the available open topbar space. */
.owner .topbar .top-tabs{left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;}
.owner .topbar .top-tabs button{min-width:96px!important;text-align:center!important;}
@media(max-width:1200px){.owner .topbar .top-tabs{left:50%!important;}}

/* Owner zones: show exactly like employee slots; click opens a compact list dialog. */
.owner-zone-control{display:none!important;}
.zone-picker-button{
  all:unset;
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  width:100%!important;
  cursor:pointer!important;
  color:#6b4f00!important;
  font-weight:800!important;
  white-space:nowrap!important;
  line-height:1.15!important;
  margin:2px 0 4px!important;
}
.zone-picker-button:hover{color:#9b1734!important;text-decoration:underline;text-underline-offset:2px;}
.zone-dialog label{display:flex;flex-direction:column;gap:8px;font-weight:900;color:#4d3f45;}
.zone-dialog select{height:44px;border:1px solid var(--line);border-radius:14px;padding:0 12px;font-weight:900;background:#fff;color:#9b1734;}
.zone-dialog .dialog-actions{margin-top:14px;}

/* Status: publish button first, one status label only. */
.toolbar-left{gap:8px!important;}
body.owner #publishToggleBtn{order:1!important;display:inline-grid!important;}
body.owner #ownerStatusChip{order:2!important;display:inline-flex!important;}
body.employee #publishedStatusIcon{display:inline-flex!important;}
body.employee #publishToggleBtn, body.employee #ownerStatusChip{display:none!important;}

/* v56: final bug fix, inline zone picker, polished icon set */
/* Exactly one publish action and one status label. The action uses only the pseudo icon. */
#publishToggleBtn{font-size:0!important;text-indent:0!important;overflow:hidden!important;position:relative!important;}
#publishToggleBtn::before{content:''!important;width:18px!important;height:18px!important;background:currentColor!important;display:block!important;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat;}
#publishToggleBtn.secondary::before{content:''!important;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 3v6h6'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 3v6h6'/%3E%3C/svg%3E") center/contain no-repeat;}
#ownerStatusChip,#publishedStatusIcon{font-size:13px!important;font-weight:900!important;min-width:92px!important;}
body.employee #publishToggleBtn{display:none!important;}
body.owner #publishedStatusIcon{display:none!important;}
body.employee #publishedStatusIcon{display:inline-flex!important;}
body.owner #ownerStatusChip{display:inline-flex!important;}
.toolbar-left .status-chip + .status-chip{display:none!important;}

/* Better modern toolbar icons using one SVG-mask style. */
.planner-toolbar .icon-action,.icon-action{width:38px!important;height:38px!important;min-width:38px!important;max-width:38px!important;border-radius:14px!important;display:inline-grid!important;place-items:center!important;padding:0!important;font-size:0!important;}
.icon-action::before{content:''!important;width:18px!important;height:18px!important;display:block!important;background:currentColor!important;}
#toggleZeroRows::before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 21h10'/%3E%3Cpath d='M5 21h14'/%3E%3Cpath d='m16 3 5 5L8 21H3v-5L16 3Z'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 21h10'/%3E%3Cpath d='M5 21h14'/%3E%3Cpath d='m16 3 5 5L8 21H3v-5L16 3Z'/%3E%3C/svg%3E") center/contain no-repeat;}
#copyLastWeek::before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='12' height='12' rx='2'/%3E%3Cpath d='M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='8' width='12' height='12' rx='2'/%3E%3Cpath d='M16 8V6a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2'/%3E%3C/svg%3E") center/contain no-repeat;}
#resetBtn::before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 3v6h6'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 3-6.7'/%3E%3Cpath d='M3 3v6h6'/%3E%3C/svg%3E") center/contain no-repeat;}
#messageBtn::before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.5 3.5A11.6 11.6 0 0 0 12.2 0C5.7 0 .5 5.2.5 11.6c0 2 .5 3.9 1.5 5.7L.4 24l6.9-1.8a11.6 11.6 0 0 0 5 1.2h.1c6.4 0 11.6-5.2 11.6-11.6 0-3.1-1.2-6-3.5-8.3Zm-8.2 17.9h-.1a9.7 9.7 0 0 1-5-1.4l-.4-.2-4.1 1.1 1.1-4-.3-.4a9.6 9.6 0 1 1 8.8 4.9Zm5.3-7.2c-.3-.1-1.7-.8-1.9-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.3-1.4-.8-.8-1.4-1.7-1.6-2-.2-.3 0-.4.1-.6l.5-.5c.2-.2.2-.3.3-.5.1-.2.1-.4 0-.5l-.9-2.1c-.2-.5-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.6-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.2-.3-.3-.5-.4Z'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'%3E%3Cpath d='M20.5 3.5A11.6 11.6 0 0 0 12.2 0C5.7 0 .5 5.2.5 11.6c0 2 .5 3.9 1.5 5.7L.4 24l6.9-1.8a11.6 11.6 0 0 0 5 1.2h.1c6.4 0 11.6-5.2 11.6-11.6 0-3.1-1.2-6-3.5-8.3Zm-8.2 17.9h-.1a9.7 9.7 0 0 1-5-1.4l-.4-.2-4.1 1.1 1.1-4-.3-.4a9.6 9.6 0 1 1 8.8 4.9Zm5.3-7.2c-.3-.1-1.7-.8-1.9-.9-.3-.1-.5-.1-.7.1-.2.3-.8.9-.9 1.1-.2.2-.3.2-.6.1-.3-.1-1.2-.4-2.3-1.4-.8-.8-1.4-1.7-1.6-2-.2-.3 0-.4.1-.6l.5-.5c.2-.2.2-.3.3-.5.1-.2.1-.4 0-.5l-.9-2.1c-.2-.5-.5-.5-.7-.5h-.6c-.2 0-.5.1-.8.4-.3.3-1 1-1 2.4s1 2.8 1.2 3c.1.2 2 3.1 4.9 4.3.7.3 1.2.5 1.6.6.7.2 1.3.2 1.8.1.6-.1 1.7-.7 1.9-1.3.2-.7.2-1.2.2-1.3-.1-.2-.3-.3-.5-.4Z'/%3E%3C/svg%3E") center/contain no-repeat;}
#printBtn::before{mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V2h12v7'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v8H6z'/%3E%3C/svg%3E") center/contain no-repeat;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9V2h12v7'/%3E%3Cpath d='M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M6 14h12v8H6z'/%3E%3C/svg%3E") center/contain no-repeat;}
#toggleZeroRows{color:#8d7b83!important;}#toggleZeroRows.active{color:#9b1734!important;background:#fff7f9!important;border-color:#edcbd4!important;}
#copyLastWeek{color:#9b1734!important;}#resetBtn{color:#c15b28!important;background:#fff7f3!important;border-color:#ffd8ca!important;}#messageBtn{color:#25D366!important;background:#f4fff7!important;border-color:#c7f0d4!important;}#printBtn{color:#9b1734!important;}
.toolbar-separator{height:24px!important;background:#ead9df!important;margin:0 3px!important;}

/* Inline owner zone editor: display like employee, expand to a real select directly below. */
.zone-picker-button{padding:2px 4px!important;margin:1px -4px 3px!important;border-radius:8px!important;text-decoration:none!important;}
.zone-picker-button:hover{background:#fff!important;color:#9b1734!important;text-decoration:none!important;box-shadow:0 0 0 1px rgba(155,23,52,.12)!important;}
.inline-zone-select-wrap{position:absolute;left:8px;right:8px;top:54px;z-index:20;}
.inline-zone-select{width:100%;height:34px;border:1px solid #e3cbd3;border-radius:12px;background:#fff;color:#9b1734;font-weight:900;font-size:11px;padding:0 8px;box-shadow:0 12px 28px rgba(42,20,28,.14);}
.slot{position:relative!important;overflow:visible!important;}

/* Align top navigation in the open topbar space. */
.owner .topbar .top-tabs{left:55%!important;top:50%!important;transform:translate(-50%,-50%)!important;}
@media(max-width:1280px){.owner .topbar .top-tabs{left:50%!important;}}

/* Vertically center WHO metrics so they align better with WHERE. */
.mini-summary.position-summary{display:flex!important;flex-direction:column!important;justify-content:center!important;}
.mini-summary.position-summary .position-hours{align-items:center!important;}
.mini-summary.position-summary .metric-title-row{margin-bottom:8px!important;}
.position-hours.compact-metrics{align-content:center!important;}

/* v57 final polish: selector, totals, toolbar icons */
/* Publish control: exactly one action icon + one status label */
#publishToggleBtn,
body.owner #publishToggleBtn{
  display:inline-grid!important;
  place-items:center!important;
  width:40px!important;height:38px!important;min-width:40px!important;max-width:40px!important;
  padding:0!important;border-radius:14px!important;
  font-size:0!important;line-height:1!important;text-indent:0!important;overflow:hidden!important;
}
#publishToggleBtn::before{
  content:'✓'!important;
  mask:none!important;-webkit-mask:none!important;background:none!important;
  width:auto!important;height:auto!important;display:block!important;
  font-size:22px!important;line-height:1!important;font-weight:900!important;color:currentColor!important;
}
#publishToggleBtn.secondary::before{content:'↺'!important;font-size:19px!important;}
#publishToggleBtn::after{display:none!important;content:none!important;}
body.employee #publishToggleBtn{display:none!important;}
body.owner #publishedStatusIcon{display:none!important;}
.toolbar-left .status-chip + .status-chip{display:none!important;}

/* Toolbar icon quality: fixed size, soft filled backgrounds, consistent masks */
.planner-toolbar .icon-action,
.icon-action{
  width:40px!important;height:38px!important;min-width:40px!important;max-width:40px!important;
  display:inline-grid!important;place-items:center!important;padding:0!important;
  border-radius:14px!important;border:1px solid var(--line)!important;
  background:#fff7f9!important;color:#9b1734!important;
  font-size:0!important;line-height:1!important;box-shadow:0 3px 10px rgba(99,35,52,.025)!important;
}
.icon-action::before{content:''!important;width:18px!important;height:18px!important;display:block!important;background:currentColor!important;}
#toggleZeroRows{background:#fff4f5!important;color:#9b1734!important;border-color:#efd0d8!important;}
#copyLastWeek{background:#fff7f9!important;color:#9b1734!important;border-color:#ead1d8!important;}
#resetBtn{background:#fff5ed!important;color:#bf5a22!important;border-color:#ffd8c4!important;}
#messageBtn{background:#f0fff5!important;color:#25D366!important;border-color:#bff0cf!important;}
#printBtn{background:#fff7f9!important;color:#9b1734!important;border-color:#ead1d8!important;}
#toggleZeroRows:hover,#copyLastWeek:hover,#printBtn:hover{background:#fff!important;transform:translateY(-1px)}
#resetBtn:hover{background:#fff!important;transform:translateY(-1px)}
#messageBtn:hover{background:#e9faef!important;transform:translateY(-1px)}
.toolbar-right.icon-actions{gap:8px!important;}
.toolbar-separator{height:26px!important;background:#e5d4db!important;margin:0 4px!important;}

/* Inline owner zone editor: compact inline select, no awkward floating overlap */
.zone-picker-button{
  border-radius:9px!important;padding:2px 4px!important;margin:1px -4px 3px!important;
  background:transparent!important;box-shadow:none!important;text-decoration:none!important;
}
.zone-picker-button:hover{
  background:#fff!important;color:#9b1734!important;text-decoration:none!important;
  box-shadow:0 0 0 1px rgba(155,23,52,.13)!important;
}
.inline-zone-select-wrap{
  position:static!important;left:auto!important;right:auto!important;top:auto!important;z-index:80!important;
  width:100%!important;margin:3px 0 2px!important;
}
.inline-zone-select{
  width:100%!important;max-width:100%!important;height:28px!important;
  border:1px solid #e4cbd3!important;border-radius:10px!important;
  background:#fff!important;color:#9b1734!important;font-weight:900!important;font-size:10.5px!important;
  padding:0 7px!important;box-shadow:0 8px 20px rgba(42,20,28,.10)!important;
}
.slot{overflow:visible!important;}

/* Metrics vertical polish */
.mini-summary.position-summary{display:flex!important;flex-direction:column!important;justify-content:center!important;}
.mini-summary.position-summary .position-hours{align-items:center!important;align-content:center!important;}
.mini-summary.position-summary .metric-title-row{margin-bottom:7px!important;}
.position-hours.compact-metrics{align-content:center!important;}

/* Calendar totals: total row first, dark grey instead of black, total column dark grey */
:root{--total-dark:#3c353a;--total-dark-2:#4a4248;}
.totals-row td,
.totals-row td.day-base,
.totals-row td.day-alt,
.totals-row .person,
.totals-row .total-cell{
  background:var(--total-dark)!important;color:#fff!important;border-color:#5c5359!important;
  box-shadow:none!important;position:static!important;bottom:auto!important;z-index:auto!important;
}
.totals-row strong,.totals-row .person strong,.totals-row .total-cell strong{color:#fff!important;font-weight:950!important;letter-spacing:.04em;}
.totals-row td.day-start{border-left:2px solid #6b6268!important;}
.cal-table th.total-head{background:var(--total-dark)!important;color:#fff!important;border-color:#5c5359!important;}
.cal-table td.total.total-cell{
  background:var(--total-dark)!important;color:#fff!important;border-color:#5c5359!important;
}
.cal-table td.total.total-cell strong{color:#fff!important;font-weight:950!important;}
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{background:var(--total-dark)!important;color:#fff!important;}
.position-total-row .total-cell.total strong,
.zone-total-row .total-cell.total strong{color:#fff!important;}

/* Keep total row visually separated at the top of body */
.cal-table tbody .totals-row:first-child td{border-top:0!important;border-bottom:2px solid #6b6268!important;}
.cal-table tbody .totals-row + tr td{border-top:0!important;}


/* v58 final calendar balance: lighter totals, daily totals in day headers, eraser icon */
:root{--total-soft:#f2eef0;--total-soft-2:#e9e2e6;--total-ink:#5b5056;}

/* Totals should guide, not dominate. Keep them at the top but light. */
.totals-row td,
.totals-row td.day-base,
.totals-row td.day-alt,
.totals-row .person,
.totals-row .total-cell{
  background:var(--total-soft)!important;
  color:var(--total-ink)!important;
  border-color:#dfd3d8!important;
  box-shadow:none!important;
  position:static!important;
  bottom:auto!important;
  z-index:auto!important;
}
.totals-row strong,
.totals-row .person strong,
.totals-row .total-cell strong{
  color:#8e0f2b!important;
  font-weight:950!important;
  letter-spacing:.03em!important;
}
.totals-row td.day-alt{background:var(--total-soft-2)!important;}
.totals-row td.day-start{border-left:2px solid #d4c3cb!important;}
.cal-table tbody .totals-row:first-child td{border-top:0!important;border-bottom:2px solid #d8c7cf!important;}

/* Total column becomes a subtle reporting column, not a dark wall. */
.cal-table th.total-head,
.cal-table td.total.total-cell,
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{
  background:#f4f0f2!important;
  color:#8e0f2b!important;
  border-color:#dacbd2!important;
  box-shadow:-4px 0 10px rgba(99,35,52,.025)!important;
}
.cal-table th.total-head{color:#8e0f2b!important;font-weight:950!important;}
.cal-table td.total.total-cell strong,
.position-total-row .total-cell.total strong,
.zone-total-row .total-cell.total strong{
  color:#8e0f2b!important;
  font-weight:950!important;
}

/* Day headers now show daily totals inline under the date. */
.day-title small{font-weight:850;color:#8a7a81!important;letter-spacing:0!important;}

/* Better zero-out icon: eraser instead of ambiguous pencil/circle. */
#toggleZeroRows::before{
  content:''!important;
  width:19px!important;height:19px!important;display:block!important;background:currentColor!important;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 21-4.3-4.3a2.5 2.5 0 0 1 0-3.5L13.2 2.7a2.5 2.5 0 0 1 3.5 0l4.6 4.6a2.5 2.5 0 0 1 0 3.5L11.1 21'/%3E%3Cpath d='M22 21H7'/%3E%3Cpath d='m5 11 8 8'/%3E%3C/svg%3E") center/contain no-repeat;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 21-4.3-4.3a2.5 2.5 0 0 1 0-3.5L13.2 2.7a2.5 2.5 0 0 1 3.5 0l4.6 4.6a2.5 2.5 0 0 1 0 3.5L11.1 21'/%3E%3Cpath d='M22 21H7'/%3E%3Cpath d='m5 11 8 8'/%3E%3C/svg%3E") center/contain no-repeat;
}
#toggleZeroRows{background:#fff3f4!important;color:#a3172f!important;border-color:#efcdd5!important;}
#toggleZeroRows:hover{background:#fff!important;}

/* Keep total row from participating in sticky/freeze header behavior. */
.cal-table tbody .totals-row{position:static!important;}
.cal-table tbody .totals-row td{position:static!important;}
.cal-table tbody .totals-row .person{position:sticky!important;left:0!important;z-index:3!important;}
.cal-table tbody .totals-row .total{position:sticky!important;right:0!important;z-index:3!important;}

/* v59: move totals into headers, remove total row, use calendar-level published signal */
.day-total-inline{
  display:inline-flex;align-items:center;justify-content:center;margin-left:8px;padding:2px 7px;
  border-radius:999px;background:#fff7f9;border:1px solid #ead2da;color:#9b1734;
  font-size:11px;font-weight:950;vertical-align:middle;letter-spacing:.02em;
}
.shift-head-label{font-weight:900;color:#6d6067;}
.shift-head-hours{display:inline-flex;margin-left:5px;color:#9b1734;font-weight:950;font-size:11px;letter-spacing:.01em;}
.cal-table thead tr:nth-child(2) th{white-space:nowrap;}
/* No total row anymore; keep any legacy total-row styling dormant. */
.totals-row{display:none!important;}
/* Softer weekly total column now that shift totals live in headers. */
.cal-table th.total-head,
.cal-table td.total.total-cell,
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{
  background:#f7f3f5!important;color:#8e0f2b!important;border-color:#dfd3d9!important;box-shadow:-2px 0 7px rgba(99,35,52,.02)!important;
}
.cal-table td.total.total-cell strong{color:#8e0f2b!important;font-weight:950!important;}
/* Published state: keep slots stable, signal at the calendar container level. */
.calendar.published-calendar{
  border:2px solid rgba(22,163,74,.34)!important;
  box-shadow:0 0 0 5px rgba(34,197,94,.08), 0 18px 55px rgba(99,35,52,.06)!important;
}
.calendar.published-calendar::before{
  content:'Published';position:absolute;right:16px;top:-13px;
  background:#ecfdf3;border:1px solid #bfe8ce;color:#16733a;border-radius:999px;padding:3px 10px;
  font-size:11px;font-weight:950;letter-spacing:.03em;z-index:8;
}
.calendar{position:relative;}
/* Remove published-only slot treatment so cards stay visually consistent. */
.slot.is-published,.slot.own.is-published,.slot.own.is-published:hover{box-shadow:0 1px 0 rgba(255,255,255,.65) inset!important;}
.slot.available.is-published{box-shadow:0 1px 0 rgba(255,255,255,.65) inset!important;}

/* v60: final zone selector + totals/published balance */
/* Native inline zone selector: looks like employee slot text, opens directly on click. */
.native-zone-wrap{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  width:auto!important;
  max-width:100%!important;
  margin:2px 0 3px!important;
  padding:2px 5px!important;
  border:1px solid transparent!important;
  border-radius:9px!important;
  background:transparent!important;
  cursor:pointer!important;
  color:#6e5861!important;
  font-weight:900!important;
}
.native-zone-wrap:hover,
.native-zone-wrap:focus-within{
  background:#fff!important;
  border-color:#ead1d8!important;
  box-shadow:0 4px 12px rgba(99,35,52,.08)!important;
}
.native-zone-wrap .zone-dot{flex:0 0 auto!important;margin:0!important;}
.zone-inline-native{
  appearance:none!important;
  -webkit-appearance:none!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#6e5861!important;
  font-size:12px!important;
  font-weight:950!important;
  line-height:1.1!important;
  padding:0 14px 0 0!important;
  margin:0!important;
  width:auto!important;
  max-width:70px!important;
  cursor:pointer!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
.zone-inline-native:focus{outline:0!important;}
.native-zone-wrap::after{
  content:'⌄';
  margin-left:-10px;
  color:#9b1734;
  font-size:11px;
  pointer-events:none;
  transform:translateY(-1px);
}
/* Retire previous two-step inline selector UI. */
.inline-zone-select-wrap{display:none!important;}
.zone-picker-button{display:none!important;}

/* Totals: medium/light reporting emphasis, no black wall. */
.cal-table th.total-head,
.cal-table td.total.total-cell,
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{
  background:#ece4e8!important;
  color:#8e0f2b!important;
  border-color:#d2c1ca!important;
  box-shadow:-2px 0 8px rgba(99,35,52,.035)!important;
}
.cal-table th.total-head{font-weight:950!important;}
.cal-table td.total.total-cell strong,
.position-total-row .total-cell.total strong,
.zone-total-row .total-cell.total strong{color:#8e0f2b!important;font-weight:950!important;}
.position-total.grand,
.zone-total.grand{
  background:#3b3439!important;
  border-color:#3b3439!important;
  color:#fff!important;
}
.position-total.grand span,
.zone-total.grand span,
.position-total.grand strong,
.zone-total.grand strong{color:#fff!important;}

/* Published state: slightly stronger green signal at container level, but keep slot styling stable. */
.calendar.published-calendar{
  border:2px solid rgba(22,163,74,.48)!important;
  box-shadow:0 0 0 6px rgba(34,197,94,.13), 0 0 24px rgba(34,197,94,.10), 0 18px 55px rgba(99,35,52,.055)!important;
}
.calendar.published-calendar::before{
  background:#e9fbee!important;
  border-color:#9bd9ad!important;
  color:#16733a!important;
}

/* v61 final readability polish: header totals, native zone selector, calmer totals, micro UX */
:root{
  --total-column:#ded5da;
  --total-column-head:#d2c8ce;
  --total-grey:#3f383d;
}
/* native zone select should read exactly like text until hover/focus */
.native-zone-wrap{
  padding:1px 4px!important;
  gap:5px!important;
  min-width:0!important;
  max-width:100%!important;
}
.native-zone-wrap::after{
  opacity:0!important;
  width:0!important;
  margin-left:0!important;
  transition:opacity .12s ease,width .12s ease,margin .12s ease!important;
}
.native-zone-wrap:hover::after,
.native-zone-wrap:focus-within::after{
  opacity:1!important;
  width:10px!important;
  margin-left:2px!important;
}
.zone-inline-native{
  max-width:none!important;
  min-width:42px!important;
  width:auto!important;
  padding-right:0!important;
  color:#5c4b52!important;
  text-overflow:clip!important;
}
.native-zone-wrap:hover .zone-inline-native,
.native-zone-wrap:focus-within .zone-inline-native{padding-right:10px!important;}

/* softer but clearer total column */
.cal-table th.total-head,
.cal-table td.total.total-cell,
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{
  background:var(--total-column)!important;
  color:#8e0f2b!important;
  border-color:#cab8c1!important;
  box-shadow:-2px 0 8px rgba(99,35,52,.04)!important;
}
.cal-table th.total-head{background:var(--total-column-head)!important;}
.position-total.grand,
.zone-total.grand{
  background:var(--total-grey)!important;
  border-color:var(--total-grey)!important;
  color:#fff!important;
}
.position-total.grand span,.zone-total.grand span,.position-total.grand strong,.zone-total.grand strong{color:#fff!important;}
.calendar{border-radius:16px!important;}

/* Header totals: compact, less shouty, and aligned */
.day-title{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:6px!important;width:100%!important;}
.day-title .day-label{display:inline-flex!important;align-items:center!important;gap:5px!important;white-space:nowrap!important;}
.day-total-inline{font-size:10.5px!important;padding:2px 6px!important;margin-left:6px!important;}
.shift-head-label{text-transform:none!important;font-weight:750!important;color:#6d6067!important;letter-spacing:.015em!important;}
.shift-head-hours{font-size:10.5px!important;color:#9b1734!important;font-weight:850!important;margin-left:4px!important;}
.cal-table thead tr:nth-child(2) th{font-size:12px!important;padding-top:7px!important;padding-bottom:7px!important;}

/* Note icon: right side, minimal; note exists = soft blue fill only */
.note-icon{margin-left:auto!important;background:#fff!important;color:#9b1734!important;border:1px solid #ead6dd!important;box-shadow:none!important;}
.note-icon.has-note{background:#edf7ff!important;border-color:#6fb2e8!important;color:#1769aa!important;}
.note-icon.has-note::after,.note-icon::after{display:none!important;content:none!important;}

/* Empty slot readability */
.slot.empty,.slot:not(.available):not(.assigned){display:flex!important;align-items:center!important;justify-content:center!important;}
.empty-label{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;width:100%!important;height:100%!important;opacity:.72!important;font-size:12px!important;}

/* Slot hierarchy and scanability */
.slot .name{font-weight:950!important;line-height:1.1!important;}
.slot .zone{font-weight:850!important;font-size:12px!important;color:#5f4d55!important;}
.slot .meta{font-size:12px!important;color:#7e7077!important;white-space:nowrap!important;}
.calendar-row:hover > td:not(.total){background-color:rgba(155,23,52,.025)!important;}
.slot:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(99,35,52,.08),0 1px 0 rgba(255,255,255,.65) inset!important;}

/* Action toolbar: filled icon buttons, centered eraser */
.icon-action{width:40px!important;height:40px!important;min-width:40px!important;padding:0!important;border-radius:13px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;line-height:1!important;}
.icon-action::before{margin:0!important;display:block!important;}
#toggleZeroRows::before{width:18px!important;height:18px!important;margin:auto!important;}
#toggleZeroRows{display:inline-flex!important;align-items:center!important;justify-content:center!important;background:#fff1f3!important;color:#a3172f!important;border-color:#efcdd5!important;}
.icon-action.whatsapp{background:#ecfbf2!important;border-color:#bfebcf!important;color:#128c45!important;}
#copyLastWeek{background:#fff6f8!important;border-color:#ead1d8!important;color:#9b1734!important;}
#resetBtn{background:#fff3e9!important;border-color:#ffd8bd!important;color:#b9551c!important;}
#printBtn{background:#fff6f8!important;border-color:#ead1d8!important;color:#9b1734!important;}

/* Published state a touch clearer, but not loud */
.calendar.published-calendar{border-color:rgba(22,163,74,.55)!important;box-shadow:0 0 0 6px rgba(34,197,94,.14),0 0 28px rgba(34,197,94,.12),0 18px 55px rgba(99,35,52,.05)!important;}

/* Phone: avoid cramped text after h/mm formatting */

/* v62 final micro-polish: compact hours, clean day headers, short zone select */
:root{--total-column:#cfc5cb;--total-column-head:#c4bac1;--total-grey:#3a3538;}
.position-total.grand,.zone-total.grand{background:#3a3538!important;border-color:#3a3538!important;}
.cal-table th.total-head,.cal-table td.total.total-cell,.position-total-row .total-cell.total,.zone-total-row .total-cell.total{background:#cfc5cb!important;color:#8e0f2b!important;}
.cal-table th.total-head{background:#c4bac1!important;}
.calendar{border-radius:12px!important;}
.day-title{display:grid!important;grid-template-columns:1fr auto auto!important;align-items:center!important;gap:7px!important;width:100%!important;min-width:0!important;}
.day-left{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:1px!important;min-width:0!important;}
.day-left strong{font-size:12px!important;line-height:1!important;color:#6d6067!important;letter-spacing:.04em!important;}
.day-left small{font-size:11px!important;line-height:1.05!important;color:#91828a!important;}
.day-total-inline{justify-self:center!important;margin:0!important;font-size:11px!important;white-space:nowrap!important;color:#9b1734!important;background:#fff7fa!important;border:1px solid #efd8df!important;}
.note-icon{justify-self:end!important;margin-left:0!important;}
.note-icon.has-note{background:#e9f5ff!important;border-color:#5eaee8!important;color:#1769aa!important;}
.cal-table thead tr:nth-child(2) th{padding:6px 6px!important;vertical-align:middle!important;}
.shift-head-label{display:block!important;text-transform:none!important;font-weight:650!important;font-size:12px!important;line-height:1.05!important;color:#6c6067!important;letter-spacing:0!important;}
.shift-head-hours{display:block!important;margin:3px 0 0 0!important;font-size:11px!important;line-height:1.05!important;color:#9b1734!important;font-weight:850!important;white-space:nowrap!important;}
.zone-inline-native{font-weight:900!important;color:#5f4d55!important;max-width:72px!important;}
.native-zone-wrap{overflow:visible!important;}
.native-zone-wrap:hover,.native-zone-wrap:focus-within{background:#fff!important;box-shadow:0 1px 0 rgba(255,255,255,.8) inset!important;}
.empty-label{align-self:center!important;justify-self:center!important;margin:auto!important;}
.zone-total span{min-width:0!important;}
.zone-total strong,.position-total strong{white-space:nowrap!important;}
@media(max-width:900px){.day-title{grid-template-columns:1fr auto!important}.note-icon{grid-column:2}.day-total-inline{grid-column:1;justify-self:start}.shift-head-label{font-size:11px!important}.shift-head-hours{font-size:10px!important}}


/* v63 final consistency polish: last pass before backend */
/* Owner slots: short zone label only, no squeezed full-name rendering */
.zone-inline-native{
  max-width:76px!important;
  min-width:0!important;
  width:auto!important;
  text-overflow:clip!important;
  font-weight:900!important;
  color:#5f4d55!important;
  appearance:none!important;
  -webkit-appearance:none!important;
  background:transparent!important;
  border:0!important;
  padding:0!important;
  line-height:1.1!important;
}
.native-zone-wrap:hover .zone-inline-native,
.native-zone-wrap:focus-within .zone-inline-native{
  appearance:auto!important;
  -webkit-appearance:auto!important;
  padding-right:12px!important;
  background:#fff!important;
}
.native-zone-wrap{
  max-width:100%!important;
  background:transparent!important;
  border-radius:999px!important;
  line-height:1.1!important;
}
.native-zone-wrap:hover,
.native-zone-wrap:focus-within{
  background:#fff!important;
}

/* Hours should always stay lowercase even inside uppercase table headers. */
.day-total-inline,
.shift-head-hours,
.total-cell strong,
.position-total strong,
.zone-total strong,
.metric-value,
.hours-value{
  text-transform:none!important;
  font-variant-caps:normal!important;
}

/* Day header: day/date left, hours centered, info right. */
.day-title{
  display:grid!important;
  grid-template-columns:1fr auto 1fr!important;
  align-items:center!important;
  gap:7px!important;
  width:100%!important;
}
.day-left{justify-self:start!important;}
.day-total-inline{
  justify-self:center!important;
  text-align:center!important;
  min-width:42px!important;
  font-size:10.5px!important;
  line-height:1!important;
  padding:4px 7px!important;
}
.note-icon{
  justify-self:end!important;
  margin-left:0!important;
}

/* Lunch/evening headers: softer, compact, avoid overlap. */
.shift-head-label{
  text-transform:none!important;
  font-weight:600!important;
  font-size:11.5px!important;
  color:#665c63!important;
  letter-spacing:0!important;
}
.shift-head-hours{
  display:block!important;
  margin-top:2px!important;
  font-size:10.5px!important;
  font-weight:800!important;
  color:#9b1734!important;
  white-space:nowrap!important;
}

/* Empty slots: consistent, centered, less heavy. */
.empty-label{
  font-weight:500!important;
  color:#9d9298!important;
  opacity:.72!important;
  text-align:center!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  height:100%!important;
}

/* Zone metric cards: give names and values breathing room. */
.zone-summary .zone-total{
  min-width:0!important;
  gap:7px!important;
  padding-left:8px!important;
  padding-right:8px!important;
}
.zone-summary .zone-total span{
  min-width:0!important;
  max-width:68px!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:normal!important;
  line-height:1.05!important;
  font-size:11px!important;
}
.zone-summary .zone-total strong{
  flex:0 0 auto!important;
  font-size:13px!important;
  line-height:1!important;
  margin-left:auto!important;
}
.zone-summary .zone-total.grand span{max-width:none!important;overflow:visible!important;}
.zone-summary .zone-total.grand strong{font-size:15px!important;}

/* A touch more balanced total column after the final dark/soft iterations. */
.cal-table th.total-head,
.cal-table td.total.total-cell,
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{
  background:#c7bdc3!important;
  color:#8e0f2b!important;
  border-left:1px solid #b9abb2!important;
}
.cal-table th.total-head{background:#bfb4bb!important;}

@media(max-width:900px){
  .day-title{grid-template-columns:1fr auto!important;}
  .note-icon{grid-column:2!important;grid-row:1!important;}
  .day-total-inline{grid-column:1 / -1!important;justify-self:start!important;margin-top:3px!important;}
}

/* v64 final scanability polish: direct zone picker, softer totals, compact headers */
/* Direct in-place zone selector: show clean short label, native select overlays invisibly. */
.native-zone-wrap{
  position:relative!important;
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  max-width:100%!important;
  min-width:0!important;
  padding:2px 5px!important;
  border-radius:999px!important;
  background:transparent!important;
  cursor:pointer!important;
}
.native-zone-wrap:hover,
.native-zone-wrap:focus-within{
  background:#fff!important;
  box-shadow:0 0 0 1px rgba(155,23,52,.10),0 2px 8px rgba(99,35,52,.07)!important;
}
.zone-display{
  display:inline-flex!important;
  align-items:center!important;
  gap:4px!important;
  min-width:0!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  font-weight:900!important;
  color:#5f4d55!important;
  line-height:1.05!important;
  pointer-events:none!important;
}
.native-zone-wrap .zone-dot{flex:0 0 auto!important;margin-right:0!important;}
.zone-inline-native{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  opacity:0!important;
  cursor:pointer!important;
  border:0!important;
  margin:0!important;
  padding:0!important;
  appearance:auto!important;
  -webkit-appearance:menulist!important;
}
.native-zone-wrap:hover .zone-inline-native,
.native-zone-wrap:focus-within .zone-inline-native{
  opacity:0!important;
  background:transparent!important;
}

/* Day totals: plain readable text, not a button/pill. */
.day-total-inline{
  background:transparent!important;
  border:0!important;
  padding:0!important;
  min-width:0!important;
  color:#9b1734!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1!important;
  box-shadow:none!important;
}
.day-title{grid-template-columns:1fr auto 1fr!important;}
.note-icon{justify-self:end!important;}

/* Shift headers: even more compact, two-line and never crowded. */
.shift-head-label{
  font-size:11px!important;
  font-weight:560!important;
  line-height:1.05!important;
  color:#665c63!important;
}
.shift-head-hours{
  font-size:10px!important;
  font-weight:850!important;
  line-height:1!important;
  margin-top:2px!important;
  color:#9b1734!important;
}

/* Total column: weekly total only, visible but not a wall. */
.cal-table th.total-head,
.cal-table td.total.total-cell,
.position-total-row .total-cell.total,
.zone-total-row .total-cell.total{
  background:#ddd5da!important;
  color:#8e0f2b!important;
  border-left:1px solid #cbbfc5!important;
  box-shadow:none!important;
}
.cal-table th.total-head{background:#d2c8cf!important;}
.cal-table .total{min-width:58px!important;width:58px!important;}

/* Metric total chips: dark grey, not black. */
.position-total.grand,
.zone-total.grand{
  background:#3a3538!important;
  border-color:#3a3538!important;
  color:#fff!important;
}
.position-total.grand span,
.zone-total.grand span,
.position-total.grand strong,
.zone-total.grand strong{color:#fff!important;}

/* Zone summary: tighter bullet/name/value to avoid collisions. */
.zone-summary .zone-total{
  gap:4px!important;
  padding:7px 9px!important;
  min-height:38px!important;
}
.zone-summary .zone-dot{margin-right:2px!important;}
.zone-summary .zone-total span{
  max-width:62px!important;
  font-size:10.5px!important;
  line-height:1.02!important;
  letter-spacing:-.01em!important;
}
.zone-summary .zone-total strong{
  font-size:12px!important;
  margin-left:4px!important;
}
.zone-summary .zone-total.grand strong{font-size:14px!important;}

/* Empty cells stay calm and centered. */
.empty-label{font-weight:500!important;color:#9e9499!important;opacity:.72!important;}

/* Slightly less rounded calendar shell for a cleaner table feel. */
.calendar{border-radius:10px!important;}


/* v65 final polish: remove duplicate total chips, lighter dates, compact zone metrics */
.day-left small{font-weight:500!important;color:#8d8086!important;opacity:.78!important;letter-spacing:0!important}
.compact-metrics .zone-total{padding:6px 8px!important;gap:4px!important;min-height:34px!important;grid-template-columns:minmax(0,1fr) auto!important}
.compact-metrics .zone-total span{font-size:11px!important;line-height:1.05!important;gap:3px!important;min-width:0!important;overflow:hidden;text-overflow:ellipsis}
.compact-metrics .zone-total strong{font-size:14px!important;line-height:1!important;white-space:nowrap}
.compact-metrics .position-total{justify-content:center!important;align-items:center!important}
.compact-metrics .position-total span{font-size:11.5px!important;line-height:1.05!important}
.compact-metrics .position-total strong{font-size:17px!important;line-height:1!important}
.week-total-head{font-weight:900!important;color:#7c1028!important;background:#d6ccd1!important}
.total.total-head{background:#d6ccd1!important}

/* v66 interaction polish: unified week control, clickable metrics, detail panel */
.compact-week-nav{
  border:1px solid var(--line)!important;
  border-radius:999px!important;
  padding:3px!important;
  gap:0!important;
  overflow:hidden!important;
  background:#fff!important;
  box-shadow:0 10px 28px rgba(99,35,52,.055)!important;
}
.compact-week-nav button,
.compact-week-nav input{
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.compact-week-nav button{
  border-radius:0!important;
  color:var(--red)!important;
}
.compact-week-nav button:first-child{border-radius:999px 10px 10px 999px!important;}
.compact-week-nav button:last-child{border-radius:10px 999px 999px 10px!important;}
.compact-week-nav button:hover{background:#fff4f6!important;}
.compact-week-nav label{padding:0 8px!important;border-left:1px solid rgba(234,221,225,.65)!important;border-right:1px solid rgba(234,221,225,.65)!important;}
.day-left small{color:#756970!important;opacity:.92!important;font-weight:560!important;}
.metric-chip{cursor:pointer!important;border:1px solid rgba(234,221,225,.9)!important;box-shadow:none!important;text-align:left!important;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,filter .15s ease!important;}
.metric-chip:hover{transform:translateY(-1px)!important;box-shadow:0 10px 22px rgba(99,35,52,.10)!important;filter:saturate(1.03)!important;}
.metric-chip.active{box-shadow:0 0 0 2px rgba(155,23,52,.22),0 12px 30px rgba(99,35,52,.12)!important;border-color:rgba(155,23,52,.45)!important;}
.calendar-row.metric-row-focus>td{box-shadow:inset 0 0 0 999px rgba(155,23,52,.045)!important;}
.slot.metric-slot-focus{box-shadow:0 0 0 3px rgba(155,23,52,.22),0 10px 24px rgba(99,35,52,.14)!important;transform:translateY(-1px)!important;}
.metric-detail-panel{position:fixed;z-index:2000;width:300px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--line);border-radius:18px;padding:16px 16px 14px;box-shadow:0 22px 70px rgba(40,20,28,.22);animation:metricPop .14s ease-out;}
@keyframes metricPop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.metric-detail-panel h4{margin:4px 34px 12px 0;font-size:18px;line-height:1.1;}
.metric-close{position:absolute;right:10px;top:10px;width:28px;height:28px;min-width:28px;border-radius:999px;padding:0;background:#fff;color:var(--red);border:1px solid var(--line);box-shadow:none;font-size:18px;line-height:1;}
.metric-detail-list{display:grid;gap:7px;max-height:230px;overflow:auto;}
.metric-detail-list div{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid rgba(234,221,225,.75);background:#fbf7f8;border-radius:12px;padding:8px 10px;}
.metric-detail-list strong{font-size:13px;}
.metric-detail-list span{font-weight:900;color:var(--red);white-space:nowrap;}
.position-total.metric-chip,.zone-total.metric-chip{font:inherit!important;color:inherit!important;padding:0!important;display:flex!important;align-items:center!important;justify-content:space-between!important}
.zone-total.metric-chip{display:grid!important}
.position-total.metric-chip span,.zone-total.metric-chip span{color:#6b6066!important}
.position-total.metric-chip strong,.zone-total.metric-chip strong{color:#9b1734!important}

/* v67 interaction polish: richer metric panels, stronger highlights, cohesive week control */
.compact-week-nav{
  border:1px solid rgba(234,221,225,.95)!important;
  background:#fff!important;
  border-radius:999px!important;
  overflow:hidden!important;
  gap:0!important;
  box-shadow:0 12px 32px rgba(99,35,52,.055)!important;
}
.compact-week-nav button,
.compact-week-nav input{
  border:0!important;
  box-shadow:none!important;
  background:transparent!important;
}
.compact-week-nav button:hover{background:#fff3f6!important;}
.compact-week-nav label{border-left:1px solid rgba(234,221,225,.72)!important;border-right:1px solid rgba(234,221,225,.72)!important;}
.calendar-row.metric-row-focus>td:not(.total){
  box-shadow:inset 0 0 0 999px rgba(59,130,246,.075)!important;
  border-top-color:rgba(59,130,246,.32)!important;
  border-bottom-color:rgba(59,130,246,.32)!important;
}
.calendar-row.metric-row-focus .person{
  box-shadow:inset 4px 0 0 rgba(59,130,246,.72), inset 0 0 0 999px rgba(59,130,246,.09)!important;
}
.slot.metric-slot-focus{
  background:rgba(14,165,183,.12)!important;
  border-color:rgba(8,145,178,.55)!important;
  box-shadow:0 0 0 3px rgba(8,145,178,.16),0 12px 26px rgba(8,145,178,.12)!important;
  transform:translateY(-1px)!important;
}
.metric-detail-panel{
  width:380px!important;
  border-radius:18px!important;
  padding:15px!important;
}
.metric-detail-panel h4{display:flex;align-items:baseline;gap:8px;margin-bottom:10px!important;}
.metric-detail-panel h4 small{font-size:13px;color:var(--red);font-weight:900;}
.metric-detail-list.rich{display:grid;gap:10px;max-height:340px;overflow:auto;padding-right:2px;}
.metric-detail-list.rich div{display:block;border:0;background:transparent;border-radius:0;padding:0;}
.metric-person-card{border:1px solid rgba(234,221,225,.85);background:#fbf7f8;border-radius:14px;padding:10px;}
.metric-person-head{display:flex!important;align-items:center;justify-content:space-between;gap:10px;margin-bottom:5px;}
.metric-person-head strong{font-size:13px;color:#1e171b;}
.metric-person-head span{font-weight:900;color:var(--red);white-space:nowrap;}
.metric-split{display:flex!important;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.metric-split span{font-size:11px;font-weight:800;color:#6b6066;background:#fff;border:1px solid rgba(234,221,225,.82);border-radius:999px;padding:3px 7px;}
.metric-day-line{display:grid!important;grid-template-columns:36px 1fr 1fr auto;align-items:center;gap:7px;border-top:1px dashed rgba(210,178,188,.85)!important;padding-top:6px!important;margin-top:6px!important;font-size:11px;}
.metric-day-name{font-weight:900;color:#9b1734;letter-spacing:.02em;}
.metric-day-slot{color:#5d5358;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.metric-day-slot b{font-size:10px;color:#7a6870;text-transform:none;margin-right:3px;}
.metric-day-total{font-weight:900;color:#9b1734;white-space:nowrap;}
.mini-hours{font-weight:900;color:#9b1734;}
.tiny{font-size:11px;}
@media(max-width:700px){.metric-detail-panel{width:calc(100vw - 28px)!important;left:14px!important}.metric-day-line{grid-template-columns:32px 1fr;}.metric-day-total{grid-column:2}.metric-day-slot{white-space:normal}}


/* v68 final metric popup + highlight polish */
.metric-detail-panel{
  width:540px!important;
  max-width:calc(100vw - 32px)!important;
  padding:18px!important;
}
.metric-detail-panel h4{font-size:20px!important;margin-bottom:10px!important;}
.metric-total-line{
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:8px;
  align-items:center;
  margin:6px 0 12px;
  padding:10px 12px;
  border:1px solid rgba(234,221,225,.9);
  background:#fff;
  border-radius:12px;
  font-size:12px;
  font-weight:800;
  color:#62555c;
}
.metric-total-line b{color:#1f171b;margin-right:4px;}
.metric-total-line span{white-space:nowrap;}
.metric-person-card{padding:12px!important;background:#fffafb!important;}
.metric-person-head{margin-bottom:9px!important;}
.metric-day-line{
  grid-template-columns:42px minmax(160px,1fr) minmax(160px,1fr) 54px!important;
  gap:10px!important;
  font-size:12px!important;
}
.metric-day-slot{white-space:nowrap!important;overflow:visible!important;text-overflow:clip!important;color:#51464c!important;}
.metric-day-slot b{font-weight:700!important;color:#756970!important;background:transparent!important;border:0!important;padding:0!important;}
.metric-split{display:none!important;}
.calendar-row.row-selected>td:not(.total){
  background:rgba(59,130,246,.075)!important;
  box-shadow:inset 0 1px 0 rgba(59,130,246,.32), inset 0 -1px 0 rgba(59,130,246,.32)!important;
}
.calendar-row.row-selected .person{
  box-shadow:inset 5px 0 0 rgba(59,130,246,.82), inset 0 0 0 999px rgba(59,130,246,.09)!important;
}
.calendar-row.row-selected .slot{
  border-color:rgba(59,130,246,.38)!important;
}
.metric-row-focus .slot.available{
  border-color:rgba(59,130,246,.48)!important;
  box-shadow:0 0 0 2px rgba(59,130,246,.10)!important;
}
.slot.metric-slot-focus{
  background:rgba(14,165,183,.14)!important;
  border-color:rgba(8,145,178,.66)!important;
  box-shadow:0 0 0 3px rgba(8,145,178,.18),0 12px 26px rgba(8,145,178,.12)!important;
}
@media(max-width:700px){
  .metric-detail-panel{width:calc(100vw - 28px)!important;left:14px!important;}
  .metric-total-line{grid-template-columns:1fr;}
  .metric-day-line{grid-template-columns:38px 1fr!important;}
  .metric-day-slot{white-space:normal!important;}
}

/* v69 product UX layer: notification center, controlled highlights, hidden swap panels */
.swap-panel-hidden{display:none!important;}
.notif-wrap{position:relative;display:inline-flex;align-items:center;}
.notif-btn{width:38px!important;height:38px!important;min-width:38px!important;border-radius:14px!important;display:grid!important;place-items:center!important;background:#fff7f9!important;color:var(--red)!important;border:1px solid #e7c8d1!important;box-shadow:none!important;padding:0!important;font-size:18px!important;position:relative;}
.notif-btn:hover{background:#fff!important;transform:translateY(-1px);}
.notif-badge{position:absolute;right:-5px;top:-5px;min-width:18px;height:18px;border-radius:999px;display:none;align-items:center;justify-content:center;padding:0 5px;font-size:10px;font-weight:950;color:#fff;border:2px solid #fff;line-height:14px;}
.notif-badge.red{display:flex;background:#dc2626;}
.notif-badge.yellow{display:flex;background:#d97706;}
.notif-panel{display:none;position:absolute;right:0;top:48px;width:360px;max-width:calc(100vw - 24px);background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 24px 70px rgba(42,18,28,.18);padding:10px;z-index:2500;animation:notifPop .14s ease-out;}
.notif-panel.open{display:block;}
.notif-head{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 10px;border-bottom:1px solid rgba(234,221,225,.75);margin-bottom:6px;}
.notif-head button{height:28px!important;border-radius:10px!important;padding:0 8px!important;background:#fff!important;color:var(--red)!important;border:1px solid var(--line)!important;box-shadow:none!important;font-size:11px!important;}
.notif-item{display:grid;grid-template-columns:10px 1fr;gap:10px;padding:10px;border-radius:14px;cursor:pointer;border:1px solid transparent;align-items:flex-start;}
.notif-item:hover{background:#fbf7f8;border-color:#eadde1;}
.notif-item.unread{background:#fff9fb;}
.notif-item.action-needed{background:#fffaf1;border-color:#f5dfb5;}
.notif-item.red.action-needed{background:#fff4f4;border-color:#ffcaca;}
.notif-dot{width:9px;height:9px;border-radius:999px;margin-top:7px;background:#d97706;}
.notif-item.red .notif-dot{background:#dc2626;}
.notif-item.yellow .notif-dot{background:#d97706;}
.notif-item strong{display:block;font-size:13px;line-height:1.2;color:var(--ink);}
.notif-item small{display:block;margin-top:3px;color:var(--muted);font-size:12px;line-height:1.25;}
.notif-actions{display:flex;gap:6px;margin-top:8px;}
.notif-actions button{height:28px!important;border-radius:10px!important;padding:0 9px!important;font-size:11px!important;box-shadow:none!important;}
.notif-empty{padding:14px 8px;margin:0;}
@keyframes notifPop{from{opacity:0;transform:translateY(-4px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}

/* Stronger but elegant selected-row feedback */
.calendar-row.row-selected>td:not(.total){background:rgba(47,128,237,.075)!important;box-shadow:inset 0 1px 0 rgba(47,128,237,.22),inset 0 -1px 0 rgba(47,128,237,.22)!important;}
.calendar-row.row-selected .person{background:linear-gradient(90deg,rgba(47,128,237,.14),#fff)!important;border-left:4px solid #2f80ed!important;}
.calendar-row.metric-row-focus>td:not(.total){background:rgba(47,128,237,.06)!important;box-shadow:inset 0 0 0 1px rgba(47,128,237,.16)!important;}
.slot.metric-slot-focus{box-shadow:0 0 0 2px var(--zone-accent),0 10px 24px rgba(0,0,0,.06)!important;border-color:var(--zone-accent)!important;filter:saturate(1.04);}
.metric-detail-panel{width:560px!important;max-width:calc(100vw - 32px)!important;}
.metric-total-line{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;margin:8px 0 12px!important;padding:10px 12px!important;border-radius:14px!important;background:#fbf7f8!important;border:1px solid rgba(234,221,225,.85)!important;}
.metric-total-line span{font-size:12px!important;font-weight:800;color:var(--muted);}
.metric-total-line b{color:var(--ink);}
.metric-person-card{border:1px solid rgba(234,221,225,.9)!important;border-radius:16px!important;background:#fff!important;padding:12px!important;}
.metric-person-head{display:flex!important;justify-content:space-between!important;gap:10px!important;margin-bottom:8px!important;}
.metric-day-line{display:grid!important;grid-template-columns:44px minmax(170px,1fr) minmax(170px,1fr) 50px!important;gap:8px!important;align-items:center!important;padding:7px 0!important;border-top:1px dashed rgba(234,221,225,.9)!important;}
.metric-day-line:first-of-type{border-top:0!important;}
.metric-day-name{font-weight:900!important;color:var(--red)!important;}
.metric-day-slot{font-size:12px!important;color:var(--muted)!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
.metric-day-slot b{font-weight:800!important;color:var(--ink)!important;margin-right:3px!important;}
.metric-day-total{font-weight:950!important;color:var(--red)!important;text-align:right!important;}
.mini-hours{color:var(--red)!important;font-weight:900!important;}

/* Slightly more contained calendar scrolling without whole-page jumps */
.calendar{scroll-behavior:smooth;}
@media(max-width:700px){.notif-panel{right:-80px;width:330px}.metric-detail-panel{width:calc(100vw - 28px)!important}.metric-day-line{grid-template-columns:36px 1fr!important}.metric-day-slot,.metric-day-total{grid-column:2!important;text-align:left!important}}



/* v94 desktop metrics polish
   Zone chips are more compact vertically, while the label area gets more usable room. */
  min-height:120px!important;
  padding-top:16px!important;
  padding-bottom:14px!important;
}
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
  gap:8px 9px!important;
  align-content:start!important;
}
  min-height:38px!important;
  padding:7px 10px!important;
  gap:4px!important;
  grid-template-columns:minmax(78px,1fr) auto!important;
  border-radius:11px!important;
}
  font-size:12px!important;
  letter-spacing:-.01em!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
  font-size:15px!important;
  min-width:42px!important;
  text-align:right!important;
}
  font-size:.62em!important;
  margin-left:2px!important;
}
  margin-right:3px!important;
}
/* Let the overall sticky metrics strip shrink slightly when zone chips need less height. */
  --metrics-h:154px;
}

/* v95 zone chips slightly narrower (~12%) */
  grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;
  gap:7px 8px!important;
}
  min-height:36px!important;
  padding:6px 9px!important;
  gap:4px!important;
  grid-template-columns:minmax(69px,1fr) auto!important;
}
  font-size:11.5px!important;
}
  font-size:14px!important;
  min-width:38px!important;
}
  min-height:114px!important;
  padding-top:14px!important;
  padding-bottom:12px!important;
}
  --metrics-h:148px;
}


/* v96 fix compact zone chip value clipping
   Keep the ~12% smaller chip rhythm, but reserve proper space for hours + person count. */
  grid-template-columns:repeat(auto-fit,minmax(132px,1fr))!important;
  gap:7px 8px!important;
}
  min-height:36px!important;
  padding:6px 6px!important;
  gap:3px!important;
  grid-template-columns:minmax(0,1fr) max-content!important;
  align-items:center!important;
  overflow:hidden!important;
}
  min-width:0!important;
  max-width:100%!important;
  font-size:11.3px!important;
  letter-spacing:-.025em!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
  justify-self:end!important;
  display:inline-flex!important;
  align-items:baseline!important;
  gap:2px!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  font-size:13.2px!important;
  line-height:1!important;
  white-space:nowrap!important;
  text-align:right!important;
  overflow:visible!important;
}
  display:inline!important;
  flex:0 0 auto!important;
  font-size:.58em!important;
  line-height:1!important;
  margin-left:1px!important;
  color:#7f7379!important;
}
  width:7px!important;
  height:7px!important;
  flex:0 0 7px!important;
  margin-right:2px!important;
}

/* v97 Costs / Dashboard redesign */
.cost-analysis-header,.dashboard-range-header{display:flex!important;align-items:center!important;justify-content:space-between!important;gap:18px!important;}
.cost-analysis-header h3,.dashboard-range-header h3{margin:0 0 4px!important;font-size:22px!important;}
.cost-control-stack{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:10px!important;flex-wrap:wrap!important;}
.cost-toggle button,.dashboard-range button,.dashboard-group button{min-width:82px!important;}
.section-title-row{display:flex!important;align-items:flex-start!important;justify-content:space-between!important;gap:14px!important;margin-bottom:12px!important;}
.section-title-row h3{margin:0 0 4px!important;}
.mini-badge{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-height:28px!important;padding:5px 10px!important;border-radius:999px!important;background:#fff4f6!important;border:1px solid #edd4dc!important;color:var(--red)!important;font-weight:950!important;font-size:12px!important;}
.hero-chart-panel{padding-bottom:20px!important;}
.operational-chart{min-height:250px!important;display:block!important;}
.operational-bars{align-items:end!important;min-height:230px!important;padding:14px 8px 4px!important;}
.operational-bars .stacked-col{min-width:82px!important;align-items:center!important;}
.operational-bars .stacked-track{width:48px!important;border-radius:14px!important;overflow:hidden!important;box-shadow:inset 0 0 0 1px rgba(234,221,225,.9)!important;background:#fff7fa!important;}
.operational-bars .chart-value{text-align:center!important;font-size:12px!important;line-height:1.15!important;min-height:34px!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-end!important;color:var(--red)!important;font-weight:950!important;}
.operational-bars .chart-value small{font-size:10px!important;color:#6e6369!important;font-weight:800!important;}
.legend{display:flex!important;align-items:center!important;justify-content:center!important;gap:10px 14px!important;flex-wrap:wrap!important;margin-top:12px!important;}
.legend span{display:inline-flex!important;align-items:center!important;gap:5px!important;font-size:12px!important;font-weight:800!important;color:#63585e!important;}
.legend i{width:10px!important;height:10px!important;border-radius:999px!important;display:inline-block!important;border:1px solid rgba(0,0,0,.08)!important;}
.cost-kpis,.trend-kpis{grid-template-columns:repeat(4,minmax(150px,1fr))!important;align-items:stretch!important;}
.cost-kpis>div,.trend-kpis>div{min-height:112px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;text-align:center!important;padding:16px 14px!important;}
.cost-kpis span,.trend-kpis span{text-align:center!important;}
.cost-kpis strong,.trend-kpis strong{font-size:25px!important;line-height:1.05!important;}
.cost-kpis small,.trend-kpis small{margin-top:6px!important;min-height:18px!important;}
.alert-grid{align-items:stretch!important;}
.alert-card{min-height:94px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;border-radius:18px!important;padding:14px 16px!important;}
.alert-card.bad{background:#fff1f2!important;border-color:#fecdd3!important;color:#9f1239!important;}
.alert-card.warn{background:#fffbeb!important;border-color:#fde68a!important;color:#92400e!important;}
.alert-card.ok{background:#ecfdf5!important;border-color:#bbf7d0!important;color:#166534!important;}
.alert-card.neutral{background:#f8fafc!important;border-color:#e2e8f0!important;color:#475569!important;}
.dashboard-grid{align-items:stretch!important;}
.dashboard-grid>.panel{height:100%!important;}
.trend-chart .chart-bars{min-height:210px!important;align-items:end!important;}
.combo-row{align-items:center!important;}
.combo-row>div:first-child strong{display:flex!important;align-items:center!important;gap:5px!important;}
.combo-row small{display:block!important;margin-top:3px!important;}
@media(max-width:900px){.cost-analysis-header,.dashboard-range-header{display:block!important}.cost-control-stack{justify-content:flex-start!important;margin-top:12px!important}.cost-kpis,.trend-kpis{grid-template-columns:1fr 1fr!important}.operational-bars .stacked-col{min-width:68px!important}.operational-bars .stacked-track{width:42px!important}}

/* v98 costs/dashboard polish */
.cost-analysis-header .cost-control-stack{justify-content:flex-end!important}
.chart-value{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-end!important;gap:2px!important;min-height:42px!important;line-height:1.1!important}
.chart-value strong{display:block!important;font-size:14px!important;line-height:1.05!important;color:var(--red)!important}
.chart-value small{display:block!important;font-size:11px!important;line-height:1.05!important;color:var(--muted)!important;font-weight:900!important}
.combo-row{grid-template-columns:minmax(180px,240px) minmax(160px,1fr) 48px!important;gap:12px!important;align-items:center!important;padding:12px 14px!important;border-radius:16px!important}
.combo-info{min-width:0!important}
.combo-info strong{display:flex!important;align-items:center!important;gap:6px!important;font-size:15px!important;color:var(--ink)!important}
.combo-info small{display:block!important;margin-top:4px!important;font-size:13px!important;line-height:1.1!important;color:var(--muted)!important;font-weight:850!important}
.combo-bar{position:relative!important;height:14px!important;border-radius:999px!important;background:#f4eaee!important;overflow:hidden!important;box-shadow:inset 0 0 0 1px rgba(145,80,98,.08)!important}
.combo-bar span{display:block!important;height:100%!important;border-radius:999px!important;background:var(--pos-color,var(--red))!important;box-shadow:none!important}
 .zone-combo .combo-bar{background:#f7f4f5!important}
 .zone-combo .combo-bar span{background:var(--zone-accent,#8a7b82)!important}
.combo-meta{font-size:12px!important;font-weight:900!important;color:var(--red)!important;text-align:right!important;white-space:nowrap!important}
.cost-dual-breakdown{gap:12px!important}
.mini-breakdown-panel{padding:14px!important;border:1px solid var(--line)!important;border-radius:16px!important;background:#fff!important;box-shadow:none!important}
.mini-breakdown-panel h4{margin:0 0 4px!important;font-size:15px!important}
.mini-breakdown-panel .muted{margin:0 0 6px!important;font-size:12px!important}
#positionBreakdown .combo-row,#zoneBreakdown .combo-row,#dashboardPositionBreakdown .combo-row,#dashboardZoneBreakdown .combo-row{margin-bottom:10px!important}
#dashboardCostTrend .stacked-bars,#dashboardHoursTrend .stacked-bars{min-height:220px!important}
#dashboardCostTrend .stacked-col,#dashboardHoursTrend .stacked-col{min-width:70px!important}
#dashboardCostTrend .stacked-track,#dashboardHoursTrend .stacked-track{width:44px!important}
@media(max-width:900px){
  .combo-row{grid-template-columns:1fr!important}
  .combo-meta{text-align:left!important}
  .cost-dual-breakdown{grid-template-columns:1fr!important}
}

/* v99 zone color fixes for legends and stacked bars + dashboard people labels */
.legend i[class*="zone-accent-"],
.stacked-track span[class*="zone-accent-"]{
  background:var(--zone-accent,#8a7b82)!important;
}
.legend i[class*="pos-"],
.stacked-track span[class*="pos-"]{
  background:var(--pos-color,var(--red))!important;
}

/* v103 dashboard trend charts: keep inside panels, tighter spacing */
.dashboard-grid,
.dashboard-grid > .panel,
.trend-chart,
#dashboardCostTrend,
#dashboardHoursTrend{
  min-width:0!important;
}
.trend-chart{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.trend-chart .stacked-bars{
  width:100%!important;
  min-width:0!important;
  gap:8px!important;
  padding:10px 2px 4px!important;
  min-height:200px!important;
  justify-content:space-between!important;
}
.trend-chart .stacked-col{
  min-width:0!important;
  flex:1 1 0!important;
  gap:4px!important;
}
.trend-chart .stacked-track{
  width:44px!important;
  max-width:100%!important;
}
.trend-chart .chart-value{
  min-height:42px!important;
  padding:0 2px!important;
}
.trend-chart .chart-value strong{
  font-size:12px!important;
}
.trend-chart .chart-value small{
  font-size:10px!important;
}
@media (max-width: 1200px){
  .trend-chart .stacked-bars{gap:6px!important;}
  .trend-chart .stacked-track{width:40px!important;}
}

/* v104 day breakdown containment + dynamic stack polish */
#dayOverview{
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.cost-dual-breakdown{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
  gap:14px!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.cost-dual-breakdown > .mini-breakdown-panel{
  min-width:0!important;
  max-width:100%!important;
  overflow:hidden!important;
}
.cost-dual-breakdown .stacked-chart{
  width:100%!important;
  max-width:100%!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
.cost-dual-breakdown .stacked-bars{
  width:100%!important;
  min-width:0!important;
  gap:8px!important;
  justify-content:space-between!important;
  padding:10px 2px 4px!important;
  min-height:205px!important;
}
.cost-dual-breakdown .stacked-col{
  min-width:0!important;
  flex:1 1 0!important;
  gap:5px!important;
}
.cost-dual-breakdown .stacked-track{
  width:44px!important;
  max-width:100%!important;
}
.cost-dual-breakdown .chart-value{
  min-height:42px!important;
  padding:0 2px!important;
}
.cost-dual-breakdown .chart-value strong{font-size:12px!important;}
.cost-dual-breakdown .chart-value small{font-size:10px!important;}
#dayOverview > .legend{
  justify-content:center!important;
  max-width:100%!important;
}
@media(max-width:1100px){
  .cost-dual-breakdown{grid-template-columns:1fr!important;}
}

/* v105 metric detail panel grouped by day */
.metric-detail-list.by-day{display:grid;gap:12px!important;max-height:56vh!important;overflow:auto!important;padding-right:2px!important}
.metric-day-group{border:1px solid rgba(234,221,225,.9)!important;border-radius:16px!important;background:#fff!important;padding:12px!important}
.metric-day-group-head{display:grid!important;grid-template-columns:minmax(120px,1.2fr) repeat(3,auto)!important;gap:12px!important;align-items:center!important;padding-bottom:8px!important;margin-bottom:8px!important;border-bottom:1px solid rgba(234,221,225,.9)!important}
.metric-day-group-head strong{font-size:15px!important;color:var(--ink)!important}
.metric-day-group-head span{font-size:12px!important;font-weight:800!important;color:var(--muted)!important;white-space:nowrap!important}
.metric-day-group-head b{color:var(--ink)!important;margin-right:4px!important}
.metric-employee-line{display:grid!important;grid-template-columns:110px minmax(180px,1fr) minmax(180px,1fr) 60px!important;gap:12px!important;align-items:center!important;padding:8px 0!important;border-top:1px dashed rgba(234,221,225,.9)!important;font-size:12px!important}
.metric-employee-line:first-of-type{border-top:0!important}
.metric-employee-name{font-weight:900!important;color:#1e171b!important}
.metric-employee-line .metric-day-slot{white-space:nowrap!important}
.metric-employee-line .metric-day-total{text-align:right!important;font-weight:900!important;color:var(--red)!important}
@media(max-width:700px){
  .metric-day-group-head{grid-template-columns:1fr!important}
  .metric-employee-line{grid-template-columns:1fr!important;gap:4px!important}
  .metric-employee-line .metric-day-total{text-align:left!important}
}

/* v106: clearer position breakdown progress bars */
#positionBreakdown .combo-bar,
#dashboardPositionBreakdown .combo-bar{
  background:rgba(255,255,255,.92)!important;
  box-shadow:inset 0 0 0 1px rgba(155,23,52,.10)!important;
}
#positionBreakdown .combo-row.pos-maitre .combo-bar span,
#dashboardPositionBreakdown .combo-row.pos-maitre .combo-bar span{
  background:#d98fa1!important;
}
#positionBreakdown .combo-row.pos-chef .combo-bar span,
#dashboardPositionBreakdown .combo-row.pos-chef .combo-bar span{
  background:#85b6dd!important;
}
#positionBreakdown .combo-row.pos-barman .combo-bar span,
#dashboardPositionBreakdown .combo-row.pos-barman .combo-bar span{
  background:#a8cd89!important;
}
#positionBreakdown .combo-row.pos-extra .combo-bar span,
#dashboardPositionBreakdown .combo-row.pos-extra .combo-bar span{
  background:#e2c566!important;
}
#positionBreakdown .combo-row.pos-other .combo-bar span,
#dashboardPositionBreakdown .combo-row.pos-other .combo-bar span{
  background:#b9b1b5!important;
}
#positionBreakdown .combo-bar span,
#dashboardPositionBreakdown .combo-bar span{
  box-shadow:0 0 0 1px rgba(90,32,49,.08)!important;
}

/* v107 notification center: red actions + yellow info, role-filtered */
.notif-btn .legacy-count{display:none!important;}
.notif-btn .red-count,
.notif-btn .yellow-count{
  position:absolute!important;
  min-width:18px!important;
  height:18px!important;
  border-radius:999px!important;
  display:none!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 5px!important;
  font-size:10px!important;
  font-weight:950!important;
  color:#fff!important;
  border:2px solid #fff!important;
  line-height:14px!important;
  box-shadow:0 4px 10px rgba(99,35,52,.18)!important;
}
.notif-btn .red-count{right:-7px!important;top:-7px!important;background:#dc2626!important;z-index:3!important;}
.notif-btn .yellow-count{right:10px!important;top:-9px!important;background:#d97706!important;z-index:2!important;}
.notif-btn .red-count.show,
.notif-btn .yellow-count.show{display:flex!important;}
.notif-item.read{opacity:.82;}
.notif-head strong::after{content:'  Red = action · Yellow = info';font-size:10px;color:var(--muted);font-weight:800;margin-left:4px;}

/* v114 online polish: cloud status replaces reset-local action */
.cloud-status{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:34px!important;
  padding:0 12px!important;
  border-radius:999px!important;
  border:1px solid var(--line)!important;
  background:#fff!important;
  color:var(--muted)!important;
  font-size:11px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}
.cloud-status.saving{background:#fff8e8!important;border-color:#f2d48c!important;color:#9a6500!important;}
.cloud-status.saved{background:#eef9f1!important;border-color:#c7ead4!important;color:#137333!important;}
.cloud-status.error{background:#fff0f0!important;border-color:#ffd1d1!important;color:#a11717!important;}



/* v121 final production layout: single desktop + mobile responsive layer.
   Metrics are normal content. Desktop keeps only topbar/toolbar sticky.
   Mobile/tablet header, nav and toolbar are static and visible. */
body.logged-in .phone-frame{width:100%;max-width:none;margin:0;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;}
body.logged-in .topbar{background:#fff;border-bottom:1px solid var(--line);}
body.logged-in .topbar .top-tabs{display:flex;}
body.logged-in .planner-toolbar{background:#fbf7f8;border-bottom:1px solid var(--line);}
body.logged-in .page.active .calendar-top-metrics{position:static!important;top:auto!important;z-index:1!important;margin:0 0 14px!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
body.logged-in .calendar{position:relative;z-index:0;clear:both;}
body.logged-in .cal-table thead th{position:sticky!important;background:#fff!important;z-index:70!important;}
body.logged-in .cal-table thead tr:first-child th{top:var(--calendar-sticky-top,0px)!important;}
body.logged-in .cal-table thead tr:nth-child(2) th{top:calc(var(--calendar-sticky-top,0px) + var(--head1-h,46px))!important;}
body.logged-in .cal-table th.person,body.logged-in .cal-table td.person{position:sticky!important;left:0!important;background:#fff!important;z-index:80!important;}
body.logged-in .cal-table .total{position:sticky!important;right:0!important;z-index:75!important;}
body.logged-in .toolbar-right .icon-action,body.logged-in .toolbar-left .icon-action{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:42px!important;min-width:42px!important;height:42px!important;padding:0!important;}
body.logged-in .toolbar-separator{width:1px;height:30px;background:var(--line);display:inline-block;}
body.logged-in .cloud-status{display:inline-flex!important;align-items:center!important;justify-content:center!important;white-space:nowrap!important;}

@media (min-width:981px){
  body.logged-in:not(.phone) .topbar{position:sticky!important;top:0!important;z-index:300!important;display:grid!important;grid-template-columns:minmax(300px,1fr) auto minmax(300px,1fr)!important;grid-template-areas:"brand tabs actions"!important;align-items:center!important;gap:18px!important;width:100%!important;max-width:none!important;margin:0!important;padding:18px 28px 12px!important;box-shadow:0 1px 0 rgba(234,221,225,.85)!important;}
  body.logged-in:not(.phone) .brand{grid-area:brand!important;justify-self:start!important;display:flex!important;flex-direction:row!important;align-items:center!important;gap:18px!important;min-width:0!important;text-align:left!important;}
  body.logged-in:not(.phone) .brand .logo{width:220px!important;max-width:220px!important;min-width:220px!important;}
  body.logged-in:not(.phone) .topbar .top-tabs{grid-area:tabs!important;justify-self:center!important;display:flex!important;align-items:center!important;gap:10px!important;margin:0!important;padding:0!important;}
  body.logged-in:not(.phone) .topbar .top-tabs button{height:38px!important;min-width:118px!important;padding:0 18px!important;border-radius:999px!important;font-size:13px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  body.logged-in:not(.phone) .top-actions{grid-area:actions!important;justify-self:end!important;display:flex!important;align-items:center!important;gap:8px!important;flex-wrap:nowrap!important;}
  body.logged-in:not(.phone) .planner-toolbar{position:sticky!important;top:var(--topbar-h,82px)!important;z-index:290!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;grid-template-areas:"left center right"!important;align-items:center!important;gap:12px!important;width:100%!important;max-width:none!important;margin:0!important;padding:12px 28px!important;box-shadow:0 1px 0 rgba(234,221,225,.85),0 10px 22px rgba(99,35,52,.035)!important;overflow:visible!important;}
  body.logged-in:not(.phone) .toolbar-left{grid-area:left!important;justify-self:start!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;}
  body.logged-in:not(.phone) .toolbar-center{grid-area:center!important;justify-self:center!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;position:static!important;transform:none!important;}
  body.logged-in:not(.phone) .toolbar-right{grid-area:right!important;justify-self:end!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:nowrap!important;overflow:visible!important;}
  body.logged-in:not(.phone) .shell{max-width:none!important;width:100%!important;margin:0!important;padding:14px 28px 50px!important;}
  body.logged-in:not(.phone) .calendar-top-metrics.grid.two{display:grid!important;grid-template-columns:minmax(420px,1fr) minmax(520px,1fr)!important;gap:18px!important;}
}

@media (max-width:980px){
  body.logged-in .topbar,body.logged-in .planner-toolbar{position:static!important;top:auto!important;z-index:auto!important;}
  body.logged-in .topbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;grid-template-areas:"brand actions" "tabs tabs"!important;align-items:center!important;gap:12px!important;width:100%!important;max-width:none!important;margin:0!important;padding:14px 16px 10px!important;overflow:visible!important;}
  body.logged-in .brand{grid-area:brand!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important;min-width:0!important;text-align:left!important;}
  body.logged-in .brand .logo{width:clamp(180px,34vw,250px)!important;max-width:48vw!important;min-width:0!important;}
  body.logged-in .brand h1{font-size:clamp(22px,4vw,30px)!important;line-height:1.05!important;margin:0!important;}
  body.logged-in .top-actions{grid-area:actions!important;display:grid!important;grid-template-columns:auto minmax(88px,auto)!important;grid-template-rows:auto auto!important;gap:8px!important;align-items:center!important;justify-content:end!important;min-width:0!important;}
  body.logged-in .top-actions .notif-wrap{grid-column:1!important;grid-row:1!important;justify-self:end!important;}
  body.logged-in .top-actions .user-pill{grid-column:2!important;grid-row:1!important;height:38px!important;max-width:155px!important;justify-content:center!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  body.logged-in .top-actions #switchBtn{grid-column:2!important;grid-row:2!important;height:34px!important;padding:0 12px!important;white-space:nowrap!important;font-size:12px!important;justify-content:center!important;}
  body.logged-in .topbar .top-tabs{grid-area:tabs!important;display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:8px!important;width:100%!important;margin:4px 0 0!important;padding:0!important;position:static!important;overflow:visible!important;}
  body.logged-in .topbar .top-tabs button{width:100%!important;min-width:0!important;height:34px!important;padding:0 8px!important;border-radius:999px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:11.5px!important;white-space:nowrap!important;}
  body.logged-in .planner-toolbar{display:grid!important;grid-template-columns:1fr!important;grid-template-areas:"center" "left" "right"!important;gap:10px!important;width:100%!important;max-width:none!important;margin:0!important;padding:14px 16px!important;overflow:visible!important;}
  body.logged-in .toolbar-center{grid-area:center!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important;width:100%!important;}
  body.logged-in .toolbar-left{grid-area:left!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important;width:100%!important;}
  body.logged-in .toolbar-right{grid-area:right!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important;width:100%!important;overflow:visible!important;}
  body.logged-in .toolbar-right .icon-action,body.logged-in .toolbar-left .icon-action{width:40px!important;min-width:40px!important;height:40px!important;}
  body.logged-in .compact-week-nav{width:min(100%,440px)!important;max-width:440px!important;display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px!important;align-items:center!important;margin:0 auto!important;}
  body.logged-in .compact-week-nav input{width:132px!important;min-width:0!important;}
  body.logged-in .shared-metric-days{max-width:100%!important;overflow-x:auto!important;scrollbar-width:none!important;}
  body.logged-in .shared-metric-days::-webkit-scrollbar{display:none!important;}
  body.logged-in .shell{max-width:none!important;width:100%!important;margin:0!important;padding:14px 16px 36px!important;background:#fbf7f8!important;}
  body.logged-in .calendar-top-metrics.grid.two,body.logged-in .grid.two,body.logged-in .metrics{grid-template-columns:1fr!important;gap:14px!important;}
  body.logged-in .calendar{overflow:auto!important;border-radius:18px!important;}
  body.logged-in .cal-table{min-width:760px!important;}
  body.logged-in .cal-table thead th{top:0!important;}
  body.logged-in .cal-table thead tr:nth-child(2) th{top:var(--head1-h,46px)!important;}
}

@media (max-width:560px){
  body.logged-in .topbar{grid-template-columns:1fr!important;grid-template-areas:"brand" "actions" "tabs"!important;}
  body.logged-in .brand{justify-content:center!important;text-align:center!important;}
  body.logged-in .brand .logo{width:220px!important;max-width:82vw!important;}
  body.logged-in .top-actions{justify-self:center!important;grid-template-columns:auto minmax(92px,1fr) auto!important;width:min(100%,390px)!important;}
  body.logged-in .top-actions .notif-wrap{grid-column:1!important;grid-row:1!important;}
  body.logged-in .top-actions .user-pill{grid-column:2!important;grid-row:1!important;}
  body.logged-in .top-actions #switchBtn{grid-column:3!important;grid-row:1!important;height:38px!important;}
  body.logged-in .topbar .top-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:390px!important;margin-left:auto!important;margin-right:auto!important;}
  body.logged-in .compact-week-nav input{width:118px!important;font-size:12px!important;}
}

@media (max-width:390px){
  body.logged-in .top-actions{grid-template-columns:auto 1fr!important;}
  body.logged-in .top-actions #switchBtn{grid-column:1/-1!important;grid-row:2!important;width:100%!important;}
}

/* v122 layout regression recovery
   Keep v121 production/Supabase logic, restore the proven visual layout.
   This is the final layout layer: desktop and mobile rules are explicit and should be the only rules that win. */

/* Shared calendar/readability recovery */
body.logged-in .calendar{
  overflow-x:auto!important;
  overflow-y:visible!important;
  max-height:none!important;
  border-radius:22px!important;
  isolation:isolate!important;
}
body.logged-in .cal-table{
  min-width:1260px!important;
  table-layout:fixed!important;
}
body.logged-in .cal-table th,
body.logged-in .cal-table td{
  padding:8px!important;
}
body.logged-in .cal-table th.person,
body.logged-in .cal-table td.person,
body.logged-in .cal-table .person{
  min-width:190px!important;
  width:190px!important;
}
body.logged-in .person-name{
  font-size:15px!important;
  line-height:1.15!important;
  font-weight:950!important;
  color:#0f1014!important;
}
body.logged-in .person-position{
  font-size:12px!important;
  line-height:1.25!important;
  color:#6f6269!important;
  margin-top:3px!important;
}
body.logged-in .slot{
  min-height:86px!important;
  min-width:82px!important;
  border-radius:16px!important;
  padding:10px!important;
}
body.logged-in .slot .name{font-size:13px!important;font-weight:950!important;}
body.logged-in .slot .zone{font-size:12px!important;font-weight:900!important;}
body.logged-in .slot .meta{font-size:11px!important;}

/* Restore readable WHO/WHERE chips */
body.logged-in .calendar-top-metrics.grid.two{
  display:grid!important;
  grid-template-columns:minmax(420px,1fr) minmax(520px,1fr)!important;
  gap:18px!important;
  margin:0 0 16px!important;
  position:static!important;
  z-index:1!important;
}
body.logged-in .calendar-top-metrics .panel{
  padding:20px 22px!important;
  border-radius:22px!important;
}
body.logged-in .compact-metrics.position-hours{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr))!important;
  gap:12px!important;
}
body.logged-in .compact-metrics.zone-hours{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important;
  gap:10px!important;
}
body.logged-in .compact-metrics .position-total,
body.logged-in .compact-metrics .zone-total{
  min-height:46px!important;
  padding:9px 12px!important;
  border-radius:15px!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:center!important;
  gap:8px!important;
}
body.logged-in .compact-metrics .position-total span,
body.logged-in .compact-metrics .zone-total span{
  font-size:12px!important;
  line-height:1.08!important;
  font-weight:900!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
body.logged-in .compact-metrics .position-total strong,
body.logged-in .compact-metrics .zone-total strong{
  font-size:17px!important;
  line-height:1!important;
  white-space:nowrap!important;
}
body.logged-in .compact-metrics .position-total em,
body.logged-in .compact-metrics .zone-total em{
  font-size:11px!important;
  font-style:normal!important;
  color:var(--muted)!important;
  margin-left:2px!important;
}

/* Desktop: stable topbar, horizontal nav, centered week/day selector */
@media (min-width:981px){
  body.logged-in:not(.phone) .topbar{
    position:sticky!important;
    top:0!important;
    z-index:500!important;
    display:grid!important;
    grid-template-columns:minmax(330px,1fr) auto minmax(330px,1fr)!important;
    grid-template-areas:"brand tabs actions"!important;
    align-items:center!important;
    gap:20px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:18px 30px 14px!important;
    background:#fff!important;
    border-bottom:1px solid var(--line)!important;
  }
  body.logged-in:not(.phone) .brand{
    grid-area:brand!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:20px!important;
    min-width:0!important;
    text-align:left!important;
  }
  body.logged-in:not(.phone) .brand .logo{
    width:230px!important;
    min-width:230px!important;
    max-width:230px!important;
  }
  body.logged-in:not(.phone) .brand h1{font-size:28px!important;line-height:1!important;margin:0!important;}
  body.logged-in:not(.phone) .brand .eyebrow{display:block!important;font-size:11px!important;letter-spacing:.16em!important;}
  body.logged-in:not(.phone) .topbar .top-tabs{
    grid-area:tabs!important;
    position:static!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    justify-self:center!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:12px!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body.logged-in:not(.phone) .topbar .top-tabs button,
  body.logged-in:not(.phone) .topbar .top-tabs button.active{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:128px!important;
    height:40px!important;
    padding:0 20px!important;
    border-radius:999px!important;
    font-size:13px!important;
    white-space:nowrap!important;
  }
  body.logged-in.employee:not(.phone) .topbar .top-tabs{display:none!important;}
  body.logged-in:not(.phone) .top-actions{
    grid-area:actions!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
    flex-wrap:nowrap!important;
    min-width:0!important;
  }
  body.logged-in:not(.phone) .notif-btn,
  body.logged-in:not(.phone) .top-actions .notif-btn{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    padding:0!important;
    line-height:1!important;
    text-align:center!important;
  }
  body.logged-in:not(.phone) .planner-toolbar{
    position:sticky!important;
    top:var(--topbar-h,82px)!important;
    z-index:480!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
    grid-template-areas:"left center right"!important;
    align-items:center!important;
    gap:14px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:13px 30px!important;
    background:#fbf7f8!important;
    border-bottom:1px solid var(--line)!important;
    overflow:visible!important;
  }
  body.logged-in:not(.phone) .toolbar-left{grid-area:left!important;justify-self:start!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;}
  body.logged-in:not(.phone) .toolbar-center{grid-area:center!important;justify-self:center!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;position:static!important;left:auto!important;transform:none!important;}
  body.logged-in:not(.phone) .toolbar-right{grid-area:right!important;justify-self:end!important;display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;flex-wrap:nowrap!important;overflow:visible!important;}
  body.logged-in:not(.phone) .toolbar-right .icon-action,
  body.logged-in:not(.phone) .toolbar-left .icon-action{
    width:42px!important;min-width:42px!important;height:42px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;
  }
  body.logged-in:not(.phone) .cal-table thead th{position:sticky!important;background:#fff!important;z-index:120!important;}
  body.logged-in:not(.phone) .cal-table thead tr:first-child th{top:var(--calendar-sticky-top,0px)!important;}
  body.logged-in:not(.phone) .cal-table thead tr:nth-child(2) th{top:calc(var(--calendar-sticky-top,0px) + var(--head1-h,46px))!important;}
  body.logged-in:not(.phone) .cal-table th.person,
  body.logged-in:not(.phone) .cal-table td.person{position:sticky!important;left:0!important;z-index:130!important;background:#fff!important;}
  body.logged-in:not(.phone) .cal-table .total{position:sticky!important;right:0!important;z-index:125!important;}
  body.logged-in:not(.phone) .shell{max-width:none!important;width:100%!important;margin:0!important;padding:16px 30px 52px!important;}
}

/* Mobile/tablet: readable topbar, owner nav row below header, natural page scroll, wide horizontal calendar */
@media (max-width:980px){
  body.logged-in .phone-frame{width:100%!important;max-width:none!important;margin:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fbf7f8!important;overflow:visible!important;}
  body.logged-in .topbar,
  body.logged-in .planner-toolbar{position:static!important;top:auto!important;z-index:auto!important;}
  body.logged-in .topbar{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"brand actions" "tabs tabs"!important;
    align-items:center!important;
    gap:12px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:14px 16px 12px!important;
    background:#fff!important;
    border-bottom:1px solid var(--line)!important;
    overflow:visible!important;
  }
  body.logged-in .brand{
    grid-area:brand!important;
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    min-width:0!important;
    text-align:left!important;
  }
  body.logged-in .brand .logo{width:clamp(190px,40vw,260px)!important;max-width:52vw!important;min-width:0!important;}
  body.logged-in .brand h1{font-size:clamp(24px,4.6vw,30px)!important;line-height:1.05!important;margin:0!important;}
  body.logged-in .brand .eyebrow{display:block!important;font-size:10px!important;letter-spacing:.15em!important;}
  body.logged-in .top-actions{
    grid-area:actions!important;
    display:grid!important;
    grid-template-columns:auto minmax(88px,auto)!important;
    grid-template-rows:auto auto!important;
    gap:8px!important;
    align-items:center!important;
    justify-content:end!important;
  }
  body.logged-in .notif-wrap{grid-column:1!important;grid-row:1!important;justify-self:end!important;}
  body.logged-in .notif-btn{width:42px!important;height:42px!important;min-width:42px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  body.logged-in .top-actions .user-pill{grid-column:2!important;grid-row:1!important;height:38px!important;max-width:150px!important;justify-content:center!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
  body.logged-in .top-actions #switchBtn{grid-column:2!important;grid-row:2!important;height:34px!important;padding:0 12px!important;white-space:nowrap!important;font-size:12px!important;justify-content:center!important;}
  body.logged-in .topbar .top-tabs{
    grid-area:tabs!important;
    position:static!important;
    left:auto!important;
    top:auto!important;
    transform:none!important;
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
    width:100%!important;
    margin:4px 0 0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body.logged-in.employee .topbar .top-tabs{display:none!important;}
  body.logged-in .topbar .top-tabs button,
  body.logged-in .topbar .top-tabs button.active{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    min-width:0!important;
    height:36px!important;
    padding:0 8px!important;
    border-radius:999px!important;
    font-size:12px!important;
    white-space:nowrap!important;
  }
  body.logged-in .planner-toolbar{
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-areas:"center" "left" "right"!important;
    gap:10px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:14px 16px!important;
    background:#fbf7f8!important;
    border-bottom:1px solid var(--line)!important;
    overflow:visible!important;
  }
  body.logged-in .toolbar-center{grid-area:center!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important;width:100%!important;}
  body.logged-in .toolbar-left{grid-area:left!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important;width:100%!important;}
  body.logged-in .toolbar-right{grid-area:right!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;flex-wrap:wrap!important;width:100%!important;overflow:visible!important;min-height:46px!important;}
  body.logged-in .toolbar-right .icon-action,
  body.logged-in .toolbar-left .icon-action{width:42px!important;min-width:42px!important;height:42px!important;padding:0!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  body.logged-in .toolbar-separator{display:none!important;}
  body.logged-in .compact-week-nav{width:min(100%,440px)!important;max-width:440px!important;display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px!important;align-items:center!important;margin:0 auto!important;}
  body.logged-in .compact-week-nav input{width:132px!important;min-width:0!important;font-size:13px!important;}
  body.logged-in .shared-metric-days{max-width:100%!important;overflow-x:auto!important;scrollbar-width:none!important;}
  body.logged-in .shared-metric-days::-webkit-scrollbar{display:none!important;}
  body.logged-in .shell{max-width:none!important;width:100%!important;margin:0!important;padding:16px 18px 38px!important;background:#fbf7f8!important;}
  body.logged-in .calendar-top-metrics.grid.two,
  body.logged-in .grid.two,
  body.logged-in .metrics{grid-template-columns:1fr!important;gap:16px!important;}
  body.logged-in .calendar-top-metrics .panel{padding:18px!important;}
  body.logged-in .compact-metrics.position-hours{grid-template-columns:1fr!important;gap:10px!important;}
  body.logged-in .compact-metrics.zone-hours{grid-template-columns:1fr!important;gap:9px!important;}
  body.logged-in .compact-metrics .position-total,
  body.logged-in .compact-metrics .zone-total{min-height:52px!important;padding:10px 14px!important;}
  body.logged-in .calendar{overflow-x:auto!important;overflow-y:visible!important;border-radius:20px!important;max-height:none!important;}
  body.logged-in .cal-table{min-width:1120px!important;table-layout:fixed!important;}
  body.logged-in .cal-table thead th{position:static!important;top:auto!important;z-index:auto!important;}
  body.logged-in .cal-table th.person,
  body.logged-in .cal-table td.person{position:sticky!important;left:0!important;z-index:30!important;background:#fff!important;min-width:185px!important;width:185px!important;}
  body.logged-in .cal-table .total{position:sticky!important;right:0!important;z-index:28!important;}
  body.logged-in .slot{min-height:86px!important;min-width:82px!important;}
}

@media (max-width:560px){
  body.logged-in .topbar{grid-template-columns:1fr!important;grid-template-areas:"brand" "actions" "tabs"!important;}
  body.logged-in .brand{justify-content:center!important;text-align:center!important;}
  body.logged-in .brand .logo{width:230px!important;max-width:84vw!important;}
  body.logged-in .top-actions{justify-self:center!important;grid-template-columns:auto minmax(92px,1fr) auto!important;width:min(100%,400px)!important;}
  body.logged-in .top-actions #switchBtn{grid-column:3!important;grid-row:1!important;height:38px!important;}
  body.logged-in .topbar .top-tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:400px!important;margin-left:auto!important;margin-right:auto!important;}
  body.logged-in .compact-week-nav input{width:120px!important;font-size:12px!important;}
  body.logged-in .shell{padding-left:14px!important;padding-right:14px!important;}
}

@media (max-width:390px){
  body.logged-in .top-actions{grid-template-columns:auto 1fr!important;}
  body.logged-in .top-actions #switchBtn{grid-column:1/-1!important;grid-row:2!important;width:100%!important;}
}


/* v124 calendar freeze + sizing correction
   Uses normal page scrolling on desktop so Mon-Sun + Week fit full width,
   and a wider horizontal-scroll table on mobile. The first 2 header rows remain frozen. */
body.logged-in .calendar{
  position:relative!important;
  clear:both!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  max-height:none!important;
  min-height:0!important;
  height:auto!important;
  margin:0 0 18px!important;
  background:#fff!important;
  border:1px solid var(--line)!important;
  border-radius:22px!important;
  box-shadow:0 16px 38px rgba(99,35,52,.07)!important;
  isolation:isolate!important;
  -webkit-overflow-scrolling:touch!important;
}
body.logged-in .cal-table{
  border-collapse:separate!important;
  border-spacing:0!important;
  table-layout:fixed!important;
  width:100%!important;
  min-width:1320px!important;
}
body.logged-in .cal-table th,
body.logged-in .cal-table td{
  box-sizing:border-box!important;
  padding:7px 8px!important;
  vertical-align:middle!important;
  overflow:visible!important;
}
body.logged-in .cal-table thead th{
  position:sticky!important;
  background:#fffafb!important;
  box-shadow:0 1px 0 var(--line)!important;
  overflow:visible!important;
}
body.logged-in .cal-table thead tr:first-child th{
  top:var(--calendar-sticky-top,0px)!important;
  height:56px!important;
  z-index:120!important;
}
body.logged-in .cal-table thead tr:nth-child(2) th{
  top:calc(var(--calendar-sticky-top,0px) + 56px)!important;
  height:48px!important;
  z-index:121!important;
  border-bottom:2px solid rgba(155,23,52,.30)!important;
}
body.logged-in .cal-table th.person,
body.logged-in .cal-table td.person{
  position:sticky!important;
  left:0!important;
  width:170px!important;
  min-width:170px!important;
  max-width:170px!important;
  background:#fff!important;
  z-index:80!important;
  box-shadow:1px 0 0 var(--line)!important;
}
body.logged-in .cal-table .total{
  position:sticky!important;
  right:0!important;
  width:66px!important;
  min-width:66px!important;
  max-width:66px!important;
  background:#d7cdd2!important;
  z-index:75!important;
  box-shadow:-1px 0 0 var(--line)!important;
}
body.logged-in .cal-table thead th.person{z-index:150!important;background:#fffafb!important;}
body.logged-in .cal-table thead th.total{z-index:149!important;background:#fffafb!important;}
body.logged-in .cal-table tbody td{position:relative;z-index:1;}
body.logged-in .cal-table tbody td.person{z-index:70!important;}
body.logged-in .cal-table tbody td.total{z-index:68!important;}
body.logged-in .day-title{
  position:relative!important;
  display:block!important;
  min-height:40px!important;
  padding-right:32px!important;
}
body.logged-in .day-left{display:block!important;text-align:left!important;min-width:0!important;}
body.logged-in .day-left strong{display:block!important;line-height:1.05!important;font-weight:950!important;color:#62575d!important;}
body.logged-in .day-left small{display:block!important;margin-top:4px!important;color:#6e636a!important;font-weight:500!important;}
body.logged-in .day-total-inline{
  position:absolute!important;
  left:50%!important;
  top:4px!important;
  transform:translateX(-50%)!important;
  display:inline-flex!important;
  align-items:baseline!important;
  justify-content:center!important;
  gap:3px!important;
  min-width:60px!important;
  white-space:nowrap!important;
  color:var(--red)!important;
  font-weight:950!important;
  font-size:12px!important;
  line-height:1!important;
}
body.logged-in .day-total-inline em,
body.logged-in .shift-head-hours em{font-style:normal!important;color:#807178!important;font-weight:500!important;font-size:10px!important;margin-left:2px!important;}
body.logged-in .note-icon{position:absolute!important;right:0!important;top:0!important;}
body.logged-in .shift-head-label,
body.logged-in .shift-head-hours{
  display:block!important;
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
  white-space:nowrap!important;
  overflow:visible!important;
}
body.logged-in .shift-head-label{font-weight:500!important;color:#5f555b!important;font-size:12px!important;line-height:1.05!important;text-transform:none!important;letter-spacing:0!important;}
body.logged-in .shift-head-hours{font-weight:950!important;color:var(--red)!important;font-size:12px!important;line-height:1.05!important;margin-top:4px!important;min-width:56px!important;}
body.logged-in .slot{
  width:100%!important;
  min-width:0!important;
  min-height:78px!important;
  padding:8px 9px!important;
  border-radius:15px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:3px!important;
  overflow:hidden!important;
}
body.logged-in .slot.empty{align-items:center!important;text-align:center!important;}
body.logged-in .slot .name{font-size:13px!important;line-height:1.12!important;font-weight:950!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
body.logged-in .slot .zone,
body.logged-in .slot .meta,
body.logged-in .empty-label{font-size:11px!important;line-height:1.15!important;max-width:100%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;}
body.logged-in .native-zone-wrap{max-width:100%!important;width:100%!important;}
body.logged-in .zone-inline-native{max-width:100%!important;}

@media (min-width:981px){
  body.logged-in:not(.phone) .calendar{overflow-x:auto!important;overflow-y:visible!important;}
  body.logged-in:not(.phone) .cal-table{width:100%!important;min-width:1320px!important;}
  body.logged-in:not(.phone) .cal-table th.person,
  body.logged-in:not(.phone) .cal-table td.person{width:172px!important;min-width:172px!important;max-width:172px!important;}
  body.logged-in:not(.phone) .cal-table .total{width:66px!important;min-width:66px!important;max-width:66px!important;}
  body.logged-in:not(.phone) .slot{min-height:78px!important;}
}

@media (max-width:980px){
  body.logged-in .calendar{
    overflow-x:auto!important;
    overflow-y:visible!important;
    max-height:none!important;
    border-radius:20px!important;
  }
  body.logged-in .cal-table{
    width:1450px!important;
    min-width:1450px!important;
  }
  body.logged-in .cal-table thead tr:first-child th{top:0!important;height:56px!important;z-index:120!important;}
  body.logged-in .cal-table thead tr:nth-child(2) th{top:56px!important;height:48px!important;z-index:121!important;}
  body.logged-in .cal-table th.person,
  body.logged-in .cal-table td.person{width:170px!important;min-width:170px!important;max-width:170px!important;}
  body.logged-in .cal-table .total{width:66px!important;min-width:66px!important;max-width:66px!important;}
  body.logged-in .slot{min-height:82px!important;padding:8px!important;border-radius:15px!important;}
}

/* v125 desktop calendar freeze-pane fix
   Desktop uses the calendar itself as the scroll container: the first two calendar rows
   freeze at the top of the calendar panel, while employee/total columns freeze left/right.
   Mobile rules below remain horizontal-scroll focused and untouched. */
@media (min-width:981px){
  body.logged-in:not(.phone) .calendar{
    position:relative!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    max-height:calc(100vh - var(--sticky-shell-h,150px) - 28px)!important;
    min-height:420px!important;
    margin-top:0!important;
    padding:0!important;
    border-radius:22px!important;
    background:#fff!important;
    isolation:isolate!important;
  }
  body.logged-in:not(.phone) .cal-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
    border-collapse:separate!important;
    border-spacing:0!important;
  }
  body.logged-in:not(.phone) .cal-table thead{
    display:table-header-group!important;
  }
  body.logged-in:not(.phone) .cal-table thead th{
    position:sticky!important;
    background:#fffafb!important;
    overflow:visible!important;
    box-shadow:0 1px 0 var(--line)!important;
  }
  body.logged-in:not(.phone) .cal-table thead tr:first-child th{
    top:0!important;
    height:54px!important;
    z-index:220!important;
  }
  body.logged-in:not(.phone) .cal-table thead tr:nth-child(2) th{
    top:54px!important;
    height:44px!important;
    z-index:221!important;
    border-bottom:2px solid rgba(155,23,52,.28)!important;
  }
  body.logged-in:not(.phone) .cal-table th.person,
  body.logged-in:not(.phone) .cal-table td.person,
  body.logged-in:not(.phone) .cal-table th:first-child,
  body.logged-in:not(.phone) .cal-table td:first-child{
    position:sticky!important;
    left:0!important;
    width:150px!important;
    min-width:150px!important;
    max-width:150px!important;
    background:#fff!important;
    z-index:160!important;
  }
  body.logged-in:not(.phone) .cal-table thead th.person,
  body.logged-in:not(.phone) .cal-table thead th:first-child{
    z-index:260!important;
    background:#fffafb!important;
  }
  body.logged-in:not(.phone) .cal-table .total,
  body.logged-in:not(.phone) .cal-table .total-head{
    position:sticky!important;
    right:0!important;
    width:60px!important;
    min-width:60px!important;
    max-width:60px!important;
    background:#d7cdd2!important;
    color:var(--red)!important;
    text-align:center!important;
    z-index:150!important;
  }
  body.logged-in:not(.phone) .cal-table thead .total,
  body.logged-in:not(.phone) .cal-table thead .total-head{
    z-index:255!important;
    background:#cfc4ca!important;
  }
  body.logged-in:not(.phone) .cal-table th,
  body.logged-in:not(.phone) .cal-table td{
    padding:6px 7px!important;
    vertical-align:middle!important;
    overflow:visible!important;
  }
  body.logged-in:not(.phone) .day-title{
    min-height:38px!important;
    padding-right:28px!important;
  }
  body.logged-in:not(.phone) .day-total-inline{
    display:inline-flex!important;
    opacity:1!important;
    visibility:visible!important;
    white-space:nowrap!important;
    min-width:54px!important;
    font-size:12px!important;
  }
  body.logged-in:not(.phone) .shift-head-hours{
    display:block!important;
    opacity:1!important;
    visibility:visible!important;
    white-space:nowrap!important;
    font-size:12px!important;
    min-width:48px!important;
  }
  body.logged-in:not(.phone) .slot{
    min-height:74px!important;
    padding:7px 8px!important;
    border-radius:14px!important;
    align-items:center!important;
    justify-content:center!important;
    text-align:center!important;
  }
  body.logged-in:not(.phone) .slot .name,
  body.logged-in:not(.phone) .slot .zone,
  body.logged-in:not(.phone) .slot .meta,
  body.logged-in:not(.phone) .empty-label{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
}

/* Keep mobile calendar wide/readable with horizontal scrolling; no desktop freeze-pane overrides leak in. */
@media (max-width:980px){
  body.logged-in .calendar{
    overflow-x:auto!important;
    overflow-y:visible!important;
    max-height:none!important;
    min-height:0!important;
  }
  body.logged-in .cal-table{
    width:1450px!important;
    min-width:1450px!important;
    table-layout:fixed!important;
  }
  body.logged-in .cal-table thead th{
    position:sticky!important;
    background:#fffafb!important;
  }
  body.logged-in .cal-table thead tr:first-child th{top:0!important;height:56px!important;z-index:220!important;}
  body.logged-in .cal-table thead tr:nth-child(2) th{top:56px!important;height:48px!important;z-index:221!important;}
  body.logged-in .cal-table thead th.person{z-index:260!important;}
  body.logged-in .cal-table thead th.total{z-index:255!important;}
}

/* v126: logged-out production fix
   The login screen must be the only visible UI in every responsive mode. */
body.logged-out .topbar,
body.logged-out .planner-toolbar,
body.logged-out .main-nav,
body.logged-out .shell,
body.logged-out .phone-frame > header,
body.logged-out .phone-frame > section,
body.logged-out .phone-frame > nav,
body.logged-out .phone-frame > main{
  display:none!important;
  visibility:hidden!important;
}
body.logged-out .phone-frame{
  display:block!important;
  overflow:visible!important;
  width:auto!important;
  max-width:none!important;
  min-height:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
body.logged-out .login{
  display:grid!important;
  visibility:visible!important;
  position:fixed!important;
  inset:0!important;
  z-index:9999!important;
}
body.logged-out.phone .login-card,
body.logged-out .login-card{
  width:min(460px,92vw)!important;
  max-width:92vw!important;
}
