/* TUHI CONSOLE — screen styles on top of BrainTrust's verbatim tuhi.css + tuhi-shell.css (tokens, shell, db-* components) and the
   shared kg-view.css. Only tokens from tuhi-shell.css are used, so light and dark follow html.tuhi / html.tuhi.light. Every class is
   tc-*. No inline style anywhere in the console (the CSP forbids it); widths that depend on data are set through the CSSOM. */

html.tuhi body{ min-height:100vh; }
.tc-i{ display:inline-flex; align-items:center; justify-content:center; flex:none; line-height:0; }
.tc-i svg{ display:block; }
.tc-mark{ width:30px; height:30px; border-radius:8px; background:var(--acc); color:var(--on-acc); display:inline-flex; align-items:center; justify-content:center;
  font-weight:800; font-size:15px; letter-spacing:-.02em; flex:none; }

/* ── boot + sign-in ── */
.tc-boot{ position:fixed; inset:0; display:flex; align-items:center; justify-content:center; background:var(--bg); }
.tc-boot-mark{ width:44px; height:44px; border-radius:12px; background:var(--acc); animation:tcpulse 1.1s ease-in-out infinite; }
@keyframes tcpulse{ 0%,100%{ opacity:.45; transform:scale(.94); } 50%{ opacity:1; transform:scale(1); } }
.tc-signin{ min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px 16px; gap:18px; background:var(--bg); }
.tc-signin-card{ width:min(440px,100%); background:var(--surface); border:1px solid var(--bd); border-radius:14px; box-shadow:var(--shadow-md); padding:28px; }
.tc-signin-brand{ display:flex; align-items:center; gap:14px; margin-bottom:14px; }
.tc-signin-brand .tc-mark{ width:44px; height:44px; font-size:21px; border-radius:12px; }
.tc-signin-brand h1{ margin:0; font-size:22px; color:var(--fg); }
.tc-signin-brand p{ margin:2px 0 0; color:var(--mut); font-size:13px; }
.tc-signin-lead{ color:var(--fg-2); line-height:1.55; font-size:13.5px; }
.tc-signin-form{ display:flex; flex-direction:column; gap:8px; }
.tc-signin-form label{ font-size:12px; font-weight:600; color:var(--mut); }
.tc-signin-form input{ height:40px; padding:0 12px; font-size:14px; border-radius:10px; }
.tc-signin-form button{ height:40px; border-radius:10px; font-size:14px; margin-top:6px; }
.tc-signin-msg{ min-height:20px; color:var(--fg-2); font-size:13px; line-height:1.5; margin:12px 0 0; }
.tc-signin-foot{ display:flex; gap:8px; color:var(--mut); font-size:12px; }

/* ── header: the scope switch ── */
.tc-scope{ display:inline-flex; align-items:center; gap:8px; }
.tc-scope-l{ font-size:11.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--mut); }
html.tuhi .tc-scope select{ height:34px; padding:0 10px; font-size:12.5px; font-weight:650; border-radius:8px; max-width:280px; }
@media (max-width:767px){ .tc-scope-l{ display:none; } html.tuhi .tc-scope select{ max-width:130px; } }
.tc-navbadge{ margin-left:auto; min-width:18px; height:18px; padding:0 6px; border-radius:99px; background:var(--warn-bg); color:var(--warn-fg); border:1px solid var(--warn-bd);
  font-size:11px; font-weight:700; display:inline-flex; align-items:center; justify-content:center; }
#app.rail .tc-navbadge{ display:none; }
#app.rail .bt-side:hover .tc-navbadge{ display:inline-flex; }
html.tuhi #refreshBtn .tc-i{ margin-right:2px; }

