@import url("/web/precision/tokens.css?v=f0253533bbc7");
@import url("/web/precision/components.css?v=f0253533bbc7");
@import url("/web/precision/dark.css?v=f0253533bbc7");
@import url("/web/settings-panes.css?v=f0253533bbc7");
/* Host layout adapters. The approved tokens/components above remain unmodified.
   Timeline canvas and the Gantt renderer keep their own presentation rules. */
:root{--takt-topbar:var(--tk-topbar-h);--takt-sidebar:var(--tk-sidebar-w);--takt-paper:var(--tk-surface);--takt-canvas:var(--tk-bg);--takt-sunken:var(--tk-surface-2);--takt-ink:var(--tk-ink);--takt-ink-2:var(--tk-ink-2);--takt-ink-3:var(--tk-ink-3);--takt-line:var(--tk-line);--takt-line-2:var(--tk-line-2);--takt-accent:var(--tk-accent);--takt-early:var(--tk-ok);--takt-warn:var(--tk-warn)}
/* Sidebar, round two (Justin, 2026-10-23): a 64px rail on every screen that opens to 248px over the page while the pointer
   is on it (or a key moves focus into it) and closes when the pointer leaves. The page never moves. */
body.takt-unified{--takt-topbar:0px;--takt-sidebar:64px;margin:0;padding:var(--takt-topbar) 0 0 var(--takt-sidebar)!important;box-sizing:border-box}
body.takt-unified>.app-shell{height:calc(100dvh - var(--takt-topbar));min-height:0}
.takt-global-sidebar{position:fixed;inset:0 auto 0 0;width:64px;z-index:10002;box-sizing:border-box;display:flex;flex-direction:column;gap:1px;padding:12px 10px 10px;background:#fafaf8;border-right:1px solid #e7e6e1;color:#17181a;overflow:hidden auto;scrollbar-width:none;transition:width var(--tk-dur-fast) var(--tk-ease) var(--tk-dur-fast),box-shadow var(--tk-dur-fast) var(--tk-ease) var(--tk-dur-fast)}
.takt-global-sidebar::-webkit-scrollbar{display:none}
.takt-sidebar-drawer .takt-global-sidebar{width:248px;box-shadow:6px 0 24px rgba(23,24,26,.1);transition-delay:.12s}
.takt-global-sidebar *{box-sizing:border-box}
.takt-global-sidebar .tk-brand{height:40px;flex:none;display:flex;align-items:center;border:0;padding:0 0 0 14px;margin-bottom:6px}
.takt-global-sidebar .tk-logo,.takt-shell .tk-logo{text-decoration:none;color:#17181a;font-size:21px;font-weight:700;letter-spacing:-.02em;white-space:nowrap}.tk-logo b{color:#3f4fc4}
.takt-global-sidebar .tk-logo-rest{display:none}
.takt-sidebar-drawer .takt-global-sidebar .tk-logo-rest{display:inline}
.tk-root .tk-sb-icon{width:36px;height:36px;flex:none;border:0;background:transparent;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;color:#45484e;cursor:pointer;padding:0}.tk-root .tk-sb-icon:hover{background:#eef0f3}
.tk-initial{flex:0 0 28px;height:28px;border-radius:7px;color:#fff;font-weight:700;font-size:12px;display:flex;align-items:center;justify-content:center}
/* Dark mode badges sit on the light dark-mode palette values, so their letters are dark (Justin, 2026-10-25). */
:root[data-theme=dark] .tk-initial{color:#111214}
/* Every row keeps its icon (or colour dot) in one 18px column centred on the rail, so nothing shifts as it opens. */
.takt-global-sidebar .tk-nav{padding:0;gap:1px;display:flex;flex-direction:column;flex:none}
.takt-global-sidebar .tk-nav-item{position:relative;width:100%;height:36px;flex:none;display:flex;align-items:center;justify-content:flex-start;gap:12px;padding:0 0 0 13px;border:0;background:transparent;border-radius:8px;color:#3d4148;font:inherit;font-size:13.5px;font-weight:500;text-decoration:none;text-align:left;white-space:nowrap;cursor:pointer}
.takt-global-sidebar .tk-nav-item .tk-i{width:18px;height:18px;flex:0 0 18px}
.takt-global-sidebar .tk-nav-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis}
.takt-global-sidebar .tk-nav-item:hover{background:#efeee9;color:#17181a}
.takt-global-sidebar .tk-nav-item[aria-current=page]{background:#e8eafa;color:#131f88;font-weight:600}
.tk-nav-badge{margin:0 10px 0 auto;font-size:12px;font-weight:500;color:#5b6068;white-space:nowrap}.tk-nav-badge:empty{display:none}
.takt-global-sidebar .tk-kbd{flex:none;margin-right:10px}
.takt-global-sidebar .tk-sb-plus{flex:0 0 26px;height:26px;margin:0 -4px;border-radius:7px;background:#17181a;color:#fff;display:flex;align-items:center;justify-content:center}.takt-global-sidebar .tk-sb-plus .tk-i{width:15px;height:15px;flex-basis:15px}
.takt-global-sidebar .tk-sb-new:hover .tk-sb-plus{background:#000}
.takt-global-sidebar .tk-nav-label{position:relative;height:34px;flex:none;display:flex;align-items:flex-end;justify-content:space-between;gap:4px;margin:6px 0 0;padding:0 0 4px 13px;font-size:11px;font-weight:600;color:#5b6068;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.takt-global-sidebar .tk-nav-label::before{content:"";position:absolute;left:10px;right:10px;top:17px;height:1px;background:#e2e0da;transition:opacity var(--tk-dur-fast) var(--tk-ease) var(--tk-dur-fast)}
.takt-global-sidebar .tk-sb-switch{width:26px;height:26px;margin:0 2px -2px 0}.takt-global-sidebar .tk-sb-switch .tk-i{width:15px;height:15px}
.tk-sb-dot{flex:0 0 10px;height:10px;margin:0 4px;border-radius:3px;background:#6c7078}
.tk-sb-spacer{flex:1 1 auto;min-height:12px}
.tk-sb-foot{flex:none;display:flex;flex-direction:column;gap:1px;margin-top:6px;padding-top:6px;border-top:1px solid #e7e6e1}
.tk-sb-sync{height:28px;flex:none;display:flex;align-items:center;padding-left:13px;white-space:nowrap;overflow:hidden}
.takt-shell-state{font-size:11.5px;color:#45484e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.takt-shell-state::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#1a7f5a;margin-right:6px}
.tk-sb-sync .takt-shell-state::before{margin:0 17.5px 0 5.5px}
.takt-shell-state.error{color:var(--tk-late)}.takt-shell-state.error::before{background:var(--tk-late)}
/* Closed rail: labels, counts and shortcuts fade out; a late Portfolio keeps a dot on its icon and section labels become rules. */
.takt-global-sidebar :is(.tk-nav-text,.tk-nav-badge,.tk-kbd,.tk-sb-switch,.tk-nav-label>span){opacity:0;transition:opacity var(--tk-dur-fast) var(--tk-ease) var(--tk-dur-fast)}
.takt-global-sidebar .tk-sb-sync .takt-shell-state{color:transparent;transition:color var(--tk-dur-fast) var(--tk-ease) var(--tk-dur-fast)}
.tk-nav-badge,.tk-kbd,.tk-sb-switch,.tk-nav-label>span),.takt-sidebar-drawer .takt-global-sidebar :is(.tk-nav-text,.tk-nav-badge,.tk-kbd,.tk-sb-switch,.tk-nav-label>span){opacity:1;transition-delay:.16s}
.takt-sidebar-drawer .takt-global-sidebar .tk-sb-sync .takt-shell-state{color:#45484e;transition-delay:.16s}
.takt-sidebar-drawer .takt-global-sidebar .tk-sb-sync .takt-shell-state.error{color:var(--tk-late)}
.takt-sidebar-drawer .takt-global-sidebar .tk-nav-label::before,.takt-sidebar-drawer .takt-global-sidebar .tk-nav-item::after{opacity:0;transition-delay:0s}

/* A project's own screens: a switch at the left end of the screen's command bar. */
.tk-views{display:inline-flex;flex:none;align-self:center;gap:1px;padding:2px;margin-right:8px;background:#efeee9;border-radius:8px}
/* One small icon-only switch on every screen (command bar rule, Justin 2026-10-23); the name shows on hover. */
.tk-views a{width:32px;height:28px;display:inline-flex;align-items:center;justify-content:center;padding:0;border-radius:6px;color:#45484e;text-decoration:none}
.tk-views a:hover{color:#17181a;background:#e4e2dc}
.tk-views a[aria-current=page]{background:#fff;color:#17181a;font-weight:600;box-shadow:0 1px 2px rgba(23,24,26,.14)}
.tk-views .tk-i{display:block;width:16px;height:16px}
.tk-views a>span{display:none}
.tk-views a[hidden]{display:none}.tk-views a{position:relative}
/* The slim bar exists only at drawer widths (iPad portrait and phones). */
.takt-shell{display:none}
.takt-drawer-scrim[hidden]{display:none!important}
.takt-drawer-scrim{position:fixed;inset:var(--takt-topbar) 0 0;border:0;background:var(--tk-scrim);z-index:10001}
/* BR-0150: the switcher is a window-kit s window (web/window-kit.ts owns its size, header, ✕, scrim and spacing). */
.takt-selector-search{width:100%;margin:0 0 10px}.takt-selector-search input{width:100%;min-width:0}.takt-selector-search input::-webkit-search-cancel-button{display:none}
.takt-selector-list{margin:0 -8px}.takt-selector-count{margin:8px 0 0;font-size:12px;color:var(--tk-ink-3)}
.takt-project-selector .tk-win-foot .takt-selector-reorder{margin-right:auto}.takt-project-selector .tk-win-foot .tk-i{width:14px;height:14px}.takt-selector-name{min-width:0;flex:1;white-space:normal;overflow-wrap:anywhere}
.takt-selector-footer{display:flex;gap:6px;padding:4px 6px 8px}.takt-project-selector [aria-selected=true]{background:var(--tk-accent-soft)}
/* Existing Actions views remain a contextual drawer; the shared rail owns module navigation. */
body.takt-unified .app-shell>.sidebar{display:none}
body.takt-unified .app-shell.sidebar-open>.sidebar{display:flex;position:fixed;inset:var(--takt-topbar) auto 0 var(--takt-sidebar);width:224px;z-index:10004;transform:none;visibility:visible;box-shadow:var(--tk-shadow-pop)}
body.takt-unified .app-shell .sidebar-scrim{inset:var(--takt-topbar) 0 0 var(--takt-sidebar);z-index:10003}
body.takt-unified .sidebar>.brand,body.takt-unified .sidebar>.workspace-label,body.takt-unified .sidebar a.nav-item[href="/gantt"]{display:none}
/* One header per page: the shared sidebar replaces the Actions views drawer toggle. */
body.takt-unified .mobile-nav{display:none!important}
body.takt-unified .modal-backdrop{z-index:10010}body.takt-unified .toast{z-index:10011}
.takt-home{min-height:calc(100dvh - var(--takt-topbar));background:var(--takt-canvas);color:var(--takt-ink);padding:34px clamp(16px,4vw,56px) 48px;font:13px/18px var(--tk-font);box-sizing:border-box}.takt-home *{box-sizing:border-box}.takt-home-head{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:24px}.takt-home-head p{font-size:10px;letter-spacing:.16em;color:var(--takt-ink-3);margin:0}.takt-home h1{font:600 22px/28px var(--tk-font);letter-spacing:-.02em;margin:4px 0}.takt-home-head span{color:var(--takt-ink-3)}.takt-home-head b{color:var(--takt-ink)}.takt-home-tools{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.takt-btn{min-height:32px;border:1px solid var(--takt-line-2);border-radius:6px;background:var(--takt-paper);color:var(--takt-ink);padding:6px 12px;font:600 12px var(--tk-font);cursor:pointer;white-space:nowrap}.takt-btn:hover{border-color:var(--takt-ink-3)}.takt-btn.primary{background:var(--takt-ink);border-color:var(--takt-ink);color:#fff}.takt-btn.primary:hover{background:#000}.takt-btn.ghost{border-color:transparent;background:transparent;color:var(--takt-ink-2)}.takt-btn.ghost:hover{background:var(--takt-sunken)}.takt-btn.chip{min-height:28px;border-radius:14px;padding:3px 11px;font-weight:400}.takt-home-welcome{background:var(--takt-paper);border:1px solid var(--takt-line);border-radius:8px;padding:22px;margin-bottom:16px}.takt-home-welcome h2{margin:0 0 4px;font-size:17px}.takt-home-welcome p{margin:0 0 14px;color:var(--takt-ink-3)}.takt-home-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);gap:24px;align-items:start}.takt-home-main,.takt-home-side{display:grid;gap:16px;min-width:0}.takt-home-section{background:var(--takt-paper);border:1px solid var(--takt-line);border-radius:8px;padding:16px 18px}.takt-home-section>header{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:8px}.takt-home-section h2{font-size:15px;line-height:20px;margin:0;display:flex;align-items:center;gap:8px}.takt-home-section header small{margin-left:auto;color:var(--takt-ink-3);font-size:10px;letter-spacing:.08em;text-transform:uppercase}.takt-home-section header .takt-btn{margin-left:4px}.takt-count{display:inline-block;min-width:20px;padding:0 6px;border-radius:4px;background:#fbe9e7;color:#b3261e;font-size:11px;text-align:center}.takt-list{list-style:none;margin:0;padding:0}.takt-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--takt-line)}.takt-row:first-child{border-top:0}.takt-row>i{font-style:normal;width:16px;text-align:center;color:var(--takt-ink-2)}.takt-row>div,.takt-row>a{flex:1;min-width:0;display:grid;gap:2px;color:inherit;text-decoration:none}.takt-row>a:hover strong{text-decoration:underline}.takt-row strong{font-weight:600;overflow-wrap:anywhere}.takt-row strong em{font-style:normal;font-weight:400;color:var(--takt-ink-2)}.takt-row span{color:var(--takt-ink-3);font-size:12px}.takt-list.compact .takt-row{padding:9px 0}.takt-due{font-size:12px;white-space:nowrap}.takt-row mark{border-radius:4px;padding:2px 7px;font-size:11px;white-space:nowrap;background:var(--takt-sunken);color:var(--takt-ink-2)}.takt-row mark.late{background:#fbe9e7;color:#b3261e}.takt-row mark.early{background:#e4f1ee;color:var(--takt-early)}.takt-project-table{display:grid}.takt-project-head,.takt-project-row{display:grid;grid-template-columns:minmax(150px,2fr) 56px 68px minmax(130px,2fr) 236px;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--takt-line)}.takt-project-head{border-top:0;border-bottom:1px solid var(--takt-ink);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--takt-ink-3)}.takt-project-head+.takt-project-row{border-top:0}.takt-project-name{display:flex;align-items:center;gap:8px;font-weight:600;overflow-wrap:anywhere}.takt-dot{width:8px;height:8px;border-radius:2px;background:var(--takt-ink-2);flex:none}.takt-project-row em{color:var(--takt-ink-3);font-style:normal}.takt-chips{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.takt-empty{padding:12px 0;color:var(--takt-ink-3)}.takt-empty p{margin:0 0 10px}.takt-more{display:inline-block;margin-top:10px;color:#16239a;text-decoration:none}.takt-more:hover{text-decoration:underline}.takt-home-concepts{margin-top:16px;padding:14px 18px;border:1px dashed #c8ad72;border-radius:8px;background:#fbf3e2;color:#73520f}.takt-home-concepts p{margin:4px 0}.takt-home-error{color:#b3261e}@media(max-width:1180px){.takt-home-layout{grid-template-columns:1fr}}@media(max-width:760px){.takt-chips{justify-content:flex-start}.takt-project-head{display:none}.takt-project-row{grid-template-columns:1fr 1fr;gap:6px 12px;padding:12px 0}.takt-project-name,.takt-chips{grid-column:1/-1}.takt-project-row [data-label]:before{content:attr(data-label) " · ";color:var(--takt-ink-3)}.takt-row{flex-wrap:wrap}.takt-row>.takt-btn{margin-left:28px}}
/* Precision Home hierarchy over the existing authoritative facts. */
.takt-home{padding:20px 24px 40px;font:var(--tk-fs)/var(--tk-lh) var(--tk-font);font-feature-settings:var(--tk-font-features)}
.takt-home h1{font:600 var(--tk-fs-2xl)/var(--tk-lh-tight) var(--tk-font);letter-spacing:var(--tk-tracking-tight)}
.takt-home-head p,.takt-home-section header small,.takt-project-head{text-transform:none;letter-spacing:var(--tk-tracking-label)}
.takt-home-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px}.takt-home-section{padding:14px 16px;border-radius:var(--tk-r-lg)}
.takt-count{background:var(--tk-surface-2);color:var(--tk-ink)}
.takt-home .takt-btn{font-family:var(--tk-font);min-height:var(--tk-ctl-h);border-radius:var(--tk-r);font-weight:500}
.takt-project-head,.takt-project-row{grid-template-columns:minmax(120px,2fr) 42px 56px minmax(110px,1fr);gap:8px}.takt-project-head>:last-child{display:none}.takt-chips{grid-column:1/-1;justify-content:flex-start}
.takt-project-name{align-items:flex-start}.takt-project-name .takt-dot{margin-top:5px}
@media(max-width:1279px){.takt-home-layout{grid-template-columns:1fr}}
@media(max-width:900px){
 body.takt-unified{--takt-sidebar:0px;--takt-topbar:var(--tk-topbar-h)}
 .takt-shell{display:flex;align-items:center;gap:8px;position:fixed;inset:0 0 auto 0;height:var(--takt-topbar);padding:0 8px;z-index:10001;background:#fbfbfc;border-bottom:1px solid #e8e9ec;box-sizing:border-box}
 .takt-shell .tk-crumbs{min-width:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#45484e;font-weight:500}
 .takt-global-sidebar{width:280px;transform:translateX(-100%);visibility:hidden}.takt-sidebar-drawer .takt-global-sidebar{width:280px;transform:none;visibility:visible}
.takt-home{padding:16px}.takt-home-head{align-items:stretch;flex-direction:column}.takt-home-tools{justify-content:flex-start}
}
@media(pointer:coarse){.takt-global-sidebar .tk-nav-item{min-height:40px}.takt-home .takt-row,.takt-project-row{min-height:48px}.takt-project-selector input{font-size:16px}.takt-project-selector .tk-menu-item{min-height:48px}}
.takt-home-kpis{margin-bottom:16px}.takt-late-count{color:var(--tk-late)}.takt-home mark.late{background:var(--tk-late-soft);color:var(--tk-late)}.takt-home mark.early{background:var(--tk-ok-soft);color:var(--tk-ok)}
@media(max-width:900px){.takt-home-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){body[data-nav] .takt-global-sidebar .tk-nav-item{min-height:40px}}
/* Settings dialog (Option B, approved 2026-10-21): section list left, scrolling content right, fixed header and footer. */
.takt-settings-gear[aria-expanded=true]{background:#e4e6ea;color:#17181a}
.takt-settings-body{display:flex;flex-direction:column;gap:8px}
.takt-settings-note{margin:0;font-size:12px;color:var(--tk-ink-3)}.takt-settings-empty{color:var(--tk-ink-3)}.takt-settings-empty p{margin:var(--tk-dens-gap) 0 var(--tk-dens-sec)}

.takt-settings-projects{list-style:none;margin:var(--tk-dens-sec) 0 0;padding:0;display:flex;flex-direction:column;position:relative}
/* Projects (overhaul 2026-11-05): a row is the grip and one kit button that opens the project's page. */
.takt-settings-project{position:relative;display:flex;align-items:center;gap:var(--tk-dens-gap);min-height:var(--tk-dens-row)}
.takt-settings-project.is-lifted{z-index:2;transform-origin:center}
.takt-grip{cursor:grab;touch-action:none;flex:none}.is-lifted .takt-grip{cursor:grabbing}
.takt-settings-open{flex:1;min-width:0;justify-content:flex-start;gap:10px}
.takt-settings-open .takt-settings-name{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.takt-settings-name{flex:1;min-width:0;display:flex;flex-direction:column}.takt-settings-name small{font-size:11.5px;color:var(--tk-ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.takt-settings-title{display:flex;align-items:center;gap:8px;min-width:0}.takt-settings-title b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* One project's page: "‹ Projects", then kit rows in two groups set apart by space. */
.takt-project-page{display:flex;flex-direction:column;gap:var(--tk-dens-sec)}
.takt-project-back{display:flex}
.takt-project-group{display:flex;flex-direction:column}
.takt-project-name{width:280px;max-width:100%}
/* ERP numbers and Connected PCs are kit "+ Add" lists (.tk-addlist, components.css); only their text styles live here. */
.takt-erp-no{font-family:var(--tk-font-num);font-size:12.5px}.takt-pc-when{font-size:12px;color:var(--tk-ink-3)}
.takt-drop-line{height:2px;margin:-1px 6px;background:var(--tk-accent);border-radius:2px}
/* Colour and badge (2026-10-23), on the project's page since the overhaul. */
.tk-initial{letter-spacing:-.02em}
/* Placed by the popup kit (web/overlay.ts) from its button, BR-0116. */
.takt-look{width:min(400px,calc(100vw - 48px));padding:14px 16px 12px;display:flex;flex-direction:column;gap:6px;cursor:default}
.takt-look[aria-busy=true]{opacity:.75}
.takt-look-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.takt-look-head b{font-weight:600;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.takt-look-label{font-size:12px;font-weight:600;color:var(--tk-ink-2);margin-top:4px}
.takt-look-badge{display:flex;gap:8px;align-items:center}.takt-look-badge .tk-input{width:64px;text-transform:uppercase;text-align:center;font-weight:700;letter-spacing:.04em}
.takt-look .takt-settings-note{margin:0}
.takt-look-foot{display:flex;justify-content:flex-end;margin-top:6px}
@media(max-width:700px){.takt-settings-nav .tk-sidenav-group{flex-direction:row}}
.takt-settings-archived{margin-top:var(--tk-dens-sec)}
.takt-settings-archived summary{list-style:none;display:flex;align-items:center;gap:8px;min-height:var(--tk-dens-row);padding:0 6px;border-radius:var(--tk-r);cursor:pointer;color:var(--tk-ink-2)}.takt-settings-archived summary::-webkit-details-marker{display:none}
.takt-settings-archived summary:hover{background:var(--tk-hover)}.takt-settings-archived summary span{flex:1;font-weight:600}.takt-settings-archived summary small{font-size:12px;color:var(--tk-ink-3)}
.takt-settings-archived summary .tk-i{width:14px;height:14px;transition:transform var(--tk-dur-fast) var(--tk-ease)}.takt-settings-archived[open] summary .tk-i{transform:rotate(90deg)}
.takt-settings-archived>.takt-settings-note{margin:6px 6px 8px}
.takt-settings-project.is-archived{padding-left:var(--tk-dens-sec)}.takt-settings-project.is-archived .tk-initial{background:var(--tk-ink-4)}
.takt-settings-toast{z-index:1}
.takt-settings-archived-tools{display:flex;gap:4px;flex:none}
.takt-settings-delete .tk-win-foot .tk-btn.is-danger:disabled{opacity:.45;cursor:not-allowed}
.takt-delete-body{display:flex;flex-direction:column;gap:14px}
.takt-delete-body>p{margin:0;color:var(--tk-ink-2,#45484e)}
.takt-delete-counts{margin:0;padding:12px 16px;list-style:none;background:var(--tk-surface-2,#f7f7f8);border-radius:var(--tk-r,3px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}
.takt-delete-check{display:flex;align-items:center;gap:10px}
.takt-backup-list .tk-setting-row small{display:block;margin-top:2px}
@media(max-width:700px){.takt-delete-counts{grid-template-columns:1fr}}
/* Portfolio shares Home's quiet project tint and badge. */
/* Portfolio (one portfolio, #1113): drawn only in Home's top panel (.takt-home-pf); each lane shows its badge and name (BR-0060). */
.takt-pf-head{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:14px 18px 4px}
.takt-pf-head h2{display:inline;margin:0;font-size:16px;font-weight:600}.takt-pf-date{display:inline;margin-left:10px;font-size:12px;color:var(--tk-ink-3)}.takt-pf-spacer{flex:1}
.takt-pf-body{flex:1;min-height:0;overflow-y:auto;padding:8px 18px 14px}.takt-pf-scroll{overflow-x:auto}.takt-pf-table{min-width:620px;display:flex;flex-direction:column;gap:6px}
.takt-pf-lane,.takt-pf-axis{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px;padding:0 14px 0 0}
.takt-pf-lane{position:relative;align-items:center;padding-block:8px;border:1px solid var(--tk-line);border-radius:11px;background:var(--tk-surface);color:var(--tk-ink);text-decoration:none;overflow:hidden;transition:border-color var(--tk-dur-fast),box-shadow var(--tk-settle-dur) var(--tk-ease),translate var(--tk-settle-dur) var(--tk-ease-pop),scale var(--tk-settle-dur) var(--tk-ease-pop)}
.takt-pf-lane::before{content:"";position:absolute;inset:0;background:var(--hub-tint);opacity:.09;pointer-events:none}.takt-pf-lane::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--hub-tint)}
.takt-pf-lane:hover{border-color:var(--hub-tint);box-shadow:0 4px 14px rgba(23,24,26,.12)}
/* BR-0130: the lane lifts when pointed at and squeezes on press (the press and hover feel tokens, components.css). */
@media (hover:hover){.takt-pf-lane:hover{translate:0 var(--tk-card-lift)}}
.takt-pf-lane:active{scale:.985;transition-duration:var(--tk-dur-fast),var(--tk-press-dur),var(--tk-press-dur),var(--tk-press-dur)}.takt-pf-lane:focus-visible{outline:2px solid var(--tk-accent);outline-offset:2px}
.takt-pf-label{display:flex;align-items:center;gap:8px;min-width:0;position:relative;padding-left:14px}
.takt-pf-name{min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500}
.takt-pf-label .takt-launch-badge{min-width:24px;height:20px;line-height:20px;font-size:10px}
.takt-pf-track{position:relative;min-width:0;align-self:stretch;display:flex;align-items:center}.takt-pf-axis{position:sticky;top:0;z-index:2;background:var(--tk-surface);padding-bottom:4px;height:22px;color:var(--tk-ink-3)}.takt-pf-axis .takt-pf-track{display:block}
.takt-pf-month{position:absolute;top:0;padding-left:5px;border-left:1px solid var(--tk-line-2);white-space:nowrap;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}
.takt-pf-gridline,.takt-pf-today{position:absolute;top:-12px;bottom:-12px;border-left:1px dashed var(--tk-line-2);pointer-events:none}.takt-pf-today{border-left:1.2px solid var(--tk-accent);opacity:.8}
.takt-pf-marks{position:relative;flex:1}.takt-pf-bar{position:absolute;height:6px;border-radius:2px}
.takt-pf-ms{position:absolute;width:8px;height:8px;transform:translate(-50%,-50%) rotate(45deg);background:var(--tk-ink);box-sizing:border-box}.takt-pf-ms.is-done{background:var(--tk-surface);border:1.2px solid var(--tk-ink)}
.takt-pf-queued{margin:4px 18px;color:var(--tk-ink-2)}
/* Switcher Reorder mode. */
.takt-project-selector [hidden]{display:none!important}
.takt-reorder>p{margin:0 0 10px;font-size:12px;color:var(--tk-ink-3)}.takt-reorder>.tk-banner{margin:0 0 10px}
.takt-reorder ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px;}
.takt-reorder li{position:relative;display:flex;align-items:center;gap:10px;min-height:40px;padding:0 8px 0 2px;border-radius:8px;border:1px solid transparent;background:var(--tk-surface)}
.takt-reorder li.is-lifted{z-index:2;border-color:#c9ccd2;box-shadow:0 8px 22px rgba(23,24,26,.16)}
.takt-reorder .tk-initial{flex:0 0 24px;height:24px;font-size:11px;border-radius:6px}.takt-reorder-name{flex:1;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* Settings › Account and sign-in. */
.takt-account{display:flex;flex-direction:column;gap:14px;padding-top:4px}
/* Groups are set apart by space, no lines (overhaul 2026-11-05). */
.takt-account-card{padding:0 0 var(--tk-dens-sec);display:flex;flex-wrap:wrap;align-items:center;gap:var(--tk-dens-gap)}
.takt-account-card.is-form{flex-direction:column;align-items:stretch;gap:10px}
/* Setting row (Figma review 11-04, §13): name left, its button right at its own width; a problem line drops below. */
.takt-account-card.is-row{flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px}
.takt-account-card.is-row>h4{flex:1 1 auto;min-width:0}.takt-account-card.is-row>:is(.tk-banner,.takt-colour-line){flex-basis:100%}.takt-account-card h4{margin:0;font-size:14px;font-weight:600}
.takt-account-card form[data-account]{display:flex;flex-direction:column;gap:10px;max-width:360px}.takt-account-card form[data-account]>.tk-btn{align-self:flex-start}
/* Tablet sync: paired reMarkables with Revoke, and a one-use pairing code. */
.takt-account-card[data-tablets]>.tk-btn{align-self:flex-start}
.takt-tablets{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.takt-tablet{display:flex;align-items:center;justify-content:space-between;gap:var(--tk-dens-sec);min-height:var(--tk-dens-row)}
.takt-tablet span{display:flex;flex-direction:column;gap:2px}.takt-tablet small{color:var(--tk-ink-2);font-size:12px}
.takt-pair-code{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 8px;max-width:420px}
.takt-pair-code label{grid-column:1/-1;font-size:12px;font-weight:600}.takt-pair-code input{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px}
.takt-pair-code .takt-settings-note{grid-column:1/-1;margin:0}
.takt-account-card form[action]{margin:0}
.takt-account-avatar{width:40px;height:40px;border-radius:50%;background:#17181a;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;flex:none}
.takt-account-who{flex:1;min-width:180px;display:flex;flex-direction:column}.takt-account-who small{font-size:12px;color:var(--tk-ink-3)}
.takt-account>.tk-banner[hidden],.takt-account [hidden]{display:none}
/* Settings › Display, Data and backup, Help */
.takt-display{display:grid;gap:0}.takt-logo-row{display:flex;align-items:center;gap:var(--tk-dens-gap)}.takt-logo-img{max-height:28px;max-width:160px;display:block}
.takt-data{display:grid;gap:12px}.takt-help h4{margin:0 0 6px}.takt-help ol{padding-left:20px;line-height:1.6}
/* Dashboard (approved 2026-10-21: "B + C, one screen"): dark scoreboard, two-week runway by project, Up next. */
/* Portfolio's 2 weeks range: day columns and marks (moved from the retired Dashboard runway, 2026-10-23). */
.takt-db-key-ms,.takt-db-diamond{flex:0 0 8px;width:8px;height:8px;transform:rotate(45deg);background:#17181a}.takt-db-key-commit{width:2px;height:12px;background:#c2620a}.takt-db-key-late{width:10px;height:10px;border-radius:3px;background:#fdeced;border:1px solid #f6c4c6}
.takt-db-day{grid-row:1;display:flex;justify-content:center;align-items:baseline;gap:4px;padding-top:5px;border-left:1px solid #f1f2f4;color:#6c7078}.takt-db-day small{font-size:10px;font-weight:600;text-transform:uppercase}.takt-db-day b{font-size:13px}
.takt-db-day.is-today{background:#e8ebfd;color:#3f4fc4}.takt-db-day.is-weekend{background:#f4f4f6}
.takt-db-cell{border-left:1px solid #f4f5f7}.takt-db-cell.is-today{background:#f3f4fd}.takt-db-cell.is-weekend{background:#fafafb}
.takt-db-commit{justify-self:end;width:2px;margin-right:-1px;background:#c2620a;z-index:1}
.takt-db-chip{--chip:#6c7078;align-self:center;margin:0 2px;height:22px;box-sizing:border-box;border-radius:5px;display:flex;align-items:center;gap:5px;padding:0 7px;min-width:0;font-size:11.5px;font-weight:500;color:#17181a;text-decoration:none;
 background:color-mix(in srgb,var(--chip) 12%,#fff);border:1px solid color-mix(in srgb,var(--chip) 32%,#fff);z-index:1}
.takt-db-chip span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.takt-db-chip:hover{border-color:var(--chip)}
.takt-db-chip.is-late{background:#fdeced;border-color:#f6c4c6;color:#b3261e}.takt-db-chip.is-late:hover{border-color:#b3261e}
.takt-db-adot{flex:0 0 10px;width:10px;height:10px;box-sizing:border-box;border-radius:50%;background:#fff;border:2px solid #2b2f36}
.takt-db-chip.is-point{background:none;border:0;margin:0;padding:0 4px 0 calc(50% / var(--room,1) - 5px);gap:6px;z-index:1}.takt-db-chip.is-point:hover span{text-decoration:underline}
.takt-db-chip.is-point .takt-db-diamond{flex-basis:10px;width:10px;height:10px;transform:rotate(45deg) scale(.8)}
.takt-db-chip.is-point.is-late{color:#b3261e}.takt-db-chip.is-late .takt-db-diamond{background:#b3261e}.takt-db-chip.is-late .takt-db-adot{background:#c2410c;border-color:#c2410c}
.takt-db-check{flex:0 0 18px;width:18px;height:18px;padding:0;border:1.5px solid #a4a8ae;border-radius:4px;background:#fff;cursor:pointer}.takt-db-check:hover{border-color:#17181a}.takt-pf-item.is-done .takt-db-check{background:#1a7f5a;border-color:#1a7f5a}
.takt-db-dot{flex:0 0 7px;width:7px;height:7px;border-radius:2px}
.takt-db-when{font-size:11.5px;font-weight:600;color:#45484e;white-space:nowrap}.takt-db-when.is-late{color:#b3261e}
@media(pointer:coarse){.takt-db-check{width:24px;height:24px;flex-basis:24px}}
/* Switcher rows: the project's badge and name, as in Reorder; a small gap sets All projects apart. Group headings are ⌘K's. */
.takt-selector-group{padding:8px 10px 2px;font-size:11px;font-weight:600;color:#575b62}
.takt-selector-row{display:flex;align-items:center;border-radius:var(--tk-r-sm)}.takt-selector-row>.tk-menu-item{flex:1 1 auto;min-width:0;gap:10px;min-height:36px}
.takt-selector-row.is-all{margin-bottom:8px}.takt-selector-row .tk-initial{flex:0 0 24px;height:24px;font-size:11px;border-radius:6px}.takt-selector-row .tk-initial .tk-i{width:14px;height:14px}
.takt-selector-row .takt-selector-name{font-weight:500}
.takt-selector-row.is-active{background:var(--tk-accent-soft)}.takt-project-selector .takt-selector-row [aria-selected=true]{background:transparent}
/* ⌘K search palette: centred, grouped results, scope chips (Tab cycles them). */
.takt-search-palette{position:fixed;inset:12dvh auto auto 50%;transform:translateX(-50%);margin:0;width:min(640px,calc(100vw - 16px));max-height:76dvh;padding:0;border:1px solid var(--tk-line-2);overflow:hidden;box-shadow:var(--tk-shadow-pop);display:flex;flex-direction:column}
.takt-search-palette:not([open]){display:none}.takt-search-palette::backdrop{background:rgba(24,24,27,.32)}
.takt-search-head{display:flex;flex-direction:column;gap:8px;padding:10px 10px 8px;border-bottom:1px solid var(--tk-line)}.takt-search-head .tk-inputgroup{width:100%}.takt-search-head input{width:100%;min-width:0;font-size:15px}
.takt-search-scopes{display:flex;gap:6px;flex-wrap:wrap}.takt-search-scope{height:26px;padding:0 10px;border:1px solid var(--tk-line-2);border-radius:999px;background:#fff;font:inherit;font-size:12px;color:#45484e;cursor:pointer}.takt-search-scope[aria-pressed=true]{background:#18181b;border-color:#18181b;color:#fff}
.takt-search-list{flex:1 1 auto;min-height:0;overflow-y:auto;padding:4px 8px}.takt-search-palette [role=option][aria-selected=true]{background:var(--tk-accent-soft)}
.takt-search-hit{min-height:40px}.takt-search-box{flex:none;width:13px;height:13px;border:1.5px solid #71717a;border-radius:3px;margin:0 3px}.takt-search-box.is-done{background:#71717a}
.takt-search-glyph{flex:none;width:19px;text-align:center;color:#575b62;font-size:13px}.takt-search-glyph:not(.is-go)::before{content:'';display:inline-block;width:12px;height:8px;border-radius:2px;background:#939df0;vertical-align:middle}.takt-search-glyph.is-milestone::before{width:9px;height:9px;border-radius:1px;background:#18181b;transform:rotate(45deg)}
.takt-search-done{text-decoration:line-through;color:#6c7078}
.takt-search-foot{margin:0;padding:8px 14px;border-top:1px solid var(--tk-line);font-size:11.5px;color:#575b62}.takt-search-foot:empty{display:none}
@media(pointer:coarse){.takt-search-head input{font-size:16px}.takt-search-hit{min-height:48px}}
/* Sidebar "+": quick add to the Inbox (web/quick-capture.ts). Beside the button on desktop, top-centred on narrow screens. */
.takt-capture{position:fixed;inset:12dvh auto auto 50%;transform:translateX(-50%);margin:0;width:min(460px,calc(100vw - 16px));padding:0;border:1px solid var(--tk-line-2);overflow:hidden;box-shadow:var(--tk-shadow-pop)}
.takt-capture[style*="left"]{transform:none}
.takt-capture:not([open]){display:none}.takt-capture::backdrop{background:rgba(24,24,27,.12)}
.takt-capture-form{margin:0;padding:10px}.takt-capture-form .tk-inputgroup{width:100%;margin:0}
/* The Gantt page styles bare inputs; keep this one plain inside its group. */
.takt-capture-form input{width:100%;min-width:0;height:auto;margin:0;padding:0;border:0;outline:0;box-shadow:none;background:transparent;font:inherit;font-size:15px}.takt-capture-form input:is(:focus,:focus-visible){outline:0}.takt-capture-error[hidden]{display:none}
.takt-capture-error{margin:0;padding:0 14px 8px;font-size:12px;color:#b42318}
.takt-capture-added{list-style:none;margin:0;padding:0 10px;max-height:180px;overflow-y:auto}.takt-capture-added:empty{display:none}
.takt-capture-added li{display:flex;align-items:center;gap:8px;min-height:30px;padding:0 4px;border-top:1px solid var(--tk-line);font-size:13px}
.takt-capture-added li::before{content:'✓';flex:none;width:14px;color:#15803d;font-size:12px}.takt-capture-added li.is-saving::before{content:'…';color:#71717a}
.takt-capture-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.takt-capture-when{flex:none;font-size:12px;color:#575b62}
.takt-capture-foot{display:flex;align-items:center;gap:8px;justify-content:space-between;padding:8px 14px;border-top:1px solid var(--tk-line);font-size:11.5px;color:#575b62}
.takt-capture-full{flex:none;border:0;background:none;padding:2px 0;font:inherit;font-size:11.5px;color:var(--tk-accent,#4b5bd6);cursor:pointer;text-decoration:underline}
@media(pointer:coarse){.takt-capture-form input{font-size:16px}}
/* Quick add window (/quick/): the "+" box as its own small page, popped out or floating on top (2026-10-24). */
.takt-capture-links{display:flex;gap:12px;flex:none}
html:has(#takt-quick),html:has(#takt-quick) body{margin:0;background:var(--tk-bg)}
#takt-quick{min-height:100dvh;padding:12px 14px 14px;display:flex;flex-direction:column;gap:10px;background:var(--tk-bg)}
.takt-quick-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
#takt-quick .takt-quick-head h1{margin:0;font-size:15px;line-height:20px}
.takt-quick-pin[hidden]{display:none}.takt-quick-pin[aria-pressed=true]{color:var(--tk-accent)}
.takt-quick-form{display:flex;flex-direction:column;gap:8px;margin:0}.takt-quick-form .tk-inputgroup{width:100%;height:38px;margin:0;gap:6px}
.takt-quick-form input{width:100%;min-width:0;height:auto;margin:0;padding:0;border:0;outline:0;box-shadow:none;background:transparent;font:inherit;font-size:15px}#takt-quick .takt-quick-form input:is(:focus,:focus-visible){outline:0}.takt-quick-where select{width:100%;height:var(--tk-ctl-h);border:1px solid var(--tk-line-2);border-radius:var(--tk-r);background:var(--tk-surface);color:var(--tk-ink);padding:0 8px}
#takt-quick .takt-capture-error{padding:0}
.takt-quick-label{margin:4px 0 0}
.takt-quick-recent{list-style:none;margin:0;padding:0;flex:1 1 auto;overflow-y:auto;min-height:0}
.takt-quick-recent li{display:flex;align-items:center;gap:8px;min-height:30px;border-top:1px solid var(--tk-line);font-size:13px}
.takt-quick-recent li.is-saving{color:var(--tk-ink-3)}
.takt-quick-recent a.takt-capture-title{color:inherit;text-decoration:none}.takt-quick-recent a.takt-capture-title:hover{text-decoration:underline}
.takt-quick-badge{flex:none;display:inline-grid;place-items:center;min-width:22px;height:18px;padding:0 3px;border-radius:4px;background:var(--tk-surface-3);color:#fff;font-size:10px;font-weight:600}
.takt-quick-badge.is-inbox,li.is-saving .takt-quick-badge{background:var(--tk-surface-3);color:var(--tk-ink-3)}
.takt-quick-foot{margin:0;font-size:11.5px;color:var(--tk-ink-3)}.takt-quick-foot a{color:var(--tk-accent)}
.takt-quick-due{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.takt-quick-due .tk-label{margin-right:2px}
.takt-quick-chip{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 9px;border:1px solid var(--tk-line-2);border-radius:13px;background:var(--tk-surface);color:var(--tk-ink-2);font-size:12px;cursor:pointer}
.takt-quick-chip:hover{border-color:var(--tk-line-3);color:var(--tk-ink)}
.takt-quick-chip[aria-pressed=true]{border-color:var(--tk-accent);background:var(--tk-accent-soft,var(--tk-surface-3));color:var(--tk-accent-ink,var(--tk-accent));font-weight:600}
.takt-quick-cal{padding:0 7px}.takt-quick-cal span:empty{display:none}
#takt-quick .takt-date-popover{z-index:20}
.takt-quick-away{margin:24px;color:var(--tk-ink-3);font-size:13px}
/* Quick add Add | My list switch (Justin, 2026-10-26): My list = open actions by due date, circle completes with Undo. */
.takt-quick-switch{display:flex;padding:2px;border-radius:7px;background:var(--tk-surface-3)}
.takt-quick-switch button{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 12px;border:0;border-radius:5px;background:none;color:var(--tk-ink-2);font:inherit;font-size:12.5px;cursor:pointer}
.takt-quick-switch button[aria-selected=true]{background:var(--tk-surface);color:var(--tk-ink);font-weight:600;box-shadow:0 1px 2px #0000001f}
.takt-quick-count{font-size:10.5px;font-weight:700;color:var(--tk-ink-3)}.takt-quick-count:empty{display:none}
.takt-quick-pane{display:flex;flex-direction:column;gap:10px;flex:1 1 auto;min-height:0}.takt-quick-pane[hidden]{display:none}
.takt-quick-listbar{position:relative;display:flex;align-items:flex-start;gap:6px}.takt-quick-listbar>.takt-quick-filters{flex:1 1 auto;min-width:0}
.takt-quick-groupby{flex:none;gap:5px;color:var(--tk-ink-2)}.takt-quick-groupby .tk-i{flex:none;color:var(--tk-ink-3)}
.takt-quick-groupmenu{position:absolute;top:30px;right:0;z-index:20;min-width:150px}
.takt-quick-group h2 .takt-quick-badge{vertical-align:middle;margin-right:6px}
.takt-quick-filters{display:flex;flex-wrap:wrap;gap:6px}.takt-quick-filters b{font-weight:700;color:var(--tk-ink)}
.takt-quick-chip.is-late b{color:var(--tk-late)}.takt-quick-chip.is-today b{color:var(--tk-warn-ink,var(--tk-warn))}
.takt-quick-groups{flex:1 1 auto;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:10px}
.takt-quick-group h2{margin:0 0 4px}.takt-quick-group h2 small{font-weight:400;color:var(--tk-ink-3)}
.takt-quick-group ul{list-style:none;margin:0;padding:0;border:1px solid var(--tk-line);border-radius:var(--tk-r-lg,10px);overflow:hidden;background:var(--tk-surface)}
.takt-quick-group li{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 10px;border-top:1px solid var(--tk-line);font-size:13px}.takt-quick-group li:first-child{border-top:0}
.takt-quick-group a.takt-capture-title{color:inherit;text-decoration:none}.takt-quick-group a.takt-capture-title:hover{text-decoration:underline}
.takt-quick-check{flex:none;width:18px;height:18px;padding:0;border:1.5px solid var(--tk-ink-3);border-radius:50%;background:none;cursor:pointer}
.takt-quick-check:hover{border-color:var(--tk-accent)}
.takt-quick-group li.is-done .takt-quick-check{border-color:var(--tk-accent);background:var(--tk-accent)}
.takt-quick-group li.is-done .takt-capture-title{text-decoration:line-through;color:var(--tk-ink-3)}
#takt-quick .takt-capture-when{color:var(--tk-ink-2)}
#takt-quick .takt-capture-when.is-late{padding:1px 6px;border-radius:5px;background:var(--tk-late-soft);color:var(--tk-late)}
#takt-quick .takt-capture-when.is-today{padding:1px 6px;border-radius:5px;background:var(--tk-warn-soft,var(--tk-surface-3));color:var(--tk-warn-ink,var(--tk-warn))}
.takt-quick-empty{margin:16px 0;color:var(--tk-ink-3);font-size:13px;text-align:center}
.takt-quick-undo{display:flex;align-items:center;gap:10px;align-self:center;margin:0;padding:6px 8px 6px 12px;border-radius:8px;background:var(--tk-ink);color:var(--tk-surface);font-size:12px;max-width:100%}
.takt-quick-undo[hidden]{display:none}.takt-quick-undo span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.takt-quick-undo button{flex:none;border:0;background:none;color:inherit;font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}
.takt-quick-tonote{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:5px;background:none;color:var(--tk-ink-3);cursor:pointer;opacity:0}
.takt-quick-group li:is(:hover,:focus-within) .takt-quick-tonote{opacity:1}.takt-quick-tonote:hover{background:var(--tk-surface-3);color:var(--tk-accent)}
@media(pointer:coarse){.takt-quick-tonote{opacity:1}}
/* Note tab (Justin, 2026-10-26): one pop-out window for Add, My list and notes. */
.takt-quick-note{display:flex;flex-direction:column;gap:8px;margin:0}.takt-quick-note .takt-quick-where{display:flex;flex-direction:column;gap:4px}
.takt-quick-note textarea{width:100%;min-height:120px;resize:vertical;padding:10px;border:1px solid var(--tk-line-2);border-radius:var(--tk-r);background:var(--tk-surface);color:var(--tk-ink);font:inherit;font-size:14px;line-height:1.5}
.takt-quick-note textarea:focus{outline:2px solid var(--tk-accent);outline-offset:-1px}
.takt-quick-note-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11.5px;color:var(--tk-ink-3)}
#takt-quick .takt-capture-save{color:#fff}
.takt-quick-notes{list-style:none;margin:0;padding:0;flex:1 1 auto;overflow-y:auto;min-height:0}
.takt-quick-notes li{display:flex;flex-direction:column;gap:2px;padding:7px 0;border-top:1px solid var(--tk-line);font-size:13px}
.takt-quick-notes li.is-saving{color:var(--tk-ink-3)}.takt-quick-notes li.takt-quick-empty{border:0;text-align:left;margin:0}
.takt-quick-note-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.takt-quick-notes small{color:var(--tk-ink-3);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* In-app help (2026-10-23): the panel the "?" key opens (web/help.ts). The command bars have no "?" button since 2026-10-24. */
.takt-help-panel{position:fixed;top:0;right:0;bottom:0;z-index:10500;width:min(380px,100vw);display:flex;flex-direction:column;background:#fff;color:#17181a;border-left:1px solid #d5d7dc;box-shadow:-12px 0 24px -16px #0000002e;font-family:var(--tk-font,Inter,system-ui,sans-serif);font-size:13px;line-height:1.45}
.takt-help-head{padding:14px 16px 10px;border-bottom:1px solid #e8e9ec;display:flex;flex-direction:column;gap:6px}
.takt-help-top{display:flex;align-items:center;gap:8px}
.takt-help-top h2{flex:1;margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em;outline:none}
.takt-help-x{width:28px;height:28px;border:0;border-radius:6px;background:transparent;color:#6c7078;display:grid;place-items:center;cursor:pointer}
.takt-help-x:hover{background:#f2f2f4;color:#17181a}
.takt-help-summary{margin:0;color:#6c7078;font-size:12.5px}
.takt-help-tabs{display:flex;gap:4px;margin-top:4px}
.takt-help-tab{border:0;background:transparent;padding:5px 10px;border-radius:6px;font:500 12.5px var(--tk-font,Inter,system-ui,sans-serif);color:#6c7078;cursor:pointer}
.takt-help-tab[aria-selected=true]{background:#ebebee;color:#17181a}
.takt-help-tab:focus-visible,.takt-help-x:focus-visible{outline:2px solid #4b5bd6;outline-offset:1px}
.takt-help-body{flex:1;overflow:auto;padding:4px 8px 12px}
.takt-help-group{margin:0;padding:12px 8px 4px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#6c7078}
.takt-help-row{display:grid;grid-template-columns:26px minmax(0,1fr);gap:8px;padding:6px 8px;border-radius:7px}
.takt-help-row:hover{background:#f7f7f8}
.takt-help-row svg{color:#45484e;margin-top:1px}
.takt-help-row b{display:block;font-weight:600}
.takt-help-row span{display:block;color:#6c7078;font-size:12.5px}
.takt-help-keys{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;margin:0;padding:4px 8px;align-items:baseline}
.takt-help-keys dt{text-align:right}
.takt-help-keys dd{margin:0;color:#45484e;font-size:12.5px}
.takt-help-panel kbd{font:600 11px var(--tk-font,Inter,system-ui,sans-serif);border:1px solid #d5d7dc;border-bottom-width:2px;border-radius:5px;padding:0 5px;background:#f2f2f4;color:#45484e;white-space:nowrap}
.takt-help-tips{margin:0;padding:8px 8px 8px 26px;display:flex;flex-direction:column;gap:10px;color:#45484e}
.takt-help-foot{padding:10px 16px;border-top:1px solid #e8e9ec;color:#6c7078;font-size:12.5px}
/* Help hub (/help/, 2026-10-23): topic cards with small drawings, and one topic at a time (web/help-hub.ts). */
.takt-help-link{text-decoration:none}
.takt-help-ideas{display:flex;flex-wrap:wrap;gap:6px;padding:10px 16px 12px;border-top:1px solid #e8e9ec}
.takt-help-ideas .takt-help-group{width:100%;padding:0 0 2px}
.takt-help-idea{font-size:12px;border:1px solid #d5d7dc;border-radius:999px;padding:2px 10px;color:#45484e;text-decoration:none;background:#fff}
.takt-help-idea:hover,.takt-help-idea:focus-visible{border-color:#4b5bd6;color:#3f4fc4}
.takt-help-foot{display:flex;justify-content:space-between;gap:12px;align-items:center}
.takt-help-foot a{color:#3f4fc4;font-weight:600;text-decoration:none}.takt-help-foot a:hover{text-decoration:underline}
.takt-hub{padding:0!important;background:#f7f7f8;color:#17181a;min-height:100dvh}
.takt-hub-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;padding:14px 24px;background:#fff;border-bottom:1px solid #e8e9ec}
.takt-hub-head h1{margin:0;font-size:20px;font-weight:700;letter-spacing:-.018em}
.takt-hub-feedback{margin-left:auto}.takt-hub-tour{margin-left:auto;text-decoration:none}.takt-hub-tour+.takt-hub-feedback{margin-left:0}@media(max-width:600px){.takt-hub-tour{display:none}}.takt-hub-feedback-form{display:grid;gap:8px;max-width:640px;padding:14px 24px;background:var(--tk-surface,#fff);border-bottom:1px solid var(--tk-line,#e8e9ec)}.takt-hub-feedback-form[hidden]{display:none}.takt-hub-feedback-form label{font-weight:600;font-size:13px}.takt-hub-feedback-form textarea{font:inherit;padding:8px;border:1px solid var(--tk-line-2,#d6d8dd);background:var(--tk-surface,#fff);color:var(--tk-ink,#17181a);border-radius:6px;resize:vertical}.takt-hub-feedback-form .tk-btn{justify-self:start}
.takt-hub-search{flex:1 1 280px;max-width:480px}
.takt-hub{display:flex;flex-direction:column;height:100dvh}.takt-hub-head{flex:none}
.takt-hub-body{flex:1;min-height:0;display:grid;grid-template-columns:272px minmax(0,1fr)}
.takt-hub-nav{overflow-y:auto;overscroll-behavior:contain}
.takt-hub-page{overflow-y:auto;min-width:0}
.takt-hub-back{display:none}
.takt-hthumb{display:block;background:#f2f2f4;border-radius:6px;height:58px}
.takt-hthumb svg{display:block;width:100%;height:100%}
.takt-hthumb.is-large{height:auto;aspect-ratio:144/58;max-width:520px;margin:6px 0 10px;border:1px solid #e8e9ec;background:#fff}
.takt-hub-detail{max-width:720px;padding:18px 24px 48px;display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:1.55;color:#2a2c31}
.takt-hub-detail h2{margin:0;font-size:22px;font-weight:700;letter-spacing:-.018em;color:#17181a;outline:none}
.takt-hub-detail h2:focus,.takt-hub-detail h2:focus-visible{outline:none;box-shadow:none}
.takt-hthumb.is-large svg *{vector-effect:non-scaling-stroke}
.takt-hub-detail h3{margin:14px 0 0;font-size:14px;font-weight:600;color:var(--tk-ink,#17181a)}
.takt-hub-detail p{margin:0}
.takt-hub-detail .takt-help-row{padding:4px 0}
.takt-hub-eyebrow{font-size:12px!important;font-weight:500;color:var(--tk-ink-3,#6c7078)}
.takt-hub-lede{color:#45484e;font-size:15px!important}
.takt-hub-where{background:#fff;border:1px solid #e8e9ec;border-radius:8px;padding:10px 12px;font-size:13px}
.takt-hub-related{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px;color:#6c7078}
.takt-hub-related a{border:1px solid #d5d7dc;border-radius:999px;padding:2px 10px;color:#45484e;text-decoration:none;background:#fff}
.takt-hub-related a:hover{border-color:#4b5bd6;color:#3f4fc4}
.takt-hthumb .h-bar{fill:#dfe4ec;stroke:#8a94a6}.takt-hthumb .h-crit{fill:#fdecea;stroke:#d4382c;stroke-width:1.2}
.takt-hthumb .h-float{stroke:#4b5bd6;stroke-width:2;stroke-dasharray:3 3}.takt-hthumb .h-edge{stroke:#6c7078;stroke-width:1.2;stroke-dasharray:2 2;fill:none}
.takt-hthumb .h-line{fill:none;stroke:#8a8f98;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.takt-hthumb .h-lag{fill:#fff3dd;stroke:#b86e00}
.takt-hthumb .h-pin{fill:#d4382c}.takt-hthumb .h-pill{fill:#dfe4ec;stroke:#6c7078}.takt-hthumb .h-ms{fill:#45484e}.takt-hthumb .h-flag{fill:#4b5bd6}
.takt-hthumb .h-wk{fill:#ebebee}.takt-hthumb .h-txt{font:600 10px var(--tk-font,Inter,system-ui,sans-serif);fill:#45484e}
.takt-hthumb .h-bub{fill:#fff;stroke:#4b5bd6;stroke-width:1.5}.takt-hthumb .h-box{fill:#fff;stroke:#d5d7dc}.takt-hthumb .h-fill{fill:#d5d7dc}
.takt-hthumb .h-dot{fill:#2f9e5f}.takt-hthumb .h-side{fill:#ebebee}.takt-hthumb .h-q{fill:#4b5bd6}
@media(max-width:760px){.takt-hub{height:auto;min-height:100dvh}.takt-hub-body{display:block}.takt-hub-nav{border-right:0}.takt-hub.is-reading .takt-hub-nav{display:none}.takt-hub:not(.is-reading) .takt-hub-page{display:none}.takt-hub-back{display:inline-block;align-self:flex-start;color:var(--tk-accent-ink,#3f4fc4);text-decoration:none;font-size:13px;font-weight:600}.takt-hub-head,.takt-hub-detail{padding-left:16px;padding-right:16px}}
/* Help hub live explainers (web/help-explainers.ts): float + critical path, links + lag, pins. */
.hx{margin:6px 0 10px;border:1px solid #e8e9ec;border-radius:8px;background:#fff;padding:12px 12px 10px;display:flex;flex-direction:column;gap:10px}
.hx-svg{display:block;width:100%;height:auto;font-family:var(--tk-font,Inter,system-ui,sans-serif)}
.hx-week{fill:#f6f6f8}.hx-grid{stroke:#ececef;stroke-width:1}.hx-day{font-size:9.5px;fill:#8a8f98}.hx-wk{font-size:10px;font-weight:600;fill:#45484e}
.hx-name{font-size:12px;fill:#17181a}.hx-name.is-strong{font-weight:650}
.hx-bar{fill:#dfe4ec;stroke:#8a94a6}.hx-crit{fill:#fdecea;stroke:#d4382c;stroke-width:1.5}.hx-succ{fill:#e6e8fb;stroke:#4b5bd6;stroke-width:1.4}
.hx-handle{cursor:grab;touch-action:none}.hx-svg.is-dragging,.hx-svg.is-dragging .hx-handle{cursor:grabbing}
.hx-grip{font-size:10px;font-weight:600;fill:#45484e;pointer-events:none}.hx-grip.is-crit{fill:#d4382c}
.hx-link{fill:none;stroke:#9aa0a9;stroke-width:1.6;stroke-linejoin:round}
.hx-float{stroke:#4b5bd6;stroke-width:2;stroke-dasharray:3 3}.hx-float-txt{font-size:10px;font-weight:600;fill:#4b5bd6}
.hx-finish{stroke:#8a8f98;stroke-width:1.5;stroke-dasharray:4 3}.hx-finish.is-late{stroke:#d4382c}
.hx-finish-txt{font-size:10.5px;font-weight:600;fill:#45484e}.hx-finish-txt.is-late{fill:#d4382c}
.hx-lag{fill:#fff3dd;stroke:#b86e00;stroke-width:1}.hx-lag.is-lead{stroke-dasharray:3 2}.hx-lag-txt{font-size:10px;font-weight:650;fill:#b86e00}
.hx-tie{stroke:#4b5bd6;stroke-width:1;stroke-dasharray:2 3}.hx-dot{fill:#45484e}.hx-dot.is-succ{fill:#4b5bd6}
.hx-pin-line{stroke:#d4382c;stroke-width:1;stroke-dasharray:3 3}.hx-pin-txt{font-size:10px;font-weight:600;fill:#d4382c}
.hx-pin{fill:#d4382c;stroke:#fff;stroke-width:1.5}.hx-wait{fill:none;stroke:#9aa0a9;stroke-dasharray:3 3}.hx-wait-txt{font-size:9.5px;fill:#6c7078}
.hx-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;font-size:13px;color:#45484e}
.hx-range{display:flex;align-items:center;gap:8px}.hx-range input{width:180px;accent-color:#4b5bd6}
.hx-step{display:inline-flex;align-items:center;gap:6px}
.hx-step output{min-width:34px;text-align:center;font-weight:600;font-variant-numeric:tabular-nums;color:#17181a}
.hx-code-wrap{color:#6c7078}.hx-code{font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;background:#f0f1f3;border-radius:4px;padding:2px 6px;color:#17181a}
.hx-switch{display:inline-flex;align-items:center;gap:8px;height:28px;padding:0 4px 0 0;border:0;background:transparent;font:inherit;cursor:pointer}
.hx-read{display:flex;flex-wrap:wrap;gap:6px;font-size:13px;line-height:1.5;color:#2a2c31;margin:0}
.hx-pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;background:#f0f1f3;font-size:12px;font-weight:600;color:#45484e}
.hx-pill.is-ok{background:#e6e8fb;color:#4b5bd6}.hx-pill.is-crit{background:#fdecea;color:#b42318}
.hx-switch:focus-visible{outline:2px solid #4b5bd6;outline-offset:1px}
/* Pause, Wait and Commitments explainers: a calendar axis with weekends, drawn like the Gantt's pause gap, Wait bar and flags. */
.hx-seg-wrap{display:inline-flex;align-items:center;gap:8px}
.hx-say{flex-basis:100%;margin-top:2px}
.hx-weekend{fill:#f1f1f4}.hx-day.is-weekend{fill:#b3b7be}.hx-off{fill:#f7e2b8;opacity:.45}.hx-day.is-off{fill:#8a5a00;font-weight:700}.hx-off-txt{font-size:10px;font-weight:650;fill:#8a5a00}
.hx-more{font-size:10px;font-weight:600;fill:#6c7078}
.hx-gap{fill:var(--tk-surface,#fff)}.hx-gap-edge{stroke:none}.hx-gap-mid{stroke:var(--tk-gantt-bar,#668fe1);stroke-width:1.5;stroke-dasharray:3 3}.hx-gap-txt{font-size:9.5px;font-weight:500;fill:var(--tk-ink-3,#6c7078)}
.hx-waitbar{fill:color-mix(in srgb,var(--tk-gantt-bar,#668fe1) 14%,var(--tk-surface,#fff));stroke:color-mix(in srgb,var(--tk-gantt-bar,#668fe1) 75%,transparent);stroke-width:1;stroke-dasharray:4 3}.hx-wait-label{font-size:10.5px;font-weight:500;fill:var(--tk-ink-3,#6c7078)}
.hx-commit-line{stroke:#17181a;stroke-width:1;stroke-dasharray:2 3;opacity:.35}.hx-link.is-wait{stroke-dasharray:4 3}
.hx-flag-pole{fill:none;stroke:#17181a;stroke-width:1.5;stroke-linecap:round}.hx-flag{fill:#fff;stroke:#17181a;stroke-width:1.5;stroke-linejoin:round}.hx-flag.is-customer{fill:#17181a}
.hx-flag-pole.is-late,.hx-flag.is-late{stroke:#b45a4a}.hx-flag.is-customer.is-late{fill:#b45a4a}
.hx-gap-line{stroke:#287366;stroke-width:2;stroke-dasharray:4 3}.hx-gap-end{fill:#fff;stroke:#287366;stroke-width:2}.hx-gap-label{font-size:10.5px;font-weight:650;fill:#287366}
.hx-gap-line.is-late,.hx-gap-end.is-late{stroke:#b45a4a}.hx-gap-label.is-late{fill:#b45a4a}
.takt-hthumb .h-gap{fill:#fafaf8;stroke:#628fe4;stroke-width:1.2;stroke-dasharray:3 2}.takt-hthumb .h-waitbar{fill:#fde7c0;stroke:#b45309;stroke-width:1.6;stroke-dasharray:4 2}
/* Adding tasks and Task slack explainers: a working mini Gantt, and the Gantt's slack tails and "Critical from here" label. */
.hx-btn{height:28px;padding:0 10px;border:1px solid #d5d7dc;border-radius:6px;background:#fff;font:600 12px var(--tk-font,Inter,system-ui,sans-serif);color:#17181a;cursor:pointer}
.hx-btn:disabled{opacity:.45;cursor:default}.hx-btn.primary{border-color:#4b5bd6;color:#4b5bd6}.hx-btn:focus-visible{outline:2px solid #4b5bd6;outline-offset:1px}
.hx-hint{font-size:12px;color:#8a8f98}
.hx-selrow{fill:#4b5bd6;opacity:.07}.hx-drop{fill:#f6f6f8;stroke:#d5d7dc;stroke-dasharray:3 3}.hx-drop-txt{font-size:11px;fill:#8a8f98}
.hx-ghost{fill:#4b5bd6;fill-opacity:.12;stroke:#4b5bd6;stroke-dasharray:3 2;pointer-events:none}.hx-tip{font-size:9.5px;font-weight:650;fill:#4b5bd6;paint-order:stroke;stroke:#fff;stroke-width:3px;pointer-events:none}
.hx-svg:has(.hx-selrow){cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}
.hx-tail{stroke:#8a8f98;stroke-width:1.5;stroke-dasharray:4 3}.hx-tail-end{stroke:#8a8f98;stroke-width:1.5}
.hx-tail-num{font:600 10px 'Obel Mono',ui-monospace,Menlo,monospace;fill:#6c7078}
.hx-day.is-col{font-weight:600;fill:#45484e}.hx-float-col{font:600 11px 'Obel Mono',ui-monospace,Menlo,monospace;fill:#45484e}.hx-float-col.is-zero{fill:#d4382c}
.hx-chip{cursor:pointer}.hx-chip rect{fill:#fff;stroke:#d4382c;stroke-width:1.5}.hx-chip path{fill:none;stroke:#d4382c;stroke-width:2.4}.hx-chip:hover rect{fill:#fdecea}.hx-chip:focus-visible rect{stroke-width:2}
.hx-note{flex-basis:100%;padding:12px 14px;border:1px solid #d4382c;border-radius:8px;background:#fff;font-size:12.5px;line-height:1.45}
.hx-note strong{display:block;margin-bottom:4px;font-size:12px;color:#d4382c}.hx-note p{margin:0 0 10px}.hx-note-acts{display:flex;gap:6px}
.takt-hthumb .h-tail{stroke:#8a8f98;stroke-width:1.4;stroke-dasharray:3 2}.takt-hthumb .h-tail-txt{font:600 8px ui-monospace,Menlo,monospace;fill:#6c7078}.takt-hthumb .h-ghost{fill:#e6e8fb;stroke:#4b5bd6;stroke-dasharray:3 2}.takt-hthumb .h-cursor{fill:#17181a}
.takt-hthumb .h-wait-txt{font:700 9px var(--tk-font,Inter,system-ui,sans-serif);fill:#7c3a06}.takt-hthumb .h-flag-o{fill:#fff;stroke:#17181a;stroke-width:1.2}.takt-hthumb .h-flag-c{fill:#17181a;stroke:#17181a;stroke-width:1.2}
/* Team plan (2026-10-23, mockup board D): people down the side, weeks across. 2026-10-24: the editor is an Inspector toggled from the bar, 2/4/6 weeks, quieter cells. */
.takt-team{padding:0 0 32px;font-feature-settings:'tnum'}
.takt-tp-head{display:flex;align-items:center;gap:6px;min-height:61px;box-sizing:border-box;padding:4px 12px;background:#fff;border-bottom:1px solid #e8e9ec}
.takt-tp-spacer{flex:1 1 auto}
.takt-tp-saved{width:8px;height:8px;border-radius:50%;flex:none;margin:0 4px 0 -2px;background:#1a7f5a}.takt-tp-saved[data-state=pending]{background:#c27c0e}.takt-tp-saved[data-state=error]{background:#c4321f}
.takt-tp-sep{width:1px;height:32px;background:#e3e4e8;margin:0 4px;flex:none}
.takt-tp-tool{min-width:50px;height:50px;border:0;background:transparent;color:#45484e;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 6px;cursor:pointer;font:inherit;font-size:11px;font-weight:500;white-space:nowrap}
.takt-tp-tool:hover{background:#f2f3f5}.takt-tp-tool[aria-expanded=true]{background:#f2f3f5}
.takt-tp-tool[aria-pressed=true]{background:#e8ebfd;color:#3f4fc4}.takt-tp-tool[aria-pressed=true]:hover{background:#e0e3fb}
.takt-tp-menuwrap{position:relative;display:flex}
.takt-tp-pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;background:#fff;border:1px solid #e8e9ec;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:6px}
.takt-tp-pop.is-right{left:auto;right:0}
.takt-tp-addperson{display:flex;align-items:center;gap:6px;width:260px;box-sizing:border-box}
.takt-tp-menu{display:flex;flex-direction:column;width:260px}
.takt-tp-range{margin-left:6px}
.takt-tp-body{display:flex;flex-direction:column;gap:12px;padding:16px 24px 0}
.takt-tp-loading,.takt-tp-problem{margin:16px 24px;color:#45484e}.takt-tp-body .takt-tp-problem{margin:0;padding:10px 14px;border-radius:9px;background:#fbe0c4;color:#8a3d00;font-weight:600}
.takt-tp-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.takt-tp-tile{display:flex;flex-direction:column;gap:4px;padding:10px 14px;min-height:60px;box-sizing:border-box;background:#fff;border:1px solid #e8e9ec;border-radius:10px}
.takt-tp-tile span{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#45484e}.takt-tp-tile.is-free span{color:#14684a}.takt-tp-tile.is-over span{color:#a4460a}
.takt-tp-tile b{font-size:12.5px;font-weight:600;line-height:18px}
.takt-tp-split{display:flex;gap:12px;align-items:flex-start}
.takt-tp-card{flex:1 1 auto;min-width:0;background:#fff;border:1px solid #e8e9ec;border-radius:12px;overflow:hidden}
.takt-tp-filter{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:9px 14px;border-bottom:1px solid #e8e9ec}.takt-tp-filter>span{font-size:12px;font-weight:600;color:#45484e;margin-right:4px}
.takt-tp-chip{height:30px;padding:0 10px;border-radius:15px;border:1px solid #e0e2e6;background:#fff;color:#45484e;font:inherit;font-size:12px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px}
.takt-tp-chip i,.takt-tp-legend i,.takt-tp-work>i,.takt-tp-pick i{width:8px;height:8px;border-radius:2px;flex:none}
.takt-tp-chip[aria-pressed=true]{background:#17181a;border-color:#17181a;color:#fff}
.takt-tp-scroll{overflow-x:auto}
.takt-tp-table{min-width:calc(170px + var(--weeks) * 112px)}
.takt-tp-row{display:grid;grid-template-columns:170px repeat(var(--weeks),minmax(0,1fr));border-bottom:1px solid #f1f2f4}
.takt-tp-row-head{background:#fbfbfc;border-bottom-color:#e8e9ec}
.takt-tp-row-head .takt-tp-person{font-size:11px;font-weight:600;color:#6c7078;min-height:0}
.takt-tp-person{display:flex;align-items:center;gap:9px;padding:8px 12px;min-height:58px;box-sizing:border-box;min-width:0}
.takt-tp-person>span:last-child{display:flex;flex-direction:column;min-width:0}.takt-tp-person b{font-weight:600;font-size:12.5px;overflow-wrap:anywhere}.takt-tp-person small{font-size:11px;color:#6c7078}
.takt-tp-avatar{flex:0 0 30px;height:30px;border-radius:15px;background:#17181a;color:#fff;font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
.takt-tp-week{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:6px 8px;border-left:1px solid #f1f2f4;min-width:0}.takt-tp-week>span{display:flex;flex-direction:column;min-width:0}.takt-tp-week b,.takt-tp-week small{white-space:nowrap}
.takt-tp-week b{font-size:11px;font-weight:700;color:#45484e}.takt-tp-week small{font-size:11px;color:#6c7078}.takt-tp-week.is-now{background:#e8ebfd}.takt-tp-week.is-now b{color:#3f4fc4}
.takt-tp-mini{height:24px;padding:0 7px;border:1px solid #e0e2e6;border-radius:6px;background:#fff;font:inherit;font-size:11px;font-weight:600;color:#45484e;cursor:pointer;white-space:nowrap}
.takt-tp-cell{display:flex;flex-direction:column;gap:5px;padding:8px;border:0;border-left:1px solid #f1f2f4;background:#fff;text-align:left;cursor:pointer;min-width:0;font:inherit;color:inherit}
.takt-tp-cell:hover{box-shadow:inset 0 0 0 1.5px #9ea2aa}.takt-tp-cell.is-selected{background:#f3f4fd;box-shadow:inset 0 0 0 2px #3f4fc4}
/* The bar: planned work in its colours, PTO/Out hatched, room left light grey; an unplanned week is a dashed outline, like a not-started task. */
.takt-tp-bar{display:flex;height:20px;border-radius:5px;overflow:hidden;width:100%;box-sizing:border-box}.takt-tp-bar:not(.is-empty){background:#e4e5e8}
.takt-tp-bar.is-empty{border:1.5px dashed #b4b7bd}
.takt-tp-part{display:flex;align-items:center;gap:3px;color:#fff;font-size:10.5px;font-weight:700;line-height:20px;padding:0 4px;white-space:nowrap;overflow:hidden;box-sizing:border-box;border-right:1px solid #fff;min-width:0}
.takt-tp-part.is-away,.takt-tp-meterbar .is-away,.takt-tp-legend i.is-away{background:repeating-linear-gradient(135deg,#b4b7bd 0 3px,#e4e5e8 3px 6px);color:#17181a}
.takt-tp-badge{display:inline-block;padding:0 3px;border-radius:3px;background:rgba(255,255,255,.28);font-size:9.5px;line-height:13px;flex:none}
.takt-tp-notes{display:flex;flex-wrap:wrap;gap:0 4px;align-items:center;min-height:16px;font-size:11px;color:#5d6168;white-space:nowrap}
.takt-tp-notes .is-travel{color:#3f4fc4}.takt-tp-notes .is-over{color:#a4460a;font-weight:700}
.takt-tp-empty{margin:0;padding:18px 14px;color:#6c7078}
.takt-tp-legend{display:flex;flex-wrap:wrap;gap:12px;padding:9px 14px;border-top:1px solid #e8e9ec;font-size:11.5px;color:#45484e;align-items:center}
.takt-tp-legend>span{display:flex;align-items:center;gap:5px}.takt-tp-legend i{width:10px;height:10px;box-sizing:border-box}.takt-tp-legend i.is-free{background:#e4e5e8}.takt-tp-legend i.is-empty{border:1px dashed #9ea2aa}
/* The Inspector: person, week stepper and load at the top, the week's work and days away in the middle, fast-fill and who saved it last at the foot. */
.takt-tp-editor{flex:0 0 300px;background:#fff;border:1px solid #e8e9ec;border-radius:12px;display:flex;flex-direction:column;box-sizing:border-box;position:sticky;top:16px;max-height:calc(100vh - 110px);overflow:hidden}
.takt-tp-editor>.takt-tp-hint{padding:14px 16px}
.takt-tp-editor-head{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-bottom:1px solid #eceef1}
.takt-tp-who{display:flex;align-items:center;gap:10px}.takt-tp-who h2{flex:1 1 auto;min-width:0;margin:0;font-size:16px;font-weight:700;overflow-wrap:anywhere}
.takt-tp-icon{width:30px;height:30px;flex:none;display:flex;align-items:center;justify-content:center;border:0;border-radius:7px;background:transparent;color:#45484e;cursor:pointer}.takt-tp-icon:hover{background:#f2f3f5}
.takt-tp-icon.is-boxed{border:1px solid #e0e2e6;background:#fff}.takt-tp-icon:disabled{opacity:.4;cursor:default;background:transparent}
.takt-tp-group{height:28px;border:1px solid transparent;border-radius:7px;padding:0 8px;margin:-6px 0 0 34px;font:inherit;font-size:12px;color:#45484e;background:transparent}.takt-tp-group:hover,.takt-tp-group:focus{border-color:#e0e2e6;background:#fff}
.takt-tp-stepper{display:flex;align-items:center;gap:6px}.takt-tp-stepper>span{flex:1 1 auto;text-align:center;font-size:12.5px;color:#6c7078}.takt-tp-stepper b{color:#17181a}
.takt-tp-meter{display:flex;flex-direction:column;gap:5px}
.takt-tp-meterbar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:#e4e5e8}
.takt-tp-sum{font-size:12px;color:#45484e}.takt-tp-sum.is-over{color:#8a3d00;font-weight:700}
.takt-tp-editor-body{flex:1 1 auto;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:16px}
.takt-tp-section{display:flex;flex-direction:column;gap:8px}.takt-tp-section h3{margin:0;font-size:11px;font-weight:700;color:#6c7078;letter-spacing:.04em;text-transform:uppercase}
.takt-tp-review-bulk{display:flex;justify-content:flex-end;gap:8px;margin:0 0 12px}.takt-tp-review-bulk:empty{display:none}.takt-tp-review .takt-tp-section+.takt-tp-section{margin-top:12px}
.takt-tp-work{display:flex;align-items:center;gap:8px}.takt-tp-work>i{width:9px;height:9px;border-radius:2px}
.takt-tp-work>span:nth-child(2){flex:1 1 auto;min-width:0;display:flex;flex-direction:column;font-size:12.5px}.takt-tp-work b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.takt-tp-work small{font-size:10.5px;color:#6c7078}
.takt-tp-steps{flex:none}
.takt-tp-addwork{align-self:flex-start}
.takt-tp-picker{border:1px solid #e0e2e6;border-radius:9px;box-shadow:0 6px 18px rgba(0,0,0,.07);padding:6px;display:flex;flex-direction:column;gap:4px}
.takt-tp-picklist{display:flex;flex-direction:column;max-height:220px;overflow:auto}
.takt-tp-pickhead{padding:6px 6px 2px;font-size:10.5px;font-weight:700;color:#6c7078;letter-spacing:.04em;text-transform:uppercase}
.takt-tp-pick{display:flex;align-items:center;gap:7px;min-height:30px;border:0;border-radius:6px;background:transparent;padding:0 6px;text-align:left;font:inherit;font-size:12.5px;color:#17181a;cursor:pointer}.takt-tp-pick:hover{background:#f2f3f5}.takt-tp-pick.is-new{color:#3f4fc4;font-weight:600}
.takt-tp-types{display:flex}.takt-tp-types>button{flex:1 1 0}
.takt-tp-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.takt-tp-days button{height:30px;border:1px solid #e0e2e6;border-radius:7px;background:#fff;color:#17181a;font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}
.takt-tp-days button.is-off{background:#c9ccd2;border-color:#9ea2aa}.takt-tp-days button.is-travel{background:#e8ebfd;border-color:#b9bff3;color:#131f88}
.takt-tp-editor button:disabled{cursor:default;opacity:.5}
.takt-tp-hint{margin:0;font-size:11.5px;color:#6c7078}
.takt-tp-foot{display:flex;flex-direction:column;gap:8px;padding:10px 14px;border-top:1px solid #eceef1}
.takt-tp-fill{display:flex;gap:8px}.takt-tp-btn{flex:1 1 0;height:32px;border:1px solid #e0e2e6;background:#fff;border-radius:8px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;white-space:nowrap}
.takt-tp-status{font-size:11px;color:#6c7078}
.takt-team :focus-visible{outline:2px solid #3f4fc4;outline-offset:-2px}
@media(max-width:1100px){.takt-tp-split{flex-wrap:wrap}.takt-tp-editor{flex-basis:100%;position:static;max-height:none}}
@media(max-width:900px){.takt-tp-head,.takt-tp-body{padding-left:16px;padding-right:16px}.takt-team{padding:0 0 24px}.takt-tp-head{flex-wrap:wrap}}
@media(max-width:600px){.takt-tp-row{grid-template-columns:120px repeat(var(--weeks),minmax(0,1fr))}.takt-tp-table{min-width:calc(120px + var(--weeks) * 104px)}.takt-tp-person{padding:8px 10px}.takt-tp-avatar{display:none}.takt-tp-tool span{display:none}.takt-tp-tool{min-width:40px}}
/* Settings rows with a switch (resources, materials, email); the switch is the shared tk-switch (#866 W14). The global colour
   group is flat rows like every other setting (W12), and colours use the shared picker in web/ui-parts.ts (W16). */
.takt-colour-line{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px}.takt-colour-label{font-weight:600}
.takt-colour-force{cursor:pointer}
/* Settings › Calendar (overhaul 2026-11-05): kit rows and parts; layout only here. Groups are separated by space, no lines. */
.takt-calendars{display:flex;flex-direction:column;gap:var(--tk-dens-sec)}.takt-calendars[aria-busy=true]{opacity:.7}
.takt-cal-group{display:flex;flex-direction:column}
.takt-cal-name{width:240px;max-width:100%}
.takt-cal-foot{display:flex;padding-top:var(--tk-dens-gap)}
/* A list's heading row: its title (and, for holidays, the year), then "+ Add" at the right edge. */
.takt-cal-head{display:flex;align-items:center;gap:var(--tk-dens-gap);min-height:var(--tk-dens-row);margin-top:var(--tk-dens-sec)}
.takt-cal-title{margin:0;font-size:14px;font-weight:600;line-height:1.3}
.takt-cal-head>:last-child{margin-left:auto}
.takt-cal-year{display:inline-flex;align-items:center;gap:2px;font-variant-numeric:tabular-nums}.takt-cal-year b{min-width:40px;text-align:center}
.takt-cal-add{display:grid;grid-template-columns:minmax(0,1fr) 150px 150px auto auto;align-items:center;gap:var(--tk-dens-gap);padding-block:var(--tk-dens-gap)}
/* Holidays are a kit "+ Add" list (.tk-addlist); the date column is the only layout of their own. */
.takt-cal-days>li>.takt-cal-date{flex:none;width:120px}
.takt-cal-date{font-family:var(--tk-font-num);font-size:12.5px;font-variant-numeric:tabular-nums}
@media (max-width:600px){.takt-cal-add{grid-template-columns:1fr 1fr}.takt-cal-add [data-day-name]{grid-column:1/-1}.takt-cal-days>li>.takt-cal-date{width:96px}}
/* Takt on iPhone (2026-10-24): /phone/ only. Actions, the Gantt as a list, and More, with a bottom tab bar and bottom
   sheets. 44px touch targets, 16px+ inputs so iOS doesn't zoom, safe areas for the notch and the home indicator. */
body.takt-phone{margin:0;background:var(--tk-bg);color:var(--tk-ink);font-family:var(--tk-font);font-feature-settings:var(--tk-font-features);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}
#takt-phone{display:flex;flex-direction:column;height:100dvh;overflow:hidden}
#takt-phone .tk-i,.tp-sheet .tk-i,.tp-toast .tk-i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:square;stroke-linejoin:miter;flex:none}
.tp-head{flex:none;background:var(--tk-surface);border-bottom:1px solid var(--tk-line);padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;display:flex;flex-direction:column;gap:10px}
.tp-head-row{display:flex;align-items:center;gap:6px;min-height:44px}
.tp-head h1{margin:0;font-size:26px;font-weight:700;letter-spacing:-.02em;flex:1;min-width:0}
.tp-icon{width:44px;height:44px;border:0;border-radius:10px;background:none;color:var(--tk-ink-2);display:flex;align-items:center;justify-content:center}
.tp-icon[aria-pressed=true]{background:var(--tk-accent-soft);color:var(--tk-accent-ink)}
.tp-pick{min-height:36px;max-width:58%;padding:0 10px 0 12px;border:1px solid var(--tk-line-2);border-radius:18px;background:var(--tk-surface);color:var(--tk-ink);font:500 15px var(--tk-font);display:flex;align-items:center;gap:6px}
.tp-pick .tk-i{width:15px;height:15px}
.tp-pick-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-search{display:flex;align-items:center;gap:8px;height:44px;padding:0 12px;border:1px solid var(--tk-line-2);border-radius:10px;background:var(--tk-surface);color:var(--tk-ink-3)}
.tp-search input{flex:1;min-width:0;border:0;outline:0;background:none;color:var(--tk-ink);font:400 16px var(--tk-font)}
.tp-chips{display:flex;gap:8px;overflow-x:auto;margin:0 -16px;padding:0 16px 2px;scrollbar-width:none}
.tp-chips::-webkit-scrollbar{display:none}
.tp-chip{flex:none;min-height:36px;padding:0 13px;border:1px solid var(--tk-line-2);border-radius:18px;background:var(--tk-surface);color:var(--tk-ink);font:500 14px var(--tk-font);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tp-chip b{font:500 13px var(--tk-font-num)}
.tp-chip.is-late{border-color:var(--tk-late-line);background:var(--tk-late-soft);color:var(--tk-late)}
.tp-chip.is-warn{border-color:var(--tk-warn-line);background:var(--tk-warn-soft);color:var(--tk-warn-ink)}
#takt-phone .tp-chip[aria-pressed=true]{border-color:var(--tk-ink);background:var(--tk-ink);color:var(--tk-surface)}
.tp-body{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding-bottom:calc(140px + env(safe-area-inset-bottom))}
.tp-group h2{display:flex;align-items:center;gap:8px;margin:0;padding:16px 16px 6px;font-size:13px;font-weight:600;letter-spacing:var(--tk-tracking-label);color:var(--tk-ink-2)}
.tp-group h2>span:not(.tp-badge){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-group h2 small{font:500 12px var(--tk-font-num);color:var(--tk-ink-3)}
.tp-badge{flex:none;min-width:18px;height:18px;padding:0 3px;box-sizing:border-box;border-radius:5px;background:var(--tk-ink-3);color:#fff;font:700 10.5px var(--tk-font);display:inline-flex;align-items:center;justify-content:center}
.tp-badge.is-inbox{background:var(--tk-surface-3);color:var(--tk-ink-2)}
.tp-group ul{list-style:none;margin:0 12px;padding:0;background:var(--tk-surface);border:1px solid var(--tk-line);border-radius:12px;overflow:hidden}
.tp-action{display:flex;align-items:flex-start;transition:opacity var(--tk-dur-fast)}
.tp-action+.tp-action{border-top:1px solid var(--tk-line)}
.tp-action.is-completing{opacity:.35}
.tp-check{flex:none;width:48px;height:56px;border:0;background:none;display:flex;align-items:center;justify-content:center}
.tp-check span{width:21px;height:21px;box-sizing:border-box;border:1.5px solid var(--tk-ink-4);border-radius:50%}
.is-completing .tp-check span{background:var(--tk-ok);border-color:var(--tk-ok)}
.tp-action-body{flex:1;min-width:0;border:0;background:none;text-align:left;color:inherit;padding:16px 14px 12px 0;display:flex;flex-direction:column;gap:5px;font:inherit}
.tp-title{font-size:16px;line-height:1.3;color:var(--tk-ink);overflow-wrap:anywhere}
.tp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;color:var(--tk-ink-3)}
.tp-due{font:400 13px var(--tk-font-num);color:var(--tk-ink-2)}
.tp-due.is-late{color:var(--tk-late);background:var(--tk-late-soft);padding:1px 6px;border-radius:6px}
.tp-due.is-today{color:var(--tk-warn-ink);background:var(--tk-warn-soft);padding:1px 6px;border-radius:6px}
.tp-high{display:inline-flex;align-items:center;gap:3px;color:var(--tk-late)}
.tp-high .tk-i{width:13px;height:13px}
.tp-empty{margin:56px 24px;text-align:center;color:var(--tk-ink-3);font-size:15px;line-height:1.5}
.tp-fab{position:fixed;right:18px;bottom:calc(76px + env(safe-area-inset-bottom));width:58px;height:58px;border:0;border-radius:29px;background:var(--tk-primary);color:var(--tk-on-primary);box-shadow:0 6px 18px rgba(0,0,0,.24);display:flex;align-items:center;justify-content:center;z-index:5}
.tp-fab .tk-i{width:26px;height:26px}
.tp-tabs{position:fixed;left:0;right:0;bottom:0;z-index:6;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:6px 12px env(safe-area-inset-bottom);min-height:56px;background:color-mix(in srgb,var(--tk-surface) 94%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--tk-line)}
.tp-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;text-decoration:none;color:var(--tk-ink-3);font-size:11px;font-weight:500}
.tp-tab .tk-i{width:24px;height:24px}
.tp-tab[aria-current=page]{color:var(--tk-accent-ink);font-weight:600}
.tp-plan{background:var(--tk-surface)}
.tp-tasks{list-style:none;margin:0;padding:0}
.tp-task{width:100%;min-height:54px;box-sizing:border-box;border:0;border-bottom:1px solid var(--tk-line);background:var(--tk-surface);color:inherit;font:inherit;text-align:left;display:flex;align-items:center;gap:10px;padding:7px 16px 7px calc(16px + var(--depth,0) * 14px)}
.tp-task.is-summary{background:var(--tk-bg)}
.tp-task.is-summary .tp-title{font-weight:600}
.tp-task-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.tp-task-text small{font-size:11.5px;color:var(--tk-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-task .tp-title{font-size:15.5px}
.tp-dates{font:400 12.5px var(--tk-font-num);color:var(--tk-ink-3)}
.tp-dates.is-late{color:var(--tk-late)}
.tp-chev{flex:none;width:20px;display:flex;justify-content:center;color:var(--tk-ink-2);transition:transform var(--tk-dur-fast)}
.tp-chev .tk-i{width:16px;height:16px}
.tp-chev.is-closed{transform:rotate(-90deg)}
.tp-st{flex:none;width:20px;height:20px;display:flex}
.tp-st svg{width:20px;height:20px}
.tp-st[data-status=not]{color:var(--tk-ink-4)}.tp-st[data-status=progress]{color:var(--tk-accent)}.tp-st[data-status=done]{color:var(--tk-ok)}.tp-st[data-status=blocked]{color:var(--tk-blocked)}
.tp-st .mark{stroke:#fff}
.tp-diamond{flex:none;width:20px;display:flex;justify-content:center}
.tp-diamond::before{content:"";width:11px;height:11px;transform:rotate(45deg);background:var(--tk-milestone)}
.tp-diamond.is-done::before{background:var(--tk-milestone-done)}
.tp-diamond.is-commit::before{background:none;border:1.5px solid var(--tk-commit);box-sizing:border-box}
.tp-today{display:flex;align-items:center;gap:8px;padding:4px 16px;color:var(--tk-accent-ink);font:500 11px var(--tk-font-num);letter-spacing:.06em;text-transform:uppercase}
.tp-today::after{content:"";flex:1;height:1px;background:var(--tk-accent)}
.tp-more{padding:20px 16px calc(140px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:10px}
.tp-more>*{flex:none}
.tp-head{position:relative}
.tp-pull{position:absolute;left:50%;top:100%;transform:translate(-50%,8px);z-index:4;padding:6px 12px;border-radius:999px;background:var(--tk-surface);border:1px solid var(--tk-line);box-shadow:var(--tk-shadow-pop);font:500 12.5px var(--tk-font);color:var(--tk-ink-3);white-space:nowrap;pointer-events:none}
.tp-pull.is-ready,.tp-pull.is-busy{color:var(--tk-accent-ink);border-color:var(--tk-accent)}
.tp-to-action{align-self:flex-start}
dialog.tp-sheet:focus{outline:none}
.tp-hint{margin:0;padding:0 2px;font-size:13px;line-height:1.45;color:var(--tk-ink-3)}
.tp-card{list-style:none;margin:0 0 12px;padding:0;background:var(--tk-surface);border:1px solid var(--tk-line);border-radius:12px;overflow:hidden}
.tp-card li{display:flex;align-items:center;min-height:50px;padding:0 14px;font-size:16px}
.tp-card li+li{border-top:1px solid var(--tk-line)}
.tp-card label{flex:1}
.tp-card select{border:0;background:none;color:var(--tk-ink-2);font:400 16px var(--tk-font);text-align:right}
.tp-card form{flex:1}
.tp-card.is-muted li{color:var(--tk-ink-3)}
.tp-label{display:block;margin:0;padding:0 2px;font-size:10.5px;font-weight:600;letter-spacing:var(--tk-tracking-caps);text-transform:uppercase;color:var(--tk-ink-3)}
.tp-note{margin:0;font-size:13px;line-height:1.45;color:var(--tk-ink-3)}
.tp-link{align-self:flex-start;min-height:44px;padding:0;border:0;background:none;color:var(--tk-accent-ink);font:500 16px var(--tk-font)}
.tp-link.is-danger{color:var(--tk-late)}
.tp-error{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));margin:0;padding:12px 14px;border-radius:10px;background:var(--tk-late-soft);color:var(--tk-late);font-size:14px;z-index:7}
.tp-toast{position:fixed;left:12px;right:12px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:12px;background:var(--tk-ink);color:var(--tk-surface);font:500 14px var(--tk-font);box-shadow:var(--tk-shadow-pop)}
.tp-toast span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-toast button{min-height:36px;border:0;background:none;color:var(--tk-accent-line);font:600 15px var(--tk-font)}
dialog.tp-sheet{position:fixed;inset:auto 0 0 0;margin:0;width:100%;max-width:none;max-height:88dvh;box-sizing:border-box;overflow-y:auto;border:0;border-radius:16px 16px 0 0;padding:8px 16px calc(18px + env(safe-area-inset-bottom));background:var(--tk-surface);color:var(--tk-ink);font-family:var(--tk-font);box-shadow:0 -6px 24px rgba(0,0,0,.14);display:flex;flex-direction:column;gap:14px;animation:tp-up .2s ease-out}
dialog.tp-sheet::backdrop{background:rgba(23,24,26,.4)}
@keyframes tp-up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.tp-sheet-grip{align-self:center;flex:none;width:36px;height:5px;border-radius:3px;background:var(--tk-line-2)}
.tp-sheet-title{margin:0;font-size:21px;font-weight:600;letter-spacing:-.015em;overflow-wrap:anywhere}
.tp-crumb{margin:0 0 -10px;font-size:12px;color:var(--tk-ink-3)}
.tp-options{list-style:none;margin:0;padding:0}
.tp-options button{width:100%;min-height:50px;border:0;border-bottom:1px solid var(--tk-line);background:none;color:var(--tk-ink);font:400 16px var(--tk-font);display:flex;align-items:center;gap:10px;text-align:left;padding:0 4px}
dialog.tp-sheet .tp-options button[aria-pressed=true]{color:var(--tk-accent-ink);font-weight:600}
.tp-form{display:flex;flex-direction:column;gap:14px}
.tp-field{display:flex;flex-direction:column;gap:6px}
.tp-field textarea,.tp-field select,.tp-link-add input{width:100%;box-sizing:border-box;border:1px solid var(--tk-line-2);border-radius:10px;padding:11px 12px;background:var(--tk-surface);color:var(--tk-ink);font:400 17px var(--tk-font);resize:none}
.tp-field select{min-height:46px;-webkit-appearance:none;appearance:none}
.tp-field textarea:focus,.tp-field select:focus,.tp-link-add input:focus{outline:0;border-color:var(--tk-accent);box-shadow:var(--tk-focus-ring)}
.tp-row{display:flex;flex-wrap:wrap;gap:8px}
dialog.tp-sheet .tp-form .tp-chip[aria-pressed=true],dialog.tp-sheet .tp-date.is-on{border-color:var(--tk-accent-line);background:var(--tk-accent-soft);color:var(--tk-accent-ink)}
.tp-date{position:relative;overflow:hidden}
.tp-date input{position:absolute;inset:0;opacity:0;width:100%;height:100%;font-size:16px}
.tp-flag{align-self:flex-start}
.tp-flag .tk-i{width:15px;height:15px}
.tp-flag[aria-pressed=true]{border-color:var(--tk-late-line)!important;background:var(--tk-late-soft)!important;color:var(--tk-late)!important}
.tp-actions{display:flex;gap:10px}
.tp-btn{flex:1;min-height:48px;padding:0 16px;border:1px solid var(--tk-line-2);border-radius:12px;background:var(--tk-surface);color:var(--tk-ink);font:500 16px var(--tk-font)}
.tp-btn.is-primary{border-color:var(--tk-primary);background:var(--tk-primary);color:var(--tk-on-primary);font-weight:600}
.tp-sheet-error{margin:0;color:var(--tk-late);font-size:14px}
.tp-facts{margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.tp-facts div{background:var(--tk-bg);border-radius:10px;padding:10px 12px}
.tp-facts dt{font-size:10.5px;font-weight:600;letter-spacing:var(--tk-tracking-caps);text-transform:uppercase;color:var(--tk-ink-3)}
.tp-facts dd{margin:4px 0 0;font:500 15px var(--tk-font-num)}
.tp-segment{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;padding:4px;border-radius:12px;background:var(--tk-surface-2)}
.tp-segment button{min-height:42px;border:1px solid transparent;border-radius:9px;background:none;color:var(--tk-ink-2);font:500 14px var(--tk-font)}
dialog.tp-sheet .tp-segment button[aria-pressed=true]{border-color:var(--tk-on-line);background:var(--tk-surface);color:var(--tk-accent-ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
.tp-plain{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;font-size:15px}
.tp-plain small{font:400 12.5px var(--tk-font-num);color:var(--tk-ink-3);margin-left:6px}
.tp-plain .is-done{color:var(--tk-ink-3);text-decoration:line-through}
.tp-plain .tp-none{color:var(--tk-ink-3)}
.tp-link-add{display:flex;gap:8px;margin-top:4px}
.tp-link-add .tp-btn{flex:none}
/* Phone: saved Storyboards, view only (migration 024). The page stays light in dark mode, like exports. */
.tp-boards li{padding:0}
.tp-boards button{flex:1;min-height:56px;border:0;background:none;color:var(--tk-ink);font:400 16px var(--tk-font);display:flex;align-items:center;gap:10px;text-align:left;padding:6px 14px}
.tp-board-name{display:flex;flex-direction:column;min-width:0;overflow-wrap:anywhere}
.tp-board-name small{font-size:13px;color:var(--tk-ink-3)}
dialog.tp-sheet.is-story{max-height:none;height:100dvh;border-radius:0;padding-top:calc(8px + env(safe-area-inset-top))}
.tp-story{flex:0 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;background:#fff;border:1px solid var(--tk-line);border-radius:8px;display:flex;align-items:flex-start}
.tp-story svg{display:block;width:100%;height:auto;flex:none}
.tp-story.is-zoomed svg{width:260%}
.tp-story .tp-note{margin:16px;color:#5b6068}
.tp-story-bar{display:flex;justify-content:flex-end;margin-bottom:-8px}
dialog.tp-sheet.is-story .tp-sheet-grip{display:none}
.tp-story-dates{flex:none}
.tp-story-dates h3{margin:4px 0 8px;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--tk-ink-3)}
.tp-story-dates li{gap:10px;padding:8px 14px}
.tp-date-kind{flex:none;width:12px;height:8px;border:1.5px solid var(--tk-ink-2);border-radius:2px}
.tp-date-kind[data-kind=milestone]{width:9px;height:9px;border:0;border-radius:1px;background:var(--tk-ink);transform:rotate(45deg)}
.tp-date-kind[data-kind=phase]{height:6px;border:0;background:var(--tk-ink-3)}
.tp-date-name{flex:1;min-width:0;display:flex;flex-direction:column;overflow-wrap:anywhere}
.tp-date-name small{font-size:13px}
.tp-date-when{flex:none;font-size:15px;color:var(--tk-ink-2);font-variant-numeric:tabular-nums}
/* Sideways, the page takes the whole screen: only Done stays, floating over the page's top corner. */
@media (orientation:landscape) and (max-height:499px){
 dialog.tp-sheet.is-story{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow:hidden}
 dialog.tp-sheet.is-story>:not(.tp-story,.tp-story-bar){display:none}
 dialog.tp-sheet.is-story .tp-story-bar{position:absolute;top:calc(6px + env(safe-area-inset-top));right:calc(10px + env(safe-area-inset-right));margin:0;z-index:1}
 dialog.tp-sheet.is-story .tp-story{flex:1;height:100%;border:0;border-radius:0;align-items:center;justify-content:center}
 dialog.tp-sheet.is-story .tp-story svg{width:auto;height:100%;max-width:100%}
 dialog.tp-sheet.is-story .tp-story.is-zoomed svg{width:260%;height:auto;max-width:none}
}
/* Materials (early trial, spec v0.4 §19): one project's ERP shortage report. */
.takt-materials{padding:0 0 32px;font-feature-settings:'tnum'}
.takt-mat-bar{display:flex;align-items:center;gap:6px;min-height:61px;box-sizing:border-box;padding:4px 12px;background:#fff;border-bottom:1px solid #e8e9ec}
.takt-mat-title{display:flex;align-items:baseline;gap:10px;min-width:0}.takt-mat-title h1{margin:0;font-size:15px;font-weight:600}.takt-mat-title span{color:#6c7078;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.takt-mat-body{display:flex;flex-direction:column;gap:20px;padding:16px 24px 0;min-width:0}
/* A grid, not a flex column: Safari left the table's horizontal scrollbar out of a flex item's height and clipped its rows (Justin, 2026-10-27). */
.takt-mat-report{display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
.takt-mat-meta{margin:0;color:#45484e;font-size:13px}
.takt-mat-needby{display:flex;flex-direction:column;gap:2px;margin:0;padding:8px 12px;border-radius:8px;border-left:4px solid #5b3fc4;background:#e8ebfd;color:#17181a;font-size:13px}.takt-mat-needby p{margin:0}
.takt-mat-needby.is-none{border-left-color:#c4c6cc;background:#f2f2f4;color:#45484e}
.takt-mat-needby.is-ok{border-left-color:#1a7f5a;background:#e7f5ee}.takt-mat-needby.is-soon{border-left-color:#b7791f;background:#fdf3e1}.takt-mat-needby.is-late{border-left-color:#d1343a;background:#fdeaea}
.takt-mat-count{display:inline-block;margin-right:8px;padding:1px 8px;border-radius:999px;background:#fff;font-weight:600;font-size:12px}
.takt-mat-needby.is-ok .takt-mat-count{color:#1a7f5a}.takt-mat-needby.is-soon .takt-mat-count{color:#8a5a12}.takt-mat-needby.is-late .takt-mat-count{color:#b4232a}
:root[data-theme=dark] .takt-mat-needby{background:#24253a;color:#e6e7ea}:root[data-theme=dark] .takt-mat-needby.is-none{background:#25262a;color:#b9bcc3}:root[data-theme=dark] .takt-mat-needby.is-ok{background:#16302a}:root[data-theme=dark] .takt-mat-needby.is-soon{background:#36290f}:root[data-theme=dark] .takt-mat-needby.is-late{background:#3a1c1e}:root[data-theme=dark] .takt-mat-count{background:#111214}
.takt-mat-counts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr))}.takt-mat-counts.is-six{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}
.takt-mat-counts li{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid #e8e9ec;border-radius:8px;background:#fff}
.takt-mat-counts b{font-size:22px;font-weight:600;line-height:1.15}.takt-mat-counts span{font-size:12px;color:#45484e}
.takt-mat-counts li.is-late b{color:#d1343a}.takt-mat-counts li.is-blocked b{color:#c2410c}.takt-mat-counts li.is-warn b{color:#8a5a12}.takt-mat-counts li.is-ok b{color:#1a7f5a}.takt-mat-counts li.is-neutral b{color:#6c7078}
.takt-mat-since{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;color:#45484e}
.takt-mat-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.takt-mat-tools>span{color:#6c7078;font-size:12px}
.takt-mat-scroll{overflow-x:auto;border:1px solid #e8e9ec;border-radius:8px;background:#fff}
/* The whole description shows (Justin, 2026-10-27): it wraps in a wide column instead of being cut off. */
.takt-mat-table td.takt-mat-desc{white-space:normal;min-width:220px;padding-top:6px;padding-bottom:6px;line-height:1.35}
.takt-mat-table th{padding:0}.takt-mat-table th:last-child{padding:0 10px}
.takt-mat-sort{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:4px;width:100%;height:30px;padding:0 10px;cursor:pointer;font:inherit;color:inherit;letter-spacing:inherit}
.takt-mat-table th.is-num .takt-mat-sort{justify-content:flex-end}
.takt-mat-sort span{font-size:9px;color:var(--tk-ink-4,#9a9da4)}.takt-mat-sort.is-on{color:var(--tk-ink,#17181a)}.takt-mat-sort.is-on span{color:var(--tk-accent,#5b3fc4)}
.takt-mat-sort:hover{background:var(--tk-hover,#f3f4f6)}.takt-mat-sort:focus-visible{outline:2px solid #3f4fc4;outline-offset:-2px}
.takt-mat-tools-end{display:flex;align-items:center;gap:8px;color:#6c7078;font-size:12px}
.takt-mat-tools-end .tk-btn{gap:4px}
.takt-mat-guide h3{margin:0 0 6px;font-size:14px;font-weight:600}.takt-mat-guide>p{margin:0 0 8px;font-size:12.5px;line-height:1.45;color:var(--tk-ink-2,#45484e)}
.takt-mat-guide dl{display:grid;grid-template-columns:max-content 1fr;gap:6px 10px;margin:0 0 8px;font-size:12.5px;line-height:1.4}
.takt-mat-guide dt{font-weight:600;white-space:nowrap}.takt-mat-guide dd{margin:0;color:var(--tk-ink-2,#45484e)}
.takt-mat-pop.is-guide{max-height:min(560px,80vh)}.takt-mat-pop:focus{outline:none}
.takt-mat-table td.takt-mat-part{font-family:"Obel Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.takt-mat-table .tk-pill.is-blocked,.takt-mat-guide .tk-pill.is-blocked{background:#fdeee4;color:#9a3412}
.takt-mat-table tbody tr:hover td{cursor:default}
.takt-mat-table tr.is-open td{background:#f3f4f6}
.takt-mat-star{color:var(--tk-warn);font-size:14px}
.takt-mat-pop{position:fixed;padding:12px;max-height:min(420px,70vh);overflow:auto}
.takt-mat-comments{display:flex;flex-direction:column;gap:8px}
.takt-mat-comments ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.takt-mat-comments li p{margin:0;white-space:pre-wrap}.takt-mat-comments li small{color:#6c7078;font-size:11px}
.takt-mat-comments form{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.takt-mat-comments form textarea{width:100%}.takt-mat-comments textarea{flex:1;min-height:48px}
.takt-mat-none{margin:0}
/* "Blocks a task…" (2026-10-27): tick parts, pick the task; a tied part names its task under the part number. */
.takt-mat-table th.takt-mat-tick,.takt-mat-table td.takt-mat-tick{width:28px;padding:0 0 0 10px}
.takt-mat-picked{display:flex;align-items:center;gap:8px;color:#17181a}.takt-mat-picked .tk-btn{gap:4px}
.takt-mat-blocks{display:flex;align-items:center;gap:4px;width:max-content;margin-top:3px;padding:1px 2px 1px 6px;border-radius:999px;background:#efeafd;color:#432d96;font-family:Inter,system-ui,sans-serif;font-size:11px}
.takt-mat-blocks button{all:unset;cursor:pointer;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;font-size:13px}.takt-mat-blocks button:hover{background:#ddd3fb}.takt-mat-blocks button:focus-visible{outline:2px solid #3f4fc4}
.takt-mat-table td.takt-mat-part{white-space:nowrap;min-width:150px}
/* Need-by dates (Justin, 2026-10-27): a strip of commitments the parts are measured against, first one the default. */
.takt-mat-needs{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch;margin:0 0 12px}
.takt-mat-needs.is-none{align-items:center;padding:8px 12px;border-radius:6px;background:var(--tk-surface-2);color:var(--tk-ink-2);font-size:13px}.takt-mat-needs.is-none p{margin:0;flex:1}
.takt-mat-need{display:flex;align-items:stretch;border-radius:6px;border:1.5px solid transparent;min-width:220px}
.takt-mat-need.is-late{background:#fdeaea}.takt-mat-need.is-soon{background:#fdf3e1}.takt-mat-need.is-ok{background:#e7f5ee}.takt-mat-need.is-empty{background:#f1f2f4}
.takt-mat-need.is-on{border-color:#5b3fd0}
.takt-mat-need-main{all:unset;box-sizing:border-box;flex:1;display:grid;grid-template-columns:auto 1fr;gap:2px 8px;align-items:center;padding:8px 4px 8px 10px;cursor:pointer;font-size:13px;color:#17181a}
.takt-mat-need-ic{grid-row:span 2;display:grid;place-items:center;width:26px;height:26px;border-radius:5px;background:#fff}
.takt-mat-need.is-late .takt-mat-need-ic{color:#b4232a}.takt-mat-need.is-soon .takt-mat-need-ic{color:#8a5a12}.takt-mat-need.is-ok .takt-mat-need-ic{color:#1a7f5a}.takt-mat-need.is-empty .takt-mat-need-ic{color:#6c7078}
.takt-mat-need-t{font-weight:600;display:flex;align-items:center;gap:6px}.takt-mat-need-s{color:#45484e;font-size:12px}.takt-mat-need-s b{font-variant-numeric:tabular-nums}
.takt-mat-need-default{padding:0 6px;border-radius:999px;background:#fff;color:#45484e;font-size:10.5px;font-weight:600}
.takt-mat-need-more{all:unset;display:grid;place-items:center;width:28px;cursor:pointer;border-radius:0 5px 5px 0;color:#45484e}.takt-mat-need-more:hover{background:rgba(0,0,0,.05)}
.takt-mat-need.is-moved{box-shadow:inset 0 0 0 1.5px #b7791f}.takt-mat-moved{color:#8a5a12}.takt-mat-need-use{align-self:center;margin:0 4px;white-space:nowrap}
:root[data-theme=dark] .takt-mat-moved{color:#f0c674}
:is(.takt-mat-need-main,.takt-mat-need-more):focus-visible{outline:2px solid #3f4fc4;outline-offset:-2px;border-radius:5px}
.takt-mat-need-add{justify-content:flex-start}
.takt-mat-need-menu{display:flex;flex-direction:column;gap:2px;min-width:160px}
.takt-mat-pop.is-need{padding:6px}
.takt-mat-nb{display:inline-flex;align-items:center;gap:4px;max-width:200px;padding:1px 2px 1px 6px;border-radius:4px;background:#efeafd;color:#17181a;font-size:12px;white-space:nowrap}
.takt-mat-nb.is-task{background:#eef0f3}.takt-mat-nb.is-default{background:transparent;color:#6c7078;padding:1px 0}
.takt-mat-nb button{all:unset;cursor:pointer;width:16px;height:16px;line-height:16px;text-align:center;border-radius:50%;font-size:13px}.takt-mat-nb button:hover{background:rgba(0,0,0,.08)}.takt-mat-nb button:focus-visible{outline:2px solid #3f4fc4}
:root[data-theme=dark] .takt-mat-need.is-late{background:#3a1f22}:root[data-theme=dark] .takt-mat-need.is-soon{background:#3a2e17}:root[data-theme=dark] .takt-mat-need.is-ok{background:#183026}:root[data-theme=dark] :is(.takt-mat-need.is-empty,.takt-mat-needs.is-none){background:var(--tk-surface-2)}
:root[data-theme=dark] :is(.takt-mat-need-main,.takt-mat-need-s,.takt-mat-need-more){color:var(--tk-ink)}:root[data-theme=dark] :is(.takt-mat-need-ic,.takt-mat-need-default){background:var(--tk-surface)}
:root[data-theme=dark] .takt-mat-nb{background:#2c2550;color:#e6e7ea}:root[data-theme=dark] .takt-mat-nb.is-task{background:#2a2c31}:root[data-theme=dark] .takt-mat-nb.is-default{background:transparent;color:#a3a7ae}
.takt-materials :focus-visible{outline:2px solid #3f4fc4;outline-offset:-2px}
@media(max-width:900px){.takt-mat-bar,.takt-mat-body{padding-left:16px;padding-right:16px}.takt-mat-counts,.takt-mat-counts.is-six{grid-template-columns:repeat(2,minmax(0,1fr))}.takt-mat-comments form{flex-direction:column;align-items:stretch}}
.takt-settings-nav .tk-sidenav-item[hidden]{display:none}
.takt-tablet .takt-people-actions{display:flex;flex-direction:row;gap:8px}.takt-people-form{display:flex;flex-direction:column;gap:10px;max-width:360px}.takt-people-form>.tk-btn{align-self:flex-start}
li>.takt-people-form{flex-direction:row;flex-wrap:wrap;align-items:flex-end;max-width:none;padding:4px 0 10px}li>.takt-people-form .tk-field{flex:1;min-width:200px}
/* Team plan editors: a small note on every screen but the Team plan (web/unified-shell.ts). */
.takt-view-only-note{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;display:flex;gap:12px;align-items:center;padding:8px 14px;border-radius:999px;border:1px solid var(--tk-accent-line);background:var(--tk-info-soft);color:var(--tk-accent-ink);font-size:13px;box-shadow:0 4px 16px rgb(0 0 0/.12);max-width:calc(100vw - 32px)}
.takt-view-only-note a{color:inherit;font-weight:600}
/* Quick add: Action | Note switch (2026-10-26). */
.takt-capture-switch{display:flex;gap:2px;margin:10px 10px 0;padding:2px;border-radius:7px;background:var(--tk-hover,#f1f2f4);width:max-content}
.takt-capture-switch button{border:0;border-radius:5px;background:none;padding:4px 14px;font:inherit;font-size:12.5px;color:var(--tk-ink-3,#6c7078);cursor:pointer}
.takt-capture-switch button[aria-selected=true]{background:var(--tk-bg,#fff);color:var(--tk-ink,#17181a);font-weight:600;box-shadow:0 1px 2px #0000001a}
.takt-capture-note{margin:0;padding:10px;display:flex;flex-direction:column;gap:8px}
.takt-capture-note textarea{width:100%;min-height:96px;padding:8px 10px;border:1px solid var(--tk-line-2,#d5d7dc);border-radius:7px;background:var(--tk-bg,#fff);color:inherit;font:inherit;font-size:14px;line-height:1.5;resize:vertical;outline:0}
.takt-capture-note textarea:focus{border-color:var(--tk-accent);box-shadow:0 0 0 3px var(--tk-accent-soft)}
.takt-capture-note-foot{display:flex;align-items:center;gap:8px;justify-content:space-between;font-size:12px;color:var(--tk-ink-3,#575b62)}
.takt-capture-note-foot label{display:flex;align-items:center;gap:6px;min-width:0}
.takt-capture-note-foot select{min-width:0;max-width:260px;height:30px;padding:0 6px;line-height:normal;border:1px solid var(--tk-line-2,#d5d7dc);border-radius:6px;background:var(--tk-bg,#fff);color:inherit;font:inherit;font-size:12px}
.takt-capture-save{flex:none;height:28px;padding:0 12px;border:0;border-radius:6px;background:var(--tk-accent,#4b5bd6);color:#fff;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
@media(pointer:coarse){.takt-capture-note textarea{font-size:16px}}
@media(display-mode:standalone){.takt-capture:has([data-mode=note][aria-selected=true]) .takt-capture-pop{display:none}}
.takt-capture .takt-capture-note-foot .takt-capture-save{color:#fff}.takt-capture .takt-capture-note-foot label{white-space:nowrap}
/* iPhone Notes tab (2026-10-26). */
.tp-notes{list-style:none;margin:8px 12px 0;padding:0;background:var(--tk-surface);border:1px solid var(--tk-line);border-radius:12px;overflow:hidden}
.tp-notes li+li{border-top:1px solid var(--tk-line)}
.tp-note{display:flex;flex-direction:column;gap:6px;width:100%;padding:13px 14px;border:0;background:none;text-align:left;color:inherit;font:inherit}
.tp-note-body{font-size:15px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.tp-note-home{display:inline-flex;align-items:center;gap:5px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tp-dot{display:inline-block;width:8px;height:8px;border-radius:2px;flex:none}
.tp-note-where{margin:0;font-size:13px;color:var(--tk-ink-3)}
.tp-form textarea[rows="6"]{min-height:140px}
.takt-quick-style{align-self:flex-start;height:28px;padding:0 6px;border:1px solid var(--tk-line-2);border-radius:var(--tk-r);background:var(--tk-surface);color:var(--tk-ink-2);font:inherit;font-size:12.5px}
/* Expected parts (2026-10-27): added by hand before the report lists them. Dashed like the Expected pill. */
.takt-mat-counts li.is-gated{border-style:dashed}.takt-mat-counts li.is-gated b{color:#5b3fc4}
.takt-mat-nonum{font-family:Inter,system-ui,sans-serif;font-style:italic;color:var(--tk-ink-3,#6c7078)}.takt-mat-dash{color:var(--tk-ink-3,#6c7078)}
.takt-mat-expect{display:flex;flex-direction:column;gap:10px}.takt-mat-expect h3{margin:0;font-size:14px}
.takt-mat-field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--tk-ink-2,#45484e);min-width:0}.takt-mat-field .tk-input{width:100%;box-sizing:border-box}
.takt-mat-field-row{display:grid;grid-template-columns:1fr 1fr 1.6fr;gap:8px}
.takt-mat-expect-actions{display:flex;align-items:center;gap:8px}.takt-mat-expect-actions span{flex:1}
.takt-mat-expect-error{margin:0;color:#b4232a;font-size:12px}
:root[data-theme=dark] .takt-mat-counts li.is-gated b{color:#a996f2}:root[data-theme=dark] .takt-mat-expect-error{color:#ff8a8f}
.takt-mat-table td.takt-mat-acts{white-space:nowrap}
/* Backlog rows (Justin, 2026-10-27): a tab with its row count, and "in Backlog" on expected parts, which opens that tab. */
.takt-mat-tab-count{margin-left:4px;font-variant-numeric:tabular-nums;color:var(--tk-ink-3,#6c7078)}
.takt-mat-table.is-backlog th{padding:0 10px;height:30px}
button.takt-mat-inbacklog{cursor:pointer;font-family:inherit;border:0;box-shadow:none}button.takt-mat-inbacklog:hover{text-decoration:underline}
.takt-mat-table td.takt-mat-tool{white-space:nowrap}
.takt-mat-topjob{margin-left:4px;font-family:Inter,system-ui,sans-serif;font-size:11px}
/* BOM view (Justin, 2026-10-28): the short branches as an indented BOM. Depth classes, since the page refuses inline styles. */
.takt-bom td.takt-bom-item{white-space:nowrap;font-family:"Obel Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.takt-bom-d0{padding-left:10px}.takt-bom-d1{padding-left:28px}.takt-bom-d2{padding-left:46px}.takt-bom-d3{padding-left:64px}.takt-bom-d4{padding-left:82px}.takt-bom-d5{padding-left:100px}.takt-bom-d6{padding-left:118px}.takt-bom-d7{padding-left:136px}.takt-bom-d8{padding-left:154px}
.takt-mat-table.takt-bom td.takt-bom-d1{padding-left:28px}.takt-mat-table.takt-bom td.takt-bom-d2{padding-left:46px}.takt-mat-table.takt-bom td.takt-bom-d3{padding-left:64px}.takt-mat-table.takt-bom td.takt-bom-d4{padding-left:82px}.takt-mat-table.takt-bom td.takt-bom-d5{padding-left:100px}.takt-mat-table.takt-bom td.takt-bom-d6{padding-left:118px}.takt-mat-table.takt-bom td.takt-bom-d7{padding-left:136px}.takt-mat-table.takt-bom td.takt-bom-d8{padding-left:154px}
.takt-mat-table.takt-bom th{padding:8px 10px}.takt-mat-table.takt-bom td.is-num{padding-right:18px}
.takt-bom-caret{display:inline-block;width:14px;color:var(--tk-ink-3)}
.takt-bom tr.takt-bom-top td{background:var(--tk-accent-soft);font-weight:600}.takt-bom tr.takt-bom-asm td{background:var(--tk-surface-2);font-weight:600}
/* One Materials view (Justin, 2026-10-28, concept 2): Shortage and Backlog; count chips, tool, Job tree or List, search; a part's
   details under its row. Tokens only, so dark mode follows. */
.takt-mat-title .takt-mat-scope{width:auto}
.takt-materials .takt-mat-bar>.takt-mat-viewseg{margin-left:auto}
.takt-mat-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.takt-mat-strip+.takt-mat-report{margin-top:-12px}
.takt-mat-strip-end{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto}
.takt-mat-find{position:relative;display:inline-flex;align-items:center}
.takt-mat-find .tk-i{position:absolute;left:9px;color:var(--tk-ink-3);pointer-events:none}
.takt-mat-updated{color:var(--tk-ink-3);font-size:11.5px;white-space:nowrap}
.takt-mat-more{font-size:16px;line-height:1;padding:0 8px}
.takt-mat-pop.is-more{padding:4px 0}
.takt-mat-watch{width:44px;text-align:center}
td.takt-mat-watch{padding-left:4px;padding-right:0}
.takt-mat-vs{display:inline-block;padding:1px 7px;border-radius:var(--tk-r-sm);font-size:12px;white-space:nowrap}
.takt-mat-vs.is-ok{background:var(--tk-ok-soft);color:var(--tk-ok)}
.takt-mat-vs.is-soon{background:var(--tk-warn-soft);color:var(--tk-warn-ink)}
.takt-mat-vs.is-late{background:var(--tk-late-soft);color:var(--tk-late)}
.takt-mat-vs.is-none{background:var(--tk-late);color:var(--tk-surface);font-weight:600}
.takt-mat-vs-plain{color:var(--tk-ink-3)}
.takt-mat-select{width:auto}
.takt-mat-search.tk-input{width:300px;height:28px;padding-left:30px}
.takt-mat-reporthead{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.takt-mat-pname{font-weight:600;color:var(--tk-ink)}
.takt-mat-table tr.takt-mat-click{cursor:pointer}
.takt-mat-table tr.takt-mat-click:hover td{background:var(--tk-hover)}
.takt-mat-table tr.takt-mat-click.is-open td{background:var(--tk-accent-soft)}
.takt-mat-table tr.takt-mat-fold td{padding-top:0;padding-bottom:0}
.takt-mat-foldbtn{display:block;margin:5px 0}
.takt-mat-table tr.takt-mat-detail td{white-space:normal;padding:0;background:var(--tk-surface);cursor:default}
.takt-mat-dbox{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:12px 16px 14px;border-left:3px solid var(--tk-accent)}
.takt-mat-dbox section{min-width:0;display:flex;flex-direction:column;gap:6px}
.takt-mat-dbox h4{margin:0;font-size:12px;font-weight:600;color:var(--tk-ink-2)}
.takt-mat-where{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px;font-size:13px}
.takt-mat-dneed{margin:4px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px}
.takt-mat-bad{color:var(--tk-late)}
.takt-mat-nodate{color:var(--tk-late);font-weight:600}
.takt-mat-age{display:inline-block;margin-left:6px;padding:0 7px;border:1px solid var(--tk-late);border-radius:999px;color:var(--tk-late);font-size:11.5px;line-height:17px;white-space:nowrap}
tr.is-nodate>td:first-child{box-shadow:inset 3px 0 0 var(--tk-late)}
tr.is-again .takt-bom-item{color:var(--tk-ink-3)}
.takt-mat-again{color:var(--tk-ink-3);font-style:italic}
.takt-mat-ncount{display:inline-flex;align-items:center;gap:3px;color:var(--tk-ink-3);font-size:12px}
.takt-ma-chart{width:100%;max-width:420px;height:auto}
.takt-ma-chart text{fill:var(--tk-ink-3);font-size:11px}
.takt-ma-dot{fill:var(--tk-surface);stroke-width:2;stroke:var(--tk-accent)}
.takt-ma-step{fill:none;stroke-width:2}.takt-ma-step.s0,.takt-ma-dot.s0{stroke:var(--tk-accent)}.takt-ma-step.s1,.takt-ma-dot.s1{stroke:var(--tk-p2)}.takt-ma-step.s2,.takt-ma-dot.s2{stroke:var(--tk-p6)}
.takt-ma-need{stroke:var(--tk-late);stroke-dasharray:4 4}
.takt-ma-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--tk-ink-2)}.takt-ma-legend span{display:inline-flex;align-items:center;gap:6px}
.takt-ma-legend i{width:14px;height:3px;border-radius:2px}.takt-ma-legend i.s0{background:var(--tk-accent)}.takt-ma-legend i.s1{background:var(--tk-p2)}.takt-ma-legend i.s2{background:var(--tk-p6)}
@media(max-width:900px){.takt-mat-dbox{grid-template-columns:minmax(0,1fr)}.takt-mat-strip-end{margin-left:0}.takt-mat-search.tk-input{width:100%}}
.tk-nav-item[hidden]{display:none}
/* Docked sidebar (Justin, 2026-10-31): the rail no longer widens over the page. Logo, Home, Help and Settings, names on hover. */
/* Home (Justin, 2026-10-31): a grid of schedule icons. Columns stretch to fill the row, so there is no ragged gap at the right at any width. */
.takt-launch.tk-root{min-height:calc(100dvh - var(--takt-topbar));background:var(--tk-bg);color:var(--tk-ink);padding:28px clamp(16px,3vw,40px) 40px;box-sizing:border-box;font:var(--tk-fs)/var(--tk-lh) var(--tk-font)}
.takt-launch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:20px 18px}
.takt-launch-tile{display:flex;flex-direction:column;gap:8px;min-width:0;color:inherit;text-decoration:none;border-radius:var(--tk-r-lg)}
.takt-launch-icon{position:relative;display:block;aspect-ratio:1.3;border-radius:14px;background:var(--tk-surface);border:1px solid var(--tk-line);overflow:hidden;box-shadow:0 1px 2px rgba(23,24,26,.06);transition:border-color var(--tk-dur-fast),box-shadow var(--tk-dur-fast),transform var(--tk-dur-fast)}
.takt-launch-icon::before{content:"";position:absolute;inset:0;background:var(--hub-tint);opacity:.09}
.takt-launch-icon::after{content:"";position:absolute;left:0;right:0;top:0;height:5px;background:var(--hub-tint)}
.takt-launch-chart{position:absolute;inset:13px 11px 10px;width:calc(100% - 22px);height:calc(100% - 23px);overflow:visible}
.takt-launch-ms{fill:var(--tk-ink);stroke:var(--tk-surface);stroke-width:1;vector-effect:non-scaling-stroke}.takt-launch-ms.is-done{fill:var(--tk-surface);stroke:var(--tk-ink)}.takt-launch-today{stroke:var(--tk-late);stroke-width:1;opacity:.75;vector-effect:non-scaling-stroke}
.takt-launch-empty{fill:var(--tk-line-2)}.takt-launch-faint{opacity:.35}
.takt-launch-tile:hover .takt-launch-icon{border-color:var(--hub-tint);box-shadow:0 4px 14px rgba(23,24,26,.12)}
.takt-launch-tile:focus-visible{outline:none}.takt-launch-tile:focus-visible .takt-launch-icon{outline:2px solid var(--tk-accent);outline-offset:2px}
.takt-launch-name{display:flex;align-items:center;gap:7px;min-width:0;padding:0 2px;font-weight:600;font-size:var(--tk-fs)}
.takt-launch-name>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.takt-launch-badge{flex:none;min-width:16px;height:16px;padding:0 3px;border-radius:4px;color:#fff;font-size:9px;font-weight:700;line-height:16px;text-align:center;box-sizing:border-box}
.takt-launch-tile.is-new{font:inherit;background:none;border:0;padding:0;text-align:left;cursor:pointer}
.takt-launch-tile.is-new .takt-launch-icon{display:grid;place-items:center;background:transparent;border:1.5px dashed var(--tk-line-2);box-shadow:none;color:var(--tk-ink-3)}
.takt-launch-tile.is-new .takt-launch-icon::before,.takt-launch-tile.is-new .takt-launch-icon::after{content:none}
.takt-launch-tile.is-new:hover .takt-launch-icon{border-color:var(--tk-accent);color:var(--tk-accent)}
.takt-launch-tile.is-new .takt-launch-name{color:var(--tk-ink-2);font-weight:500}
/* Portfolio on top of Home (Justin, 2026-11-01): one panel up to half the screen, badges only, then the icons. */
/* Two rows of icons (Justin, 2026-11-02): the icons sit at the bottom in a band two tiles tall (it scrolls past that) and the
   Portfolio panel grows to fill the space above, never under 180px. home-hub.ts measures a tile into --takt-two-rows. */
.takt-launch.has-portfolio{display:flex;flex-direction:column;gap:22px;padding-top:20px;padding-bottom:20px;height:calc(100dvh - var(--takt-topbar));min-height:0;overflow-y:auto}
.takt-launch.has-portfolio .takt-launch-grid{flex:none;height:var(--takt-two-rows,auto);overflow-y:auto;align-content:start;padding:3px;margin:-3px}
.takt-home-pf{flex:1 1 auto;min-height:180px;display:flex;flex-direction:column;border:1px solid var(--tk-line);border-radius:16px;background:var(--tk-surface);box-shadow:0 1px 2px rgba(23,24,26,.06);overflow:hidden}
.takt-home-pf>.tk-root{display:flex;flex-direction:column;min-height:0;flex:1}
/* BR-0168: Home's ⋯ (Show portfolio, Sort) sits at the top right, above the Portfolio when it shows. Kit button; placement only. */
.takt-home-bar{display:flex;justify-content:flex-end;flex:none;height:var(--tk-ctl-h);margin:-16px 0 8px}
.takt-launch.has-portfolio .takt-home-bar{margin:-10px 0 -12px}
/* Settings › Gantt › Blockers: a kit "+ Add" list (.tk-addlist, components.css); nothing of its own here (BR-0023). */
.takt-blockers{display:flex;flex-direction:column}

/* Portfolio peek card (Justin, 2026-11-02, option A): a glass card under the clicked lane; house type and readouts. */
.takt-pf-peek{position:fixed;z-index:var(--tk-z-popup-layer,13000);box-sizing:border-box;display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1px solid var(--tk-glass-edge,#ffffffbf);border-radius:var(--tk-r,3px);background:var(--tk-glass-bg,#ffffffd9);-webkit-backdrop-filter:var(--tk-glass-blur,blur(14px) saturate(190%));backdrop-filter:var(--tk-glass-blur,blur(14px) saturate(190%));box-shadow:inset 0 1px 0 var(--tk-glass-hi,#ffffffe6),var(--tk-glass-shadow,0 12px 32px #14143229);color:var(--tk-ink);font:13px/1.35 var(--tk-font)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.takt-pf-peek{background:var(--tk-surface)}}
@media (prefers-reduced-transparency:reduce){.takt-pf-peek{background:var(--tk-surface);-webkit-backdrop-filter:none;backdrop-filter:none}}
.takt-pf-peek-head{display:flex;align-items:center;gap:10px}.takt-pf-peek-head h3{margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 15px var(--tk-font-display,var(--tk-font));letter-spacing:.04em;text-transform:uppercase;color:var(--tk-accent-ink)}
.takt-pf-peek-close{margin-left:auto;flex:none;width:28px;height:28px;border:0;border-radius:var(--tk-r,3px);background:transparent;color:var(--tk-ink-3);cursor:pointer}.takt-pf-peek-close:is(:hover,:focus-visible){background:var(--tk-hover,#f3f4f6)}
.takt-pf-peek-reads{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;font-family:var(--tk-font-num,monospace)}
.takt-pf-peek-reads>div{display:flex;flex-direction:column;gap:2px;padding-left:8px;border-left:2px solid var(--tk-ink-3)}.takt-pf-peek-reads span{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--tk-ink-3)}.takt-pf-peek-reads b{font-size:14px;font-weight:600}
.takt-pf-peek-bar{height:4px;border-radius:2px;background:var(--tk-surface-3,#e3e6f6);overflow:hidden}.takt-pf-peek-bar i{display:block;height:100%}
.takt-pf-peek-list .tk-menu-label{margin:0 0 2px;font:600 10px var(--tk-font-num,monospace);letter-spacing:.08em;text-transform:uppercase;color:var(--tk-ink-3)}
.takt-pf-peek-ms{display:flex;align-items:center;gap:10px;min-height:30px}.takt-pf-peek-ms i{flex:none;width:8px;height:8px;background:var(--tk-ink);transform:rotate(45deg)}.takt-pf-peek-ms span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.takt-pf-peek-ms b{margin-left:auto;flex:none;font:600 11.5px var(--tk-font-num,monospace);letter-spacing:.04em;color:var(--tk-ink-2)}.takt-pf-peek-ms.is-late i{background:var(--tk-late)}.takt-pf-peek-ms.is-late b{color:var(--tk-late)}
.takt-pf-peek-foot{display:flex;justify-content:flex-end}
/* Palette E (Justin, 2026-11-02): a green dot marks each colour some project already shows. Amber and Mustard stay bright
   yellow, so on white they get a thin darker edge, and letters on them are dark in both themes. */
:is(.tk-initial,.takt-launch-badge,.takt-quick-badge):is([style*="--tk-gc-gold"],[style*="--tk-gc-mustard"]){color:#16183a}
:root:not([data-theme=dark]) :is(.tk-initial,.takt-launch-badge,.takt-quick-badge,.tk-sb-dot):is([style*="--tk-gc-gold"],[style*="--tk-gc-mustard"]){box-shadow:inset 0 0 0 1px rgba(23,24,26,.3)}
/* Quick add never folds its top line (UI-STANDARD 17A.2a, 2026-11-03): tabs and Keep on top stay on one row; a narrow window shows the pin as an icon. */
.takt-quick-head{flex-wrap:nowrap;min-width:0}.takt-quick-switch,.takt-quick-switch button,.takt-quick-pin{flex:none;white-space:nowrap}
@media(max-width:400px){.takt-quick-switch button{padding:0 9px}.takt-quick-pin>span{display:none}}
/* Round t. menu (Justin, 2026-11-03, option D). The sidebar holds the screen's tools; the app links drop down from the t. */
body.takt-ring-menu .takt-global-sidebar{overflow:visible}
body.takt-ring-menu .takt-global-sidebar .tk-brand{padding:0;justify-content:center;margin-bottom:4px}
/* BR-0025 (Justin, 2026-11-06): one t. for every screen, owned here (this sheet loads on every Takt page; the Gantt's sheet
   does not load on Home, which is why Home kept the circle). No circle: just the t and its status dot on the strip. It is
   pinned to the top-left corner cell (64px wide, 60px tall, the Gantt bar's height), centred, so it never moves between
   Home, the Gantt and the other screens however each lays out its sidebar. The brand slot keeps its space in the column. */
body.takt-unified .takt-global-sidebar,body.takt-ring-menu .takt-global-sidebar{background:var(--tk-strip,#f4f5f7);border-right:0}
.takt-global-sidebar .tk-logo-ring{--takt-corner-h:60px;position:absolute;left:14px;top:calc((var(--takt-corner-h) - 36px)/2);display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:36px;height:36px;margin:0;padding:0;border-radius:10px;border:0;background:transparent;box-shadow:none;font-family:inherit;font-size:21px;font-weight:700;line-height:1;letter-spacing:-.02em;color:#17181a;cursor:pointer}
.takt-global-sidebar .tk-logo-ring .tk-mark,.takt-global-sidebar .takt-logo-mark .tk-mark{display:block}
.takt-global-sidebar .tk-logo-ring:hover,.takt-global-sidebar .tk-logo-ring[aria-expanded=true],.takt-global-sidebar .takt-logo-mark:hover{background:#e8eafa}
.takt-global-sidebar .takt-logo-mark{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border-radius:10px}
.takt-shell .tk-logo:has(.tk-mark){display:inline-flex;align-items:center;gap:8px;font-family:var(--tk-font-display,inherit);font-size:17px;letter-spacing:.06em;text-transform:uppercase}.takt-shell .tk-logo .tk-mark{display:block}
.takt-global-sidebar .tk-logo-ring:focus-visible{outline:2px solid #3f4fc4;outline-offset:2px}
.tk-ring-dot{position:absolute;right:-1px;bottom:-1px;width:9px;height:9px;border-radius:50%;border:2px solid var(--tk-strip,#f4f5f7);background:#1a7f5a}
.tk-ring-dot[data-state=busy]{background:#c9a227}.tk-ring-dot[data-state=error]{background:var(--tk-late,#c0392b)}
body.takt-ring-menu .tk-app-menu{position:absolute;left:58px;top:10px;z-index:60;display:flex;flex-direction:column;gap:1px;width:220px;padding:6px;border:1px solid;border-radius:12px}/* Glass comes from the shared frosted-glass rule in components.css (BR-0013). */
body.takt-ring-menu .tk-app-menu[hidden]{display:none}
body.takt-ring-menu .tk-app-menu .tk-nav,body.takt-ring-menu .tk-app-menu .tk-sb-foot{margin:0;padding:0;border:0;gap:1px}
body.takt-ring-menu .tk-app-menu .tk-sb-foot{margin-top:4px;padding-top:4px;border-top:1px solid #ececf3}
body.takt-ring-menu .tk-app-menu .tk-nav-item{height:36px;padding:0 10px;border-radius:8px;gap:10px}
body.takt-ring-menu .tk-app-menu .tk-nav-text{opacity:1!important;width:auto!important;color:#17181a;font-size:13px}
body.takt-ring-menu .tk-app-menu .tk-sb-sync{padding-left:4px}
body.takt-ring-menu .tk-app-menu .tk-sb-sync .takt-shell-state{color:#45484e}
body.takt-ring-menu .tk-app-menu .tk-sb-sync .takt-shell-state::before{margin:0 14px 0 6px}
body.takt-ring-menu .tk-sb-screen-tools{display:flex;flex-direction:column;align-items:center;width:100%;min-height:0;overflow-y:auto}
body.takt-ring-menu .tk-sb-screen-tools:empty{display:none}
/* Phones and iPad portrait: the drawer shows the links in place, no drop-down. */
.takt-sidebar-drawer.takt-ring-menu .tk-app-menu,body.takt-ring-menu.takt-sidebar-drawer .tk-app-menu[hidden]{position:static;display:flex;width:auto;margin:0 6px;padding:0;border:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
body.takt-ring-menu .tk-sb-screen-tools{margin:0 -10px;width:calc(100% + 20px)}
.tk-ring-dot[data-state=preview]{background:#4b5bd6}
body.takt-ring-menu :is(.gantt-saved-dot,.takt-tp-saved){display:none!important}
/* Settings › Email (smart emails, 2026-11-03): label and hint on the left, control on the right; the cards below the
   main switch dim while project emails are off, but stay usable so a person can set them up first. */
.takt-email-row{min-height:44px;padding:4px 0;border-top:1px solid var(--tk-line)}.takt-email-row:first-of-type{border-top:0}
.takt-email-row>span:first-child{display:flex;flex-direction:column;gap:2px;min-width:0}.takt-email-row b{font-weight:500;font-size:13.5px}.takt-email-row small{color:var(--tk-ink-3);font-size:12px}
.takt-email-pair{display:flex;gap:2px;flex-wrap:nowrap;justify-content:flex-end}.takt-email-row .tk-select-quiet{max-width:none}
.takt-email-to .tk-field-error{margin:4px 0 0;color:var(--tk-late,#d0312d);font-size:12px}.takt-email-to [aria-invalid=true]{border-color:var(--tk-late,#d0312d)}
.takt-email-to{max-width:360px}
.takt-email-settings{display:flex;flex-direction:column;gap:14px}
.takt-email-settings section[data-off]{opacity:.62}
.takt-email-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
/* Icon colour choice in Settings › Display (tokens in tokens.css). */

/* Help front page (Justin 2026-11-06: bring back the card grid): every topic as a card in its section; the left list stays.
   Cards never lift or move on hover; the edge and shadow change only. */
.takt-hub-detail.is-grid{max-width:1120px}
.takt-hub-group{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.takt-hub-group h3{margin:0;font-size:13px;font-weight:600;color:var(--tk-ink-2,#45484e)}
.takt-hub-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.takt-hub-card{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0;padding:10px 12px 12px;border:1px solid var(--tk-line,#e8e9ec);border-radius:12px;background:var(--tk-surface,#fff);color:var(--tk-ink-2,#45484e);text-decoration:none;font-size:12.5px;line-height:1.45;box-shadow:0 1px 2px #14143208;transition:border-color var(--tk-dur-fast,120ms),box-shadow var(--tk-dur-fast,120ms)}
.takt-hub-card:hover{border-color:color-mix(in srgb,var(--tk-accent,#4b5bd6) 45%,transparent);box-shadow:0 6px 18px #14143214}
.takt-hub-card:focus-visible{outline:2px solid var(--tk-accent,#4b5bd6);outline-offset:2px}
.takt-hub-card b{margin-top:6px;font-size:14px;font-weight:600;color:var(--tk-ink,#17181a)}
.takt-hub-card .takt-hthumb{background:var(--tk-surface-2,#f4f5f7)}
.takt-hthumb.is-icon{display:grid;place-items:center;color:var(--tk-icon,#4f5d75)}
.takt-hub-try{position:absolute;top:16px;right:18px;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--tk-gc-teal,#309da6) 16%,var(--tk-surface,#fff));color:color-mix(in srgb,var(--tk-gc-teal,#309da6) 80%,var(--tk-ink,#17181a));font:600 11px/18px var(--tk-font,system-ui,sans-serif);font-style:normal}
.takt-hub-empty{color:var(--tk-ink-3,#6c7078)}
.takt-hub-keys-group{margin:10px 0 0!important;font-size:12px!important;font-weight:600;color:var(--tk-ink-3,#6c7078)}
.takt-hub-detail h3 .tk-link{margin-left:6px;font-weight:400}
@media (prefers-reduced-motion:reduce){.takt-hub-card{transition:none}}
.takt-hthumb.is-icon{color:var(--tk-ink-3,#6c7078)}.takt-hthumb.is-icon svg{width:24px;height:24px}
/* Help try-its: Buffer and Status (2026-11-06), the Gantt's own looks in miniature. */
.hx-buffer{fill:#fff8ec;stroke:#b86e00;stroke-width:1;stroke-dasharray:4 2}.hx-buffer.is-over{stroke:#d4382c}
.hx-buffer-used{fill:#f4c27a;opacity:.85}.hx-buffer-used.is-over{fill:#f3b3ab}
.hx-buffer-txt{font-size:10.5px;font-weight:600;fill:#8a5a00}.hx-buffer-txt.is-over{fill:#d4382c}
.hx-ms{fill:#45484e}.hx-ms.is-late{fill:#d4382c}
.hx-ring-bg{fill:none;stroke:#c3c7ce;stroke-width:1.6}.hx-ring-bg.is-blocked{stroke:#e8590c}
.hx-ring{fill:none;stroke:#4b5bd6;stroke-width:2.4;stroke-linecap:round}
.hx-ring-done{fill:#2f9e5f;stroke:#2f9e5f;stroke-width:1.6}
.hx-bar.is-blocked{stroke:#e8590c;stroke-width:1.5;stroke-dasharray:5 3}
.hx-bar-done{fill:#8a94a6;opacity:.45;pointer-events:none}
.hx-blocked-txt{font-size:10.5px;font-weight:600;fill:#c2410c}

/* First-time tour (web/tour.ts, Justin 2026-11-06). Popup layer (UI-STANDARD 17A.3); the card is house glass through .tk-popover (7).
   The spotlight's wide shadow is the scrim, so the control it points at stays clear. Nothing under it moves. */
.takt-tour{position:fixed;inset:0;z-index:var(--tk-z-popup-layer,13000)}
.takt-tour-block{position:fixed;inset:0;background:transparent}
.takt-tour.is-centre .takt-tour-block{background:var(--tk-scrim)}
.takt-tour-spot{position:fixed;border-radius:var(--tk-r-xl);box-shadow:0 0 0 2px var(--tk-accent),0 0 18px 2px color-mix(in srgb,var(--tk-accent) 45%,transparent),0 0 0 200vmax var(--tk-scrim);pointer-events:none}
.takt-tour-spot[hidden]{display:none}
.takt-tour .takt-tour-card{position:fixed;width:340px;max-width:calc(100vw - 16px);padding:16px 16px 12px;border-radius:var(--tk-r-xl);color:var(--tk-ink);font-family:var(--tk-font);outline:none}
.takt-tour-mark svg{display:block;width:40px;height:40px;margin-bottom:12px;border-radius:var(--tk-r-xl)}
.takt-tour-count{margin-bottom:4px;font:500 var(--tk-fs-xs) var(--tk-font-num);color:var(--tk-ink-3)}
.takt-tour-title{margin:0 0 6px;font-size:var(--tk-fs-md);font-weight:600;line-height:1.3}
.takt-tour-body{margin:0 0 14px;font-size:var(--tk-fs);line-height:var(--tk-lh);color:var(--tk-ink-2)}
.takt-tour-foot{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}.takt-tour-foot>*{min-width:0}.takt-tour-gap{flex:1}
.takt-tour-foot .takt-tour-skip{margin-left:-5px;font-size:var(--tk-fs-sm)}
.takt-account-actions{display:flex;flex-wrap:wrap;gap:8px}
/* The demo's try-it (lib/tour.ts DEMO_TOUR_STEPS, Justin 2026-11-08): hands-on cards leave the page live under them, and
   clear cards drop the dimming so the plan reacting stays in view. Bars the drag moved glow for a moment. */
.takt-tour.is-live{pointer-events:none}.takt-tour.is-live .takt-tour-card{pointer-events:auto}.takt-tour.is-live .takt-tour-block{display:none}
.takt-tour.is-clear .takt-tour-spot{box-shadow:0 0 0 2px var(--tk-accent),0 0 18px 2px color-mix(in srgb,var(--tk-accent) 45%,transparent)}
.bar.takt-try-moved{animation:takt-try-glow 2.4s var(--tk-ease) both}
@keyframes takt-try-glow{0%,55%{box-shadow:0 0 0 2px var(--tk-today,#0e8f7d),0 0 14px 3px color-mix(in srgb,var(--tk-today,#0e8f7d) 60%,transparent)}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.bar.takt-try-moved{animation-duration:.01s}}
