/* Time clock: NL Chat phone clock + Ops desktop admin. Uses the chat theme tokens (--nc-*). */
:root:root .tc-root,:root:root .tc-sheet,:root:root .tc-home{--tc-blue:#2d9bf0;--tc-blue-soft:#e6f3fe;--tc-orange:#f39c12;--tc-bad:#e53935;--tc-ok:#43a047;--tc-ot:#f57c00;--tc-pto:#8e6bd6;
  color:var(--nc-text);font:14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif}
:root[data-theme="dark"]:root .tc-root,:root[data-theme="dark"]:root .tc-sheet,:root[data-theme="dark"]:root .tc-home{--tc-blue-soft:#16324a}
:root:root .tc-root *,:root:root .tc-sheet *,:root:root .tc-home *{box-sizing:border-box}
:root:root .tc-root [hidden],:root:root .tc-sheet [hidden]{display:none!important}
:root:root .tc-root svg,:root:root .tc-sheet svg,:root:root .tc-home svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}
:root:root .tc-muted{color:var(--nc-muted)}
:root:root .tc-bad{color:var(--tc-bad)}
:root:root .tc-warn{color:var(--tc-orange)}
:root:root .tc-hint{color:var(--nc-muted);font-size:13px;margin:0}
:root:root .tc-err{color:var(--tc-bad);margin:0}
:root:root .tc-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
:root:root .tc-row input{flex:1;min-width:120px}
:root:root .tc-grow{flex:1}
:root:root .tc-dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:1px}
:root:root .tc-root button,:root:root .tc-sheet button,:root:root .tc-home button{font:inherit;cursor:pointer;min-height:0;box-shadow:none}
:where(.tc-root,.tc-sheet,.tc-home) button{color:inherit}
:root:root .tc-btn{font-weight:600;border-radius:10px;border:1px solid var(--nc-line);background:var(--nc-panel);color:var(--nc-text);padding:9px 14px;white-space:nowrap;font-size:14px}
:root:root .tc-btn.sm{padding:5px 10px;font-size:13px;border-radius:8px}
:root:root .tc-btn.primary{background:var(--tc-blue);border-color:var(--tc-blue);color:#fff}
:root:root .tc-btn.danger{color:var(--tc-bad)}
:root:root .tc-btn.block{width:100%}
:root:root .tc-btn:disabled{opacity:.55;cursor:default}
:root:root .tc-link{border:0;background:none;color:var(--tc-blue);padding:4px 0;font-weight:600;justify-self:start}
:root:root .tc-icon-btn{border:0;background:none;color:var(--nc-muted);padding:5px;border-radius:8px;display:inline-grid;place-items:center;position:relative}
:root:root .tc-icon-btn.on{color:var(--tc-blue)}
:root:root .tc-icon-btn sup{position:absolute;top:-2px;right:-3px;font-size:10px;font-weight:700;color:var(--tc-blue)}
:root:root .tc-icon-btn.close{font-size:24px;line-height:1;margin-left:auto}
:root:root .tc-pill{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;
  background:color-mix(in srgb,var(--c) 22%,var(--nc-panel));color:color-mix(in srgb,var(--c) 70%,var(--nc-text));border:1px solid color-mix(in srgb,var(--c) 45%,transparent);
  border-radius:999px;padding:2px 10px;font-size:12px;font-weight:600}
:root:root .tc-avatar{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;color:#fff;font-weight:700;font-size:12px;flex:none}
:root:root .tc-avatar.sm{width:26px;height:26px;font-size:11px}
:root:root .tc-f{display:grid;gap:5px;color:var(--nc-muted);font-size:13px}
:root:root .tc-f input,:root:root .tc-f select,:root:root .tc-row input,:root:root .tc-search input,:root:root .tc-break-row input,:root:root .tc-map-side input,:root:root .tc-filter select{
  background:var(--nc-input,var(--nc-soft));color:var(--nc-text);border:1px solid var(--nc-line);border-radius:9px;padding:8px 10px;font:inherit;font-size:15px;width:100%;min-height:0}
:root:root .tc-grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
:root:root .tc-grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
:root:root .tc-check{display:flex;gap:8px;align-items:center;color:var(--nc-text)}
:root:root .tc-radio{display:grid;gap:6px;color:var(--nc-text)}
:root:root .tc-radio label{display:flex;gap:8px;align-items:center;font-size:14px;color:var(--nc-text)}
:root:root .tc-radio input,:root:root .tc-check input{width:auto}
:root:root .tc-breaks{display:grid;gap:6px}
:root:root .tc-break-row{display:grid;grid-template-columns:1fr auto 1fr auto;gap:6px;align-items:center;color:var(--nc-muted)}
:root:root .tc-x{border:0;background:none;color:var(--nc-muted);font-size:20px;padding:0 6px}
:root:root .tc-seg3{display:grid;grid-template-columns:repeat(3,1fr);background:var(--nc-soft);border-radius:10px;padding:3px}
:root:root .tc-seg3 button{border:0;background:none;padding:8px;border-radius:8px}
:root:root .tc-seg3 button.on{background:var(--nc-panel);font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.15)}
:root:root .tc-status{display:inline-block;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:700;background:var(--nc-soft);color:var(--nc-muted)}
:root:root .tc-status.pending{background:#fff3e0;color:#c66a00}
:root:root .tc-status.approved{background:#e8f5e9;color:#2e7d32}
:root:root .tc-status.rejected,:root:root .tc-status.denied{background:#ffebee;color:#c62828}
:root[data-theme="dark"]:root .tc-status.pending{background:#3a2a12}
:root[data-theme="dark"]:root .tc-status.approved{background:#15311a}
:root[data-theme="dark"]:root .tc-status.rejected,:root[data-theme="dark"]:root .tc-status.denied{background:#3a1518}
:root:root .tc-empty{display:grid;justify-items:center;gap:6px;color:var(--nc-muted);padding:30px 10px}
:root:root .tc-empty svg{width:44px;height:44px}

/* sheets: bottom on phones, centered (or a right drawer) on desktop */
:root:root .tc-sheet{position:fixed;inset:0;z-index:900;background:rgba(15,22,30,.42);display:flex;align-items:flex-end;justify-content:center}
:root:root .tc-sheet-in{background:var(--nc-panel);color:var(--nc-text);width:100%;max-width:520px;border-radius:20px 20px 0 0;padding:18px 16px calc(20px + env(safe-area-inset-bottom));
  display:grid;gap:12px;max-height:90vh;overflow:auto;overscroll-behavior:contain;align-content:start}
:root:root .tc-sheet-in h3{margin:0;font-size:18px}
:root:root .tc-sheet-in h4{margin:6px 0 0;font-size:14px}
:root:root .tc-sheet.full .tc-sheet-in{max-width:none;height:100%;max-height:none;border-radius:0;padding-top:calc(12px + env(safe-area-inset-top))}
@media (min-width:801px){
  :root:root .tc-sheet{align-items:center}
  :root:root .tc-sheet-in{border-radius:16px;padding:20px}
  :root:root .tc-sheet.wide .tc-sheet-in{max-width:720px}
  :root:root .tc-sheet.full .tc-sheet-in{max-width:560px;height:auto;max-height:90vh;border-radius:16px}
  :root:root .tc-sheet.drawer{justify-content:flex-end;align-items:stretch}
  :root:root .tc-sheet.drawer .tc-sheet-in{max-width:520px;max-height:none;height:100%;border-radius:0;padding-top:56px}
}
:root:root .tc-page-head{display:flex;align-items:center;gap:10px}
:root:root .tc-page-head h3{margin:0}
:root:root .tc-flash{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:950;background:#1f2933;color:#fff;border-radius:999px;
  padding:9px 16px;font-weight:600;font-size:13px;max-width:90vw;text-align:center;box-shadow:0 6px 20px rgba(0,0,0,.25)}
:root:root .tc-flash.bad{background:var(--tc-bad,#e53935)}
:root:root .tc-req-list{display:grid;gap:10px}
:root:root .tc-req{display:flex;gap:10px;border:1px solid var(--nc-line);border-radius:12px;padding:12px}
:root:root .tc-req-body{display:grid;gap:6px;flex:1;min-width:0}
:root:root .tc-req-who{font-weight:700}
:root:root .tc-job-list{display:grid;gap:4px}
:root:root .tc-job-list button{display:flex;align-items:center;text-align:left;border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:10px;padding:12px}
:root:root .tc-job-list button.on{border-color:var(--tc-blue);background:var(--tc-blue-soft)}
:root:root .tc-sess{display:flex;justify-content:space-between;gap:8px;border:1px solid var(--nc-line);border-radius:12px;padding:10px 12px;flex-wrap:wrap}
:root:root .tc-sess small{display:block}
:root:root .tc-comment{margin:0;padding:8px 10px;border-radius:10px;background:var(--nc-soft)}

/* ---------------- phone ---------------- */
:root:root .tc-phone{position:relative;height:100%;display:block;background:var(--nc-soft2,var(--nc-soft));overflow:hidden}
:root:root .tc-phone-map{position:absolute;left:0;right:0;top:0;height:38%}
:root:root .tc-total{position:absolute;top:12px;left:14px;right:14px;z-index:5;display:flex;justify-content:space-between;align-items:center;background:var(--nc-panel);
  border-radius:999px;padding:10px 18px;box-shadow:0 2px 10px rgba(0,0,0,.14)}
:root:root .tc-total b{font-size:20px;font-variant-numeric:tabular-nums}
:root:root .tc-loc-msg{position:absolute;top:64px;left:18px;right:18px;z-index:6;background:var(--nc-panel);border-radius:14px;padding:14px;box-shadow:0 4px 18px rgba(0,0,0,.2);display:grid;gap:8px;text-align:center}
:root:root .tc-loc-msg p{margin:0}
:root:root .tc-loc-msg ol{margin:0;padding-left:18px;text-align:left;font-size:13px;color:var(--nc-muted)}
:root:root .tc-loc-msg button{justify-self:center}
:root:root .tc-panel{position:absolute;left:0;right:0;bottom:0;top:31%;z-index:4;background:var(--nc-soft2,var(--nc-soft));border-radius:22px 22px 0 0;box-shadow:0 -4px 16px rgba(0,0,0,.08)}
:root:root .tc-panel-scroll{height:100%;overflow-y:auto;overscroll-behavior:contain;padding:14px 16px 24px;display:grid;gap:14px;align-content:start;justify-items:center}
:root:root .tc-shift-line{margin:0;color:var(--nc-muted);text-align:center;font-size:15px}
:root:root .tc-clock-area{display:grid;justify-items:center;gap:12px;width:100%}
:root:root .tc-big{width:160px;height:160px;border-radius:50%;border:0;background:var(--tc-blue);color:#fff;display:grid;place-content:center;justify-items:center;gap:6px;
  font-size:22px;font-weight:500;box-shadow:0 8px 22px color-mix(in srgb,var(--tc-blue) 40%,transparent);transition:transform .08s}
:root:root .tc-big:active{transform:scale(.96)}
:root:root .tc-big svg{width:40px;height:40px;stroke-width:1.9}
:root:root .tc-big:disabled{opacity:.6}
:root:root .tc-two{display:flex;gap:18px;justify-content:center}
:root:root .tc-two .tc-big{width:128px;height:128px;font-size:16px}
:root:root .tc-two .tc-big svg{width:30px;height:30px}
:root:root .tc-big.mid{background:var(--nc-panel);color:var(--tc-blue);border:2px solid var(--tc-blue);box-shadow:none}
:root:root .tc-big.out{background:var(--tc-bad);box-shadow:0 8px 22px rgba(229,57,53,.35)}
:root:root .tc-running{display:grid;justify-items:center;gap:4px}
:root:root .tc-running small{color:var(--nc-muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:700}
:root:root .tc-running b{font-size:34px;font-weight:600;font-variant-numeric:tabular-nums}
:root:root .tc-job-pick{display:flex;gap:10px;align-items:center;border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:12px;padding:10px 14px;min-width:230px}
:root:root .tc-job-pick span{flex:1;text-align:left;font-weight:600}
:root:root .tc-job-pick b{color:var(--nc-muted)}
:root:root .tc-tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px;width:100%;max-width:520px}
:root:root .tc-tile{background:var(--nc-panel);border:0;border-radius:16px;padding:16px 10px;display:grid;justify-items:center;gap:8px;font-size:15px;position:relative;box-shadow:0 1px 4px rgba(0,0,0,.06)}
:root:root .tc-tile i{position:absolute;top:10px;right:14px;min-width:20px;height:20px;border-radius:10px;background:var(--tc-bad);color:#fff;font-style:normal;font-size:12px;font-weight:700;display:grid;place-items:center;padding:0 6px}
:root:root .tc-tile-ico{width:40px;height:40px;border-radius:12px;display:grid;place-items:center}
:root:root .tc-tile-ico svg{width:26px;height:26px}
:root:root .tc-tile-ico.orange{color:var(--tc-orange)}
:root:root .tc-tile-ico.blue{color:var(--tc-blue)}
:root:root .tc-team{width:100%;max-width:520px;background:var(--nc-panel);border-radius:16px;padding:14px;display:grid;gap:8px}
:root:root .tc-team h4{margin:0}
:root:root .tc-team-grid,:root:root .tc-home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:8px}
:root:root .tc-team-grid>*,:root:root .tc-home-grid>*{border:1px solid var(--nc-line);border-radius:12px;padding:10px;display:grid;gap:2px;text-align:left;background:var(--nc-panel)}
:root:root .tc-team-grid b,:root:root .tc-home-grid b{font-size:22px}
:root:root .tc-team-grid span,:root:root .tc-home-grid span{color:var(--nc-muted);font-size:12px}
:root:root .tc-team-grid .bad b,:root:root .tc-home-grid .bad b{color:var(--tc-bad)}
:root:root .tc-team-grid .warn b{color:var(--tc-orange)}
:root:root .tc-late-line{margin:0;font-size:13px;color:var(--tc-bad)}
/* phone timesheet */
:root:root .tc-period-nav{display:flex;align-items:center;justify-content:center;gap:16px}
:root:root .tc-period-nav button{border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:50%;width:34px;height:34px;font-size:20px;line-height:1}
:root:root .tc-period-nav button:disabled{opacity:.35}
:root:root .tc-sum{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
:root:root .tc-sum>div{background:var(--nc-soft);border-radius:12px;padding:8px;display:grid;text-align:center}
:root:root .tc-sum small{color:var(--nc-muted);font-size:11px}
:root:root .tc-sum b{font-size:17px}
:root:root .tc-sheet-status{font-size:14px;color:var(--nc-muted)}
:root:root .tc-days{display:grid;gap:6px}
:root:root .tc-day{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:12px;padding:10px;text-align:left}
:root:root .tc-day.empty{opacity:.55}
:root:root .tc-day-date{display:grid;text-align:center}
:root:root .tc-day-date small,:root:root .tc-day-mid small{color:var(--nc-muted);font-size:12px}
:root:root .tc-day-mid{display:grid}
:root:root .tc-day-mid em{font-style:normal;color:var(--tc-blue)}
:root:root .tc-day-mid em.bad{color:var(--tc-bad)}
:root:root .tc-day-total{display:grid;justify-items:end;font-weight:700;font-variant-numeric:tabular-nums}
:root:root .tc-day-total small.ot{color:var(--tc-ot);font-weight:600}

/* ---------------- map ---------------- */
:root:root .tc-map{position:relative;overflow:hidden;background:#e8e4dc;touch-action:none;cursor:grab;user-select:none}
:root:root .tc-map-tiles img{position:absolute;width:256px;height:256px;max-width:none;pointer-events:none}
:root[data-theme="dark"]:root .tc-map-tiles{filter:brightness(.72) contrast(1.1) saturate(.7)}
:root:root .tc-map svg.tc-map-svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;stroke:none;stroke-width:0}
:root:root .tc-map .tc-map-svg .tc-fence{fill:rgba(45,155,240,.14);stroke:#2d9bf0;stroke-width:2}
:root:root .tc-map .tc-map-svg .tc-fence.off{fill:rgba(120,120,120,.1);stroke:#999;stroke-dasharray:5 4}
:root:root .tc-map .tc-map-svg .tc-fence-dot{fill:#2d9bf0}
:root:root .tc-map .tc-map-svg .tc-me-acc{fill:rgba(26,115,232,.15);stroke:rgba(26,115,232,.4)}
:root:root .tc-map .tc-map-svg .tc-me{fill:#1a73e8;stroke:#fff;stroke-width:3}
:root:root .tc-map-pins{position:absolute;inset:0;pointer-events:none}
:root:root .tc-pin{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;border:3px solid #fff;color:#fff;font-weight:700;font-size:12px;padding:0;
  display:grid;place-items:center;pointer-events:auto;box-shadow:0 2px 6px rgba(0,0,0,.35)}
:root:root .tc-pin.bad{border-color:var(--tc-bad)}
:root:root .tc-pin.out{width:24px;height:24px;font-size:9px;opacity:.8}
:root:root .tc-map-zoom{position:absolute;right:10px;bottom:28px;display:grid;gap:4px;z-index:2}
:root:root .tc-map-zoom button{width:32px;height:32px;border-radius:8px;border:1px solid var(--nc-line);background:var(--nc-panel);font-size:18px;line-height:1;padding:0}
:root:root .tc-map-attr{position:absolute;right:0;bottom:0;background:rgba(255,255,255,.8);font-size:10px;padding:1px 5px;color:#333}
:root:root .tc-map-attr a{color:#333}

/* ---------------- desktop ---------------- */
:root:root .tc-desk{display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:4px 0 24px;min-width:0;max-width:100%}
:root:root .tc-host{min-width:0;max-width:100%}
:root:root .tc-desk-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
:root:root .tc-title{display:flex;align-items:center;gap:8px;color:var(--tc-blue)}
:root:root .tc-title h2{margin:0;font-size:20px;color:var(--nc-text)}
:root:root .tc-title svg{width:24px;height:24px}
:root:root .tc-tabs{display:flex;gap:4px;background:var(--nc-soft);border-radius:10px;padding:3px}
:root:root .tc-tabs button{border:0;background:none;padding:6px 14px;border-radius:8px;font-weight:600;color:var(--nc-muted)}
:root:root .tc-tabs button.on{background:var(--nc-panel);color:var(--nc-text);box-shadow:0 1px 3px rgba(0,0,0,.12)}
:root:root .tc-req-btn{margin-left:auto;border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:999px;padding:6px 14px 6px 6px;font-weight:700;display:flex;gap:8px;align-items:center;color:var(--nc-muted)}
:root:root .tc-req-btn b{min-width:26px;height:26px;border-radius:13px;display:grid;place-items:center;background:var(--nc-soft);padding:0 6px}
:root:root .tc-req-btn.has{color:var(--tc-orange);border-color:color-mix(in srgb,var(--tc-orange) 50%,transparent)}
:root:root .tc-req-btn.has b{background:var(--tc-orange);color:#fff}
:root:root .tc-toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
:root:root .tc-search{width:220px}
:root:root .tc-filter{display:flex;align-items:center;gap:6px;color:var(--nc-muted)}
:root:root .tc-filter select{width:auto;font-size:13px;padding:6px 8px}
:root:root .tc-daynav{display:flex;align-items:center;border:1px solid var(--nc-line);border-radius:10px;overflow:hidden;background:var(--nc-panel)}
:root:root .tc-daynav button{border:0;background:none;padding:6px 12px;font-size:15px;min-width:36px}
:root:root .tc-daynav button:disabled{opacity:.35}
:root:root .tc-daynav [data-today]{font-weight:600;min-width:110px;font-size:14px}
:root:root .tc-daynav b{padding:0 12px;font-weight:600}
:root:root .tc-daynav input{border:0;border-left:1px solid var(--nc-line);background:none;color:var(--nc-muted);width:34px;padding:6px 4px;font-size:13px}
:root:root .tc-legend{display:flex;gap:6px;align-items:center;color:var(--nc-muted);font-size:12px;margin-left:auto}
:root:root .tc-legend i{display:inline-block;width:10px;height:3px;border-radius:2px;margin-left:8px}
:root:root .tc-legend i.reg{background:var(--tc-blue)}:root:root .tc-legend i.ot{background:var(--tc-ot)}:root:root .tc-legend i.pto{background:var(--tc-pto)}
:root:root .tc-table-wrap{overflow:auto;border:1px solid var(--nc-line);border-radius:12px;background:var(--nc-panel)}
:root:root .tc-table{width:100%;border-collapse:collapse;font-size:13.5px}
:root:root .tc-table th{position:sticky;top:0;background:var(--nc-soft);text-align:left;font-weight:600;color:var(--nc-text);padding:10px 9px;white-space:nowrap;border-bottom:1px solid var(--nc-line);z-index:1}
:root:root .tc-table td{padding:8px 9px;border-bottom:1px solid var(--nc-line);white-space:nowrap;vertical-align:middle;color:var(--nc-text)}
:root:root .tc-table tbody tr[data-id]{cursor:pointer}
:root:root .tc-table tbody tr[data-id]:hover{background:var(--nc-soft)}
:root:root .tc-table tr.locked td{background:color-mix(in srgb,var(--nc-soft) 60%,transparent)}
:root:root .tc-name{display:inline-flex;align-items:center;gap:10px;font-weight:500}
:root:root .tc-on{width:8px;height:8px;border-radius:50%;background:var(--tc-ok);display:inline-block}
:root:root .tc-sched{color:var(--nc-muted)}
:root:root .tc-type{display:inline-flex;gap:5px;align-items:center}
:root:root .tc-type svg{width:15px;height:15px}
:root:root .tc-pinmark{display:inline-flex;color:var(--nc-muted);vertical-align:middle}
:root:root .tc-pinmark svg{width:15px;height:15px}
:root:root .tc-pinmark.bad{color:var(--tc-bad)}
:root:root .tc-late{display:inline-block;margin-left:6px;background:var(--nc-soft);color:var(--nc-muted);border-radius:6px;padding:0 6px;font-size:12px;font-weight:600}
:root:root .tc-late.big{background:#ffebee;color:#c62828;margin:0}
:root[data-theme="dark"]:root .tc-late.big{background:#3a1518}
:root:root .tc-live{color:var(--tc-ok);font-weight:600}
:root:root .tc-ot{color:var(--tc-ot);font-weight:600}
:root:root .tc-acts{text-align:right}
:root:root .tc-pager{display:flex;gap:4px;justify-content:center}
:root:root .tc-pager button{border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:8px;padding:4px 10px}
:root:root .tc-pager button.on{background:var(--tc-blue-soft);border-color:var(--tc-blue);color:var(--tc-blue);font-weight:700}
:root:root .tc-map-card{display:grid;grid-template-columns:300px 1fr;border:1px solid var(--nc-line);border-radius:12px;overflow:hidden;background:var(--nc-panel);height:440px}
:root:root .tc-map-side{padding:14px;display:grid;gap:8px;align-content:start;border-right:1px solid var(--nc-line);overflow:auto}
:root:root .tc-map-side h4{margin:0;font-size:14px}
:root:root .tc-map-list{display:grid;gap:2px}
:root:root .tc-map-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;border:0;background:none;padding:6px;border-radius:8px;text-align:left}
:root:root .tc-map-row:hover{background:var(--nc-soft)}
:root:root .tc-map-row small{display:block;font-size:11.5px}
:root:root .tc-map-box{min-height:300px;height:100%}
:root:root .tc-map-box.tall{height:340px;border-radius:12px;border:1px solid var(--nc-line)}
:root:root .tc-lockline{display:flex;gap:6px;align-items:center;margin:0;padding:8px 10px;border-radius:10px;background:var(--nc-soft);color:var(--nc-muted);font-size:13px}
:root:root .tc-sessions{display:grid;gap:8px}
:root:root .tc-sessions .tc-sess{display:grid}
:root:root .tc-sess-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
:root:root .tc-sess-top small{display:inline}
:root:root .tc-sess-loc{display:flex;gap:12px;flex-wrap:wrap;color:var(--nc-muted);font-size:12.5px}
:root:root .tc-sess-loc span{display:inline-flex;gap:4px;align-items:center}
:root:root .tc-sess-loc svg{width:14px;height:14px}
:root:root .tc-editor{border:1px solid var(--tc-blue);border-radius:12px;padding:12px;display:grid;gap:10px;background:var(--tc-blue-soft)}
:root:root .tc-editor h4{margin:0}
:root:root .tc-history p{margin:0 0 8px;font-size:13px}
:root:root .tc-comments{display:grid;gap:6px}
:root:root .tc-days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;padding:4px 0}
:root:root .tc-days-grid button{border:1px solid var(--nc-line);background:var(--nc-panel);border-radius:10px;padding:6px;display:grid;gap:1px;text-align:left}
:root:root .tc-days-grid button.empty{opacity:.5}
:root:root .tc-days-grid button.bad{border-color:var(--tc-bad)}
:root:root .tc-days-grid small{color:var(--nc-muted);font-size:11px}
:root:root .tc-days-grid i{font-style:normal;font-size:11px}
:root:root .tc-detail td{white-space:normal;background:var(--nc-soft)}
:root:root .tc-settings{display:grid;gap:14px;max-width:900px}
:root:root .tc-card{border:1px solid var(--nc-line);border-radius:14px;padding:16px;background:var(--nc-panel);display:grid;gap:12px}
:root:root .tc-card h3{margin:0;font-size:16px}
@media (max-width:800px){:root:root .tc-map-card{grid-template-columns:1fr;height:auto}:root:root .tc-map-box{height:320px}:root:root .tc-legend{margin-left:0}}

/* ---------------- Ops home ---------------- */
:root:root .tc-home{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin:14px 0}
:root:root .tc-home-card{border:1px solid var(--nc-line);border-radius:12px;padding:14px 16px;background:var(--nc-panel);display:grid;gap:10px;align-content:start}
:root:root .tc-home-card h3{margin:0;font-size:16px}
:root:root .tc-home-grid>button{padding:14px 16px}
:root:root .tc-attn{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;border:0;background:none;padding:4px;text-align:left}
:root:root .tc-attn span:nth-child(2){display:grid}
:root:root .tc-attn small{color:var(--nc-muted);font-size:12px}
:root:root .tc-attn b{min-width:30px;height:30px;border-radius:15px;background:var(--tc-orange);color:#fff;display:grid;place-items:center;padding:0 8px}
:root:root .tc-attn b.zero{background:var(--nc-soft);color:var(--nc-muted)}
@media (max-width:800px){:root:root .tc-home{grid-template-columns:1fr}}
:root:root .tc-map-svg circle{stroke-linecap:butt}
:root:root .tc-summary{display:block;line-height:1.5}