/* ── screen building blocks ── */
.tc-root{ display:flex; flex-direction:column; gap:14px; min-width:0; }
.tc-root > .db-head{ margin-bottom:4px; }
.tc-tabs{ display:flex; gap:6px; flex-wrap:wrap; }
html.tuhi:not(.tc-narrow) #app:not(.rail) .tc-tabs{ display:none; }  /* the sidebar shows the sub-items; the tabs are for rail/drawer */
@media (max-width:767px){ html.tuhi #app .tc-tabs{ display:flex; } }
.tc-note{ color:var(--mut); font-size:12.5px; line-height:1.55; margin:0; }
.tc-ok-text{ color:var(--ok-fg); font-weight:600; font-size:13px; }
.tc-h4{ margin:18px 0 8px; font-size:11.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; color:var(--fg-2); }
.tc-form{ display:flex; flex-direction:column; gap:10px; }
.tc-row{ display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.tc-grow{ flex:1 1 220px; min-width:0; }
.tc-grow .tc-field{ width:100%; }
.tc-field{ display:flex; flex-direction:column; gap:5px; min-width:0; }
.tc-field > label{ font-size:11.5px; font-weight:600; color:var(--mut); letter-spacing:.02em; }
.tc-field input:not([type=checkbox]):not([type=file]), .tc-field select{ height:34px; border-radius:8px; padding:0 10px; font:inherit; font-size:13px; max-width:100%; }
.tc-field textarea{ border-radius:8px; padding:9px 10px; font:inherit; font-size:13px; width:100%; resize:vertical; }
.tc-hint{ color:var(--mut); font-size:11.5px; }
.tc-acts{ display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-top:4px; }
.tc-acts button, .tc-fbtns button{ height:34px; display:inline-flex; align-items:center; gap:6px; padding:0 14px; border-radius:8px; }
html.tuhi button.ghost{ border:1px solid var(--bd-strong); border-radius:8px; padding:6px 12px; cursor:pointer; font-size:13px; }
html.tuhi button.tc-danger{ background:var(--err); color:#fff; }
html.tuhi button.tc-danger-ghost{ color:var(--err-fg); border-color:var(--err-bd); }
html.tuhi button.tc-danger-ghost:hover{ background:var(--err-bg); }
.tc-filters{ display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; background:var(--surface); border:1px solid var(--bd); border-radius:12px; padding:12px 14px; box-shadow:var(--shadow-sm); }
.tc-fbtns{ display:flex; gap:8px; }
.tc-add > summary{ cursor:pointer; font-weight:650; color:var(--fg); display:flex; align-items:center; gap:8px; list-style:none; }
.tc-add > summary::-webkit-details-marker{ display:none; }
.tc-add[open] > summary{ margin-bottom:12px; }
.tc-check{ display:inline-flex; align-items:center; gap:8px; font-size:13px; color:var(--fg-2); cursor:pointer; }
.tc-check.tc-big{ font-size:14px; color:var(--fg); font-weight:600; margin-bottom:8px; }
.tc-checks{ display:flex; flex-wrap:wrap; gap:8px 18px; }
.tc-wrap{ white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; display:inline-block; max-width:100%; }
.tc-click{ cursor:pointer; }
.tc-click:hover td, .db-row.tc-click:hover{ background:var(--surface-2); }
.tc-click:focus-visible{ outline:2px solid var(--acc); outline-offset:-2px; }
.tc-text{ min-width:220px; color:var(--fg); line-height:1.5; overflow-wrap:anywhere; }
.tc-sub{ margin-top:4px; }
.tc-mem td{ vertical-align:top; }
.tc-conf{ display:flex; align-items:center; gap:8px; min-width:110px; }
.tc-conf .db-bar{ flex:1; margin:0; }
.tc-conf span{ font-size:12px; color:var(--fg-2); font-variant-numeric:tabular-nums; }
.tc-log{ background:var(--inset); border:1px solid var(--bd); border-radius:10px; padding:12px; min-height:60px; max-height:360px; overflow:auto; font-size:12px; color:var(--fg-2); white-space:pre-wrap; margin:12px 0 0; }
.tc-searchopts{ display:flex; flex-direction:column; gap:4px; margin-top:6px; }
.tc-searchopts select{ height:30px; border-radius:8px; padding:0 8px; font-size:12.5px; }
.tc-usage-h{ padding:10px 0 2px; font-size:13px; }
.tc-key{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:13px; height:38px; padding:0 10px; border-radius:8px; flex:1 1 auto; min-width:0; }
.tc-keyrow{ display:flex; gap:8px; align-items:center; }
.tc-keyrow button{ height:38px; display:inline-flex; align-items:center; gap:6px; padding:0 14px; border-radius:8px; }
.tc-sharelist{ margin:0 0 10px; padding-left:18px; color:var(--fg); line-height:1.6; }
.tc-sharelist li{ margin:4px 0; overflow-wrap:anywhere; }
.tc-audit .tc-detail{ min-width:200px; max-width:420px; font-size:12px; }
.tc-audit code{ font-size:11.5px; }

/* ── the memory model's tags ── */
.db-tag.tc-type{ background:var(--surface-3); color:var(--fg-2); border-color:var(--bd); text-transform:lowercase; }
.db-tag.tc-type-working{ background:var(--warn-bg); color:var(--warn-fg); border-color:var(--warn-bd); }
.db-tag.tc-type-episodic{ background:var(--vio-bg); color:var(--vio); border-color:var(--bd-strong); }
.db-tag.tc-type-semantic{ background:var(--acc-soft); color:var(--acc-fg); border-color:var(--acc-ring); }
.db-tag.tc-type-procedural{ background:var(--ok-bg); color:var(--ok-fg); border-color:var(--ok-bd); }
.db-tag.tc-type-preference{ background:var(--err-bg); color:var(--err-fg); border-color:var(--err-bd); }
.db-tag.tc-type-profile{ background:var(--surface-3); color:var(--info); border-color:var(--bd-strong); }
.db-tag.tc-type-reflective{ background:var(--vio-bg); color:var(--fg); border-color:var(--vio); }
.db-tag.tc-type-resource{ background:var(--inset); color:var(--fg-2); border-color:var(--bd-strong); border-style:dashed; }
.db-tag.tc-type-entity{ background:var(--surface); color:var(--fg-2); border-color:var(--bd-strong); }
.db-tag.tc-tier{ background:transparent; color:var(--fg-2); border-color:var(--bd-strong); }
.db-tag.tc-tier-working{ color:var(--warn-fg); border-color:var(--warn-bd); }
.db-tag.tc-tier-short{ color:var(--acc-fg); border-color:var(--acc-ring); }
.db-tag.tc-tier-long{ color:var(--ok-fg); border-color:var(--ok-bd); }
.db-tag.tc-sens{ background:var(--surface-2); color:var(--mut); border-color:var(--bd); font-weight:600; }
.db-tag.tc-sens-restricted{ color:var(--warn-fg); border-color:var(--warn-bd); background:var(--warn-bg); }
.db-tag.tc-sens-sensitive{ color:var(--err-fg); border-color:var(--err-bd); background:var(--err-bg); }
.db-tag.tc-sens-public{ color:var(--ok-fg); border-color:var(--ok-bd); }

/* ── Memory Hub board: 8 types × 3 tiers ── */
.tc-board{ display:grid; grid-template-columns:minmax(200px,1.6fr) repeat(4,minmax(80px,1fr)); gap:6px; overflow-x:auto; }
.tc-bh{ font-size:11.5px; font-weight:700; color:var(--mut); letter-spacing:.04em; text-transform:uppercase; padding:4px 6px; display:flex; flex-direction:column; gap:4px; align-items:flex-start; }
.tc-bh small{ text-transform:none; letter-spacing:0; font-weight:500; }
.tc-bt{ display:flex; flex-direction:column; gap:4px; padding:8px 6px; align-items:flex-start; border-top:1px solid var(--bd-soft); }
.tc-bt small{ color:var(--mut); font-size:11.5px; line-height:1.4; }
.tc-bc{ border:1px solid var(--bd); border-radius:10px; background:var(--surface-2); color:var(--mut); font-size:18px; font-weight:700; font-variant-numeric:tabular-nums;
  display:flex; align-items:center; justify-content:center; min-height:52px; cursor:pointer; font-family:inherit; }
.tc-bc.has{ background:var(--acc-soft); color:var(--acc-fg); border-color:var(--acc-ring); }
.tc-bc:hover{ border-color:var(--acc); }
.tc-bc.tot{ background:var(--surface); color:var(--fg); }
.tc-bc.na{ cursor:default; border-style:dashed; font-size:13px; }
.tc-bc.na:hover{ border-color:var(--bd); }

/* ── episodic timeline ── */
.tc-timeline{ list-style:none; margin:0; padding:0 0 0 18px; border-left:2px solid var(--bd-strong); display:flex; flex-direction:column; gap:8px; }
.tc-tl-day{ position:relative; margin:10px 0 2px; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--fg-2); }
.tc-tl-day::before{ content:""; position:absolute; left:-25px; top:3px; width:10px; height:10px; border-radius:99px; background:var(--acc); box-shadow:0 0 0 3px var(--acc-soft); }
.tc-tl-card{ width:100%; text-align:left; background:var(--surface-2); border:1px solid var(--bd); border-radius:10px; padding:10px 12px; cursor:pointer; font:inherit; color:var(--fg); }
.tc-tl-card:hover{ border-color:var(--acc); }
.tc-tl-meta{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-bottom:5px; }
.tc-tl-time{ font-size:12px; font-weight:700; color:var(--fg-2); font-variant-numeric:tabular-nums; }
.tc-tl-text{ font-size:13px; line-height:1.5; overflow-wrap:anywhere; white-space:pre-wrap; }

/* ── knowledge graph host ── */
.tc-kg .kgw{ --kgw-height:min(70vh,700px); }
.tc-kgd .tc-acts{ margin-top:14px; }
.tc-kgd .tc-acts button{ height:30px; padding:0 10px; font-size:12px; }
.tc-prov{ margin-top:12px; font-size:12px; color:var(--mut); }

/* ── drawer + modal + toast ── */
.tc-drawer-ov{ position:fixed; inset:0; z-index:120; background:rgba(10,14,24,.42); display:flex; justify-content:flex-end; }
.tc-drawer{ width:min(560px,100vw); height:100%; background:var(--surface); border-left:1px solid var(--bd); box-shadow:var(--shadow-md); display:flex; flex-direction:column; }
.tc-drawer-h{ display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:16px 18px; border-bottom:1px solid var(--bd); }
.tc-drawer-h h2{ margin:0; font-size:16px; color:var(--fg); }
.tc-drawer-h .db-sub{ font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; }
html.tuhi button.tc-x{ padding:6px; line-height:0; }
.tc-drawer-body{ padding:16px 18px 28px; overflow-y:auto; flex:1 1 auto; display:flex; flex-direction:column; gap:10px; }
.tc-memtext{ white-space:pre-wrap; overflow-wrap:anywhere; font-size:14px; line-height:1.6; color:var(--fg); background:var(--inset); border:1px solid var(--bd); border-radius:10px; padding:12px 14px; }
.tc-share{ border-top:1px solid var(--bd); margin-top:10px; }
.tc-share-out{ margin-top:8px; display:flex; flex-direction:column; gap:8px; }
.tc-doc-title{ margin:0; font-size:16px; color:var(--fg); overflow-wrap:anywhere; }
.tc-chunk{ border:1px solid var(--bd); border-radius:10px; background:var(--surface-2); }
.tc-chunk-h{ font-size:11px; font-weight:700; color:var(--mut); padding:6px 10px; border-bottom:1px solid var(--bd-soft); }
.tc-chunk-t{ margin:0; padding:10px; white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:12.5px; line-height:1.55; color:var(--fg-2); max-height:300px; overflow:auto; }
.tc-modal-ov{ position:fixed; inset:0; z-index:130; background:rgba(10,14,24,.5); display:flex; align-items:center; justify-content:center; padding:16px; }
.tc-modal{ width:min(440px,100%); background:var(--surface); border:1px solid var(--bd); border-radius:14px; box-shadow:var(--shadow-md); padding:20px; }
.tc-modal h3{ margin:0 0 8px; font-size:16px; color:var(--fg); }
.tc-modal p{ margin:0 0 16px; color:var(--fg-2); font-size:13px; line-height:1.55; }
.tc-modal-acts{ display:flex; justify-content:flex-end; gap:8px; }
.tc-modal-acts button{ height:34px; padding:0 14px; border-radius:8px; }
.tc-toast{ position:fixed; right:18px; bottom:18px; z-index:140; max-width:min(440px,calc(100vw - 36px)); padding:11px 14px; border-radius:10px; font-size:13px; font-weight:600;
  box-shadow:var(--shadow-md); line-height:1.45; overflow-wrap:anywhere; }
.tc-toast.t-ok{ background:var(--ok-bg); color:var(--ok-fg); border:1px solid var(--ok-bd); }
.tc-toast.t-err{ background:var(--err-bg); color:var(--err-fg); border:1px solid var(--err-bd); }
html.tuhi.light .tc-toast.t-ok, html.tuhi.light .tc-toast.t-err{ background:var(--surface); }
@media (max-width:767px){ .tc-board{ grid-template-columns:minmax(150px,1.4fr) repeat(4,minmax(56px,1fr)); } .tc-bc{ font-size:15px; min-height:44px; } .tc-text{ min-width:160px; } }

img.tc-mark{ background:none; object-fit:cover; display:inline-block; }
.tc-signin-logo{ display:block; margin:0 auto 14px; width:180px; height:auto; border-radius:16px; }

/* Sign-in alerts and the "Check your email" step — the same boxes as chat.tuhi.me */
.tc-alert{ display:block; margin-top:12px; padding:11px 13px; border-radius:10px; font-size:13.5px; line-height:1.5; border:1px solid; }
.tc-alert b{ display:block; font-size:14px; margin-bottom:2px; }
.tc-alert span{ display:block; }
.tc-alert.err{ background:var(--err-bg); border-color:var(--err-bd); color:var(--err-fg); }
.tc-alert.warn{ background:var(--warn-bg); border-color:var(--warn-bd); color:var(--warn-fg); }
.tc-sent h2{ font-size:18px; margin:4px 0 12px; color:var(--fg); }
.tc-ok-box{ padding:11px 13px; border-radius:10px; background:var(--ok-bg); border:1px solid var(--ok-bd); color:var(--ok-fg); font-size:13.5px; line-height:1.5; margin-bottom:12px; }
.tc-sent p{ margin:0 0 12px; color:var(--fg-2); font-size:13.5px; line-height:1.5; }
.tc-sent a{ color:var(--acc-fg); font-size:13.5px; text-decoration:underline; }
#siSend:disabled{ opacity:.6; cursor:not-allowed; }
/* Passkeys: the sign-in's second way in (below the email form) and the account menu's drawer (tc-passkeys.js). */
.tc-signin-pk{ display:flex; flex-direction:column; gap:10px; margin-top:14px; }
.tc-signin-pk button{ height:40px; border-radius:10px; font-size:14px; }
.tc-or{ display:flex; align-items:center; gap:10px; color:var(--mut); font-size:12px; }
.tc-or::before, .tc-or::after{ content:""; flex:1; border-top:1px solid var(--bd); }
.tc-pk-add{ margin-bottom:16px; }
.tc-pk-list{ display:flex; flex-direction:column; gap:10px; }
.tc-pk-row{ display:flex; align-items:center; gap:12px; padding:12px; border:1px solid var(--bd); border-radius:10px; flex-wrap:wrap; }
.tc-pk-row .muted{ font-size:12.5px; margin-top:2px; }
.tc-pk-rename{ display:flex; gap:8px; width:100%; }
.tc-pk-rename input{ flex:1; }

/* org types · member types · devices · Saarthi (tc-orgtypes.js) */
.ot-fields,.ot-new{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:8px 0}
.ot-checks{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:13px}
.ot-row{flex-wrap:wrap}.ot-row.off{opacity:.6}.ot-detail,.ot-task{flex-basis:100%;display:flex;flex-direction:column;gap:8px;padding:8px 0}
.ot-task{flex-direction:row;gap:8px}.ot-task input{flex:1;min-width:0}
.ot-key{display:block;word-break:break-all;padding:8px;margin-top:6px;user-select:all}
.ot-toggle{display:flex;gap:8px;align-items:center;padding:4px 0}

/* RULE (owner, 2026-11-07): "we use toggles, not checkboxes". EVERY checkbox renders as a switch — including ones added later. Inputs
   already hidden inside the .switch / .toggle patterns keep their own track and are left alone. */
input[type="checkbox"]:not(.switch input):not(.toggle input){
  appearance:none;-webkit-appearance:none;position:relative;display:inline-block;flex:0 0 auto;width:38px!important;height:22px!important;min-width:38px;max-width:38px;
  border-radius:999px;border:0!important;background:#9aa3b2;cursor:pointer;transition:background .16s;vertical-align:middle;margin:0;padding:0!important;box-shadow:none;}
input[type="checkbox"]:not(.switch input):not(.toggle input):checked{background:var(--acc,var(--accent,#4f46e5));}
input[type="checkbox"]:not(.switch input):not(.toggle input)::after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .16s;}
input[type="checkbox"]:not(.switch input):not(.toggle input):checked::after{transform:translateX(16px);}
input[type="checkbox"]:not(.switch input):not(.toggle input):focus-visible{outline:2px solid var(--acc,var(--accent,#4f46e5));outline-offset:2px;}
input[type="checkbox"]:not(.switch input):not(.toggle input):disabled{opacity:.5;cursor:not-allowed;}
@media (prefers-reduced-motion:reduce){input[type="checkbox"]::after{transition:none}}
.ot-fields .ot-wide{grid-column:1 / -1}
.ot-checks{gap:8px}
.ot-opt{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border:1px solid var(--bd);border-radius:999px;font-size:13px;cursor:pointer;background:var(--surface,transparent)}
.ot-opt:has(input:checked){border-color:var(--acc)}
/* Saarthi org panel (tc-orgtypes.js saarthiOrgView): rows of "what it is · what it means now · switch" */
.sa-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 0;border-top:1px solid var(--bd);cursor:pointer}
.sa-row:first-of-type{border-top:0}.sa-row.off{opacity:.55}
.sa-txt{display:flex;flex-direction:column;gap:2px;min-width:0}.sa-txt b{font-size:14px}.sa-txt small{font-size:12.5px}
.sa-row select{max-width:160px}
.sa-list{display:flex;flex-direction:column}

/* ── HEADER SEARCH (tc-palette.js) — ⌘K, like the Chanakya console ── */
html.tuhi .tc-searchbtn{ display:inline-flex; align-items:center; gap:8px; min-width:220px; justify-content:flex-start; color:var(--mut) !important; background:var(--surface-2) !important; }
.tc-searchbtn .tc-search-txt{ flex:1; text-align:left; }
.tc-searchbtn kbd, .tc-pal-top kbd{ font:inherit; font-size:11px; padding:1px 6px; border-radius:5px; border:1px solid var(--bd); color:var(--mut); background:var(--surface); }
@media (max-width:1099px){ html.tuhi .tc-searchbtn{ min-width:0; } .tc-searchbtn .tc-search-txt, .tc-searchbtn kbd{ display:none; } }
.tc-pal-ov{ position:fixed; inset:0; z-index:500; background:rgba(15,10,8,.42); display:flex; justify-content:center; align-items:flex-start; padding:10vh 16px 16px; }
.tc-pal-ov[hidden]{ display:none; }
.tc-pal{ width:min(680px, 100%); max-height:72vh; display:flex; flex-direction:column; background:var(--surface); color:var(--fg); border:1px solid var(--bd); border-radius:14px; box-shadow:0 24px 70px rgba(0,0,0,.35); overflow:hidden; }
.tc-pal-top{ display:flex; align-items:center; gap:10px; padding:12px 14px; border-bottom:1px solid var(--bd); color:var(--mut); }
.tc-pal-in{ flex:1; border:0 !important; outline:none; background:transparent !important; font:inherit; font-size:16px; color:var(--fg); box-shadow:none !important; height:30px; padding:0 !important; }
.tc-pal-list{ overflow-y:auto; padding:6px; }
.tc-pal-grp{ font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--mut); padding:10px 10px 4px; }
.tc-pal-row{ all:unset; box-sizing:border-box; display:flex; align-items:center; gap:10px; width:100%; padding:8px 10px; border-radius:9px; cursor:pointer; color:var(--fg-2); }
.tc-pal-row.on{ background:var(--acc-soft); color:var(--acc-fg); }
.tc-pal-rowwrap{ display:flex; align-items:center; gap:6px; }
.tc-pal-rowwrap > .tc-pal-row{ flex:1; min-width:0; }
.tc-pal-go{ flex:none; border:1px solid var(--acc); border-radius:99px; background:var(--surface); color:var(--acc-fg); font:inherit; font-size:12px; font-weight:650; padding:4px 10px; cursor:pointer; white-space:nowrap; }
.tc-pal-go:hover,.tc-pal-go:focus-visible{ background:var(--acc-soft); outline:none; box-shadow:0 0 0 2px var(--acc); }
.tc-pal-t{ display:flex; flex-direction:column; min-width:0; }
.tc-pal-t b{ font-size:14px; color:var(--fg); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tc-pal-row.on .tc-pal-t b{ color:var(--acc-fg); }
.tc-pal-t small{ font-size:12px; color:var(--mut); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tc-pal-empty{ padding:18px; color:var(--mut); text-align:center; }
.tc-pal-foot{ display:flex; gap:14px; flex-wrap:wrap; padding:8px 14px; border-top:1px solid var(--bd); font-size:11.5px; color:var(--mut); }

/* AI backbone (tc-backbone.js): a provider = its switch row, a line of help, then key / connect / test / remove */
.bb-prov{padding:6px 0 10px;border-top:1px solid var(--bd)}.bb-prov:first-of-type{border-top:0}.bb-prov .sa-row{border-top:0}
.bb-prov .tc-row input[type=password]{min-width:220px;flex:1}

/* BULK BAR (tc-bulk.js): "12 of 40 on" · Turn all on / Turn all off · optional search — above any list of switches */
.tc-bulk{display:flex;flex-direction:column;gap:8px;padding:8px 0 10px;margin-bottom:6px;border-bottom:1px solid var(--bd)}
.tc-bulk[hidden]{display:none}
.tc-bulk-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.tc-bulk-acts{display:flex;gap:8px;flex-wrap:wrap}
.tc-bulk-q{width:100%;max-width:420px}
.tc-sw-cell{display:flex;align-items:center;justify-content:flex-end}
@media (max-width:600px){.tc-bulk-acts{width:100%}.tc-bulk-acts button{flex:1}.tc-bulk-q{max-width:none}}
.tc-bulk [hidden],.tc-bulk-acts button[hidden],.tm-table tr[hidden],.db-row[hidden],.sa-row[hidden],.bb-prov[hidden]{display:none !important}
/* Seamless refresh (tc-core.js): a slim skeleton bar on a screen's FIRST load only; "Updated just now"; a faint highlight on a row updated in place */
.tc-root[aria-busy="true"]{position:relative}
.tc-root[aria-busy="true"]::before{content:"";position:absolute;left:0;right:0;top:-6px;height:2px;border-radius:2px;background:linear-gradient(90deg,transparent,var(--acc,#6b8afd),transparent);background-size:40% 100%;background-repeat:no-repeat;animation:tcskel 1.1s linear infinite}
@keyframes tcskel{0%{background-position:-40% 0}100%{background-position:140% 0}}
.tc-fresh{font-size:12px;white-space:nowrap}
.tc-fresh.t-warn{color:var(--warn,#b7791f)}
@keyframes tcupd{0%{background-color:var(--acc-soft,rgba(255,122,69,.16))}100%{background-color:transparent}}
.tc-upd{animation:tcupd 1.2s ease-out}
@media (prefers-reduced-motion:reduce){.tc-root[aria-busy="true"]::before{animation:none;background:var(--acc,#6b8afd);opacity:.4}.tc-upd{animation:none}}

/* palette → a settings panel: a brief highlight where it landed */
.tc-flash{outline:2px solid var(--acc,#d9480f);outline-offset:4px;border-radius:12px;transition:outline-color 1.2s}
/* Admin → AI cost & routing (tc-routing.js) */
.rt-sec{border-top:1px solid var(--bd);margin-top:14px;padding-top:12px}
.rt-sec h4{margin:0 0 4px;font-size:14px}
.rt-range{width:100%;accent-color:var(--acc);margin:8px 0 2px}
.rt-scale{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 10px;font-size:12px;color:var(--mut)}
.rt-scale .rt-hint{color:var(--fg);font-weight:500;text-align:center;flex:1 1 140px}
.rt-fb{width:100%;max-width:100%;box-sizing:border-box}
.rt-usage{margin:8px 0 2px}
.rt-steps{margin:8px 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}

/* the cost ↔ quality SLIDER (Usage, both scopes) */
.q-slider{display:flex;flex-direction:column;gap:6px;margin:10px 0 4px}
.q-title{font-weight:600}
/* html … input[type=range] beats the console's generic "html.tuhi input { background:white; border }" — which painted the track white */
html input[type=range].q-range{width:100%;-webkit-appearance:none;appearance:none;height:10px;padding:0;margin:8px 0;border:0;border-radius:999px;box-shadow:inset 0 1px 2px rgba(0,0,0,.08);
  background:linear-gradient(90deg,var(--acc,#d9480f) 0,var(--acc,#d9480f) var(--q,50%),var(--acc-soft,#fff0e8) var(--q,50%),var(--bd-strong,#e2c9bb) 100%);outline:none;cursor:pointer}
html input[type=range].q-range::-webkit-slider-runnable-track{background:transparent;border:0;height:10px}
html input[type=range].q-range::-moz-range-track{background:transparent;border:0;height:10px}
html input[type=range].q-range::-webkit-slider-thumb{margin-top:-6px}
.q-range::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--acc,#d9480f);border:3px solid var(--surface,#fff);box-shadow:0 1px 4px rgba(0,0,0,.3)}
.q-range::-moz-range-thumb{width:22px;height:22px;border-radius:50%;background:var(--acc,#d9480f);border:3px solid var(--surface,#fff)}
.q-range:focus-visible{outline:2px solid var(--acc,#d9480f);outline-offset:4px}
.q-ends{display:flex;justify-content:space-between;gap:8px;font-size:13px;color:var(--mut,#7a6a5d)}
.q-hint{font-weight:600;color:var(--fg,#2b1d14)}
.q-sw{display:flex;align-items:center;gap:10px;margin:8px 0}
.q-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:640px){.q-pair{grid-template-columns:1fr}}
.q-gate{margin:12px 0 0}
.q-tip{margin:2px 0 0;font-size:13px;color:var(--fg,#2b1d14);background:var(--acc-soft,#fdf0e9);border-radius:8px;padding:6px 10px}
/* Memory Hub — personal → organisation suggestions */
.tc-sugg{display:grid;gap:8px}
.tc-sugg-row{display:grid;gap:4px;border:1px solid var(--bd,#e5e5e5);border-radius:10px;padding:8px 10px}
.tc-sugg-row .tc-fbtns{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
/* Insights (tc-insights.js) — group totals, people who shared with you, the owner's counts. Hand-built SVG charts; light theme tokens. */
.in-body{display:flex;flex-direction:column;gap:12px}
.in-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:12px}
.in-h2{margin:18px 0 4px;font-size:16px;font-weight:650;color:var(--fg)}
.in-open{display:inline-flex;align-items:center;text-decoration:none;white-space:nowrap}
.in-chart{width:100%;height:auto;display:block}
.in-spread{max-width:420px;margin:0 auto;aspect-ratio:360/170}
.in-wide{aspect-ratio:640/205;max-height:260px}
.in-axis{fill:var(--mut);font-size:11px}
.in-val{fill:var(--fg);font-size:13px;font-weight:600}
.in-bar.in-low{fill:var(--warn)} .in-bar.in-mixed{fill:var(--info)} .in-bar.in-good{fill:var(--ok)}
.in-line{fill:none;stroke-width:2.25;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.in-line.in-mood{stroke:var(--acc)} .in-line.in-stress{stroke:var(--warn);stroke-dasharray:5 4} .in-line.in-fc{stroke:var(--acc);stroke-dasharray:3 4;opacity:.8}
.in-dot.in-mood{fill:var(--acc)} .in-dot.in-stress{fill:var(--warn)}
.in-band{fill:var(--acc);fill-opacity:.16}
.in-today{stroke:var(--bd);stroke-width:1;stroke-dasharray:2 3}
.in-k-mood{--c:var(--acc)} .in-k-stress{--c:var(--warn)}
.in-big{font-size:15px;margin:0 0 6px}
.in-meter{height:10px;max-width:360px}
.in-rules,.in-tips{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:6px}
.in-people{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.in-person{display:grid;grid-template-columns:1fr auto;grid-template-areas:"n go" "s go";gap:2px 10px;align-items:center;width:100%;text-align:left;
  padding:10px 12px;border:1px solid var(--bd);border-radius:10px;background:var(--surface-2);color:var(--fg);font:inherit;cursor:pointer}
.in-person:hover{border-color:var(--acc)} .in-person b{grid-area:n} .in-person small{grid-area:s;min-width:0} .in-go{grid-area:go;color:var(--acc);font-weight:600;font-size:13px}
.in-card{border:1px solid var(--bd-soft,var(--bd));border-radius:12px;padding:12px 14px;margin-bottom:12px;min-width:0}
.in-card h3{margin:0 0 8px;font-size:14px;font-weight:650}
.in-alerts li{border-left:3px solid var(--info);padding-left:8px} .in-alerts li.in-sev2{border-color:var(--warn)} .in-alerts li.in-sev3{border-color:var(--err)}
.in-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;max-width:320px}
.in-day{aspect-ratio:1;border-radius:6px;display:flex;align-items:flex-end;justify-content:flex-end;padding:2px 4px;font-size:10px;color:var(--fg-2)}
.in-good{background:var(--ok)} .in-mixed{background:var(--info)} .in-low{background:var(--warn)} .in-none{background:var(--surface-3)}
.in-day.in-good,.in-day.in-mixed,.in-day.in-low{color:#fff}
.in-sw{display:inline-block;width:12px;height:12px;border-radius:3px}
.in-traits{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.in-trait{display:flex;flex-direction:column;gap:2px}
.in-trait-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(80px,1.4fr) minmax(0,1fr);gap:8px;align-items:center}
.in-lo{text-align:right} .in-hi{text-align:left}
.in-trait-t{position:relative;height:8px;border-radius:4px;background:var(--surface-3)}
.in-trait-k{position:absolute;top:-3px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--acc);border:2px solid var(--surface,#fff)}
.in-themes{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
@media (max-width:560px){.in-trait-row{grid-template-columns:1fr;gap:4px}.in-lo,.in-hi{text-align:left}}

/* safety review queue (tc-insights.js) */
.in-safety{display:grid;gap:10px}
.in-safety-row{border:1px solid var(--bd,#e5e7eb);border-radius:10px;padding:10px 12px;display:grid;gap:6px}
.in-safety-row.in-urgent{border-color:#d03b3b;background:rgba(208,59,59,.05)}
.in-safety-acts{display:flex;gap:8px;flex-wrap:wrap}
.in-note-in{width:100%;max-width:520px}

/* work-activity analytics (tc-insights.js) */
.wa-form{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:8px 0}
.wa-form input[type=number]{width:64px}.wa-form input[type=text]{width:180px}
.wa-sw{display:flex;gap:8px;align-items:center;max-width:560px}
.wa-cell{fill:var(--acc,#2a78d6)}

/* ── Device Lab (tc-devicelab.js): simulated devices, scenarios, situations ── */
.lb-headacts{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.lb-sw{display:flex;gap:8px;align-items:center;font-size:13px}
.lb-keynote{margin:-4px 0 12px;font-size:13px}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));gap:12px}
.lb-card{border:1px solid var(--bd);border-radius:12px;padding:12px;background:var(--surface);display:flex;flex-direction:column;gap:8px;min-width:0}
.lb-ch{display:flex;gap:10px;align-items:center;min-width:0}.lb-ch>div{min-width:0;display:flex;flex-direction:column}.lb-ch b{overflow-wrap:anywhere}
.lb-ic{font-size:22px;line-height:1}
.lb-art{background:var(--surface-2);border-radius:10px;padding:4px}
.lb-svg{display:block;width:100%;height:auto;max-height:180px}
.lb-task{font-size:13px;color:var(--fg)}
.lb-last{font-size:12px;overflow-wrap:anywhere}
.lb-acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.lb-prompt{border:1px solid var(--warn-bd,var(--warn));background:var(--warn-bg,var(--surface-2));border-radius:10px;padding:8px 10px}
.lb-prompt p{margin:4px 0 8px;font-size:13px}
.lb-danger{color:var(--err-fg,var(--err));border-color:var(--err-bd,var(--err))}
.lb-real summary,.lb-evs summary{cursor:pointer;font-size:12px;color:var(--fg-2)}
.lb-log{list-style:none;margin:6px 0 0;padding:0;font-size:12px;display:flex;flex-direction:column;gap:3px}
.lb-log time,.lb-tl time{color:var(--mut);font-variant-numeric:tabular-nums;margin-right:4px}
.lb-log .lb-notify{color:var(--err-fg,var(--err))}
.lb-scen{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));gap:10px}
.lb-sc{border:1px solid var(--bd);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.lb-sits{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}
.lb-sit.lb-sev-critical{border-left:4px solid var(--err)}.lb-sit.lb-sev-high{border-left:4px solid var(--warn)}.lb-sit.lb-sev-medium{border-left:4px solid var(--info)}
.lb-runs{display:flex;flex-direction:column;gap:10px}
.lb-run{border:1px solid var(--bd);border-left-width:5px;border-radius:10px;padding:10px 12px}
.lb-run.lb-sev-critical{border-left-color:var(--err)}.lb-run.lb-sev-high{border-left-color:var(--warn)}.lb-run.lb-sev-medium{border-left-color:var(--info)}
.lb-runh{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.lb-tl{list-style:none;margin:0;padding:0 0 0 10px;border-left:2px solid var(--bd);display:flex;flex-direction:column;gap:6px;font-size:13px}
.lb-e{display:flex;gap:6px;flex-wrap:wrap;align-items:baseline}.lb-e span{overflow-wrap:anywhere}
.lb-e-alarm b,.lb-e-alarm span{color:var(--err-fg,var(--err));font-weight:600}
.lb-e-notify span{color:var(--warn-fg,var(--fg))}
.lb-e-skip{color:var(--mut)}.lb-e-human b{color:var(--acc)}.lb-e-ok span{color:var(--ok-fg,var(--ok))}
.lb-realnote{font-size:12px;margin:8px 0 0}
.lb-cgroup h4{margin:12px 0 6px;font-size:13px;color:var(--fg-2)}
.lb-clist{display:flex;flex-direction:column;gap:6px}
.lb-crow{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,220px) auto;gap:8px;align-items:center}
.lb-crow select{min-width:0;width:100%}
.lb-cname{display:flex;flex-direction:column;min-width:0}
.lb-prompts,.lb-rules{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:4px}
.lb-steps{padding-left:18px;display:flex;flex-direction:column;gap:10px}
.lb-codewrap{position:relative;margin-top:6px}
.lb-code{background:var(--surface-2);border:1px solid var(--bd);border-radius:8px;padding:8px 10px;overflow-x:auto;font-size:12px;white-space:pre;max-width:100%}
.lb-copy{position:absolute;top:4px;right:4px;font-size:12px;padding:2px 8px}
.lb-disclaimer{font-size:12px;margin:16px 0 4px}
.lb-orphans{margin-top:12px}
@media (max-width:640px){.lb-crow{grid-template-columns:auto minmax(0,1fr)}.lb-crow select,.lb-crow button{grid-column:1 / -1}}
/* the SVG bodies — theme colours only */
.lb-t{fill:var(--fg);font-size:12px;font-family:inherit}.lb-small{font-size:10px}.lb-mut{fill:var(--mut)}.lb-strong{font-weight:650}.lb-big{font-size:18px;font-weight:700}
.lb-errt{fill:var(--err)}.lb-emoji{font-size:34px}
.lb-body{fill:var(--surface);stroke:var(--bd-strong);stroke-width:2}
.lb-room{fill:var(--surface);stroke:var(--bd);stroke-width:1.5}
.lb-todo{fill:var(--acc-soft,var(--surface));stroke:var(--acc);stroke-width:1.5}
.lb-done{fill:var(--ok-bg,var(--surface));stroke:var(--ok);stroke-width:1.5}
.lb-limb{stroke:var(--fg-2);stroke-width:5;stroke-linecap:round;fill:none}
.lb-acc{fill:var(--acc)}.lb-ok{fill:var(--ok)}.lb-warn{fill:var(--warn)}.lb-err{fill:var(--err)}
.lb-hole{fill:var(--fg-2)}
.lb-shackle{fill:none;stroke:var(--fg-2);stroke-width:7;stroke-linecap:round}
.lb-water{fill:var(--info);opacity:.35}
.lb-path{fill:none;stroke:var(--acc);stroke-width:2;stroke-dasharray:4 3}
.lb-flow{fill:none;stroke:var(--info);stroke-width:2;stroke-linecap:round;animation:lb-flow 1.6s linear infinite}
.lb-bulb{fill:var(--surface-2);stroke:var(--bd-strong)}.lb-bulb-on{fill:#f5c542;stroke:#d9a400}
.lb-feed{fill:#1f2933}.lb-feedt{fill:#e5e7eb}.lb-motion{fill:none;stroke:var(--warn);stroke-width:2;stroke-dasharray:5 3}
.lb-alarm{fill:var(--err-bg,var(--surface));stroke:var(--err);stroke-width:2.5}
.lb-spin{transform-box:fill-box;transform-origin:center;animation:lb-spin 1.2s linear infinite}
.lb-pulse{animation:lb-pulse 1s ease-in-out infinite}
.lb-blink{animation:lb-pulse .8s steps(2) infinite}
.lb-pose-walking .lb-leg-l,.lb-pose-walking .lb-leg-r{transform-box:fill-box;transform-origin:top center;animation:lb-step .7s ease-in-out infinite alternate}
.lb-pose-walking .lb-leg-r{animation-direction:alternate-reverse}
@keyframes lb-spin{to{transform:rotate(360deg)}}
@keyframes lb-pulse{50%{opacity:.35}}
@keyframes lb-step{from{transform:rotate(-14deg)}to{transform:rotate(14deg)}}
@keyframes lb-flow{to{stroke-dashoffset:-20}}
.lb-flow{stroke-dasharray:6 4}
@media (prefers-reduced-motion:reduce){.lb-spin,.lb-pulse,.lb-blink,.lb-flow,.lb-pose-walking .lb-leg-l,.lb-pose-walking .lb-leg-r{animation:none}}

.wa-days{display:inline-flex;flex-wrap:wrap;gap:6px 12px}.wa-day{display:inline-flex;gap:4px;align-items:center}
.wa-form select{min-width:84px}

/* TUHI Admin (tc-admin.js) */
.ad-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px 16px;margin:6px 0 10px}
.ad-field{display:flex;flex-direction:column;gap:4px}.ad-field input,.ad-field select{width:100%}
.ad-sw{flex-direction:row;align-items:center;gap:8px}
.ad-acts{display:flex;gap:8px;flex-wrap:wrap}.ad-out{margin:8px 0 0}
.ad-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}
.ad-chips{display:flex;flex-wrap:wrap;gap:6px}.ad-chip{padding:4px 10px;border-radius:999px;background:var(--surface-2,#f3f4f6);font-size:13px}
.pl-kpi.ad-warn{border-color:#d97706}
.tc-adminlink{text-decoration:none}
