  :root{
    --bg:#0B1220; --panel:#0F172A; --panel2:#1E293B; --panel3:#334155; --line:#243145;
    --text:#E2E8F0; --muted:#94A3B8; --accent:#2563EB; --accent2:#1D4ED8;
    --violet:#7C3AED; --grad:linear-gradient(135deg,#2563EB,#7C3AED);
    --draft:#475569; --pub:#2563EB; --open:#0F766E;
    --info:#06B6D4; --warn:#F59E0B; --crit:#EF4444; --ok:#10B981;
  }
  *{box-sizing:border-box}
  /* hide scrollbars app-wide but keep scrolling (schedule grid, settings drawer, modals, panels, tables) */
  *{scrollbar-width:none;-ms-overflow-style:none}
  *::-webkit-scrollbar{width:0;height:0;display:none}
  html,body{margin:0;height:100%}
  body{font-family:'Inter',system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
  button{font-family:inherit;cursor:pointer}
  .app{display:flex;flex-direction:row;height:100vh;height:100dvh;overflow:hidden}
  .appcol{flex:1;display:flex;flex-direction:column;min-width:0}
  .railnav{width:66px;background:#0F172A;border-right:1px solid #1E293B;display:flex;flex-direction:column;align-items:center;padding:10px 0;gap:4px;flex:none;overflow-y:auto;position:relative;z-index:50}
  .railnav .rlogo{width:40px;height:40px;margin-bottom:12px;flex:none;display:flex;align-items:center;justify-content:center}
  .railnav button{width:52px;height:50px;border-radius:12px;background:transparent;border:0;color:#94A3B8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:600;cursor:pointer;position:relative}
  .railbadge{position:absolute;top:3px;right:7px;background:var(--crit);color:#fff;border-radius:9px;font-size:10px;font-weight:700;min-width:16px;height:16px;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}
  .railnav button:hover{background:#1E293B;color:#E2E8F0}
  .railnav button.active{background:var(--accent);color:#fff}
  .railnav button svg{width:21px;height:21px}

  header.top{display:flex;align-items:center;gap:12px;padding:9px 16px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;position:relative;z-index:30}
  .brand{font-weight:700;font-size:17px;display:flex;align-items:center;gap:8px}
  .brand .dot{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center}
  .seg{display:flex;background:var(--panel2);border:1px solid var(--line);border-radius:9px;overflow:hidden}
  .seg button{background:transparent;border:0;color:var(--muted);padding:7px 13px;font-weight:600}
  .seg button.active{background:var(--accent);color:#fff}
  .nav{display:flex;align-items:center;gap:6px}
  .nav button{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 10px}
  .period{min-width:210px;text-align:center;font-weight:600}
  .spacer{flex:1}
  select.hdr{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:6px 8px;font-weight:600;width:auto;max-width:170px}
  .headright{margin-left:auto;display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
  .btn{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 11px;font-weight:600;font-size:13px}
  .btn:hover{background:var(--panel3)}
  .btn.primary{background:var(--accent);border-color:var(--accent2);color:#fff}
  .btn.primary:hover{background:var(--accent2)}
  .btn.warn{background:#92400e;border-color:#b45309;color:#fff}
  .btn.ai{background:var(--grad);border:0;color:#fff}
  .badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--crit);color:#fff;font-size:11px;font-weight:700;margin-left:5px}
  .badge.amber{background:var(--warn)} .badge.muted{background:var(--line)}
  .toolbar{display:flex;gap:8px;align-items:center;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--line);flex-wrap:wrap;position:relative;z-index:20}
  .toolbar .group{display:flex;gap:8px;align-items:center}
  .mgractions{display:flex;gap:8px;align-items:center}
  .mobonly{display:none}
  .aopenhint,.achev{display:none}
  .ascrim,#fSheetScrim{display:none}
  .bell{position:relative;display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);cursor:pointer;transition:background .12s,border-color .12s}
  .bell:hover{background:var(--panel3);border-color:var(--accent)}
  .bell svg{width:19px;height:19px;display:block}
  .bell .badge{position:absolute;top:-6px;right:-6px;margin:0;min-width:16px;height:16px;font-size:10px;border:2px solid var(--bg)}
  .avbtn{background:transparent;border:0;padding:0;cursor:pointer;display:inline-flex;align-items:center;border-radius:50%;flex:none}
  .avbtn .avatar{box-shadow:0 0 0 2px transparent;transition:box-shadow .12s}
  .avbtn:hover .avatar{box-shadow:0 0 0 2px var(--accent)}
  .notifdd{position:fixed;display:none;flex-direction:column;width:380px;max-width:calc(100vw - 16px);max-height:74vh;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 54px rgba(0,0,0,.55);z-index:300;overflow:hidden}
  .notifdd.show{display:flex}
  .notifdd .nddhd{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);flex:none}
  .notifdd .nddhd h3{margin:0;font-size:15px;font-weight:700;flex:1}
  .notifdd .nddbody{overflow:auto;flex:1}
  .acctdd{position:fixed;display:none;width:254px;max-width:94vw;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 22px 54px rgba(0,0,0,.55);z-index:300;overflow:hidden;padding:6px}
  .acctdd.show{display:block}
  .acctdd.sheet{left:0!important;right:0!important;bottom:0!important;top:auto!important;width:auto;max-width:none;border-radius:18px 18px 0 0;padding:8px 8px calc(10px + env(safe-area-inset-bottom))}
  .adhead{display:flex;align-items:center;gap:11px;padding:10px 10px 12px}
  .adnm{font-weight:600;font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .adsub{font-size:11px;color:var(--muted)}
  .adsep{height:1px;background:var(--line);margin:2px 4px}
  .addrow{display:flex;align-items:center;gap:12px;width:100%;padding:10px;border:0;background:transparent;color:var(--text);font-size:13.5px;border-radius:9px;cursor:pointer;text-align:left;font-family:inherit}
  .addrow:hover{background:var(--panel2)}
  .addrow svg{width:18px;height:18px;color:var(--muted);flex:none}
  .addrow.danger{color:#f87171}.addrow.danger svg{color:#f87171}
  .addrow .adsoon{margin-left:auto;font-size:10px;color:var(--muted);font-weight:600}
  .adlbl{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:6px 10px 4px}
  .orgrow .orgnm{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .orgrow .orgrole{display:block;font-size:11px;color:var(--muted);text-transform:capitalize}
  .orgrow.cur{background:rgba(37,99,235,.12)}
  .orgrow .orgcheck{margin-left:auto;flex:none}.orgrow .orgcheck svg{width:16px;height:16px;color:var(--accent)}
  .supportbar{display:flex;align-items:center;gap:10px;padding:7px 14px;background:#7C2D12;color:#fff;font-size:13px;font-weight:500;border-bottom:1px solid #9A3412}
  .supportbar .sbicon{display:inline-flex}.supportbar .sbicon svg{width:16px;height:16px}
  .supportbar b{font-weight:600}
  .supportbar .sbspacer{flex:1}
  .supportbar button{background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:7px;padding:4px 11px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
  .supportbar button:hover{background:rgba(255,255,255,.26)}
  .orgrow.staffrow svg{color:#fb923c}
  .stafforg{display:flex;align-items:center;gap:11px;padding:10px;border:0;background:transparent;color:var(--text);width:100%;border-radius:9px;cursor:pointer;text-align:left;font-family:inherit;border-bottom:1px solid var(--line)}
  .stafforg:hover{background:var(--panel2)}
  .stafforg .so-meta{font-size:11px;color:var(--muted)}
  .stafforg .so-mine{margin-left:auto;font-size:10px;font-weight:700;color:var(--accent);background:rgba(37,99,235,.14);border-radius:5px;padding:2px 6px}
  header.top{background:#0F172A;border-bottom:1px solid #1E293B}
  header.top .brand{color:#F1F5F9}
  header.top .hint,header.top .period,header.top #locClock{color:#94A3B8}
  header.top .nav button,header.top select.hdr,header.top .bell,header.top .hdrsearch{background:#1E293B;border-color:#334155;color:#E2E8F0}
  header.top .nav button:hover,header.top .hdrsearch:hover,header.top .bell:hover{background:#334155;color:#fff}
  header.top select.hdr option{background:#0F172A;color:#E2E8F0}

  .body{display:flex;flex:1;min-height:0}
  aside{width:236px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
  aside .sec{padding:11px 12px 5px;font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);font-weight:700;display:flex;justify-content:space-between;align-items:center}
  .palette{padding:0 12px 10px;overflow:auto}
  .block{border-radius:8px;padding:7px 10px;margin-bottom:7px;cursor:grab;color:#fff;font-weight:600;font-size:13px;display:flex;justify-content:space-between;align-items:center;user-select:none}
  .block small{font-weight:500;opacity:.92;display:block}
  .block .req{font-size:10px;opacity:.9}
  .block:active{cursor:grabbing}
  .miniadd{padding:0 12px 10px}
  .miniadd .btn{width:100%}
  main{flex:1;min-width:0;display:flex;flex-direction:column;min-height:0}
  .gridwrap{flex:1;overflow:auto;padding:12px;scrollbar-width:none;-ms-overflow-style:none}
  .gridwrap::-webkit-scrollbar{width:0;height:0;display:none}

  table.grid{border-collapse:separate;border-spacing:0;width:100%;min-width:820px}
  table.grid th,table.grid td{border:1px solid var(--line);padding:0}
  table.grid{table-layout:fixed;width:100%}
  table.grid .empcol{width:180px}
  table.grid thead th:last-child{width:96px}
  .cellinner{min-width:0}
  .toblock,.shift{overflow:hidden}
  table.grid thead th{position:sticky;top:0;background:var(--panel2);z-index:3;padding:7px;font-size:12px}
  .empcol{position:sticky;left:0;background:var(--panel2);z-index:2;min-width:168px;text-align:left;padding:7px 10px;font-weight:600}
  .empcol small{display:block;color:var(--muted);font-weight:500}
  .empcol .wg{color:var(--ok);font-weight:600;font-size:11px}
  td.cell{vertical-align:top;height:74px;background:var(--panel);transition:background .08s}
  td.cell.drop{background:#1e293b;outline:2px dashed var(--accent)}
  td.cell.unavail{background:repeating-linear-gradient(135deg,#0f172a 0 8px,#161f31 8px 16px)}
  td.cell.off{background:repeating-linear-gradient(135deg,#2a1620 0 9px,#371f2b 9px 18px)}
  td.cell.pendto{background:repeating-linear-gradient(135deg,rgba(245,158,11,.10) 0 8px,rgba(245,158,11,.22) 8px 16px)}
  .ptobadge{font-size:10px;font-weight:600;color:#fcd34d;background:#78350f;border-radius:6px;padding:1px 6px;margin-bottom:3px;align-self:flex-start}
  .cellinner{padding:4px;display:flex;flex-direction:column;gap:4px;min-height:70px}
  .openrow td.cell{background:#0b1f1d}
  .shift{border-radius:7px;padding:4px 7px;color:#fff;font-size:12px;cursor:pointer;position:relative;border-left:4px solid rgba(255,255,255,.5)}
  .shift.draft{opacity:.62;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.10) 0 6px,transparent 6px 12px)}
  .shift .lbl{font-weight:700} .shift .tm{opacity:.9}
  .shift .cnt{display:inline-block;font-size:11px;font-weight:700;background:rgba(0,0,0,.38);border-radius:4px;padding:0 5px;margin-left:3px}
  .shift .st{position:absolute;top:3px;right:4px;font-size:9px;text-transform:uppercase;letter-spacing:.4px;background:rgba(0,0,0,.32);border-radius:4px;padding:1px 4px}
  .shift .flag{position:absolute;bottom:3px;right:4px;font-size:11px}
  .colhrs{font-size:11px;color:var(--muted);font-weight:600;margin-top:2px}

  .dayview{display:flex;min-width:max-content}
  .timecol{position:sticky;left:0;background:var(--panel2);z-index:2}
  .timecol .hr{height:44px;border-bottom:1px solid var(--line);padding:2px 8px;font-size:11px;color:var(--muted);min-width:64px}
  .empcolday{min-width:150px;border-left:1px solid var(--line)}
  .empcolday .hd{height:34px;background:var(--panel2);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:12px;position:sticky;top:0;z-index:1}
  .daygrid{position:relative}
  .daygrid .slot{height:44px;border-bottom:1px solid var(--line);border-left:1px solid var(--line)}
  .daygrid .slot.drop{background:#1e293b}
  .daybar{position:absolute;left:4px;right:4px;border-radius:6px;color:#fff;font-size:11px;padding:3px 5px;overflow:hidden;cursor:pointer;border-left:4px solid rgba(255,255,255,.6)}
  .daybar.draft{opacity:.62;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.10) 0 6px,transparent 6px 12px)}

  .month{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
  .month .dow{color:var(--muted);font-weight:700;font-size:12px;text-align:center;padding:4px}
  .mcell{background:var(--panel);border:1px solid var(--line);border-radius:8px;min-height:94px;padding:6px;cursor:pointer;display:flex;flex-direction:column}
  .mcell.muted{opacity:.4} .mcell.today{outline:2px solid var(--accent)}
  .mcell .d{font-weight:700;font-size:12px;margin-bottom:4px;display:flex;justify-content:space-between}
  .mdn{font-weight:700;font-size:12px;margin-bottom:5px} .mdn.t{color:var(--accent)}
  .mchips{display:flex;flex-direction:column;gap:3px;margin-top:auto}
  .mchip{font-size:9.5px;font-weight:600;border-radius:5px;padding:2px 6px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mchip.mopen{background:#0f766e;border:1px dashed #2dd4bf}
  .mchip.more2{background:var(--panel3);color:var(--muted)}
  .mpill{font-size:10px;border-radius:5px;padding:1px 5px;margin-bottom:3px;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mcount{font-size:10px;color:var(--muted)}
  .month.mphone{gap:3px} .mcell.mph{min-height:46px;padding:4px;align-items:center}
  .mcell.mph .mdn{font-size:11px;margin:0} .mcell.sel{outline:2px solid var(--accent);background:var(--panel2)}
  .mdots{display:flex;gap:2px;margin-top:auto;flex-wrap:wrap;justify-content:center;padding-bottom:2px} .mdots i{width:5px;height:5px;border-radius:50%}
  .mselpanel{margin-top:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:12px}
  .mselhd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px;font-size:14px}
  .mselrow{display:flex;gap:9px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line)}
  .mselrow:last-of-type{border-bottom:0} .mselbar{width:4px;align-self:stretch;border-radius:3px;flex:none} .msn{font-weight:700;font-size:13px}
  .dtl{padding:4px 2px}
  .dtlrow{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:10px;border-top:1px solid var(--line);min-height:38px}
  .dtlhead{border-top:0;position:sticky;top:0;background:var(--panel);z-index:2}
  .dtlname{font-size:12px;padding:6px 4px;min-width:0}
  .dtwho{display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .dthours{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);padding:6px 2px 0}
  .dtrack{position:relative;height:30px;border-radius:6px;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(11.111% - 1px),var(--line) calc(11.111% - 1px),var(--line) 11.111%)}
  .dtrack.drop{outline:2px dashed var(--accent)}
  .dtbar{position:absolute;top:3px;height:24px;border-radius:5px;font-size:10.5px;color:#fff;font-weight:600;display:flex;align-items:center;padding:0 7px;white-space:nowrap;overflow:hidden;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.3)}
  .dtbar.draft{opacity:.66;border:1px dashed rgba(255,255,255,.55)}
  .dtbar.dtopen{background:repeating-linear-gradient(45deg,#0f766e 0 6px,#0c5e57 6px 12px)!important;border:1px dashed #2dd4bf}
  .dtavail{position:absolute;top:0;height:100%;background:rgba(37,99,235,.10);border-radius:4px}
  .dtme{background:var(--panel2);border-radius:8px}
  .dtcovrow{margin-top:5px}
  .dtcov{background:none}
  .dtcovseg{position:absolute;top:4px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff}
  .dtmhead{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;border-bottom:1px solid var(--line)}
  .dtmlist{padding:10px 12px}
  .dtmcard{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:11px;margin-bottom:8px;background:var(--panel2);cursor:pointer}
  .dtmbar{width:4px;align-self:stretch;border-radius:3px;flex:none} .dtmt{font-weight:700;font-size:13px}
  .dtbar.sel{outline:2px solid #fff;box-shadow:0 0 0 3px var(--accent)}
  .dtmcard.sel{border-color:var(--accent);background:var(--panel3)} .dtmchk{font-size:17px;flex:none}

  /* Dashboard */
  .dash{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
  .kpi{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px}
  .kpi .k{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;font-weight:700}
  .kpi .v{font-size:26px;font-weight:800;margin-top:6px}
  .kpi .s{font-size:12px;color:var(--muted);margin-top:2px}
  .bar{height:8px;border-radius:5px;background:var(--panel3);overflow:hidden;margin-top:8px}
  .bar > i{display:block;height:100%;background:var(--ok)}
  .card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;grid-column:span 2}
  .card h4{margin:0 0 10px} .card.full{grid-column:span 4}
  table.mini{width:100%;border-collapse:collapse;font-size:13px}
  table.mini th,table.mini td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
  table.mini th{color:var(--muted);font-size:11px;text-transform:uppercase}

  .alerts{width:344px;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;min-height:0;transition:width .15s ease}
  .alerts.collapsed{width:46px}
  /* right sidebar tabs/panes/rail (desktop) */
  #alertHd{display:none}
  .rstabs{display:flex;align-items:center;border-bottom:1px solid var(--line)}
  .rstab{flex:1;background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);font-size:13px;font-weight:600;padding:10px 6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px}
  .rstab.on{color:var(--text);border-bottom-color:var(--accent)}
  .rspane{display:none;flex:1;min-height:0;overflow:auto}
  .rspane.on{display:block}
  #rsFiltersPanel{padding:10px}
  .rsbadge{background:var(--accent);color:#fff;font-size:10px;border-radius:8px;padding:0 5px;min-width:16px;height:16px;line-height:16px;text-align:center;display:inline-block}
  .rsbadge.amber{background:var(--warn);color:#1a1205}
  .rsrail{display:none}
  .alerts.collapsed .rsrail{display:flex;flex-direction:column;align-items:center;gap:16px;padding:10px 0}
  .alerts.collapsed .rstabs,.alerts.collapsed .rspane,.alerts.collapsed #alertHd{display:none}
  .rsrailbtn{position:relative;background:transparent;border:0;color:var(--muted);font-size:19px;cursor:pointer}
  .rsrailbtn:hover{color:var(--text)}
  .rsrailbtn .rsbadge{position:absolute;top:-7px;right:-10px;font-size:9px}
  .alerts h3{margin:0;padding:11px 12px;border-bottom:1px solid var(--line);font-size:13px;display:flex;align-items:center;gap:8px}
  .alertfilter{display:flex;gap:5px;padding:8px 10px;border-bottom:1px solid var(--line);flex-wrap:wrap}
  .alertfilter button{font-size:11px;padding:3px 8px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--muted)}
  .alertfilter button.on{background:var(--accent);color:#fff;border-color:var(--accent)}
  .alertlist{overflow:auto;flex:1;padding:8px}
  .alert{border-radius:8px;padding:7px 10px;margin-bottom:7px;border-left:4px solid var(--warn);background:var(--panel2);font-size:12px}
  .alert.crit{border-color:var(--crit)} .alert.info{border-color:var(--info)} .alert.warn{border-color:var(--warn)}
  .alert{position:relative}
  .alert .ar{font-weight:700;margin-bottom:1px} .alert .am{color:var(--muted)}
  .alert .alertx{position:absolute;top:5px;right:6px;width:18px;height:18px;border-radius:50%;border:0;background:var(--panel3);color:var(--muted);font-size:10px;line-height:16px;padding:0;cursor:pointer;z-index:2}
  .alert .alertx:hover{background:var(--crit);color:#fff}
  .empty{color:var(--muted);text-align:center;padding:22px;font-size:12px}

  /* availability surfacing in grid */
  .avhint{font-size:10px;color:#64748b;font-weight:600;padding:2px 4px;line-height:1.3}
  .cell.off .avhint{color:#c084a0}
  .cell.unavail .avhint{color:#64748b}
  .cell.av-ok{box-shadow:inset 0 0 0 2px rgba(34,197,94,.65);background:repeating-linear-gradient(135deg,rgba(34,197,94,.10) 0 8px,rgba(34,197,94,.20) 8px 16px)}
  .cell.av-warn{box-shadow:inset 0 0 0 2px rgba(245,158,11,.65);background:repeating-linear-gradient(135deg,rgba(245,158,11,.10) 0 8px,rgba(245,158,11,.22) 8px 16px)}
  .cell.av-bad{box-shadow:inset 0 0 0 2px rgba(239,68,68,.55);background:repeating-linear-gradient(135deg,rgba(239,68,68,.10) 0 8px,rgba(239,68,68,.22) 8px 16px)}
  body.dragging .cell.av-bad .cellinner{opacity:.45}
  body.dragging td.cell{transition:none}
  .btn.on{background:var(--accent);border-color:var(--accent2);color:#fff}
  /* day-view availability + resize */
  .daygrid .slot.avail{background:rgba(34,197,94,.07);box-shadow:inset 3px 0 0 rgba(34,197,94,.45)}
  .empcolday.av-ok .hd{background:rgba(34,197,94,.28);color:#bbf7d0}
  .empcolday.av-warn .hd{background:rgba(245,158,11,.28);color:#fde68a}
  .empcolday.av-bad .hd{background:rgba(239,68,68,.28);color:#fecaca}
  .daybar .rz{position:absolute;left:0;right:0;height:8px;cursor:ns-resize;z-index:2}
  .daybar .rz.top{top:-1px} .daybar .rz.bot{bottom:-1px}
  .daybar .rz:hover{background:rgba(255,255,255,.35)}
  /* hour-target gauge + shift notes/role tag */
  .empcol .hgauge{height:5px;border-radius:3px;background:var(--panel3);overflow:hidden;margin:4px 0 2px}
  .empcol .hgauge > i{display:block;height:100%}
  .shift .note,.daybar .note{font-size:10px;opacity:.93;font-style:italic;display:block;margin-top:1px}
  .shift .rtag{display:inline-block;font-size:9px;background:rgba(0,0,0,.32);border-radius:4px;padding:0 4px;margin-top:2px;text-transform:uppercase;letter-spacing:.3px}
  .shift .wtag{display:inline-block;font-size:9px;background:rgba(255,255,255,.28);border-radius:4px;padding:0 4px;margin-top:2px;font-weight:700;letter-spacing:.2px}
  .lchip{display:inline-block;font-size:9px;font-weight:700;border-radius:4px;padding:1px 5px;margin-top:2px;color:#fff;letter-spacing:.2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.45);text-shadow:0 1px 1px rgba(0,0,0,.45);vertical-align:middle}
  .daybar .lchip{margin-top:1px}
  .shift[draggable=true]{cursor:grab} .shift[draggable=true]:active{cursor:grabbing}
  /* selection + bulk bar */
  .shift.sel{outline:3px solid #fff;outline-offset:-1px}
  body.selmode .shift{cursor:pointer}
  .bulkbar{position:fixed;bottom:74px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--accent);border-radius:10px;padding:8px 12px;z-index:90;display:flex;gap:10px;align-items:center;box-shadow:0 6px 22px rgba(0,0,0,.45)}
  /* responsive / mobile */
  @media (max-width:880px){
    .body{flex-direction:column;overflow:auto}
    aside{width:auto;border-right:0;border-bottom:1px solid var(--line);max-height:none}
    aside .palette{display:flex;flex-wrap:wrap;gap:6px}
    aside .palette .block{flex:1 1 120px}
    .alerts{width:auto;border-left:0;border-top:1px solid var(--line);max-height:260px}
    main{min-height:56vh}
    .period{min-width:0;font-size:13px}
    header.top{gap:8px;padding:8px 10px}
    .dash{grid-template-columns:repeat(2,1fr)} .card,.card.full{grid-column:span 2}
  }
  @media (max-width:560px){
    .toolbar .btn{padding:6px 8px;font-size:12px}
    .empcol{min-width:120px}
    .railnav{width:50px} .railnav button{width:42px;height:44px} .railnav button span{display:none}
  }
  /* === MOBILE CARDS START === */
  .mweek{display:flex;flex-direction:column;gap:12px;padding:6px 4px 24px}
  .mday{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .mday.today{border-color:var(--accent)}
  .mdayhd{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--panel2);font-weight:600;font-size:13px}
  .mdayhd .hint{font-weight:400}
  .madd{background:var(--accent);color:#fff;border:0;border-radius:8px;padding:7px 13px;font-size:13px;font-weight:600;min-height:36px;cursor:pointer}
  .madd:active{opacity:.85}
  .mrow{display:flex;align-items:center;gap:10px;padding:11px 12px;border-top:1px solid var(--line);cursor:pointer;min-height:52px}
  .mrow:active{background:var(--panel2)}
  .mrow.mine{background:rgba(99,102,241,.12)}
  .mrow.team{opacity:.74}
  .mrow.sel{outline:2px solid var(--accent);outline-offset:-2px;background:rgba(99,102,241,.14)}
  .mrow.draft .mtext b{opacity:.66}
  .mbar{width:5px;align-self:stretch;border-radius:3px;flex-shrink:0;min-height:30px}
  .mtext{flex:1;display:flex;flex-direction:column;gap:1px;font-size:14px;min-width:0}
  .mtext b{font-weight:600}
  .mtext .hint{font-size:12px}
  .mclaim{background:var(--ok);color:#fff;border:0;border-radius:8px;padding:8px 15px;font-size:13px;font-weight:600;min-height:38px;flex-shrink:0;cursor:pointer}
  .mclaim:active{opacity:.85}
  .mothers{padding:8px 12px 2px;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;border-top:1px solid var(--line)}
  .mempty{padding:15px 12px;text-align:center;font-size:13px}
  /* === EMPLOYEE HOME VIEW === */
  .homeview{max-width:640px;margin:0 auto;padding-bottom:24px}
  .hvhead{background:var(--panel2);padding:18px 16px 20px;border-radius:0 0 18px 18px}
  .hvgreetrow{display:flex;align-items:center;gap:10px;margin-bottom:12px}
  .hvdate{color:var(--muted);font-size:12px;letter-spacing:.5px}
  .hvgreet{font-size:22px;font-weight:600;margin-bottom:6px}
  .hvsummary{color:var(--muted);font-size:15px;margin-bottom:14px}
  .hvtoday{background:var(--panel);border:2px solid var(--accent);border-radius:14px;padding:14px}
  .hvtoday.hvoff{border-color:var(--line)}
  .hvtime{font-size:19px;font-weight:600;display:flex;align-items:center;gap:8px}
  .hvtime span{color:var(--muted);font-weight:400}
  .hvrole{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;margin-top:6px}
  .homeview .dot,.homedesk .dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
  .hvack{border-top:1px solid var(--line);margin-top:12px;padding-top:10px;font-size:13px}
  .hvack.ok{color:var(--ok)}
  .hvackbtn{margin-top:12px;background:var(--accent);color:#fff;border:0;border-radius:9px;padding:9px 14px;font-size:13px;font-weight:600;cursor:pointer}
  .hvbody{padding:16px}
  .hvmsg{font-size:17px;font-weight:600;margin-bottom:10px}
  .hvmsgrow{display:flex;align-items:center;gap:8px}
  .hvchat{background:var(--accent);color:#fff;border:0;border-radius:10px;padding:10px 16px;font-size:14px;font-weight:600;cursor:pointer}
  .hvsoon{font-size:11px;color:var(--muted);background:var(--panel2);border-radius:10px;padding:4px 8px}
  .hvuphd{display:flex;align-items:center;justify-content:space-between;margin:20px 0 8px}
  .hvuphd span{font-size:17px;font-weight:600}
  .hvviewall{background:transparent;border:0;color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}
  .hvup{display:flex;align-items:center;gap:12px;padding:11px 4px;border-top:1px solid var(--line);cursor:pointer}
  .hvup:active{background:var(--panel2)}
  .hvupdate{text-align:center;width:34px;flex:none}
  .hvupdate .d{font-size:11px;color:var(--muted)} .hvupdate .n{font-size:18px;font-weight:600}
  .hvupinfo{flex:1;min-width:0;display:flex;flex-direction:column}
  .hvupinfo .hint{display:flex;align-items:center;gap:6px;font-size:12px;margin-top:2px}
  .hvupchev{color:var(--muted);font-size:20px}
  /* === EMPLOYEE AGENDA (Me/Team) === */
  .agenda{padding-bottom:24px}
  .aghead{position:sticky;top:0;background:var(--panel2);z-index:3;padding:8px 10px 8px;border-bottom:1px solid var(--line)}
  .agtabs{display:flex;gap:26px;border-bottom:1px solid var(--line);margin-bottom:10px;padding:0 4px}
  .agtab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);font-size:14px;font-weight:600;padding:6px 0 8px;cursor:pointer}
  .agtab.on{color:var(--text);border-bottom-color:var(--accent)}
  .agstrip{display:flex;justify-content:space-between;gap:2px}
  .agday{flex:1;background:transparent;border:0;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:3px;padding:2px 0;cursor:pointer}
  .agday .d{font-size:11px}
  .agday .n{font-size:14px;font-weight:600;width:28px;height:28px;line-height:28px;border-radius:50%;text-align:center}
  .agday.today{color:var(--text)} .agday.today .n{box-shadow:inset 0 0 0 1.6px var(--accent)}
  .agday.sel{color:var(--text)} .agday.sel .n{background:var(--accent);color:#fff;box-shadow:none}
  .aglist{padding:10px}
  .agdaycard{background:var(--panel);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden;scroll-margin-top:124px}
  .agdaycard.sel{border-color:var(--accent)}
  .agdhd{display:flex;align-items:center;justify-content:space-between;padding:9px 12px;background:var(--panel2)}
  .agdate{display:flex;align-items:baseline;gap:8px}
  .agdate .dn{font-size:13px;color:var(--muted)} .agdate .dnum{font-size:16px;font-weight:700}
  .aghrs{font-size:12px;color:var(--muted)} .aghrs.off{opacity:.65}
  .agitems{display:flex;flex-direction:column}
  .agrow{display:flex;align-items:center;gap:10px;padding:11px 12px;border-top:1px solid var(--line);min-height:52px}
  .agrow.tap{cursor:pointer} .agrow.tap:active{background:var(--panel2)}
  .agbar{width:5px;align-self:stretch;border-radius:3px;flex:none;min-height:28px}
  .agtext{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;font-size:14px}
  .agtext .hint{font-size:12px}
  .agchev{color:var(--muted);font-size:18px;flex:none}
  .agclaim{background:var(--ok);color:#fff;border:0;border-radius:8px;padding:8px 14px;font-size:13px;font-weight:600;flex:none;cursor:pointer}
  .agempty{padding:14px 12px;text-align:center;font-size:13px}
  /* === EMPLOYEE HOME DESKTOP DASHBOARD === */
  .homedesk{max-width:1680px;margin:0;padding:18px 28px 36px}
  .hvdtop{display:flex;align-items:center;gap:12px;margin-bottom:16px}
  .hvdname{font-size:20px;font-weight:600}
  .hvddate{color:var(--muted);font-size:12px;letter-spacing:.3px;text-transform:uppercase}
  .hvstats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:16px}
  .hvstat{background:var(--panel2);border-radius:10px;padding:12px 14px}
  .hvstat .k{color:var(--muted);font-size:12px}
  .hvstat .v{font-size:22px;font-weight:600;margin-top:2px}
  .hvstat .v small{font-size:13px;color:var(--muted);font-weight:400}
  .hvgrid{display:grid;grid-template-columns:1.5fr 1fr;gap:16px;align-items:start}
  .hvmain .hvtoday{margin-bottom:14px}
  .hvcard{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:14px}
  .hvcard h4{margin:0 0 10px;font-size:14px;font-weight:600}
  .hvsrow{display:flex;align-items:center;gap:10px;padding:7px 0}
  .hvsrow+.hvsrow{border-top:1px solid var(--line)}
  .hvsinfo{flex:1;min-width:0;font-size:13px}
  .hvsinfo .hint{font-size:12px}
  .hvav{flex:none}
  .hvorow{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
  .hvorow:first-child{border-top:0}
  .hvobar{width:4px;align-self:stretch;border-radius:2px;min-height:24px;flex:none}
  .hvclaim{background:var(--ok);color:#fff;border:0;border-radius:7px;padding:6px 12px;font-size:12px;font-weight:600;cursor:pointer;flex:none}
  .hvobtns{display:flex;gap:6px;flex:none}
  .hvbid{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 11px;font-size:12px;font-weight:600;cursor:pointer}
  .hvbid.on{border-color:var(--accent);color:var(--accent)}
  .hvcancel{background:transparent;border:0;color:var(--muted);font-size:12px;cursor:pointer;flex:none;margin-left:6px}
  .hvcancel:hover{color:var(--crit)}
  .hvqa{display:flex;flex-direction:column;gap:8px}
  .hvqabtn{display:flex;align-items:center;gap:8px;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 12px;font-size:13px;font-weight:600;cursor:pointer;text-align:left}
  .hvqabtn:hover{border-color:var(--accent)}
  .hvbadge{font-size:11px;border-radius:8px;padding:2px 8px}
  .hvbadge.pend{background:var(--warn);color:#1a1205}
  @media (max-width:860px){.homedesk .hvgrid{grid-template-columns:1fr} .homedesk .hvstats{grid-template-columns:1fr 1fr}}
  @media (min-width:1400px){.homedesk .hvgrid{grid-template-columns:1.2fr 1.4fr} .homedesk .hvside{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-content:start} .homedesk .hvside .hvcard{margin-bottom:0}}
  /* === AUTO-SCHEDULE RESULT === */
  .arstats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}
  .arstat{background:var(--panel2);border-radius:8px;padding:8px 10px}
  .arstat .k{color:var(--muted);font-size:11px}
  .arstat .v{font-size:20px;font-weight:700;margin-top:2px}
  .arstat .v small{font-size:11px;color:var(--muted);font-weight:400}
  .arsec{font-size:13px;font-weight:600;margin:14px 0 8px}
  .arsec.warn{color:var(--warn)}
  .fairbox{background:var(--panel2);border-radius:10px;padding:10px 12px}
  .fairrow{display:flex;align-items:center;gap:8px;margin-bottom:7px}
  .fairrow:last-child{margin-bottom:0}
  .fairrow .fn{width:64px;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .fairrow .fbar{flex:1;height:7px;background:var(--line);border-radius:4px;overflow:hidden}
  .fairrow .fbar i{display:block;height:100%;background:var(--accent)}
  .fairrow .fh{width:34px;text-align:right;font-size:12px;color:var(--muted)}
  .whylist{max-height:240px;overflow:auto}
  .whyday{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-weight:700;margin:10px 0 4px}
  .whyrow{display:flex;align-items:center;gap:9px;padding:7px 0;border-top:1px solid var(--line)}
  .whybar{width:4px;align-self:stretch;border-radius:2px;min-height:24px;flex:none}
  .whytext{flex:1;min-width:0;font-size:13px}
  .autoflag{font-size:10px}
  /* === UNIVERSAL SEARCH === */
  .hdrsearch{display:inline-flex;align-items:center;gap:6px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:6px 11px;font-size:13px;font-weight:600;cursor:pointer}
  .hdrsearch:hover{color:var(--text);border-color:var(--accent)}
  .hdrsearch svg{width:15px;height:15px;flex:none}
  .searchov{position:fixed;inset:0;z-index:70;display:none}
  .searchov.show{display:block}
  .searchscrim{position:absolute;inset:0;background:rgba(0,0,0,.5)}
  .searchbox{position:absolute;top:64px;left:50%;transform:translateX(-50%);width:560px;max-width:94vw;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.55);overflow:hidden;max-height:72vh;display:flex;flex-direction:column}
  .searchhd{display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line)}
  .searchhd svg{width:18px;height:18px;color:var(--muted);flex:none}
  .searchhd input{flex:1;background:transparent;border:0;color:var(--text);font-size:16px;padding:0}
  .searchhd input:focus{outline:none}
  .searchresults{overflow:auto;padding:6px 8px 8px}
  .searchcat{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;padding:9px 8px 4px}
  .searchrow{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:9px;cursor:pointer}
  .searchrow.sel{background:var(--panel2)}
  .searchicon{width:22px;text-align:center;font-size:15px;flex:none}
  .searchtext{flex:1;min-width:0}
  .searchtext .sl{font-size:14px}
  .searchtext .ss{font-size:12px;color:var(--muted)}
  .searchempty{padding:26px;text-align:center;color:var(--muted);font-size:13px}
  .searchfoot{padding:8px 14px;border-top:1px solid var(--line);font-size:11px;color:var(--muted);display:flex;gap:14px}
  @media(max-width:640px){.hdrsearch span{display:none}.hdrsearch{padding:6px 8px}.searchbox{top:0;left:0;transform:none;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;border-radius:0}.searchfoot{display:none}}
  @media (max-width:640px){
    /* turn the left rail into a bottom view bar */
    .app{flex-direction:column}
    .appcol{order:1;min-height:0}
    .railnav{order:2;width:100%;height:auto;flex-direction:row;justify-content:space-around;align-items:stretch;gap:0;padding:0;border-right:0;border-top:1px solid var(--line);overflow:visible}
    .railnav .rlogo{display:none}
    .railnav button{flex:1 1 0;min-width:0;width:auto;height:54px;border-radius:0;font-size:9.5px;padding:0 1px}
    .railnav button span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .railnav button svg{width:20px;height:20px}
    /* tidy the header */
    #locClock{display:none}
    header.top{gap:6px 10px;padding:7px 12px}
    .brand{font-size:16px}
    header.top .nav{order:3;width:100%;justify-content:center}
    .headright{gap:7px}
    .syncstatus{padding:2px 6px}
    select.hdr{max-width:128px;padding:5px 7px}
    .rolebanner{display:none}
    /* employee action buttons: one compact, swipeable row */
    #empTools{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    #empTools::-webkit-scrollbar{display:none}
    #empTools .btn{padding:7px 11px;font-size:12px;white-space:nowrap}
    /* shift blocks palette hidden on mobile (add shifts via the editor, no drag) */
    aside,#sidebar{display:none!important}
    /* alerts now live in the Filters & alerts sheet on mobile — hide the standalone bar */
    .alerts{display:none!important}
    .rstabs,.rsrail,.rspf{display:none!important}
    .rspa{display:block!important}
    #alertHd{display:flex!important}
    .alerts #alertCollapse{display:none}
    .alerts h3{cursor:pointer;writing-mode:horizontal-tb}
    /* neutralize the desktop collapsed (44px vertical rail) style on mobile */
    .alerts.collapsed{width:auto;max-height:none}
    .alerts.collapsed h3{flex-direction:row;writing-mode:horizontal-tb;gap:8px;padding:11px 12px;justify-content:flex-start}
    .alerts.collapsed .htext{display:inline}
    .alerts.collapsed #alertCount{writing-mode:horizontal-tb}
    .alerts .aopenhint{display:inline;margin-left:auto;font-weight:400;color:var(--muted);font-size:12px}
    .alerts .achev{display:inline;color:var(--muted);font-size:12px;transition:transform .15s}
    .alerts[data-sev="warn"] h3{background:rgba(245,158,11,.15)}
    .alerts[data-sev="crit"] h3{background:rgba(239,68,68,.16)}
    .alerts[data-sev="info"] h3{background:rgba(59,130,246,.13)}
    .alerts:not(.aopen) .alertfilter,.alerts:not(.aopen) .alertlist{display:none}
    .alerts.aopen{position:fixed;left:0;right:0;bottom:0;max-height:80dvh;overflow:auto;z-index:56;border-radius:14px 14px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.5)}
    .alerts.aopen .achev{transform:rotate(180deg)}
    .alerts.aopen h3{position:sticky;top:0;background:var(--panel);border-bottom:1px solid var(--line)}
    .alerts.aopen .alertfilter{display:flex}
    .alerts.aopen .alertlist{display:block}
    .alertfilter{flex-wrap:wrap}
    .ascrim{display:none}
    .alerts.aopen + .ascrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:55}
    /* rail: respect home-bar inset, reliable taps */
    .railnav{padding-bottom:env(safe-area-inset-bottom)}
    .railnav button{min-height:54px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
    /* modals: no iOS zoom (bottom-sheet sizing is in the late @media block) */
    .modal input,.modal select,.modal textarea{font-size:16px}
    .modal .grid2{grid-template-columns:1fr}
    .modal .foot{position:sticky;bottom:0;background:var(--panel);padding-bottom:calc(12px + env(safe-area-inset-bottom))}
    /* manager toolbar: wrap actions (no swipe) + filters sheet + full-width publish */
    .mobonly{display:inline-flex;align-items:center}
    .toolbar{flex-direction:column;align-items:stretch;gap:8px;padding:8px 12px}
    .toolbar .spacer{display:none}
    #mgrTools{flex-direction:column;align-items:stretch;gap:8px;width:100%}
    .mgractions{flex-wrap:wrap;gap:8px}
    .mgractions>.btn,.mgractions .menu,.mgractions .menubtn{flex:0 0 auto;white-space:nowrap}
    #mFilterBtn{width:100%;justify-content:center;padding:9px}
    #publishBtn{width:100%;padding:11px}
    .legend span:last-child{display:none}
  }
  /* === MOBILE CARDS END === */
  /* === PROFILE TABS START === */
  .avatar-img{background-size:cover;background-position:center;background-repeat:no-repeat}
  .epwrap{display:flex;gap:14px;align-items:flex-start}
  .eptabs{display:flex;flex-direction:column;gap:2px;width:160px;flex:none}
  .eptab{display:flex;align-items:center;gap:9px;padding:9px 10px;border:0;border-radius:8px;background:transparent;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;text-align:left;width:100%}
  .eptab:hover{background:var(--panel2);color:var(--text)}
  .eptab.on{background:var(--accent);color:#fff}
  .eptabsel{display:none}
  .eppanes{flex:1;min-width:0}
  .eppane{display:none}
  .eppane.on{display:block}
  .eppills{position:sticky;top:0;background:var(--panel);display:flex;gap:6px;flex-wrap:wrap;padding:0 0 10px;z-index:2}
  .eppill{font-size:12px;padding:5px 11px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);cursor:pointer;font-weight:600}
  .eppill:hover{color:var(--text);border-color:var(--accent)}
  .ephdr{font-size:12px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;margin:18px 0 6px}
  .epanchor{scroll-margin-top:54px}
  .epphoto{position:relative;width:64px;height:64px;flex:none;cursor:pointer}
  .epphoto .cam{position:absolute;right:-2px;bottom:-2px;width:24px;height:24px;border-radius:50%;background:var(--panel2);border:2px solid var(--panel);display:flex;align-items:center;justify-content:center;color:var(--accent);font-size:12px}
  .epinfo{position:relative;display:inline-flex;cursor:pointer;color:var(--muted);vertical-align:middle}
  .eptip{display:none;position:absolute;top:20px;left:50%;transform:translateX(-50%);width:200px;max-width:62vw;background:var(--panel2);color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.5;z-index:6;font-weight:400;white-space:normal;box-shadow:0 6px 18px rgba(0,0,0,.4)}
  .epinfo:hover .eptip,.epinfo:focus .eptip,.epinfo.show .eptip{display:block}
  .epii{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;border:1px solid currentColor;font-size:10px;font-style:italic;line-height:1}
  .eptoggle{display:inline-flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--muted);cursor:pointer}
  .eptoggle input{position:absolute;opacity:0;width:0;height:0}
  .eptoggle .eptrack{position:relative;width:34px;height:18px;background:var(--panel3);border-radius:10px;flex:none;transition:background .15s}
  .eptoggle .eptrack::after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;background:#fff;border-radius:50%;transition:left .15s}
  .eptoggle input:checked + .eptrack{background:var(--accent)}
  .eptoggle input:checked + .eptrack::after{left:18px}
  .prefdaysrow{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
  .prefdaysrow .tchip{padding:6px 0;text-align:center;justify-content:center}
  .pronoun{font-weight:400;font-size:.85em;color:var(--muted);margin-left:3px}
  .epnote{background:var(--panel2);border-radius:8px;padding:8px 10px;font-size:13px;margin-bottom:6px}
  .epsum{display:flex;gap:10px;margin-bottom:14px}
  .epstat{flex:1;background:var(--panel2);border-radius:10px;padding:10px 12px}
  .epstat .k{font-size:11px;color:var(--muted)} .epstat .v{font-size:20px;font-weight:700;margin-top:2px}
  @media (max-width:640px){
    .epwrap{flex-direction:column}
    .eptabs{display:none}
    .eptabsel{display:block;width:100%;margin-bottom:10px}
    .tdprofbody{overflow-x:hidden}
    .eptabs::-webkit-scrollbar{display:none}
    .eptab{white-space:nowrap;border-radius:14px;padding:6px 12px}
    .epsum{flex-wrap:wrap}
  }
  /* === PROFILE TABS END === */
  /* === TEAM ROSTER START === */
  .teamwrap{padding:6px 4px 28px;max-width:780px;margin:0 auto}
  .teamhd{display:flex;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}
  .teamsearch{flex:1;min-width:150px}
  .trow{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 12px;margin-bottom:8px;cursor:pointer}
  .trow:hover{border-color:var(--accent)}
  .trow .tinfo{flex:1;min-width:0}
  .trow .tnm{font-weight:600;font-size:15px}
  .trow .tsub{font-size:12px;color:var(--muted)}
  .trow .thrs{text-align:right;min-width:72px;font-size:13px;flex:none}
  .trow .tbar{height:5px;background:var(--panel2);border-radius:3px;overflow:hidden;margin-top:3px}
  .trow .tbar i{display:block;height:100%}
  .trow .tchev{color:var(--muted);font-size:20px;flex:none}
  .tflag{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;border-radius:4px;padding:1px 6px}
  .tflag.minor{background:rgba(234,88,12,.18);color:#c2410c}
  .tflag.warn{background:rgba(245,158,11,.2);color:#b45309}
  :root[data-theme="light"] .tflag.minor{color:#9a3412} :root[data-theme="light"] .tflag.warn{color:#92400e}
  @media (max-width:640px){.teamhd .btn{flex:1}}
  /* === TEAM ROSTER END === */
  /* === TEAM DRAWER START === */
  .tdrawer{position:fixed;inset:0;z-index:46;display:none}
  .tdrawer.show{display:block}
  .tdscrim{position:absolute;inset:0;background:rgba(0,0,0,.5)}
  .tdpanels{position:absolute;top:0;bottom:0;left:66px;display:flex;max-width:100%}
  .tdroster{width:268px;flex:none;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
  .tdrosterhd{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:15px;font-weight:600}
  .tdrosterhd .hint{font-weight:400}
  .tdsearchwrap{padding:8px 12px}
  .tdsearchwrap input{width:100%}
  .tdlist{flex:1;overflow:auto;padding:4px 8px}
  .tdaddwrap{padding:0 12px 8px}
  .tdrow{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;margin-bottom:2px}
  .tdrow:hover{background:var(--panel2)}
  .tdrow.sel{background:var(--panel2);outline:1px solid var(--accent);outline-offset:-1px}
  .tdrow .tdinfo{flex:1;min-width:0;display:flex;flex-direction:column}
  .tdrow .tdnm{font-weight:600;font-size:14px}
  .tdrow .tdsub{font-size:12px;color:var(--muted)}
  .tdprofile{width:0;overflow:hidden;background:var(--panel);transition:width .2s ease;display:flex;flex-direction:column;min-height:0}
  .tdprofile.open{width:560px;border-right:1px solid var(--line)}
  .tdprofhd{display:flex;align-items:center;gap:10px;padding:11px 14px;border-bottom:1px solid var(--line)}
  .tdprofbody{flex:1;overflow:auto;padding:14px 16px}
  .tdproffoot{display:flex;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--line)}
  @media (max-width:640px){
    .tdpanels{left:0;right:0;bottom:56px}
    .tdroster{width:100vw}
    .tdprofile.open{position:absolute;inset:0;width:100vw;z-index:3}
  }
  .setindex{display:flex;gap:6px;flex-wrap:wrap;position:sticky;top:0;background:var(--panel);padding:2px 0 10px;z-index:2}
  .setpill{font-size:12px;padding:5px 12px;border-radius:14px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);cursor:pointer;font-weight:600}
  .setpill.on{background:var(--accent);color:#fff;border-color:var(--accent)}
  .setsub{font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:.5px;font-weight:700;margin:16px 0 8px;scroll-margin-top:48px}
  .setsub:first-child{margin-top:2px}
  .setrow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:13px}
  .setrow .hint{display:block;font-weight:400;margin-top:1px}
  .setrow .btn{flex:none}
  .rqbadge{background:var(--crit);color:#fff;border-radius:9px;font-size:11px;font-weight:700;padding:1px 7px;margin-right:4px;flex:none}
  /* === TEAM DRAWER END === */

  .overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:none;align-items:center;justify-content:center;z-index:250}
  .overlay.show{display:flex}
  .modal{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:620px;max-width:95vw;max-height:90vh;overflow:auto}
  .modal.lg{width:780px}
  .modal h2{margin:0;padding:13px 16px;border-bottom:1px solid var(--line);font-size:16px;display:flex;justify-content:space-between;align-items:center}
  .modal h2.mtabhd{padding:0 8px 0 0}
  .mtabs{display:flex}
  .mtab{background:transparent;border:0;border-bottom:2px solid transparent;color:var(--muted);font:inherit;font-weight:600;padding:13px 16px;cursor:pointer;margin-bottom:-1px}
  .mtab.on{color:var(--text);border-bottom-color:var(--accent)}
  .modal .content{padding:16px}
  .modal .foot{padding:12px 16px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:8px}
  label.fl{display:block;font-size:12px;color:var(--muted);margin:10px 0 4px;font-weight:600}
  input,select,textarea{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:8px;font-family:inherit;font-size:13px}
  input[type=text],input[type=number],input[type=tel],input[type=email],input[type=date],input[type=search],select,textarea{width:100%}
  .grid2>div,.grid3>div{min-width:0}
  .row{display:flex;gap:8px;align-items:center} .row.wrap{flex-wrap:wrap}
  .grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
  .cond{display:grid;grid-template-columns:1fr 80px 1fr 30px;gap:6px;margin-bottom:6px;align-items:center}
  .rulecard{border:1px solid var(--line);border-radius:8px;padding:10px;margin-bottom:8px;background:var(--panel2)}
  .rulecard .rh{display:flex;align-items:center;gap:8px;justify-content:space-between}
  .tag{font-size:10px;padding:2px 6px;border-radius:5px;text-transform:uppercase;font-weight:700;color:#fff}
  .switch{appearance:none;width:38px;height:22px;background:var(--line);border-radius:11px;position:relative;cursor:pointer;border:0;flex:none}
  .switch:checked{background:var(--ok)}
  .switch::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:.15s}
  .switch:checked::after{left:18px}
  .iconbtn{background:transparent;border:0;color:var(--muted);font-size:15px;padding:2px 6px;border-radius:6px}
  .iconbtn:hover{background:var(--panel);color:var(--text)}
  .rolestar{background:transparent;border:0;font-size:18px;line-height:1;cursor:pointer;width:24px;padding:0;color:var(--muted)}
  .rolestar.on{color:#f5b50a}
  .hint{color:var(--muted);font-size:12px;line-height:1.5}
  .toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--panel2);border:1px solid var(--line);border-left:4px solid var(--ok);border-radius:8px;padding:10px 16px;z-index:80;opacity:0;transition:opacity .2s;font-size:13px;max-width:80vw}
  .toast.show{opacity:1}
  .chips{display:flex;flex-wrap:wrap;gap:6px}
  .chip{background:var(--panel2);border:1px solid var(--line);border-radius:14px;padding:4px 10px;font-size:12px;display:flex;align-items:center;gap:6px}
  .chip .x{cursor:pointer;color:var(--muted)}
  .tchip{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:14px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer;transition:background .1s,border-color .1s}
  .visit{font-size:10px;background:#78350f;color:#fcd34d;padding:1px 6px;border-radius:5px;margin-left:5px;font-weight:600;white-space:nowrap}
  :root[data-theme="light"] .visit{background:#fde68a;color:#92400e}
  .indgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .indbtn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);cursor:pointer;color:var(--text);font-size:13px;text-align:center}
  .indbtn:hover{border-color:var(--accent)}
  .indbtn.on{border-color:var(--accent2);background:var(--accent);color:#fff}
  .loc-overview{margin-bottom:14px}
  .loc-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}
  .loc-card{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--panel2);cursor:pointer}
  .loc-card:hover{border-color:var(--accent)}
  .loc-card.cur{border-color:var(--accent2)}
  .locsection{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:18px 0 6px;padding-bottom:5px;border-bottom:1px solid var(--line)}
  .locsection:first-child{margin-top:0}
  .myagenda{max-width:580px}
  .agday{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:14px 0 6px}
  .agshift{display:flex;gap:10px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:10px;margin-bottom:8px;background:var(--panel2)}
  .agbar{width:4px;align-self:stretch;border-radius:2px;min-height:30px}
  .agname{font-size:14px}
  .agloc{font-size:11px;background:var(--panel3);border-radius:6px;padding:3px 9px;white-space:nowrap}
  .agloc.away{background:#78350f;color:#fcd34d}
  .lc-name{font-weight:600;font-size:14px;margin-bottom:8px}
  .lc-stats{display:flex;gap:10px;justify-content:space-between}
  .lc-v{font-size:18px;font-weight:700}
  .lc-k{font-size:11px;color:var(--muted)}
  .tchip:hover{border-color:var(--accent);color:var(--text)}
  .tchip.on{background:var(--accent);border-color:var(--accent2);color:#fff}
  .timesel{width:100%}
  .qfsel{height:30px;max-width:142px;font-size:12px;padding:2px 6px}
  .fdrop{position:relative;display:inline-block}
  .fpanel{position:absolute;top:calc(100% + 4px);left:0;z-index:60;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:5px;min-width:160px;display:none;box-shadow:0 8px 24px rgba(0,0,0,.35)}
  .fpanel.show{display:block}
  .fpanel .frow{display:flex;align-items:center;gap:6px;padding:5px 9px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}
  .fpanel .frow:hover{background:var(--panel2)}
  .fpanel .frow.active{color:var(--accent);font-weight:600}
  .shift.dim{opacity:.16}
  .toblock{background:repeating-linear-gradient(135deg,#3f1d2e 0 7px,#4a2436 7px 14px);color:#fca5a5;border-radius:7px;padding:3px 7px;font-size:11px;font-weight:600;border-left:4px solid #b9486b;margin-bottom:3px}
  .budrow td{background:var(--panel2);border-bottom:2px solid var(--line);vertical-align:middle}
  .grouprow td{background:var(--panel3);padding:6px 12px;font-size:12px;vertical-align:middle}
  .grouprow .empcol{border-left:3px solid var(--accent);z-index:2}
  .grouprow .grpsub{color:var(--ok);font-size:11px}
  .budcell{padding:6px 8px;text-align:center}
  .budbar{height:5px;background:var(--panel3);border-radius:3px;overflow:hidden;margin-bottom:3px}
  .budbar i{display:block;height:100%}
  .budnum{font-size:11px;color:var(--text)}
  .rowmenu,.daymenu{position:absolute;top:5px;right:5px;background:none;border:0;color:var(--muted);cursor:pointer;font-size:15px;line-height:1;padding:1px 6px;border-radius:5px}
  .rowmenu:hover,.daymenu:hover{color:var(--text);background:var(--panel3)}
  .legend{display:flex;gap:14px;align-items:center;padding:5px 14px;color:var(--muted);font-size:12px;border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap}
  .legend span{display:flex;align-items:center;gap:5px}
  .sw{width:12px;height:12px;border-radius:3px;display:inline-block}
  .avgrid{display:grid;grid-template-columns:70px 1fr 1fr 70px;gap:6px;align-items:center;margin-bottom:5px}
  .pill{font-size:10px;padding:1px 7px;border-radius:10px;font-weight:700}
  .pill.pending{background:#78350f;color:#fcd34d} .pill.approved{background:#064e3b;color:#6ee7b7} .pill.denied{background:#7f1d1d;color:#fca5a5}
  .covbar{display:flex;height:18px;border-radius:5px;overflow:hidden;background:var(--panel3);font-size:10px}
  .notif{padding:9px 12px;border-bottom:1px solid var(--line);font-size:12px;display:flex;gap:8px;align-items:flex-start;cursor:pointer;transition:background .12s}
  .notif:hover{background:var(--panel2)}
  .notif.unread{background:var(--panel3)}
  .notif .dotn{width:7px;height:7px;border-radius:50%;background:var(--accent);margin-top:5px;flex:none}
  .notif .dotspacer{width:7px;flex:none}
  .notifday{padding:8px 12px 4px;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--panel);position:sticky;top:0;z-index:1}
  .notifrt{color:var(--muted);font-size:10.5px;white-space:nowrap;margin-left:auto;padding-left:8px;align-self:flex-start}
  .notifto{display:inline-block;font-size:10px;font-weight:600;color:var(--muted);background:var(--panel3);border-radius:6px;padding:1px 6px;margin-bottom:3px}
  .notifhd{display:flex;align-items:center;justify-content:space-between;padding:6px 8px 6px 14px;border-bottom:1px solid var(--line)}
  .notiflink{background:none;border:none;color:var(--accent);font-size:11.5px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:6px}
  .notiflink:hover{background:var(--panel3)}
  .notifgrp{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--line);cursor:pointer;transition:background .12s}
  .notifgrp:hover{background:var(--panel2)}
  .notifgrp .gico{width:30px;height:30px;border-radius:8px;background:var(--panel3);display:flex;align-items:center;justify-content:center;flex:none;color:var(--accent)}
  .notifgrp .gico svg{width:16px;height:16px}
  .notifgrp .gtxt{flex:1;min-width:0;font-size:12px}
  .notifgrp .gcnt{font-weight:700}
  .notifgrp .chev{color:var(--muted);flex:none;transition:transform .15s}
  .notifgrp.open .chev{transform:rotate(90deg)}
  .notif.child{padding-left:34px;background:rgba(0,0,0,.12)}
  .notif.child:hover{background:var(--panel2)}
  .npfhdr{display:grid;grid-template-columns:1fr 58px 58px;gap:8px;font-size:11px;color:var(--muted);font-weight:600;padding:0 2px 8px;align-items:end}
  .npfhdr span{text-align:center} .npfhdr span:first-child{text-align:left}
  .npfrow{display:grid;grid-template-columns:1fr 58px 58px;gap:8px;align-items:center;padding:11px 2px;border-top:1px solid var(--line)}
  .npflabel{font-weight:600;font-size:13px}
  .npftog{display:flex;align-items:center;justify-content:center;cursor:pointer;margin:0}
  .npftog input{width:18px;height:18px;cursor:pointer;accent-color:var(--accent)}
  .secmxwrap{border:1px solid var(--line);border-radius:12px;overflow:auto;background:var(--panel)}
  table.secmx{border-collapse:separate;border-spacing:0;width:100%;min-width:380px}
  .secmx thead th{position:sticky;top:0;z-index:3;background:var(--panel2);border-bottom:1px solid var(--line)}
  .secmx th.secmcap,.secmx td.secmcap{position:sticky;left:0;z-index:2;background:var(--panel);text-align:left;min-width:150px;max-width:200px}
  .secmx thead th.secmcap{z-index:4;background:var(--panel2)}
  .secmrole{min-width:88px;padding:9px 6px;vertical-align:top;text-align:center;position:relative}
  .secdot{display:inline-block;width:8px;height:8px;border-radius:50%}
  .secrn{font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center;gap:4px;margin-top:3px}
  .seclk{color:var(--muted);display:inline-flex}
  .seccnt{font-size:10px;color:var(--muted);font-weight:500;margin-top:1px}
  .secdel{position:absolute;top:2px;right:4px;background:none;border:0;color:var(--muted);font-size:11px;cursor:pointer;line-height:1}
  .secdel:hover{color:var(--crit)}
  .secmx tr.secsec td{background:var(--bg);padding:7px 12px;font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .secmx tbody td{padding:8px 6px;border-bottom:1px solid var(--line);text-align:center}
  .secmx td.secmcap{padding:9px 12px}
  .seclbl{font-weight:600;font-size:12.5px}
  .sechint{color:var(--muted);font-size:10.5px;margin-top:1px}
  .seccell{width:26px;height:26px;border-radius:7px;border:1.6px solid var(--line);background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:#fff;transition:all .12s}
  .seccell svg{opacity:0;transform:scale(.6);transition:all .12s}
  .seccell:hover{border-color:var(--accent)}
  .seccell.on{background:var(--accent);border-color:var(--accent)} .seccell.on svg{opacity:1;transform:scale(1)}
  .seccell.locked{cursor:default;background:linear-gradient(135deg,rgba(124,58,237,.9),rgba(37,99,235,.9));border-color:transparent} .seccell.locked svg{opacity:1;transform:scale(1)}
  .segtabs{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:9px;padding:3px}
  .segtab{background:transparent;border:0;color:var(--muted);font-size:13px;font-weight:600;padding:6px 14px;border-radius:7px;cursor:pointer}
  .segtab.on{background:var(--accent);color:#fff}
  .acksum{margin-bottom:10px}
  .acksumbar{height:7px;border-radius:4px;background:var(--panel3);overflow:hidden;margin-bottom:4px}
  .acksumbar i{display:block;height:100%;background:var(--ok)}
  .ackrow{display:flex;align-items:center;gap:10px;padding:9px 2px;border-bottom:1px solid var(--line)}
  .ackinfo{flex:1;min-width:0}
  .ackname{font-weight:600;font-size:13px}
  .ackpill{font-size:11px;font-weight:600;border-radius:999px;padding:3px 10px;white-space:nowrap}
  .ackpill.ok{background:rgba(22,163,74,.15);color:var(--ok)}
  .ackpill.part{background:rgba(245,158,11,.15);color:var(--warn)}
  .ackpill.no{background:var(--panel3);color:var(--muted)}
  .ackstrip{display:flex;gap:4px;margin-bottom:10px}
  .ackday{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--muted);padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;font-size:11px}
  .ackday b{font-size:14px;color:var(--text)}
  .ackday.on{border-color:var(--accent);background:var(--panel3)} .ackday.on b{color:var(--accent)}
  .ackday.today b{text-decoration:underline}
  .secsave{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
  .secsave.dirty{border-color:var(--accent);background:var(--panel3)} .secsave.dirty #secSaveMsg{color:var(--accent);font-weight:600}
  .tbandrow{display:flex;align-items:center;gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
  .tbandrow .tbcolor{width:30px;height:30px;border:1px solid var(--line);border-radius:7px;background:none;padding:2px;flex:none;cursor:pointer}
  .tbandrow .tbname{flex:1;min-width:0;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 8px;font-size:13px}
  .tbandrow .tbfrom{width:64px;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 8px;font-size:13px}
  .payrow{border:1px solid var(--line);border-radius:11px;margin-bottom:10px;background:var(--panel2);overflow:hidden}
  .payhead{display:flex;align-items:center;gap:10px;padding:10px 12px}
  .paywho{display:flex;align-items:center;gap:9px;flex:1;min-width:0}
  .paynm{font-weight:600;font-size:13px}
  .payrate{display:flex;align-items:center;gap:4px;background:var(--panel3);border:1px solid var(--line);border-radius:8px;padding:5px 9px}
  .payrate .paybase{background:none;border:0;color:var(--text);font-size:15px;font-weight:700;width:62px;outline:none}
  .paytog{flex:none}
  .paydetail{border-top:1px solid var(--line);padding:6px 12px 12px}
  .paylbl{font-size:11px;color:var(--muted);font-weight:600;margin:10px 0 5px;text-transform:uppercase;letter-spacing:.04em}
  .payeff{background:var(--panel3);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 9px;font-size:13px}
  .payrr{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}
  .payrr:last-of-type{border-bottom:0}
  .payrr .rr{margin-left:auto;display:flex;align-items:center;gap:4px;background:var(--panel3);border:1px solid var(--line);border-radius:7px;padding:4px 8px}
  .payrr .rr input{background:none;border:0;color:var(--text);width:54px;font-weight:600;outline:none}
  .payhist .payhr{font-size:13px;padding:3px 0}
  .tprevwrap{border:1px solid var(--line);border-radius:10px;padding:2px 12px;background:var(--panel)}
  .tprev{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px}
  .tprev:last-child{border-bottom:0}
  .tenrec{display:flex;align-items:center;gap:8px;background:rgba(124,58,237,.12);border:1px solid var(--violet);border-radius:9px;padding:8px 11px;margin-bottom:10px;font-size:12.5px}
  .accidcard{display:flex;gap:10px;align-items:center;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:14px}
  .accmemb{display:flex;align-items:center;gap:9px;padding:9px 2px;border-bottom:1px solid var(--line)}
  .accchk{width:16px;height:16px;flex:none;accent-color:var(--accent);cursor:pointer}
  .accmemb .accav{width:30px;height:30px;border-radius:50%;background:var(--violet);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex:none}
  .accmemb .accinfo{flex:1;min-width:0}
  .accmemb .accnm{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .accmemb .accem{color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .accmemb .accrolesel,.accmemb .acclink{max-width:118px;flex:none}
  .accbulk{display:flex;gap:8px;align-items:center;background:var(--panel3);border:1px solid var(--accent);border-radius:10px;padding:8px 10px;margin-bottom:10px;flex-wrap:wrap}
  .accinv{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding:7px 0}
  .accpend{margin-bottom:6px}
  @media(max-width:560px){.accmemb{flex-wrap:wrap}.accmemb .accinfo{flex-basis:55%}.accmemb .accrolesel,.accmemb .acclink{max-width:none;flex:1}}
  .rephdr{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
  .rephtitle{display:flex;align-items:baseline;gap:10px;flex:1;min-width:0}
  .rephctl{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
  .rephctl input[type=date]{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:7px 9px;font-size:13px}
  /* messages · announcements */
  .msgwrap{max-width:760px;margin:0 auto}
  .msghd{display:flex;align-items:center;gap:12px;margin-bottom:16px}
  .msghd h2{font-size:20px}.msghd .hint{font-size:12px}
  .msghd .btn.primary{margin-left:auto;white-space:nowrap}
  .annfeed{display:flex;flex-direction:column;gap:14px}
  .annempty{text-align:center;padding:48px 20px;border:1px dashed var(--line);border-radius:14px;color:var(--muted)}
  .anncard{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:14px 15px}
  .anncard.pinNote{border-left:3px solid var(--warn)}
  .annhd{display:flex;align-items:center;gap:10px;margin-bottom:9px}
  .annav{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex:none}
  .annwho{font-weight:600;font-size:13.5px}.annwhen{font-size:11px;color:var(--muted)}
  .annaud{margin-left:auto;font-size:10px;font-weight:700;border-radius:6px;padding:3px 8px;background:rgba(37,99,235,.16);color:#7ea3f7;white-space:nowrap}
  .annbody{font-size:14px;line-height:1.55;white-space:pre-wrap;word-wrap:break-word}
  .annpin{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--warn);background:rgba(245,158,11,.12);border-radius:6px;padding:3px 9px;margin-top:10px}
  .annfoot{display:flex;align-items:center;gap:12px;margin-top:12px;padding-top:11px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}
  .annseen{display:flex;align-items:center;gap:6px}
  .annseen[data-annseen]{cursor:pointer;border-radius:6px;padding:2px 5px;margin:-2px -5px}
  .annseen[data-annseen]:hover{background:var(--panel2);color:var(--text)}
  .seenrow{display:flex;align-items:center;gap:10px;padding:7px 2px;font-size:13px;border-bottom:1px solid var(--line)}
  .seenrow:last-child{border-bottom:0}
  .seenrav{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex:none}
  .annfoot .seenav{display:flex}.annfoot .seenav span{width:19px;height:19px;border-radius:50%;border:2px solid var(--panel);margin-left:-6px;font-size:8px;font-weight:700;color:#fff;display:flex;align-items:center;justify-content:center}
  .anndelv{margin-left:auto;display:flex;gap:6px}
  .anndelv .dchip{font-size:10px;color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:2px 6px}
  .annsel{width:100%;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:8px;padding:9px 10px;font-size:13px;font-family:inherit}
  .annpeople{max-height:170px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:6px}
  .annchk{display:flex;align-items:center;gap:8px;padding:6px 6px;font-size:13px;border-radius:6px}
  .annchk:hover{background:var(--panel2)}.annchk input{width:auto}
  .anntog{display:flex;align-items:center;gap:9px;font-size:13px;margin-top:8px}.anntog input{width:auto}
  /* maps */
  .geohandle{background:#fff;border:3px solid #2563EB;border-radius:50%;box-shadow:0 1px 5px rgba(0,0,0,.5);cursor:grab}
  .gdbar{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
  .gdbar .shp{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:7px 12px;font-size:12.5px;font-weight:600;cursor:pointer;font-family:inherit}
  .gdbar .shp.on{background:var(--grad);color:#fff;border-color:transparent}
  .leaflet-popup-content{font-size:12.5px;line-height:1.4}
  /* timecards */
  .tcwrap{max-width:none;margin:0}
  .tchead{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
  .tchtitle{flex:1;min-width:0}.tchtitle h2{font-size:20px}.tchtitle .hint{font-size:12px}
  .tcnav{display:flex;align-items:center;gap:6px}.tcnav .tcper{font-weight:600;font-size:13px;min-width:130px;text-align:center}
  .tckpis{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:14px}
  .tckpi{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 14px;min-width:120px}
  .tckpi .k{font-size:11px;color:var(--muted)}.tckpi .v{font-size:20px;font-weight:800;margin-top:2px}
  .tckpi.flag .v{color:var(--warn)}
  .tctabs{display:flex;gap:8px;margin-bottom:12px}
  .tctab{font-size:12.5px;font-weight:600;border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:6px 13px;cursor:pointer;font-family:inherit}
  .tctab.on{background:var(--panel3);color:var(--text);border-color:transparent}
  .tctab .tn{background:var(--warn);color:#3a2a06;border-radius:999px;padding:0 6px;font-size:11px;font-weight:800}
  .tcbody{display:flex;flex-direction:column;gap:8px}
  .tctabswrap{margin-bottom:12px}
  .tctabswrap .tctabs{margin-bottom:0}
  .tcfbtn{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:12px;padding:6px 11px;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;width:auto;line-height:1.2}
  .tcfbtn.on{border-color:var(--accent)}
  .tcfgroup{padding:6px 9px}
  .tcfbadge{background:var(--accent);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px}
  .tcfpanel{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
  .tcfsel{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--text);font-size:12px;padding:7px 9px;font-family:inherit;cursor:pointer;flex:0 0 auto;width:auto;min-width:150px;max-width:230px}
  .tcfchips{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:9px}
  .tcfchip{background:rgba(37,99,235,.16);color:#93b8f8;font-size:11px;padding:5px 9px;border-radius:7px;display:inline-flex;align-items:center;gap:6px;cursor:pointer}
  .tcfchip b{font-weight:400;opacity:.8}
  .tcfclear{background:none;border:0;color:#6b9bf0;font-size:12px;cursor:pointer;font-family:inherit;padding:4px 6px}
  .tcgrp{display:flex;align-items:center;gap:9px;padding:8px 14px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:8px;margin-top:6px;font-size:12.5px}
  .tcgrp-nm{font-weight:600}
  .tcgrp-sub{color:var(--muted);font-size:11.5px;white-space:nowrap}
  .tcempty{text-align:center;padding:40px;border:1px dashed var(--line);border-radius:12px}
  .tcrow{display:grid;grid-template-columns:1.6fr 1.2fr 1fr 1.4fr auto;gap:12px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:11px 14px}
  .tcrow.rev{border-color:rgba(245,158,11,.4);background:rgba(245,158,11,.05)}
  .tcr-main{display:flex;align-items:center;gap:9px;min-width:0}
  .tcav{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;flex:none}
  .tcr-nm{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tcr-sub{font-size:11px;color:var(--muted)}
  .tcr-punch{display:flex;align-items:center;gap:7px;font-variant-numeric:tabular-nums}
  .tcp{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:5px 8px;font-weight:600;font-size:12.5px}.tcp.bad{border-color:var(--crit);color:#fca5a5}
  .tcarr{color:var(--muted)}
  .tcr-meta{display:flex;align-items:center;gap:8px;font-size:13px}.tcr-meta b{font-weight:700}
  .tcprem{font-size:11px;font-weight:700;color:#fbbf24;background:rgba(245,158,11,.14);border-radius:5px;padding:2px 6px}
  .tcr-flags{display:flex;flex-wrap:wrap;gap:4px}
  .tcflag{font-size:10px;font-weight:700;border-radius:5px;padding:2px 7px}
  .tcflag.crit{background:rgba(239,68,68,.16);color:#fca5a5}.tcflag.warn{background:rgba(245,158,11,.16);color:#fbbf24}.tcflag.info{background:rgba(37,99,235,.18);color:#7ea3f7}.tcflag.ok{background:rgba(22,163,74,.16);color:#4ade80}
  .tcr-acts{display:flex;gap:6px;align-items:center;justify-content:flex-end}
  .tcbtn2{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
  .tcbtn2.ok{background:var(--ok);border-color:transparent;color:#fff}.tcbtn2.warn{background:var(--warn);border-color:transparent;color:#3a2a06}
  .tcappd{font-size:12px;color:var(--ok);font-weight:700}
  .statecard2{background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:9px 11px;margin-top:8px;font-size:13px}
  .segrow{display:flex;gap:6px;margin-top:4px}
  .segbtn{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:9px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
  .segbtn.on{background:var(--grad);color:#fff;border-color:transparent}
  /* T&A settings drill-in menu */
  .tamenu{display:flex;flex-direction:column;gap:2px}
  .tasec{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:12px 8px 4px}
  .tamrow{display:flex;align-items:center;gap:13px;width:100%;padding:12px 10px;border:0;background:transparent;color:var(--text);border-radius:11px;cursor:pointer;text-align:left;font-family:inherit}
  .tamrow:hover{background:var(--panel2)}
  .tamic{width:38px;height:38px;border-radius:10px;background:var(--panel2);display:flex;align-items:center;justify-content:center;flex:none}
  .tamic svg{width:19px;height:19px;color:var(--muted)}
  .tamtxt{flex:1;min-width:0;display:flex;flex-direction:column}
  .tamt{font-weight:600;font-size:14px}
  .tams{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tamchev{color:var(--muted);font-size:18px;flex:none;transition:transform .15s ease}
  .tamrow.open{background:var(--panel2)}
  .tamrow.open .tamchev{transform:rotate(90deg)}
  .tamrow.open .tamic{background:var(--panel3)}
  .tapanel{padding:4px 10px 12px 12px;margin:0 0 4px;border-left:2px solid var(--accent);background:rgba(37,99,235,.04);border-radius:0 0 10px 0;animation:taExpand .16s ease}
  @keyframes taExpand{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
  .tcsum{margin-top:8px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px}
  .tcsumhd{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;margin:-2px -2px 12px;padding-bottom:11px;border-bottom:1px solid var(--line)}
  .tcsumhd .bico{width:16px;height:16px;margin:0;color:var(--ok);vertical-align:0}
  .tcsumper{margin-left:auto;font-weight:400;color:var(--muted);font-size:12px}
  .tcsumwrap{overflow:auto}
  .kklink{display:flex;gap:8px;align-items:flex-start;padding:9px 0;border-bottom:1px solid var(--line)}
  .kklink:last-child{border-bottom:0}
  .tcsumtbl{width:100%;border-collapse:collapse;font-size:13px;min-width:420px}
  .tcsumtbl th{text-align:right;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:0 10px 7px}
  .tcsumtbl th:first-child{text-align:left}
  .tcsumtbl td{text-align:right;padding:7px 10px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
  .tcsumtbl td:first-child{text-align:left}
  .tcsumtbl td .hint{font-size:10px}
  .tcsumtbl .otc{color:#fbbf24;font-weight:700}.tcsumtbl .dtc{color:#c4b5fd;font-weight:700}
  .tcsumtbl tfoot td{border-top:2px solid var(--line);font-weight:700}
  .ptobaltbl{width:100%;border-collapse:collapse;font-size:13px;min-width:340px}
  .ptobaltbl th{text-align:right;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;padding:0 10px 7px}
  .ptobaltbl th:first-child{text-align:left}
  .ptobaltbl td{text-align:right;padding:8px 10px;border-top:1px solid var(--line);font-variant-numeric:tabular-nums}
  .ptobaltbl td:first-child{text-align:left;font-weight:600}
  @media(max-width:760px){.tcrow{grid-template-columns:1fr 1fr;gap:8px}.tcr-flags{grid-column:1/-1}.tcr-acts{grid-column:1/-1;justify-content:flex-start}}
  /* timecards: employee landing rows */
  .tcemp{display:block;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--line);border-radius:11px;padding:11px 14px;cursor:pointer;transition:border-color .12s ease}
  .tcemp:hover,.tcemp:focus-visible{border-color:var(--accent);outline:none}
  .tcemp.st-rev{border-left-color:var(--warn)}
  .tcemp.st-ok{border-left-color:var(--ok)}
  .tcemp.rev{background:rgba(245,158,11,.05)}
  .tcemp.dim{opacity:.55}
  .tce-top{display:flex;align-items:center;gap:12px}
  .tce-nm{min-width:0;flex:1}
  .tce-h{font-size:14px;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
  .tce-st{display:flex;flex-direction:column;gap:4px;align-items:flex-end}
  .tcwk{display:grid;gap:5px;margin-top:9px}
  .tcwd{background:var(--panel2);border:1px solid transparent;border-radius:7px;padding:5px 2px;text-align:center;min-width:0}
  .tcwd .wd{font-size:9px;color:var(--muted);letter-spacing:.02em}
  .tcwd .wv{font-size:12px;font-weight:500;margin-top:1px;color:#4a5468;font-variant-numeric:tabular-nums}
  .tcwd.has .wv{color:var(--text)}
  .tcwd.rev{border-color:var(--warn)}
  .tcwd.miss{border-color:var(--crit)}
  .tcwd .wmiss{font-size:9px;color:#fca5a5}
  .tce-st .tcflag{white-space:nowrap}
  .tce-chev{color:var(--muted);font-size:18px;line-height:1}
  .tsot{font-size:11px;font-weight:700;color:#fbbf24;margin-left:6px}
  .tcstrip{display:flex;gap:3px;align-items:stretch;height:30px;min-width:0}
  .tcsd{flex:1;position:relative;display:flex;flex-direction:column-reverse;border-bottom:1px solid var(--line);min-width:3px}
  .tcsd i{display:block;background:#3b82f6;border-radius:2px 2px 0 0}
  .tcsd i.ot{background:var(--warn)}
  .tcsd i+i{border-radius:2px 2px 0 0}
  .tcsd .ex{position:absolute;top:-1px;right:0;width:6px;height:6px;border-radius:50%;background:var(--crit)}
  .tcsd .ex.miss{background:transparent;border:1.5px solid var(--crit);width:5px;height:5px}
  .tcseg{display:flex;gap:2px;width:100%;max-width:96px}
  .tcseg i{flex:1;height:3px;border-radius:2px;background:var(--panel3)}
  .tcseg i.f{background:var(--ok)}
  .tcq{background:var(--panel);border:1px solid var(--line);border-radius:999px;color:var(--text);padding:6px 13px;font-size:12.5px;font-family:inherit;width:170px}
  .tctabs{flex-wrap:wrap;align-items:center}
  .tczero{display:flex;align-items:center;gap:12px;width:100%;background:var(--panel);border:1px dashed var(--line);border-radius:11px;padding:9px 14px;margin-top:8px;color:var(--muted);font-size:12.5px;cursor:pointer;font-family:inherit}
  .tczero:hover{border-color:var(--accent);border-style:solid}
  .tczav{display:flex}
  .tczav .tcav{width:22px;height:22px;font-size:9px;border:2px solid var(--panel);margin-right:-7px}
  #tcZeroList .tcemp{opacity:.6}
  .tsvar{font-size:10.5px;font-weight:700;display:block;margin-top:2px}
  .tsvar.over{color:#fbbf24}.tsvar.under{color:var(--muted)}
  .tsdtot span{display:block}
  .tsplus{opacity:0;color:var(--accent);font-weight:700;margin-left:5px;transition:opacity .12s ease}
  .tsday:hover .tsplus{opacity:1}
  .tsdate[data-dayadd]{cursor:pointer}
  .tsdate[data-dayadd]:hover{background:rgba(37,99,235,.07)}
  .tsline.add{cursor:pointer;color:var(--muted)}
  .tsline.add .tsl-p{opacity:0;transition:opacity .12s ease}
  .tsday:hover .tsline.add .tsl-p{opacity:1}
  .tsline.add:hover{background:rgba(37,99,235,.07)}
  .tsline.click{cursor:pointer}
  .tsline.click:hover{background:rgba(37,99,235,.06)}
  .tsmeter{position:relative;display:inline-flex;width:130px;height:6px;background:var(--panel3);border-radius:3px;vertical-align:middle;margin-right:9px}
  .tsmeter i{height:100%;background:#3b82f6;border-radius:3px 0 0 3px}
  .tsmeter i.ot{background:var(--warn);border-radius:0 3px 3px 0}
  .tsmeter u{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--muted);transform:translateX(-1px);border-radius:1px}
  .tcp1{font-size:9px;font-weight:800;color:#7ea3f7;margin-left:2px}
  .tcrole{font-size:10px;font-weight:700;border-radius:5px;padding:2px 7px;background:rgba(139,92,246,.16);color:#c4b5fd;white-space:nowrap}
  .tcpimg{width:86px;border-radius:9px;border:1px solid var(--line);display:block}
  .bico{width:14px;height:14px;vertical-align:-2.5px;margin-right:4px}
  .adtheme{display:flex;gap:6px;padding:4px 10px 8px}
  .adtheme .thb{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:7px 0;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit}
  .adtheme .thb.on{background:var(--panel3);color:var(--text);border-color:var(--accent)}
  .lgrpadd{float:right;background:none;border:0;color:var(--muted);font-size:14px;cursor:pointer;font-family:inherit;padding:0 2px;line-height:1}
  .lgrpadd:hover{color:var(--accent)}
  .chedit{background:none;border:0;color:var(--muted);font-size:12px;cursor:pointer;font-family:inherit;padding:2px 4px;opacity:0;transition:opacity .12s}
  .mitem:hover .chedit{opacity:1}
  .chedit:hover{color:var(--accent)}
  .epsec{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--line)}
  .epadv{margin-top:14px;border:1px dashed var(--line);border-radius:10px;padding:10px 12px}
  .epadv summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--muted)}
  .epadv summary:hover{color:var(--text)}
  .epadv[open] summary{margin-bottom:2px;color:var(--text)}
  .otbn{background:rgba(245,158,11,.06);border:1px solid rgba(245,158,11,.35);border-radius:11px;padding:10px 12px;margin-bottom:8px}
  .otbn-h{font-size:12px;font-weight:700;color:#fbbf24;margin-bottom:6px}
  .otbn-row{display:flex;align-items:center;gap:9px;width:100%;background:none;border:0;border-top:1px dashed rgba(245,158,11,.25);color:var(--text);padding:7px 2px;font-size:12.5px;cursor:pointer;font-family:inherit}
  .otbn-row:first-of-type{border-top:0}
  .otbn-row:hover{color:#fbbf24}
  /* kiosk */
  .kioskov{position:fixed;inset:0;z-index:9999;background:#0b1220;color:#e8ecf5;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;text-align:center;overflow:auto}
  .kio-clock{font-size:46px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1.1}
  .kio-sub{color:var(--muted);margin-top:6px;font-size:14px}
  .kio-dots{display:flex;gap:14px;justify-content:center;margin:24px 0 18px}
  .kio-dots i{width:15px;height:15px;border-radius:50%;background:var(--panel3);border:1px solid var(--line)}
  .kio-dots i.f{background:var(--accent);border-color:var(--accent)}
  .kio-pad{display:grid;grid-template-columns:repeat(3,minmax(72px,88px));gap:12px;justify-content:center}
  .kio-pad button{height:68px;border-radius:16px;background:var(--panel);border:1px solid var(--line);color:var(--text);font-size:25px;font-weight:700;cursor:pointer;font-family:inherit}
  .kio-pad button:active{background:var(--panel3);transform:scale(.97)}
  .kio-err{color:#fca5a5;min-height:18px;font-size:13px;margin-top:12px}
  .kio-exit{margin-top:24px;background:none;border:0;color:var(--muted);font-size:13px;cursor:pointer;font-family:inherit;text-decoration:underline}
  .kio-act{display:flex;flex-direction:column;gap:12px;width:min(360px,86vw);margin-top:20px}
  .kio-act button{padding:17px;border-radius:14px;font-size:17px;font-weight:800;border:0;cursor:pointer;color:#fff;font-family:inherit}
  .kio-in{background:var(--grad)}
  .kio-out{background:linear-gradient(135deg,#dc2626,#b91c1c)}
  .kio-brk{background:var(--panel3);color:var(--text);border:1px solid var(--line)!important}
  .kio-cam{position:absolute;top:16px;right:16px;width:104px;border-radius:12px;border:1px solid var(--line);transform:scaleX(-1);background:#000}
  .kio-check{font-size:60px}
  .kio-name{font-size:25px;font-weight:800;margin-top:10px}
  .tcpbar{position:relative;flex:1;min-width:70px;height:6px;background:var(--panel3);border-radius:3px;overflow:hidden}
  .tcpbar i{display:block;height:100%;background:var(--ok);border-radius:3px}
  .tcpbar.done i{background:var(--accent)}
  /* multi-location schedule */
  .locchips{display:flex;gap:6px;flex-wrap:wrap;padding:9px 14px 0;align-items:center}
  .locchip{display:inline-flex;align-items:center;gap:7px;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:12.5px;font-weight:600;color:var(--muted);cursor:pointer;font-family:inherit}
  .locchip.on{background:var(--panel3);border-color:var(--accent);color:var(--text)}
  .lcdot{width:8px;height:8px;border-radius:50%;display:inline-block;flex:none}
  .mlhead{display:flex;align-items:center;gap:9px;margin:18px 6px 6px;cursor:pointer;user-select:none}
  .mlhead i{flex:1;height:1px;background:var(--line)}
  .mlhead b{font-size:14px}
  .mlhead:hover b{color:var(--accent)}
  td.cell.xconf{box-shadow:inset 0 0 0 2px var(--crit)}
  .xcbn{background:rgba(239,68,68,.07);border:1px solid rgba(239,68,68,.4);border-radius:11px;padding:10px 14px;margin:10px 4px;font-size:12.5px;line-height:1.6}
  .xcbn>b{color:#fca5a5}
  /* customizable dashboard */
  .dashtool{display:flex;align-items:center;gap:8px;margin:6px 0 10px;font-size:12.5px}
  /* v98 fixed dashboard */
  .pulse2{display:flex;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 6px;margin-bottom:14px;overflow-x:auto}
  .p2{flex:1;min-width:132px;background:none;border:0;border-left:1px solid var(--line);padding:2px 18px;text-align:left;cursor:pointer;color:var(--text);font-family:inherit;display:flex;flex-direction:column;gap:4px}
  .p2:first-child{border-left:0}
  .p2l{font-size:12.5px;color:var(--muted);white-space:nowrap}
  .p2n{font-size:32px;font-weight:800;line-height:1.05}
  .p2n .u{font-size:16px;color:var(--muted);font-weight:600}
  .p2s{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .p2:hover .p2l{color:var(--text)}
  .ovbody{display:grid;grid-template-columns:2fr 1fr;gap:14px;align-items:start}
  .ovibx{grid-column:1}
  .ovnow{grid-column:2}
  .ovwkcol{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
  .ovwkcol .ovcard{min-width:0}
  .ovactf{grid-column:1/-1}
  @media(max-width:900px){
    .ovbody{grid-template-columns:1fr}
    .ovibx,.ovnow,.ovactf{grid-column:1}
    .ovwkcol{grid-column:1;grid-template-columns:1fr}
    .pulse2{flex-wrap:wrap;padding:10px}
    .p2{min-width:44%;border-left:0;padding:8px 10px}
  }
  .ibrow{display:flex;align-items:center;gap:11px;padding:10px 0;border-top:1px solid var(--line);font-size:13.5px}
  .ibrow:first-of-type{border-top:0}
  .ibact{background:var(--panel2);border:1px solid var(--line);border-radius:8px;color:var(--text);padding:6px 14px;font-size:12px;font-weight:600;cursor:pointer;font-family:inherit;flex:none;white-space:nowrap}
  .ibact:hover{border-color:var(--accent)}
  .ibcount{background:rgba(245,158,11,.16);color:#fbbf24;border-radius:999px;padding:1px 9px;font-size:11px;font-weight:700;margin-left:7px}
  .lbar{height:7px;background:var(--panel3);border-radius:4px;margin-top:9px;overflow:hidden}
  .lbar i{display:block;height:100%;border-radius:4px}
  .dashgrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px;align-items:stretch;grid-auto-flow:dense}
  @media(max-width:1240px){.dashw{grid-column:span 6!important}}
  @media(max-width:760px){.dashw{grid-column:span 12!important}}
  .dashw{position:relative;min-height:80px;min-width:0}
  .sevdot{width:7px;height:7px;border-radius:50%;flex:none;margin-top:5px}
  .dashw>.ovkpi,.dashw>.ovcard{width:100%;height:100%;box-sizing:border-box;margin:0}
  .dashgrid.editing .dashw{outline:1.5px dashed var(--line);outline-offset:3px;border-radius:12px;cursor:grab}
  .dashgrid.editing .dashw:active{cursor:grabbing}
  .dashgrid.editing .dashw *{pointer-events:none}
  .dashgrid.editing .dashw .dashhide,.dashgrid.editing .dashw .dashrs{pointer-events:auto}
  .dashw.dragging{opacity:.55;outline-color:var(--accent)!important;z-index:5}
  .dashw.dragover{outline:2px solid var(--accent);outline-offset:3px;border-radius:12px}
  .dashhide{position:absolute;top:-9px;right:-9px;width:22px;height:22px;border-radius:50%;background:var(--panel3);border:1px solid var(--line);color:var(--text);font-size:11px;line-height:1;cursor:pointer;z-index:6;font-family:inherit}
  .dashhide:hover{background:var(--crit);border-color:transparent;color:#fff}
  .dashrs{position:absolute;right:2px;bottom:0;color:var(--muted);font-size:13px;cursor:nwse-resize;z-index:6;user-select:none;padding:2px}
  .dashrs:hover{color:var(--accent)}
  .bilcard{background:var(--panel2);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
  .bilcard .tcpbar{max-width:none}
  .tdrow.inact{opacity:.55}
  .tdgrp{display:flex;align-items:center;gap:8px;margin:10px 2px 2px;color:var(--muted);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;user-select:none}
  .tdgrp i{flex:1;height:1px;background:var(--line)}
  .tdgrp:hover{color:var(--text)}
  .tdbulk{display:flex;align-items:center;gap:6px;background:rgba(37,99,235,.12);border:1px solid var(--accent);border-radius:10px;padding:7px 10px;margin:8px 0 4px;font-size:12px;flex-wrap:wrap}
  .tdbulk select{width:auto;max-width:150px;padding:5px 8px;font-size:12px}
  .tdchk{width:14px;height:14px;accent-color:var(--accent);flex:none;cursor:pointer}
  .pfchip{font-size:9px;font-weight:700;border-radius:4px;padding:1px 6px;background:rgba(139,92,246,.14);color:#c4b5fd;vertical-align:1px;white-space:nowrap}
  .tdselall{background:none;border:1px solid var(--line);border-radius:6px;color:var(--muted);font-size:9.5px;font-weight:700;padding:2px 7px;cursor:pointer;font-family:inherit;text-transform:none;letter-spacing:0}
  .tdselall:hover{color:var(--text);border-color:var(--accent)}
  .muwrap{display:block}
  .mulabel{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin:16px 2px 8px}
  .muchips{display:flex;gap:7px;flex-wrap:wrap;align-items:center}
  .muchip{font-size:12.5px;font-weight:600;border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:999px;padding:6px 12px;cursor:pointer;font-family:inherit}
  .muchip.on{background:var(--accent);color:#fff;border-color:transparent}
  .muselcount{margin-left:auto;font-weight:700;font-size:12.5px;color:var(--text)}
  .mumenu{border:1px solid var(--line);border-radius:10px;margin-top:8px;overflow:hidden}
  .mumenu .mrow2{padding:9px 12px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--line)}
  .mumenu .mrow2:last-child{border-bottom:0}
  .mumenu .mrow2:hover{background:var(--panel2)}
  .muwho{border:1px solid var(--line);border-radius:10px;max-height:230px;overflow:auto;margin-top:8px}
  .muwrow{display:flex;align-items:center;gap:10px;padding:8px 11px;border-bottom:1px solid var(--line);cursor:pointer;margin:0}
  .muwrow:last-child{border-bottom:0}
  .muwrow input{width:16px;height:16px;accent-color:var(--accent);flex:none}
  .muwnm{font-weight:600;font-size:13px}
  .mufgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .mufcard{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel2);border-radius:11px;padding:11px;cursor:pointer}
  .mufcard.on{border-color:var(--accent);background:rgba(37,99,235,.12)}
  .mufcard .mic{width:34px;height:34px;border-radius:9px;background:var(--panel);display:flex;align-items:center;justify-content:center;flex:none}
  .mufcard .mic svg{width:18px;height:18px;color:var(--muted)}
  .mufcard.on .mic svg{color:var(--accent)}
  .mufcard .mft{font-weight:600;font-size:13.5px}
  .mufcard .mfs{font-size:11px;color:var(--muted)}
  .muvalrow{border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-bottom:9px}
  .muvalrow .vlh{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:7px}
  .mumodes{display:flex;gap:6px;margin-bottom:8px}
  .mumode{flex:1;text-align:center;font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--panel2);color:var(--muted);border-radius:8px;padding:7px;cursor:pointer;font-family:inherit}
  .mumode.on{background:var(--accent);color:#fff;border-color:transparent}
  .muhint{font-size:11.5px;color:var(--muted);margin-top:6px}
  .muapply{position:sticky;bottom:0;background:var(--panel);border-top:1px solid var(--line);padding:11px 2px 4px;margin-top:14px;display:flex;align-items:center;gap:10px}
  .muapply .sum{font-size:12.5px;color:var(--muted);flex:1}
  @media(max-width:560px){.mufgrid{grid-template-columns:1fr}}
  .tdrow{transition:background .1s ease}
  /* timecards: per-person timesheet */
  .tsphead{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:10px}
  .tspnm{flex:1;min-width:120px;display:flex;flex-direction:column}
  .tspnm b{font-size:15px}
  .tspnav{display:flex;align-items:center;gap:6px}
  .tsheet{background:var(--panel);border:1px solid var(--line);border-radius:12px;overflow:hidden}
  .tsday{display:grid;grid-template-columns:128px minmax(0,1fr) 76px;border-top:1px solid var(--line);align-items:stretch}
  .tsday:first-child{border-top:0}
  .tsday.today{box-shadow:inset 3px 0 0 var(--accent)}
  .tsday.empty .tsdate{opacity:.55}
  .tsdate{padding:10px 12px;border-right:1px solid var(--line)}
  .tsdw{font-weight:700;font-size:12.5px}.tsdw span{color:var(--muted);font-weight:600}
  .tsds{font-size:10.5px;color:var(--muted);margin-top:2px}
  .tslines{display:flex;flex-direction:column;justify-content:center;min-width:0}
  .tsline{display:grid;grid-template-columns:1.2fr .9fr 1.2fr auto;gap:10px;align-items:center;padding:7px 12px}
  .tsline+.tsline{border-top:1px dashed var(--line)}
  .tsline.rev{background:rgba(245,158,11,.06)}
  .tsline.none{min-height:38px;font-size:12px}
  .tsl-p{display:flex;align-items:center;gap:6px;font-variant-numeric:tabular-nums}
  .tsl-m{display:flex;align-items:center;gap:8px;font-size:13px}
  .tsl-f{display:flex;gap:4px;flex-wrap:wrap}
  .tsl-a{display:flex;gap:6px;align-items:center;justify-content:flex-end}
  .tsdtot{display:flex;align-items:center;justify-content:flex-end;padding:10px 13px;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums;border-left:1px solid var(--line)}
  .tswk{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:var(--panel2);border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
  .tswk b{color:var(--text);font-size:13px;font-variant-numeric:tabular-nums}
  .tswk.tot{background:var(--panel3);font-weight:600}
  .tsearn{padding:9px 14px;border-top:1px solid var(--line);font-size:12px}
  @media(max-width:760px){
    .tcemp{padding:9px 10px}.tce-st{display:none}.tcwk{gap:3px}.tcwd{padding:4px 1px}.tcwd .wd{font-size:8px}.tcwd .wv{font-size:11px}
    .tce-h .tcr-sub{display:none}
    .tsday{grid-template-columns:74px minmax(0,1fr)}.tsdtot{display:none}
    .tsline{position:relative;display:grid;grid-template-columns:1fr auto;grid-template-areas:"p m" "f f" "a a";gap:3px 8px;padding:9px 12px 9px 13px;border-left:3px solid transparent}
    .tsline.rev{border-left-color:var(--warn);background:rgba(245,158,11,.05)}
    .tsline.okd{border-left-color:var(--ok);background:none}
    .tsl-p{grid-area:p;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13.5px}
    .tsl-m{grid-area:m;justify-content:flex-end;font-size:12.5px}
    .tsl-f{grid-area:f}.tsl-a{grid-area:a;justify-content:flex-start}
    .tsline .tcp{background:none;border:0;padding:0;font-size:13.5px}.tsline .tcp.bad{color:#fca5a5}
    .tsline .tcarr{margin:0 2px;color:var(--muted)}
    .tsline.okd .tsl-f{display:none}
    .tsline.okd .tsl-m,.tsline.okd .tsl-p{opacity:.72}
    .tsphead .tspnav .hint{display:none}
    .tcq{width:100%}
    .tchead{gap:8px}
    .tcnav{width:100%;flex-wrap:wrap;gap:6px}
    .tcnav .btn{padding:6px 10px;font-size:12px;white-space:nowrap}
    .tcnav .tcper{min-width:0;white-space:nowrap;font-size:12px}
    .tcsumwrap{overflow:visible}
    .tcsumtbl{min-width:0;font-size:12px}
    .tcsumtbl th,.tcsumtbl td{padding:6px 5px}
    .tcsumtbl td .hint{display:none}
    .tcsumtbl td:first-child{max-width:104px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .tckpis{display:grid;grid-template-columns:1fr 1fr 1fr;gap:7px}
    .tckpi{min-width:0;padding:8px 9px}.tckpi .v{font-size:16px}.tckpi .k{font-size:10px}
    .tckpi.wide,.tckpi.cta{grid-column:1/-1}
    .tckpi.wide,.tckpi.cta{grid-column:1/-1}
    .otbn-row{font-size:12px}
  }
  /* time clock card */
  .tcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-top:12px}
  .tcbtn{width:100%;border:0;border-radius:12px;padding:15px;font-size:16px;font-weight:800;cursor:pointer;color:#fff;font-family:inherit}
  .tcbtn.in{background:var(--grad)}
  .tcbtn.out{background:linear-gradient(135deg,#dc2626,#b91c1c)}
  .tcbtn.brk{background:var(--panel3);color:var(--text);border:1px solid var(--line)}
  .tchint{text-align:center;font-size:12px;color:var(--muted);margin-top:9px}
  .tctimer{text-align:center;margin-bottom:12px}
  .tctimer .tclab{font-size:12px;color:var(--muted);display:block}
  .tctimer .tcbig{font-size:38px;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:1px;display:block;line-height:1.1}
  .tctimer .tcsince{font-size:12px;color:var(--muted)}
  .tcbrow{display:flex;gap:9px;margin-top:9px}
  .tcbtn2{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:11px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
  .tcmeal{display:flex;align-items:center;gap:8px;background:rgba(245,158,11,.12);border:1px solid rgba(245,158,11,.35);border-radius:10px;padding:10px 12px;font-size:12.5px;color:#fbbf24;margin-bottom:12px}
  .tcmeal.late{background:rgba(239,68,68,.14);border-color:rgba(239,68,68,.4);color:#fca5a5}
  /* guided tour */
  .tourov{position:fixed;inset:0;z-index:4000}
  .tourhole{position:fixed;border-radius:10px;box-shadow:0 0 0 9999px rgba(3,7,18,.74);border:2px solid rgba(37,99,235,.95);pointer-events:none;transition:left .22s ease,top .22s ease,width .22s ease,height .22s ease}
  .tourtip{position:fixed;width:300px;max-width:92vw;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 15px;box-shadow:0 22px 54px rgba(0,0,0,.55);z-index:4001;transition:left .18s ease,top .18s ease}
  .tourtip h4{margin:0 0 6px;font-size:15px;font-weight:700}
  .tourtip p{margin:0 0 13px;font-size:13px;color:var(--muted);line-height:1.5}
  .tourtip .trow{display:flex;align-items:center;gap:8px}
  .tourtip .tcount{font-size:11px;color:var(--muted)}
  .tourtip .tskip{background:none;border:0;color:var(--muted);font-size:12px;cursor:pointer;font-family:inherit;padding:2px 4px}
  .tourtip .tskip:hover{color:var(--text)}
  .tourtip .tbtn{border:1px solid var(--line);background:var(--panel2);color:var(--text);border-radius:8px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit}
  .tourtip .tbtn.primary{background:var(--grad);border-color:transparent;color:#fff}
  /* messages shell (rail + main) */
  .msgshell{display:grid;grid-template-columns:248px 1fr;gap:0;height:calc(100vh - 150px);min-height:460px;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}
  .msgshell.phone{grid-template-columns:1fr;height:calc(100vh - 150px)}
  .msgrail{border-right:1px solid var(--line);background:var(--panel2);overflow:auto}
  .msgshell.phone .msgrail{border-right:0}
  .mrlhd{padding:14px 14px 6px;font-size:16px}
  .lgrp{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);padding:12px 14px 5px}
  .mitem{display:flex;align-items:center;gap:10px;padding:9px 14px;cursor:pointer;border-left:2px solid transparent}
  .mitem:hover{background:var(--panel3)}.mitem.on{background:var(--panel3);border-left-color:var(--accent)}
  .mitem .mic{width:26px;height:26px;border-radius:7px;background:var(--panel);display:flex;align-items:center;justify-content:center;font-size:13px;flex:none}
  .mitem .mav{width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;flex:none}
  .mitem .mnm{flex:1;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mitem .mun{background:var(--accent);color:#fff;font-size:10px;font-weight:700;border-radius:999px;padding:1px 7px}
  .msgmain{display:flex;flex-direction:column;min-width:0;overflow:hidden}
  .annboard{padding:16px;overflow:auto}
  .annboard .msghd{margin-bottom:14px}
  /* chat thread */
  .chatpane{display:flex;flex-direction:column;height:100%;min-height:0}
  .chattop{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);flex:none}
  .chattop .cav{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff}
  .chattop .cic{width:30px;height:30px;border-radius:8px;background:var(--panel2);display:flex;align-items:center;justify-content:center;font-size:15px}
  .chattop .tt{font-weight:700;font-size:14px}.chattop .ts{font-size:11px;color:var(--muted)}
  .chatbody{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:8px}
  .chatempty{margin:auto;text-align:center;padding:30px}
  .bub{max-width:74%;padding:8px 12px;border-radius:13px;font-size:13.5px;line-height:1.45}
  .bub.them{background:var(--panel2);border:1px solid var(--line);align-self:flex-start;border-bottom-left-radius:4px}
  .bub.me{background:var(--accent);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
  .bub .bwho{font-size:11px;color:var(--muted);margin-bottom:2px;font-weight:600}
  .bub .bmeta{font-size:10px;opacity:.7;margin-top:3px}
  .bub.me .bmeta{text-align:right}
  .chatcomposer{display:flex;align-items:center;gap:9px;padding:12px 16px;border-top:1px solid var(--line);flex:none}
  .chatcomposer input{flex:1;background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:10px;padding:10px 13px;font-size:13.5px;font-family:inherit}
  .chatcomposer .csend{background:var(--grad);color:#fff;border:0;border-radius:10px;width:42px;height:40px;font-size:15px;cursor:pointer;flex:none}
  .mbackbar{display:none}
  @media(max-width:640px){
    /* thread opens as a focused full-screen conversation that shrinks with the keyboard */
    .msgshell.phone{height:auto;border:0;border-radius:0}
    .msgshell.phone .msgmain{position:fixed;inset:0;z-index:250;height:100dvh;background:var(--bg);border-radius:0}
    .msgshell.phone .chatpane{height:100dvh}
    .msgshell.phone .annboard{height:100dvh;box-sizing:border-box}
    .chatcomposer{padding-bottom:calc(12px + env(safe-area-inset-bottom))}
    .chatcomposer input{font-size:16px}
    .annsel,textarea.annsel{font-size:16px}
    .mbackbar{display:flex;align-items:center;gap:8px;padding:11px 14px;border-bottom:1px solid var(--line);flex:none;background:var(--panel2);position:sticky;top:0;z-index:2}
    .mbackbar button{background:none;border:0;color:var(--accent);font-size:15px;font-weight:600;font-family:inherit;display:flex;align-items:center;gap:4px;cursor:pointer;padding:0}
    .annboard{padding-top:0}
  }
  /* reports tabs */
  .reptabs{display:flex;gap:4px;background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:4px;width:max-content;margin-bottom:14px}
  .reptab{background:none;border:0;color:var(--muted);font-weight:600;font-size:13px;padding:8px 16px;border-radius:8px;cursor:pointer;font-family:inherit;display:flex;align-items:center;gap:7px}
  .reptab.on{background:var(--panel3);color:var(--text)}
  .reptab .rtsub{font-size:10px;color:var(--muted);font-weight:500}
  .paynav{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap}
  .paynav .paylbl{font-size:14px}
  .paytiles{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:14px}
  .paytiles .pt{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:11px 12px}
  .paytiles .pt.tot{border-color:rgba(37,99,235,.5)}
  .paytiles .pt .k{font-size:11px;color:var(--muted)} .paytiles .pt .v{font-size:20px;font-weight:800;margin-top:2px}
  .paytblwrap{overflow:auto;border:1px solid var(--line);border-radius:10px}
  .paytbl{width:100%;border-collapse:collapse;font-size:13px}
  .paytbl th{text-align:right;color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.03em;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
  .paytbl th:first-child{text-align:left}
  .paytbl td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
  .paytbl td:first-child{text-align:left;font-weight:600}
  .paytbl tbody tr:last-child td{border-bottom:0}
  .payfoot{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}
  @media(max-width:820px){.paytiles{grid-template-columns:repeat(3,minmax(0,1fr))}}
  /* export builder */
  .expwrap{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--panel)}
  .expgrain{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;padding:14px;border-bottom:1px solid var(--line)}
  .egrain{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--text);font-family:inherit}
  .egrain.on{border-color:var(--accent);background:rgba(37,99,235,.12)}
  .egrain b{font-size:13px}.egrain span{font-size:11px;color:var(--muted)}
  .expcols{display:grid;grid-template-columns:250px 1fr}
  .expcatalog{border-right:1px solid var(--line);padding:14px;max-height:560px;overflow:auto}
  .expmap{padding:14px;min-width:0}
  .ech{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 9px}
  .egrp{font-size:11px;font-weight:700;color:var(--muted);margin:14px 0 5px}.egrp:first-of-type{margin-top:0}
  .efld{display:flex;align-items:center;gap:9px;padding:7px 8px;border-radius:7px;cursor:pointer;font-size:13px;color:var(--muted)}
  .efld:hover{background:var(--panel2)}.efld.on{color:var(--text)}
  .efld .ecb{width:16px;height:16px;border-radius:5px;border:1.5px solid var(--muted);flex:none;display:flex;align-items:center;justify-content:center;font-size:11px;color:#fff}
  .efld.on .ecb{background:var(--accent);border-color:var(--accent)}
  .emaprow{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line)}
  .emaprow:first-child{border-top:0}
  .egrip{color:#46536e;cursor:grab;font-size:13px;user-select:none;padding:0 2px}
  .egrip:active{cursor:grabbing}
  .emaprow.dragging{opacity:.45;background:var(--panel2);border-radius:7px}
  .emaprow.dropinto{box-shadow:inset 0 2px 0 var(--accent)}
  .emname{color:var(--muted);font-size:12.5px;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .earr{color:var(--muted)}
  .emaprow input{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:7px;padding:6px 9px;font-size:12.5px;font-weight:600;font-family:inherit;flex:1;min-width:80px}
  .exprevhd{display:flex;align-items:center;margin:18px 0 8px}
  .exptblwrap{border:1px solid var(--line);border-radius:9px;overflow:auto;max-height:300px}
  .exptbl{border-collapse:collapse;font-size:12px;white-space:nowrap;min-width:100%}
  .exptbl th{background:var(--panel2);color:var(--text);font-weight:700;text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);position:sticky;top:0}
  .exptbl td{padding:7px 12px;border-bottom:1px solid var(--line);color:var(--muted)}
  .exptbl tr:last-child td{border-bottom:0}
  .expfmt{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
  .expfmt label{display:flex;align-items:center;gap:7px}
  .expactions{margin-left:auto}
  .expnote{margin-top:14px;background:var(--panel2);border:1px solid var(--line);border-left:3px solid var(--warn);border-radius:8px;padding:10px 12px;font-size:12.5px}
  @media(max-width:760px){.expgrain{grid-template-columns:repeat(2,1fr)}.expcols{grid-template-columns:1fr}.expcatalog{border-right:0;border-bottom:1px solid var(--line);max-height:none}}
  .rolebanner{background:#0b3a4a;color:#cffafe;padding:6px 16px;font-size:12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line)}

  /* ===== light theme ===== */
  :root[data-theme="light"]{--bg:#E8EDF4;--panel:#F3F6FB;--panel2:#E9EEF6;--panel3:#DCE3EE;--line:#D3DBE7;--text:#0F172A;--muted:#5B6675}
  :root[data-theme="light"] td.cell.unavail{background:repeating-linear-gradient(135deg,#eef2f7 0 8px,#e2e8f0 8px 16px)}
  :root[data-theme="light"] td.cell.off{background:repeating-linear-gradient(135deg,#fbe6ee 0 9px,#f6d2de 9px 18px)}
  :root[data-theme="light"] .openrow td.cell{background:#e8f1ee}
  :root[data-theme="light"] .openrow .empcol{background:#eef5f3}
  :root[data-theme="light"] .rolebanner{background:#cffafe;color:#0e5a6b}
  :root[data-theme="light"] .shift,:root[data-theme="light"] .daybar,:root[data-theme="light"] .mpill{color:#fff}
  /* ===== density ===== */
  body.compact td.cell{height:56px}
  body.compact .cellinner{min-height:52px;gap:3px;padding:3px}
  body.compact .shift{padding:3px 6px;font-size:11px}
  body.compact .empcol{padding:5px 8px}
  body.compact .avhint{font-size:9px;line-height:1.2;padding:1px 3px}
  body.compact .legend{display:none}
  /* ===== motion + a11y ===== */
  @media (prefers-reduced-motion:no-preference){
    .btn,.shift,.mcell,.kpi,.qf{transition:transform .12s ease,box-shadow .12s ease,background .12s ease}
    .shift:hover{transform:translateY(-1px);box-shadow:0 3px 9px rgba(0,0,0,.32)}
    .btn:active{transform:translateY(1px)} .mcell:hover{transform:translateY(-1px)}
    .overlay,.cmdk{animation:fade .12s ease} @keyframes fade{from{opacity:0}to{opacity:1}}
  }
  :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
  @media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
  /* ===== avatars ===== */
  .avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;font-size:10px;flex:none;vertical-align:middle}
  .empcol .avatar{margin-right:6px}
  /* ===== command palette ===== */
  .cmdk{position:fixed;inset:0;background:rgba(0,0,0,.5);display:none;align-items:flex-start;justify-content:center;z-index:90;padding-top:11vh}
  .cmdk.show{display:flex}
  .cmdk .box{background:var(--panel);border:1px solid var(--line);border-radius:12px;width:560px;max-width:92vw;overflow:hidden;box-shadow:0 22px 60px rgba(0,0,0,.5)}
  .cmdk input{width:100%;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px;font-size:15px;background:var(--panel)}
  .cmdk .list{max-height:52vh;overflow:auto}
  .cmdk .item{padding:10px 14px;display:flex;gap:10px;align-items:center;cursor:pointer;font-size:13px}
  .cmdk .item.active{background:var(--panel3)}
  .cmdk .item .k{margin-left:auto;color:var(--muted);font-size:11px}
  /* ===== filter bar ===== */
  .filterwrap{display:flex;gap:6px;align-items:center}
  .filterwrap input{width:150px;padding:6px 9px}
  .qf{font-size:12px;padding:5px 11px;border-radius:8px;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-weight:600;min-height:32px;display:inline-flex;align-items:center;gap:5px}
  .qf.on{background:var(--accent);color:#fff;border-color:var(--accent)}
  .filterwrap input{height:32px}
  .qfbadge{background:var(--accent);color:#fff;font-size:11px;border-radius:9px;min-width:17px;height:17px;line-height:17px;text-align:center;padding:0 4px;margin-left:4px;font-weight:700}
  .qf.on .qfbadge{background:#fff;color:var(--accent)}
  .filtsec{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin:9px 4px 8px}
  .filtsec:first-child{margin-top:2px}
  .filtchips{display:flex;flex-wrap:wrap;gap:6px;padding:0 2px;margin:2px 6px 12px}
  .filtchip{font-size:12px;padding:5px 11px;border-radius:20px;background:var(--panel2);border:1px solid var(--line);color:var(--text);cursor:pointer;display:inline-flex;align-items:center;transition:border-color .12s,background .12s}
  .filtchip:hover{border-color:var(--accent)}
  .filtchip.on{background:var(--accent);border-color:var(--accent);color:#fff}
  .fdot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:6px;flex:none}
  .filttoggle{display:flex;align-items:center;gap:8px;font-size:13px;padding:6px 2px;cursor:pointer}
  .filttoggle input{width:auto}
  #filtersPanel{max-height:72vh;overflow:auto}
  .filtsearch{position:relative;margin-bottom:8px}
  .filtsearch input{width:100%;height:34px;padding:0 28px 0 32px;font-size:13px}
  .filtsearchi{position:absolute;left:9px;top:9px;color:var(--muted);pointer-events:none}
  .filtsearchi .bico{width:15px;height:15px;margin:0;vertical-align:0}
  .filtsearchx{position:absolute;right:9px;top:9px;color:var(--muted);font-size:12px;cursor:pointer}
  .filtsum{font-size:11.5px;line-height:1.5;color:var(--muted);padding:0 4px;margin:-1px 0 9px}
  .filtsum b{color:var(--text);font-weight:500}
  .filtsum a{color:#6b9bf0;text-decoration:none;margin-left:3px;white-space:nowrap}
  .filtsum a:hover{text-decoration:underline}
  .filtmore{background:transparent;border:0;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;padding:5px 2px 2px;display:block}
  .fhl{color:#fff;background:rgba(99,102,241,.45);border-radius:3px;padding:0 1px}
  @media(min-width:641px){.filtfdrop{display:none}}
  .filtsechdr{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;text-transform:none;letter-spacing:0;color:var(--text);margin:0;padding:10px 6px;border-top:1px solid var(--line);border-radius:8px}
  .filtsechdr:hover{background:var(--panel2)}
  .filtsechdr .fsi{display:inline-flex;align-items:center;color:var(--muted)}
  .filtsechdr .fsi .bico{width:15px;height:15px;margin:0;vertical-align:0}
  .filtsechdr.open .fsi{color:var(--accent)}
  .filtsechdr .fsname{flex:1;font-size:12.5px;font-weight:500}
  .filtseccount{background:var(--accent);color:#fff;font-size:10px;border-radius:20px;min-width:16px;height:16px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px;font-weight:600}
  .filtsecchev{color:var(--muted);font-size:11px}
  .filttools{display:flex;gap:12px;margin-bottom:6px}
  .filttool{background:transparent;border:0;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer;padding:0 2px}
  #filtScrim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:120}
  #filtScrim.show{display:block}
  #filtSheet{position:fixed;left:0;right:0;bottom:0;z-index:121;background:var(--panel);border-radius:18px 18px 0 0;box-shadow:0 -10px 34px rgba(0,0,0,.45);transform:translateY(100%);transition:transform .26s cubic-bezier(.32,.72,0,1);display:flex;flex-direction:column;height:62vh;max-height:92vh}
  #filtSheet.show{transform:translateY(0)}
  #filtSheet.dragging{transition:none}
  .fsgrab{display:flex;justify-content:center;align-items:center;padding:9px 0 5px;cursor:grab;touch-action:none;flex:none}
  .fsgrab span{width:40px;height:4px;border-radius:3px;background:var(--line)}
  .fshd{display:flex;align-items:center;gap:10px;padding:0 16px 10px;border-bottom:1px solid var(--line);flex:none}
  .fshd .fstitle{font-size:16px;font-weight:700;flex:1}
  .fstabs{display:inline-flex;flex:1;gap:4px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:3px}
  .fstab{flex:1;background:transparent;border:0;color:var(--muted);font-size:14px;font-weight:600;padding:8px 6px;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px}
  .fstab.on{background:var(--accent);color:#fff}
  .fstcount{font-size:10px;font-weight:700;background:rgba(255,255,255,.2);border-radius:9px;padding:1px 6px;min-width:16px}
  .fstcount.amber{background:var(--warn);color:#3a2a05}
  .fstab.on .fstcount{background:rgba(255,255,255,.28)}
  .fscount{font-size:12px;color:var(--accent);background:rgba(99,102,241,.16);padding:2px 9px;border-radius:9px;font-weight:600}
  .fsx{background:transparent;border:0;color:var(--muted);font-size:20px;line-height:1;cursor:pointer;padding:2px 4px}
  #filtSheetBody{flex:1;overflow:auto;padding:10px 16px 14px}
  .fsft{display:flex;gap:10px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);flex:none}
  .fsft .btn{flex:1;justify-content:center}
  .fsft .btn.primary{flex:1.6}
  @media(min-width:641px){#filtSheet,#filtScrim{display:none!important}}
  .ovwrap{padding:16px 18px 28px;overflow:auto;height:100%;width:100%}
  .ovhd{margin-bottom:14px}
  .ovhd h1{margin:0;font-size:26px;font-weight:700}
  .ovhd .sub{color:var(--muted);font-size:13px;margin-top:2px}
  .ovkpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}
  .ovkpis.three{grid-template-columns:repeat(3,1fr)}
  @media(max-width:1240px){.ovkpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
  @media(max-width:760px){.ovkpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
  .ovkpi{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;cursor:pointer;transition:border-color .12s,transform .06s;text-align:left;color:var(--text);font-family:inherit;display:flex;flex-direction:column;gap:6px;min-height:118px}
  .ovkpi.ta{border-color:rgba(37,99,235,.4)}
  .ovkpi:hover{border-color:var(--accent)}
  .ovkpi:active{transform:scale(.99)}
  .ovkpi .k-l{font-size:13px;color:var(--muted);display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:18px}
  .ovkpi .k-l>span:first-child{display:flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .ovkpi .k-n{font-size:34px;font-weight:800;color:var(--text);line-height:1.05;margin-top:auto}
  .ovkpi .k-n .u{font-size:17px;color:var(--muted);font-weight:600}
  .ovkpi .k-x{font-size:12.5px;font-weight:600;color:var(--muted)}
  .k-tag{font-size:9px;font-weight:700;border-radius:5px;padding:1px 6px;background:rgba(37,99,235,.2);color:#7ea3f7;flex:none;letter-spacing:.02em}
  .k-tag.live{background:rgba(34,197,94,.16);color:#4ade80}
  .k-chip{font-size:10px;font-weight:700;border-radius:5px;padding:1px 6px;margin-left:5px}
  .k-chip.g{background:rgba(22,163,74,.16);color:#4ade80}.k-chip.r{background:rgba(239,68,68,.16);color:#f87171}
  .dashtool{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
  .dashtool b{font-size:12.5px;font-weight:600;color:var(--muted)}
  .dashgrid{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
  .dashw{position:relative;box-sizing:border-box;flex:0 0 auto;min-width:200px;max-width:100%}
  .dashw>.ovkpi,.dashw>.ovcard{width:100%;height:100%;margin:0}
  .dashw>.ovcard{overflow:auto}
  .dashgrid.editing .dashw{outline:1.5px dashed var(--line);border-radius:12px;cursor:grab}
  .dashgrid.editing .dashw:hover{outline-color:var(--accent)}
  .dashw.dragging{opacity:.45}
  .dashw.dragover{outline:2px solid var(--accent)!important}
  .dashrs{position:absolute;right:3px;bottom:2px;font-size:12px;color:var(--muted);cursor:nwse-resize;z-index:6;user-select:none;line-height:1}
  .dashhide{position:absolute;right:5px;top:5px;width:20px;height:20px;border-radius:50%;background:var(--panel3);color:var(--text);border:0;cursor:pointer;z-index:6;font-size:11px;line-height:18px;padding:0;text-align:center}
  @media(max-width:760px){.dashw{width:100%!important;height:auto!important}}
  .ovrow{display:grid;grid-template-columns:1.9fr 1fr;gap:12px;margin-bottom:14px}
  .ovcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:18px}
  .ovcard h3{margin:0 0 12px;font-size:16px;display:flex;align-items:center;justify-content:space-between}
  .ovcard .seeall{font-size:12px;color:var(--accent);font-weight:600;cursor:pointer}
  .ovcard.click{cursor:pointer}
  .ovcard.click:hover{border-color:var(--accent)}
  .ovsched{width:100%;border-collapse:collapse;table-layout:fixed;font-size:10px}
  .ovsched td{padding:2px;vertical-align:middle}
  .ovsched .nm{font-size:12px;color:var(--text);white-space:nowrap;width:96px;display:flex;align-items:center;gap:6px}
  .ovsched .dh{color:var(--muted);text-align:center;font-size:10px;padding-bottom:6px}
  .ovchip{color:#fff;border-radius:5px;padding:2px 1px;text-align:center;font-size:9px;line-height:1.3}
  .ovopen{border:1px dashed var(--warn);color:var(--warn);border-radius:5px;padding:1px;text-align:center;font-size:9px}
  .ovdonut{display:flex;align-items:center;gap:12px}
  .ovleg{font-size:11px;line-height:1.9}
  .ovleg i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px}
  .ovlive{width:8px;height:8px;border-radius:50%;background:#22c55e;display:inline-block;box-shadow:0 0 0 3px rgba(34,197,94,.2);vertical-align:1px;margin-right:3px;animation:ovpulse 2s infinite}
  @keyframes ovpulse{0%,100%{box-shadow:0 0 0 2px rgba(34,197,94,.25)}50%{box-shadow:0 0 0 5px rgba(34,197,94,.05)}}
  .ovact{display:flex;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13.5px;align-items:flex-start}
  .ovact.click{cursor:pointer;border-radius:7px;transition:background .12s} .ovact.click:hover{background:var(--panel2)}
  .ovact .ovchev{margin-left:auto;color:var(--muted);font-size:16px;align-self:center;padding-left:6px}
  .ovact:last-child{border-bottom:0}
  .ovact .ai{width:22px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex:none;font-size:12px}
  .ovatt{display:flex;align-items:center;gap:9px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;cursor:pointer}
  .ovatt:last-child{border-bottom:0}
  .ovatt:hover{color:var(--accent)}
  .ovatt .ai{width:22px;flex:none;text-align:center;font-size:13px}
  .ovatt .ovgo{color:var(--muted);font-size:15px}
  .ovcddays{display:flex;align-items:flex-end;gap:6px;height:92px}
  .ovcd{flex:1;text-align:center;min-width:0;display:flex;flex-direction:column;justify-content:flex-end}
  .ovcdbar{display:flex;flex-direction:column-reverse;height:64px;border-radius:4px;overflow:hidden;background:var(--panel2)}
  .ovcdl{font-size:9px;color:var(--muted);margin-top:4px}
  .ovcdp{font-size:9px;font-weight:600}
  .ovhv{display:flex;align-items:center;gap:9px;font-size:11px;margin-bottom:8px}
  .ovhvn{width:74px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .ovhvbar{flex:1;height:8px;background:var(--panel2);border-radius:5px;overflow:hidden}
  .ovhvbar>div{height:100%}
  .ovhvv{width:62px;text-align:right;color:var(--muted)}
  .ovrow.tri{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
  @media(max-width:1040px){.ovrow.tri{grid-template-columns:1fr 1fr}}
  @media(max-width:780px){.ovkpis,.ovkpis.three{grid-template-columns:repeat(2,1fr)}.ovrow,.ovrow.tri{grid-template-columns:1fr}}
  .filtmodeseg{display:inline-flex;background:var(--panel2);border:1px solid var(--line);border-radius:7px;overflow:hidden;margin:0 8px}
  .filtmodesegbtn{background:transparent;border:0;color:var(--muted);font-size:10px;font-weight:700;padding:2px 9px;cursor:pointer;letter-spacing:.3px}
  .filtmodesegbtn.on{background:var(--accent);color:#fff}
  .activefilters{display:flex;flex-wrap:wrap;gap:7px;align-items:center;padding:7px 16px;background:var(--panel);border-bottom:1px solid var(--line)}
  .afl{font-size:12px;color:var(--muted)}
  .afchip{display:inline-flex;align-items:center;gap:7px;background:var(--panel2);border:1px solid var(--line);border-radius:13px;padding:3px 6px 3px 11px;font-size:12px;cursor:pointer}
  .afchip:hover{border-color:var(--accent)}
  .afchip .afx{color:var(--muted);font-size:11px}
  .afclear{background:transparent;border:0;color:var(--accent);font-size:12px;font-weight:600;cursor:pointer}
  /* ===== toolbar dropdown menus ===== */
  .menu{position:relative;display:inline-block}
  .menupanel{position:absolute;top:calc(100% + 5px);left:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:5px;min-width:188px;z-index:45;display:none;box-shadow:0 12px 32px rgba(0,0,0,.45)}
  .menu.open .menupanel{display:block}
  .menubtn .badge{margin-left:4px}
  .menuitem{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:transparent;border:0;color:var(--text);padding:8px 10px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer}
  .menuitem:hover{background:var(--panel3)}
  .menuitem.on{color:var(--ok)}
  .menuitem.on::after{content:"✓";margin-left:auto;font-weight:700}
  #covBtn,#budgetBtn{display:none}
  .menupanel.right{left:auto;right:0}
  .menuitem .kbd{margin-left:auto;font-size:10px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;font-weight:600}
  /* ===== fairness pills ===== */
  .fp{font-size:10px;padding:1px 7px;border-radius:9px;font-weight:700}
  .fp.low{background:#064e3b;color:#6ee7b7} .fp.med{background:#78350f;color:#fcd34d} .fp.high{background:#7f1d1d;color:#fca5a5}
  .recbox{background:#0b3a2e;border:1px solid #157f5f;border-radius:10px;padding:10px 12px;margin:10px 0}
  .recbox.warn{background:#3a2a0b;border-color:#a16207}
  .reclabel{font-size:14px;margin-bottom:4px;color:#ecfdf5}
  .reclist{margin:4px 0 0;padding-left:18px;font-size:12px;color:#cbece0}
  .reclist li{margin:2px 0}
  .bidlist{display:flex;flex-direction:column;gap:8px}
  .bidrow{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);flex-wrap:wrap}
  .bidrow.rec{border-color:#22c55e;box-shadow:0 0 0 1px #22c55e inset}
  .bidwho{display:flex;align-items:center;gap:8px;min-width:150px}
  .bidwho .bn{font-weight:600;font-size:13px}
  .bidtags{display:flex;flex-wrap:wrap;gap:5px;flex:1}
  .bt{font-size:11px;padding:2px 7px;border-radius:999px;background:var(--panel3);color:var(--text)}
  .bt.pref{background:#1e3a8a;color:#bfdbfe} .bt.ok{background:#064e3b;color:#6ee7b7} .bt.bad{background:#7f1d1d;color:#fca5a5}
  .bt.f0{background:#064e3b;color:#6ee7b7} .bt.f1{background:#78350f;color:#fcd34d} .bt.f2{background:#7f1d1d;color:#fca5a5}
  .recpill{font-size:10px;background:#22c55e;color:#04240f;padding:1px 6px;border-radius:999px;margin-left:4px;vertical-align:middle;font-weight:700}
  .inscard{display:flex;gap:8px;align-items:flex-start;padding:9px 11px;border-radius:9px;margin-bottom:7px;background:var(--panel2);border-left:4px solid var(--muted);font-size:13px;line-height:1.45}
  .inscard.crit{border-left-color:#ef4444} .inscard.warn{border-left-color:#f59e0b} .inscard.ok{border-left-color:#22c55e} .inscard.info{border-left-color:#0ea5e9}
  table.mini{width:100%;border-collapse:collapse;font-size:12px;margin-top:4px} table.mini th,table.mini td{text-align:left;padding:5px 8px;border-bottom:1px solid var(--line)} table.mini th{color:var(--muted);font-weight:600}
  .pref{color:#fbbf24}
  /* cloud sync + auth */
  .syncstatus{font-size:11px;padding:3px 8px;border-radius:8px;color:var(--muted);white-space:nowrap;font-weight:600}
  #syncStatus{display:none!important}
  .syncstatus.ok{color:#6ee7b7} .syncstatus.saving{color:#fcd34d} .syncstatus.off{color:#9ca3af}
  .authscreen{position:fixed;inset:0;background:var(--bg);display:none;align-items:center;justify-content:center;z-index:200;padding:20px}
  .authcard{background:var(--panel);border:1px solid var(--line);border-radius:16px;padding:26px;width:370px;max-width:94vw;display:flex;flex-direction:column;gap:10px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
  .authlogo{font-weight:800;font-size:30px;display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:6px}
  .authlogo .dot{width:48px;height:48px;display:inline-flex;align-items:center;justify-content:center}
  .authtag{text-align:center;color:#60A5FA;font-size:14px;font-weight:600;margin-bottom:10px}
  .authsub{text-align:center;color:var(--muted);font-size:14px;margin-bottom:8px}
  .authtabs{display:flex;gap:6px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:3px}
  .authtabs button{flex:1;background:transparent;border:0;color:var(--muted);padding:8px;border-radius:8px;font-weight:700;cursor:pointer}
  .authtabs button.active{background:var(--accent);color:#fff}
  .authcard input{width:100%;padding:10px}
  .autherr{color:#fca5a5;font-size:13px;background:#3f1d2e;border-radius:8px;padding:8px}
  .authadv{font-size:12px;color:var(--muted)} .authadv summary{cursor:pointer}
  .authadv input{margin-top:6px}
  .authoffline{background:transparent;border:0;color:var(--muted);font-size:13px;cursor:pointer;margin-top:2px;text-decoration:underline}
  .authsplit{display:flex;width:1120px;max-width:94vw;min-height:min(660px,86vh);border-radius:20px;overflow:hidden;box-shadow:0 30px 90px rgba(0,0,0,.6)}
  .authsplit .authcard{border:0;border-radius:0;box-shadow:none;width:44%;min-width:320px;padding:48px 52px;background:#0B1220;gap:10px;justify-content:center}
  .authsplit .authcard input{background:#0F172A;border:1px solid #1E293B;color:#E2E8F0}
  .authsplit .authtabs{background:#0F172A;border-color:#1E293B}
  .authsplit #authGo{background:linear-gradient(135deg,#2563EB,#7C3AED);border:0;color:#fff}
  .authdiv{display:flex;align-items:center;gap:10px;color:#475569;font-size:11px;margin:13px 0}
  .authdiv:before,.authdiv:after{content:"";flex:1;height:1px;background:#1E293B}
  .authsocial{display:flex;gap:8px}
  .authsoc{flex:1;background:#0F172A;border:1px solid #1E293B;color:#E2E8F0;border-radius:9px;padding:9px;font-weight:600;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:7px}
  .authsoc:hover{background:#1E293B}
  .authsoon{font-size:10px;color:#64748B;text-align:center;margin-top:7px}
  .authhero{width:56%;background:linear-gradient(150deg,#1E40AF 0%,#4338CA 45%,#7C3AED 100%);color:#fff;padding:54px 52px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
  .authsplit .authcard input{padding:12px 12px}
  .authhero .ah-blob{position:absolute;border-radius:50%;background:rgba(255,255,255,.07)}
  .authhero .ah-b1{top:-46px;right:-46px;width:170px;height:170px}
  .authhero .ah-b2{bottom:-54px;left:-34px;width:150px;height:150px;background:rgba(255,255,255,.06)}
  .ah-h{position:relative;font-size:36px;font-weight:800;line-height:1.18}
  .ah-sub{position:relative;font-size:15px;color:#DBEAFE;margin:13px 0 22px;max-width:440px}
  .ah-feat{position:relative;display:flex;align-items:center;gap:10px;font-size:14.5px;margin-bottom:11px}
  .ah-feat span{font-size:16px}
  .ah-card{position:relative;background:rgba(11,18,32,.72);border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:16px;max-width:450px;margin-top:14px}
  .ah-cardhd{display:flex;justify-content:space-between;font-size:11px;color:#CBD5E1;margin-bottom:9px}
  .ah-kpis{display:flex;gap:7px;margin-bottom:10px}
  .ah-kpis>div{flex:1;background:rgba(255,255,255,.06);border-radius:7px;padding:7px}
  .ah-kpis small{font-size:9px;color:#94A3B8;display:block}
  .ah-kpis b{font-size:15px}
  .ah-bars{display:flex;align-items:flex-end;gap:5px;height:40px}
  .ah-bars i{flex:1;background:#3B82F6;border-radius:3px}
  .ah-trust{position:relative;font-size:11px;color:#DBEAFE;margin-top:16px;display:flex;align-items:center;gap:8px}
  .ah-avs{display:flex}
  .ah-avs i{width:18px;height:18px;border-radius:50%;border:1.5px solid #4338CA;display:block}
  .ah-avs i:nth-child(1){background:#22D3EE}
  .ah-avs i:nth-child(2){background:#34D399;margin-left:-6px}
  .ah-avs i:nth-child(3){background:#FBBF24;margin-left:-6px}
  @media(max-width:760px){.authsplit{flex-direction:column;width:400px;max-width:94vw}.authhero{display:none}.authsplit .authcard{width:auto}}
  /* === MOBILE OVERRIDES (placed after base rules so they win) === */
  @media (max-width:640px){
    /* modals as reachable bottom sheets */
    .overlay{align-items:flex-end}
    .modal,.modal.lg{width:100%;max-width:100%;max-height:92dvh;border-radius:14px 14px 0 0}
    /* filters live in a bottom sheet; hidden inline */
    .filterwrap{display:none}
    #toolbar.filtersopen .filterwrap{display:flex;flex-direction:column;align-items:stretch;gap:10px;position:fixed;left:0;right:0;bottom:0;max-height:80dvh;overflow:auto;background:var(--panel);border-top:1px solid var(--line);border-radius:14px 14px 0 0;padding:16px 16px calc(16px + env(safe-area-inset-bottom));z-index:56;box-shadow:0 -8px 30px rgba(0,0,0,.5)}
    #toolbar.filtersopen .filterwrap input,#toolbar.filtersopen .filterwrap .fdrop,#toolbar.filtersopen .filterwrap .qf,#toolbar.filtersopen .filterwrap .qfsel{width:100%;max-width:none}
    #toolbar.filtersopen .filterwrap .qf{text-align:left;padding:10px 12px}
    #toolbar.filtersopen .filterwrap .fpanel{position:static;margin-top:4px;box-shadow:none;min-width:0}
    #toolbar.filtersopen #fSheetScrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:55}
    /* toolbar menus (Build/Manage/View/Export) open as a floating sheet ABOVE the bottom nav, with a backdrop */
    .menu.open::before{content:"";position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:119}
    .menu.open .menupanel{position:fixed;left:8px;right:8px;bottom:calc(62px + env(safe-area-inset-bottom));top:auto;border-radius:14px;max-height:64dvh;overflow:auto;min-width:0;z-index:120;box-shadow:0 14px 40px rgba(0,0,0,.6);padding:8px}
    .menu.open .menupanel.right{left:8px;right:8px}
    .menu.open .menuitem{padding:13px 14px;font-size:15px}
    /* bulk action bar fits the screen */
    .bulkbar{left:8px;right:8px;transform:none;flex-wrap:wrap;justify-content:center;gap:8px;bottom:calc(64px + env(safe-area-inset-bottom));padding:10px}
  }

/* --- admin getting-started checklist --- */
.setupcard{width:100%;box-sizing:border-box;margin-bottom:14px}
.setupcard h3{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 4px}
.setuphd{display:inline-flex;align-items:center;gap:8px}
.setupic{width:18px;height:18px;color:var(--accent);flex:none}
.setupcount{font-size:11px;color:var(--muted);font-weight:600}
.setupx{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;line-height:1;padding:2px 7px;border-radius:6px}
.setupx:hover{background:var(--panel2);color:var(--text)}
.setupbar{height:6px;background:var(--panel2);border-radius:99px;overflow:hidden;margin:2px 0 12px}
.setupbarfill{height:100%;background:var(--accent);border-radius:99px;transition:width .35s ease}
.setupsteps{display:flex;flex-direction:column;gap:6px}
.setupstep{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.setupstep.done{opacity:.66}
.setupck{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;background:var(--panel3);color:var(--text)}
.setupstep.done .setupck{background:var(--ok);color:#fff}
.setupinfo{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.setupt{font-weight:600;font-size:13px}
.setupd{font-size:10.5px;line-height:1.3}
.setupok{flex:none;font-size:11px;color:var(--ok);font-weight:600}
.setupgo{flex:none;padding:5px 11px;font-size:12px;white-space:nowrap}
.setupallset{margin-top:10px;color:var(--ok);font-weight:600}

/* --- floating admin setup guide --- */
.setupfab{position:fixed;right:20px;bottom:20px;z-index:3000;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:none;border-radius:999px;background:var(--accent);color:#fff;font-weight:600;font-size:13px;cursor:pointer;box-shadow:0 6px 20px rgba(0,0,0,.28)}
.setupfab:hover{filter:brightness(1.06);transform:translateY(-1px)}
.setupfab svg{width:18px;height:18px}
.setupfabct{background:rgba(255,255,255,.22);border-radius:999px;padding:1px 8px;font-size:11px;font-weight:700}
.setuppanel{position:fixed;right:20px;bottom:74px;z-index:3001;width:min(340px,calc(100vw - 40px));background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;box-shadow:0 14px 40px rgba(0,0,0,.4)}
.setuppanelhd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:2px}
.setuppanel .setuphd{font-weight:700;font-size:14px}
.setupsub{font-size:11px;color:var(--muted);margin-bottom:10px}
.setuppanel .setupsteps{margin-top:2px}
.setuppanel .setupstep{cursor:pointer}
.setuppanel .setupstep:not(.done):hover{border-color:var(--accent);background:var(--panel3)}
.setupgoar{flex:none;color:var(--muted);font-size:18px;font-weight:700}
.setuphide{margin-top:12px;width:100%;background:none;border:none;color:var(--muted);font-size:11px;cursor:pointer;padding:4px;border-radius:6px}
.setuphide:hover{color:var(--text);background:var(--panel2)}
.setupcoach{position:fixed;left:20px;bottom:20px;z-index:3002;width:min(360px,calc(100vw - 40px));background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:12px;padding:14px 16px;box-shadow:0 14px 40px rgba(0,0,0,.42)}
.setupcoachhd{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}
.setupcoachstep{font-size:10.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--accent)}
.setupcoacht{font-weight:700;font-size:14px;margin-bottom:5px}
.setupcoachbody{font-size:12.5px;line-height:1.5;color:var(--text)}
.setupcoachbody b{font-weight:600}
.setupcoachft{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.setupcoachft .btn{font-size:12px;padding:6px 12px}
.setuphl{outline:3px solid var(--accent)!important;outline-offset:2px;border-radius:8px;animation:setuppulse 1s ease-in-out 3}
@keyframes setuppulse{0%,100%{box-shadow:0 0 0 0 rgba(59,130,246,.5)}50%{box-shadow:0 0 0 6px rgba(59,130,246,0)}}
@media(max-width:560px){.setuppanel{right:12px;left:12px;bottom:72px;width:auto}.setupcoach{left:12px;right:12px;width:auto}.setupfab{right:12px;bottom:12px}}

/* --- GIF picker (Giphy) in chat --- */
.cgif{flex:none;display:inline-flex;align-items:center;background:var(--panel3);border:none;color:var(--text);font-weight:800;font-size:13px;letter-spacing:.04em;height:40px;padding:0 15px;border-radius:10px;cursor:pointer}
.cgif:hover{background:var(--accent);color:#fff}
.bgif{max-width:220px;max-height:220px;width:auto;border-radius:10px;display:block}
.gifpop{position:fixed;z-index:4200;width:400px;max-width:calc(100vw - 16px);background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.5);overflow:hidden;display:flex;flex-direction:column}
.gifsearch{display:flex;gap:6px;padding:8px;border-bottom:1px solid var(--line)}
.gifsearch input{flex:1;background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:7px 10px;color:var(--text);font-size:13px}
.gifx{background:none;border:none;color:var(--muted);cursor:pointer;font-size:13px;padding:0 6px}
.gifgrid{columns:2;column-gap:6px;padding:8px;max-height:360px;overflow:auto}
.gifcell{display:block;width:100%;margin:0 0 6px;border:none;background:var(--panel2);border-radius:8px;overflow:hidden;cursor:pointer;padding:0;break-inside:avoid}
.gifcell img{width:100%;height:auto;display:block}
.gifcell:hover{outline:2px solid var(--accent);outline-offset:-2px}
.gifcredit{font-size:9px;color:var(--muted)}
/* --- messages: former-staff toggle + row --- */
.lgrptog{float:right;background:none;border:0;outline:0;-webkit-appearance:none;appearance:none;color:var(--muted);cursor:pointer;padding:0 2px;line-height:1;margin-top:-1px}
.lgrptog:hover{color:var(--text)}
/* --- cost centers manager (tree) --- */
.ccrow2{display:flex;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}
.cctwist{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer}
.cctwist .cctw{width:14px;height:14px;transition:transform .12s}
.cctwist.open .cctw{transform:rotate(90deg)}
.ccnm{flex:1;font-size:13px;color:var(--text);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cccode{background:var(--panel2);color:var(--muted);font-size:10.5px;padding:2px 8px;border-radius:6px;font-family:ui-monospace,Menlo,Consolas,monospace;flex:none}
.cccode.nocode{background:none;font-style:italic;opacity:.55;font-family:inherit}
.ccacts{display:flex;gap:2px;flex:none}

/* --- cost centers report --- */
.ccreport{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 18px;margin-bottom:14px}
.cctable{width:100%;border-collapse:collapse;font-size:12.5px}
.cctable th{color:var(--muted);font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:8px 6px;border-bottom:1px solid var(--line)}
.cctable td{padding:7px 6px;border-bottom:1px solid var(--line);color:var(--text)}
.cctable td.num{text-align:right;font-variant-numeric:tabular-nums}
.cctable td.mut{color:var(--muted)}
.cctable tr.cctop td{font-weight:600}
.cctable tr.ccmut td{color:var(--muted)}
.cctable tr.cctot td{font-weight:700;border-top:2px solid var(--panel3);border-bottom:0;color:var(--text)}
.cccodeinl{background:var(--panel2);color:var(--muted);font-size:9.5px;padding:1px 6px;border-radius:5px;font-family:ui-monospace,Menlo,Consolas,monospace;margin-left:6px}

/* --- cost center tag on timecard entries --- */
.tccc{display:inline-block;background:var(--panel2);color:var(--muted);font-size:9.5px;padding:1px 6px;border-radius:5px;margin-left:4px;white-space:nowrap;vertical-align:middle}

/* --- Additional pay (pay items) manager --- */
.pilist{display:flex;flex-direction:column}
.pirow{display:flex;align-items:center;gap:10px;padding:9px 2px;border-top:1px solid var(--line)}
.pirow:first-child{border-top:0}
.pinm{flex:1;font-size:13px;color:var(--text);font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.picode{background:var(--chip,#1E293B);color:var(--muted);font-size:10px;padding:2px 7px;border-radius:5px;font-family:var(--mono,monospace)}
.pikind{color:var(--muted);font-size:11px;width:104px;flex:none;text-align:right}
.pitax{font-size:11px;width:64px;flex:none;text-align:right;color:var(--muted)}
.pitax.on{color:var(--ok,#4ade80)}
.piacts{display:flex;gap:2px;flex:none}

/* --- Additional pay on the timecard --- */
.tsline.apline{background:rgba(99,102,241,.045)}
.tsline.apline .tsl-p{flex-wrap:wrap;gap:6px}
.tsline.apline.ghost{opacity:0;transition:opacity .12s ease}
.tsday:hover .tsline.apline.ghost{opacity:1}
.aptag{font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);margin-right:2px}
.apchip{display:inline-flex;align-items:center;background:var(--chip,#1E293B);border:1px solid var(--line);color:var(--text);font-size:11.5px;padding:2px 8px;border-radius:6px;font-variant-numeric:tabular-nums}
.apchip.nt{border-style:dashed;color:var(--muted)}
/* modal rows */
.aprow{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--line)}
.aprow:first-of-type{border-top:0}
.apnm{font-size:13.5px;color:var(--text);display:flex;align-items:center;gap:6px}
.apin{display:flex;align-items:center;gap:6px}
.apin input{width:96px;text-align:right;font-variant-numeric:tabular-nums}
.apcur{color:var(--muted);font-size:13px}
.apunit{color:var(--muted);font-size:11px;white-space:nowrap}
.apout{color:var(--ok,#4ade80);font-size:12px;min-width:64px;text-align:right;font-variant-numeric:tabular-nums}

/* --- Additional-pay period totals on the payroll tab --- */
.aptotrow{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:2px 0 4px;padding:8px 10px;background:rgba(99,102,241,.05);border:1px solid var(--line);border-radius:10px}
.aptothd{font-size:10px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.aptot{display:flex;align-items:baseline;gap:6px;padding:2px 8px;background:var(--card,#0F172A);border:1px solid var(--line);border-radius:8px}
.aptot .k{font-size:11.5px;color:var(--muted)}
.aptot .v{font-size:13px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}

/* --- Projected overtime badge on the schedule grid --- */
.otbadge{display:inline-block;margin-top:4px;padding:1px 7px;border-radius:6px;font-size:10.5px;font-weight:700;background:rgba(245,158,11,.16);color:var(--warn);border:1px solid rgba(245,158,11,.4);white-space:nowrap;font-variant-numeric:tabular-nums}
.otbadge.crit{background:rgba(239,68,68,.16);color:var(--crit);border-color:rgba(239,68,68,.4)}

/* --- Close account (Option B card + confirm + closed screen) --- */
.closeacct{background:var(--card,#0F172A);border:1px solid var(--line);border-radius:12px;padding:15px 16px;display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px}
.closeacct-h{font-size:14px;font-weight:600;color:var(--text)}
.closeacct-s{font-size:12px;color:var(--muted);margin-top:3px;line-height:1.45}
.closeacct-btn{flex:none;color:#f0788f;background:rgba(239,68,68,.09);border:1px solid rgba(239,68,68,.25);font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:8px;cursor:pointer}
.closeacct-btn:hover{background:rgba(239,68,68,.16)}
.calist{display:flex;flex-direction:column;gap:7px;font-size:12.5px;color:var(--text)}
.calist>div{display:flex;gap:8px;align-items:flex-start}
.cax{color:#f87171;flex:none}
.cak{color:#4ade80;flex:none}
.closedscreen{position:fixed;inset:0;z-index:9000;display:none;align-items:center;justify-content:center;background:var(--bg,#0B1220);padding:24px}
.closedcard{max-width:420px;text-align:center;display:flex;flex-direction:column;align-items:center}
.closedic{width:46px;height:46px;border-radius:12px;background:rgba(99,102,241,.15);color:#818CF8;display:flex;align-items:center;justify-content:center;margin-bottom:10px}
.closedh{font-size:17px;font-weight:700;color:var(--text)}
.closeds{font-size:13px;color:var(--muted);line-height:1.5;margin:6px 0 8px}
.closedcard .btn{min-width:190px;margin-top:2px}

/* --- Setup wizard (auto-launch onboarding) --- */
.setupwiz{position:fixed;inset:0;z-index:3200;display:flex;align-items:center;justify-content:center;background:rgba(2,6,15,.62);backdrop-filter:blur(2px);padding:20px}
.setupwizcard{display:flex;width:min(660px,96vw);max-height:88vh;background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.swrail{width:196px;flex:none;background:var(--panel2);border-right:1px solid var(--line);padding:16px 14px;overflow:auto}
.swrailhd{font-size:11px;color:var(--muted);line-height:1.5;margin-bottom:10px}
.swrailhd b{color:var(--text);font-size:14px}
.swbar{height:5px;background:var(--line);border-radius:3px;overflow:hidden;margin-bottom:14px}
.swbar i{display:block;height:100%;background:var(--accent);transition:width .2s}
.swsteps{display:flex;flex-direction:column;gap:3px}
.swstep{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted);padding:6px 7px;border-radius:8px;cursor:pointer}
.swstep:hover{background:rgba(255,255,255,.04)}
.swstep.active{background:rgba(99,102,241,.14);color:var(--text);font-weight:600}
.swstep.done{color:var(--muted)}
.swdot{width:18px;height:18px;flex:none;border-radius:50%;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:10px;color:var(--muted)}
.swstep.active .swdot{background:var(--accent);border-color:var(--accent);color:#fff}
.swstep.done .swdot{background:var(--ok,#22c55e);border-color:var(--ok,#22c55e);color:#04120a}
.swmain{flex:1;min-width:0;padding:20px 22px;position:relative;overflow:auto;display:flex;flex-direction:column}
.swx{position:absolute;top:14px;right:14px;background:none;border:0;color:var(--muted);font-size:16px;cursor:pointer;line-height:1}
.swtitle{font-size:17px;font-weight:700;color:var(--text);padding-right:20px}
.swhow{font-size:12.5px;color:var(--muted);line-height:1.5;margin:6px 0 14px}
.swind{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.swindb{display:flex;flex-direction:column;align-items:center;gap:5px;padding:14px 6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--text);font-size:12.5px;font-weight:600;cursor:pointer}
.swindb:hover{border-color:var(--accent)}
.swindb.on{border:1.5px solid var(--accent);background:rgba(99,102,241,.12)}
.swindic{font-size:22px}
.swroles{display:flex;flex-direction:column;gap:8px}
.swrole{display:flex;align-items:center;gap:10px}
.swrolen{flex:1;font-size:13px;color:var(--text);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 11px}
.swrate{display:flex;align-items:center;gap:4px;color:var(--muted);font-size:13px}
.swrate input{width:74px;text-align:right;font-variant-numeric:tabular-nums}
.swrateu{font-size:11px;color:var(--muted)}
.swaddrole{display:flex;gap:8px;margin-top:4px}
.swaddrole input{flex:1}
.swlaunch{display:flex;align-items:center;gap:12px;margin:6px 0}
.swdoneflag{color:var(--ok,#22c55e);font-size:12.5px;font-weight:600}
.swfoot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto;padding-top:16px}
.swfootr{display:flex;align-items:center;gap:8px}
@media(max-width:560px){.setupwizcard{flex-direction:column;max-height:92vh}.swrail{width:auto;border-right:0;border-bottom:1px solid var(--line)}.swsteps{flex-direction:row;flex-wrap:wrap}.swstep span:last-child{display:none}.swind{grid-template-columns:repeat(2,1fr)}}

/* --- super-admin permanent delete in the company picker --- */
.stafforg .soinfo{flex:1;min-width:0}
.soDel{flex:none;margin-left:8px;background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#f0788f;font-size:11px;font-weight:600;padding:5px 10px;border-radius:7px;cursor:pointer}
.soDel:hover{background:rgba(239,68,68,.2)}
