.login-screen{min-height:100vh;background:radial-gradient(1200px 480px at 50% -10%,color-mix(in srgb,var(--coral-500) 12%,transparent),transparent),var(--ink-950);color:var(--cream);display:flex;align-items:flex-start;justify-content:center;padding:8vh 20px 40px}.login-inner{width:100%;max-width:860px}.login-brand{font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);font-size:22px;display:inline-flex;align-items:center;gap:10px;color:var(--cream)}.login-brand .brand-mark{height:26px;width:auto;display:block}.login-brand .brand-tag{color:var(--coral-500);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-mono);text-transform:uppercase}.login-title{font:var(--fw-extra) var(--fs-h1)/var(--lh-tight) var(--font-sans);margin:20px 0 4px;color:var(--cream);letter-spacing:var(--ls-tight)}.login-sub{color:var(--slate-300);margin:0 0 24px;font-size:var(--fs-sm)}.persona-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.persona-card{text-align:left;cursor:pointer;background:var(--ink-850);border:1px solid color-mix(in srgb,var(--cream) 14%,transparent);border-radius:var(--radius-lg);padding:14px 15px;color:var(--cream);display:flex;flex-direction:column;gap:10px;transition:border-color var(--dur-fast) var(--ease-standard),transform var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}.persona-card:hover:not(:disabled){border-color:var(--coral-500);transform:translateY(-1px);box-shadow:var(--shadow-accent)}.persona-card:focus-visible{outline:2px solid var(--coral-500);outline-offset:2px}.persona-card:disabled{opacity:.5;cursor:not-allowed}.persona-card.busy{cursor:progress}.persona-top{display:flex;align-items:center;gap:11px}.persona-id{min-width:0}.persona-name{font-weight:var(--fw-semibold);font-size:var(--fs-body);color:var(--cream);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.persona-org{font-size:var(--fs-meta);color:var(--slate-300);margin-top:1px}.persona-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.persona-skills{display:flex;flex-wrap:wrap;gap:5px}.skill-chip{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:2px 7px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--hue-teal) 18%,transparent);color:var(--hue-teal-lt);border:1px solid color-mix(in srgb,var(--hue-teal) 34%,transparent)}.persona-inactive{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--slate-300)}.login-note{margin-top:22px;font-size:var(--fs-meta);color:var(--slate-300)}.login-note code{background:var(--ink-800);color:var(--cream)}.login-state{margin-top:20px;color:var(--slate-300);display:flex;align-items:center;gap:10px;font-size:var(--fs-sm)}.login-error{margin-top:20px;border:1px solid color-mix(in srgb,var(--coral-500) 40%,transparent);background:color-mix(in srgb,var(--coral-500) 12%,var(--ink-900));color:var(--cream);border-radius:var(--radius-lg);padding:16px 18px;max-width:60ch}.landing-root{--al-night-900: #00171a;--al-night-800: #001d21;--al-night-700: #06292c;--al-night-600: #0e3a3c;--al-coral-300: #ffb6a2;--al-coral-400: #ff9c82;--al-coral-500: #fc8265;--al-coral-600: #d6755d;--al-coral-700: #a85b47;--al-coral-a60: rgba(252, 130, 101, .6);--al-coral-a40: rgba(252, 130, 101, .4);--al-coral-a24: rgba(252, 130, 101, .24);--al-coral-a14: rgba(252, 130, 101, .14);--al-coral-a07: rgba(252, 130, 101, .07);--bg: var(--al-night-800);--bg-raised: var(--al-night-700);--ink: var(--al-coral-500);--ink-strong: var(--al-coral-400);--ink-soft: var(--al-coral-600);--on-coral: var(--al-night-800);--line: var(--al-coral-a40);--line-strong: var(--al-coral-500);--line-soft: var(--al-coral-a24);--dot: var(--al-coral-a14);--accent: var(--al-coral-500);--font-sans: "Hanken Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-display: "Hanken Grotesk", "Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", "JetBrains Mono", monospace;--gutter: clamp(20px, 4vw, 64px);--grid-dot: radial-gradient(var(--dot) 1.2px, transparent 1.2px);--grid-size: 22px 22px;--radius-xs: 3px;--radius-lg: 18px;--dur: .2s;--ease-out: cubic-bezier(.2, .6, .2, 1);min-height:100vh;background:var(--bg);color:var(--ink);font-family:var(--font-sans);background-image:var(--grid-dot);background-size:var(--grid-size);background-position:0 64px}.landing-root a{text-decoration:none;color:inherit}.landing-root .nav{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:15px var(--gutter);border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.landing-root .brand{display:flex;flex-direction:column;gap:7px;flex:0 0 auto}.landing-root .brand-row{display:flex;align-items:center;gap:12px}.landing-root .mark{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.01em;color:var(--ink)}.landing-root .sl{font-family:var(--font-mono);font-size:17px;color:var(--ink-soft)}.landing-root .desc{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}.landing-root .brand-underline{height:2px;width:46px;background:var(--accent)}.landing-root .links{display:flex;align-items:center;gap:36px;flex:1;justify-content:center;flex-wrap:wrap}.landing-root .links a{font-family:var(--font-mono);font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);transition:color var(--dur) var(--ease-out)}.landing-root .links a:hover,.landing-root .links a.on{color:var(--ink)}.landing-root .cta{font-family:var(--font-mono);font-weight:700;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--on-coral);background:var(--accent);padding:8px 14px;border-radius:var(--radius-xs);transition:background var(--dur) var(--ease-out)}.landing-root .cta:hover{background:var(--al-coral-400)}.landing-root .wrap{padding:0 var(--gutter)}.landing-root section{position:relative}.landing-root .hero{padding:clamp(48px,9vh,120px) 0 64px}.landing-root .hero h1{font-family:var(--font-display);font-weight:600;font-size:clamp(64px,10vw,152px);line-height:.9;letter-spacing:-.028em;margin:0;color:var(--ink)}.landing-root .hawk-mark{display:inline-block;vertical-align:-.04em;height:.73em;width:auto;margin-right:.28em}.landing-root .hero h1 .yr{font-family:var(--font-mono);font-weight:400;font-size:clamp(15px,1.5vw,24px);letter-spacing:.22em;color:var(--ink-soft);vertical-align:.9em;margin-left:18px;white-space:nowrap}.landing-root .cols{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,80px);margin-top:clamp(40px,7vh,88px);align-items:start}.landing-root .col-l h2{font-family:var(--font-display);font-weight:800;font-size:clamp(38px,4.4vw,64px);line-height:.98;letter-spacing:-.02em;margin:0 0 clamp(28px,4vh,48px);color:var(--ink)}.landing-root .col-l p{font-size:17px;line-height:1.5;color:var(--ink-soft);max-width:42ch;margin:0 0 18px}.landing-root .col-l .kicker{font-family:var(--font-mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}.landing-root .features{list-style:none;margin:0;padding:0;max-width:46ch}.landing-root .features li{font-size:15px;line-height:1.5;color:var(--ink-soft);padding:5px 0 5px 22px;position:relative}.landing-root .features li:before{content:"/";position:absolute;left:0;font-family:var(--font-mono);color:var(--accent)}.landing-root .stat-card{border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(26px,3vw,44px);display:flex;flex-direction:column;gap:clamp(24px,4vh,40px);min-height:clamp(300px,46vh,440px);justify-content:space-between}.landing-root .stat-top{display:flex;flex-direction:column;align-items:center;gap:18px}.landing-root .yr-big{font-family:var(--font-mono);font-size:clamp(26px,2.4vw,38px);letter-spacing:.14em;color:var(--ink-soft)}.landing-root .tick{width:1px;height:clamp(56px,8vh,104px);background:var(--line-strong)}.landing-root .od{display:flex;align-items:stretch;gap:8px;justify-content:center}.landing-root .cell{width:clamp(54px,5.2vw,80px);aspect-ratio:62/92;border:1px solid var(--line);border-radius:var(--radius-xs);display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-weight:700;font-size:clamp(40px,4.4vw,62px);color:var(--ink)}.landing-root .cell.fill{background:var(--accent);color:var(--on-coral);border-color:var(--accent)}.landing-root .cell.tex{background-image:radial-gradient(var(--al-coral-a40) 1.4px,transparent 1.4px);background-size:11px 11px}.landing-root .od .dot{align-self:flex-end;font-family:var(--font-mono);font-weight:700;font-size:clamp(40px,4.4vw,62px);color:var(--ink);line-height:1.35}.landing-root .stat-cap{font-family:var(--font-mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);text-align:center}.landing-root .plate{margin:clamp(40px,8vh,96px) 0 0;border:1px solid var(--line);border-radius:var(--radius-lg);background:transparent;overflow:hidden;position:relative}.landing-root .plate-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px clamp(18px,2.4vw,30px);border-bottom:1px solid var(--line)}.landing-root .plate-head span{font-family:var(--font-mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.landing-root .plate-head .id{color:var(--ink)}.landing-root .plate-fig{padding:clamp(22px,3.4vw,52px) clamp(24px,4.4vw,72px) clamp(14px,2vw,28px);position:relative}.landing-root .plate-fig img,.landing-root .plate-fig .plate-art{display:block;width:100%;height:auto;opacity:.5}.landing-root .plate-fig .plate-art{color:var(--accent);max-height:340px;margin:0 auto}.landing-root .plate-foot{display:flex;align-items:center;justify-content:center;gap:16px;padding:0 clamp(18px,2.4vw,30px) clamp(18px,2.4vw,26px);margin:0}.landing-root .plate-foot .rule{height:1px;flex:0 1 64px;background:var(--line)}.landing-root .plate-foot span{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);text-align:center}.landing-root .data{padding:clamp(28px,5vh,56px) 0 clamp(64px,10vh,128px)}.landing-root .sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:1px solid var(--line-strong)}.landing-root .sec-head span{font-family:var(--font-mono);font-size:13px;letter-spacing:.16em;text-transform:uppercase}.landing-root .sec-head .pt{color:var(--ink-soft)}.landing-root .lede-card{margin-top:clamp(32px,6vh,72px);border:1px solid var(--line);border-radius:var(--radius-lg);padding:clamp(22px,3vw,38px);display:flex;flex-direction:column;gap:clamp(28px,5vh,56px)}.landing-root .lede-top{display:grid;grid-template-columns:1fr auto 1.1fr;align-items:center;gap:clamp(20px,4vw,56px)}.landing-root .lede-l{font-family:var(--font-display);font-weight:700;font-size:clamp(26px,2.7vw,40px);line-height:1.05;letter-spacing:-.01em;color:var(--ink)}.landing-root .lede-rule{width:1px;height:clamp(56px,7vw,92px);background:var(--line-strong);transform:rotate(20deg);justify-self:center}.landing-root .lede-r{font-family:var(--font-display);font-weight:500;font-size:clamp(20px,2vw,30px);line-height:1.22;color:var(--ink-soft);max-width:22ch}.landing-root .lede-foot{display:flex;align-items:center;gap:18px}.landing-root .play{width:74px;height:74px;border:1.5px solid var(--line-strong);border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;cursor:pointer;flex:0 0 auto;line-height:0;box-sizing:border-box;padding:0;transition:background var(--dur) var(--ease-out)}.landing-root .play:hover{background:var(--accent)}.landing-root .play .tri{width:0;height:0;margin-left:6px;border-left:19px solid var(--accent);border-top:12px solid transparent;border-bottom:12px solid transparent;transition:border-color var(--dur) var(--ease-out)}.landing-root .play:hover .tri{border-left-color:var(--on-coral)}.landing-root .play-lbl{font-family:var(--font-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}@media(max-width:900px){.landing-root .lede-top{grid-template-columns:1fr}.landing-root .lede-rule{display:none}.landing-root .cols{grid-template-columns:1fr}.landing-root .links{display:none}}.job-title-row{display:inline-flex;align-items:center;gap:var(--space-5);flex-wrap:wrap}.tab-panel{margin-top:var(--space-7)}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface-card)}.seg button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:transparent;cursor:pointer;padding:0 12px;height:var(--control-h);display:inline-flex;align-items:center;gap:6px;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase}.seg button+button{border-left:1px solid var(--border-strong)}.seg button:hover{color:var(--text-strong);background:var(--surface-sunken)}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast)}.seg button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.jobcell-title{font-weight:var(--fw-semibold);color:var(--text-strong)}.jobcell-sub{font-size:var(--fs-micro);color:var(--text-faint);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34ch}.team-count{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-muted)}.stat-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-5);margin-bottom:var(--space-8)}.stat-tile{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:13px 15px;box-shadow:var(--shadow-sm)}.stat-tile .stat-value{font:var(--fw-extra) var(--fs-display)/1 var(--font-sans);color:var(--text-strong);letter-spacing:var(--ls-tight)}.stat-tile .th-label{display:block;color:var(--text-faint);margin-bottom:7px}.kv{display:grid;grid-template-columns:150px 1fr;gap:9px 16px;align-items:baseline}.kv .kv-key{font-size:var(--fs-label);color:var(--text-faint)}.kv .kv-val{color:var(--text-body);font-size:var(--fs-sm);min-width:0}.overview-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:var(--space-7);align-items:start}@media(max-width:780px){.overview-grid{grid-template-columns:1fr}}.prose{color:var(--text-body);font-size:var(--fs-sm);line-height:1.6;white-space:pre-wrap}.access-cell{display:inline-flex;align-items:center;gap:8px}.access-cell .control{width:auto;min-width:150px}.skill-chips{display:inline-flex;flex-wrap:wrap;gap:4px}.picker-list{display:flex;flex-direction:column;gap:6px;max-height:52vh;overflow:auto}.picker-item{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card);cursor:pointer;text-align:left;width:100%;color:inherit;font:inherit}.picker-item:hover{background:var(--surface-sunken);border-color:var(--accent)}.picker-item:disabled{opacity:.5;cursor:not-allowed}.picker-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.picker-item .pi-main{min-width:0;flex:1 1 auto}.picker-item .pi-name{font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--fs-sm)}.picker-item .pi-sub{font-size:var(--fs-micro);color:var(--text-faint);margin-top:1px}.picker-item .pi-why{font-size:var(--fs-micro);color:var(--accent)}.build-toolbar{display:flex;align-items:center;gap:var(--space-5);flex-wrap:wrap;margin-bottom:var(--space-7)}.build-toolbar .spacer{margin-left:auto}.section-block{margin-bottom:var(--space-7)}.section-head{display:flex;align-items:center;gap:var(--space-5);padding:8px 12px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md);margin-bottom:8px;flex-wrap:wrap}.section-head .sh-name{font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-h3)}.section-head .sh-sched{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-muted)}.section-head .sh-actions{margin-left:auto;display:inline-flex;gap:6px}.task-list{display:flex;flex-direction:column;gap:7px}.task-row{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface-card)}.task-row-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.task-row-title{font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--fs-body)}a.task-row-title:hover{color:var(--accent);text-decoration:underline}.task-row-meta{display:inline-flex;align-items:center;gap:8px;margin-left:auto;color:var(--text-muted);font-size:var(--fs-meta)}.assignee{display:inline-flex;align-items:center;gap:6px}.deps-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:3px;border-top:1px dashed var(--border);margin-top:2px}.deps-label{font-size:var(--fs-label);color:var(--text-faint);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-mono)}.dep-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 4px 2px 9px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);font-size:var(--fs-micro);color:var(--text-body);max-width:22ch}.dep-chip .dep-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dep-chip.cross{border-color:color-mix(in srgb,var(--hue-gold) 60%,transparent);background:color-mix(in srgb,var(--hue-gold) 14%,var(--surface-card))}.dep-chip .dep-x{border:none;background:none;cursor:pointer;color:var(--text-faint);font-size:13px;line-height:1;padding:0 3px;border-radius:var(--radius-full)}.dep-chip .dep-x:hover{color:var(--accent)}.dep-chip .dep-x:disabled{opacity:.4;cursor:not-allowed}.dep-add{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:1px dashed var(--border-strong);border-radius:var(--radius-pill);background:transparent;cursor:pointer;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase}.dep-add:hover{color:var(--accent);border-color:var(--accent)}.dep-add:disabled{opacity:.4;cursor:not-allowed}.deps-none{font-size:var(--fs-micro);color:var(--text-faint)}.depchart-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md);background:repeating-linear-gradient(0deg,transparent,transparent 21px,color-mix(in srgb,var(--border) 45%,transparent) 21px,color-mix(in srgb,var(--border) 45%,transparent) 22px),var(--surface-card)}.depchart-caption{font-size:var(--fs-meta);color:var(--text-muted);margin:0 0 10px}.depnode{cursor:pointer}.depnode-box{fill:var(--surface-card);stroke:var(--border-strong);stroke-width:1}.depnode.sel .depnode-box{stroke:var(--accent);stroke-width:2}.depnode-accent{fill:var(--accent)}.depnode-title{fill:var(--text-strong);font:var(--fw-semibold) 12px var(--font-sans)}.depnode-sub{fill:var(--text-muted);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono)}.depedge{fill:none;stroke:color-mix(in srgb,var(--text-muted) 70%,transparent);stroke-width:1.5}.depedge-arrow{fill:color-mix(in srgb,var(--text-muted) 70%,transparent)}.depnode-accent{rx:2px}.dep-detail .succ-none{color:var(--text-faint);font-size:var(--fs-sm)}.dep-detail .dep-sub-label{display:block;margin:var(--space-5) 0 6px;color:var(--text-faint)}.succ-list .succ-chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--surface-card);font-size:var(--fs-micro);color:var(--text-body);text-decoration:none;max-width:24ch}.succ-list .succ-chip:hover{border-color:var(--accent);color:var(--accent)}.succ-list .succ-chip .succ-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dep-detail{margin-top:var(--space-6);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px 16px;background:var(--surface-card)}.dep-detail h4{margin:0 0 6px;font-size:var(--fs-h3);color:var(--text-strong)}.succ-list{display:flex;flex-wrap:wrap;gap:6px}.notes-thread{display:flex;flex-direction:column;gap:12px;margin-bottom:var(--space-7);max-width:720px}.note{display:flex;gap:10px}.note-body{min-width:0;flex:1 1 auto}.note-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.note-time{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-faint)}.note-actions{margin-left:auto;display:inline-flex;gap:6px}.note-text{color:var(--text-body);font-size:var(--fs-sm);line-height:1.5;white-space:pre-wrap;word-break:break-word;margin-top:2px}.note-composer{display:flex;flex-direction:column;gap:8px;max-width:720px}.note-composer .composer-foot{display:flex;justify-content:flex-end;gap:8px;align-items:center}.gantt{border:1px solid var(--border);border-radius:var(--radius-md);overflow:auto;background:var(--surface-card);max-height:calc(100vh - 220px)}.gantt-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border)}.gantt-row:last-child{border-bottom:none}.gantt-head{position:sticky;top:0;z-index:3;background:var(--table-head-bg)}.gantt-tree{position:sticky;left:0;z-index:2;width:340px;min-width:340px;box-sizing:border-box;background:var(--surface-card);border-right:1px solid var(--border);padding:0 10px;display:flex;align-items:center;gap:7px;height:34px}.gantt-head .gantt-tree{background:var(--table-head-bg)}.gantt-track{position:relative;flex:1 1 auto;height:34px}.gantt-twist{border:none;background:none;cursor:pointer;color:var(--text-muted);width:16px;text-align:center;font-size:10px;padding:0;flex:0 0 auto}.gantt-twist.spacer{cursor:default}.gantt-label{min-width:0;display:inline-flex;align-items:center;gap:7px;overflow:hidden}.gantt-label .gl-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gantt-label.lvl-job .gl-text{font-weight:var(--fw-bold);color:var(--text-strong)}.gantt-label.lvl-group .gl-text{font-weight:var(--fw-semibold);color:var(--text-body)}.gantt-label.lvl-task .gl-text{color:var(--text-body);font-size:var(--fs-sm)}.gantt-tree.indent-1{padding-left:26px}.gantt-tree.indent-2{padding-left:48px}.gantt-clickable{cursor:pointer}.gantt-clickable:hover .gl-text{color:var(--accent)}.gantt-bar{position:absolute;top:9px;height:16px;border-radius:var(--radius-xs);display:inline-flex;align-items:center;min-width:3px;box-shadow:var(--shadow-xs)}.gantt-bar.bar-job{background:var(--hue-teal)}.gantt-bar.bar-group{background:var(--hue-gold)}.gantt-bar.bar-task{background:var(--accent)}.gantt-unscheduled{position:absolute;top:10px;left:8px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-faint);letter-spacing:var(--ls-mono);text-transform:uppercase}.gantt-tick{position:absolute;top:0;bottom:0;width:1px;background:color-mix(in srgb,var(--border) 60%,transparent)}.gantt-tick-label{position:absolute;top:9px;font-family:var(--font-mono);font-size:10px;color:var(--text-faint);white-space:nowrap;padding-left:4px}.gantt-status{margin-left:auto;flex:0 0 auto}.task-detail{display:flex;flex-direction:column;gap:var(--space-7)}.crumbs{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-muted);flex-wrap:wrap}.crumbs a{color:var(--text-muted)}.crumbs a:hover{color:var(--accent);text-decoration:underline}.crumb-sep{color:var(--text-faint)}.crumb-current{color:var(--text-strong);font-weight:var(--fw-semibold)}.task-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-7);flex-wrap:wrap}.task-head-main{min-width:0;display:flex;flex-direction:column;gap:8px}.task-title{margin:0;font:var(--fw-extra) var(--fs-h1)/var(--lh-tight) var(--font-sans);color:var(--text-strong);letter-spacing:var(--ls-tight)}.task-head-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.type-pill{text-transform:none;letter-spacing:var(--ls-mono)}.task-head-meta{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.task-assignee,.task-window{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--text-body)}.task-window .th-label{color:var(--text-faint)}.window-inherited{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--status-pending-ink);background:color-mix(in srgb,var(--status-pending) 20%,var(--surface-card));border-radius:var(--radius-pill);padding:2px 8px}[data-theme=dark] .window-inherited{color:var(--status-pending)}.task-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--space-7);align-items:start}.task-col-main,.task-col-side{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.card-label{display:block;margin:0 0 12px;color:var(--text-strong)}.wf-current{margin-bottom:var(--space-6)}.wf-transitions{display:flex;flex-direction:column;gap:var(--space-5)}.wf-transition{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.wf-transition .btn{max-width:100%}.wf-reason{color:var(--status-pending-ink)}[data-theme=dark] .wf-reason{color:var(--status-pending)}.wf-note{display:flex;flex-direction:column;gap:5px;margin-top:var(--space-3)}.wf-readonly{margin-top:var(--space-2)}.wf-none{margin:var(--space-2) 0 0}.attr-list{display:flex;flex-direction:column;gap:var(--space-6)}.attr-row{display:flex;flex-direction:column;gap:5px;padding-bottom:var(--space-5);border-bottom:1px solid var(--border)}.attr-row:last-child{border-bottom:none;padding-bottom:0}.attr-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.attr-name{font-size:var(--fs-sm);color:var(--text-strong);font-weight:var(--fw-medium)}.attr-unit{color:var(--text-muted);font-weight:var(--fw-regular)}.attr-head .req{color:var(--accent)}.attr-warn{color:var(--status-pending-ink);background:color-mix(in srgb,var(--status-pending) 20%,var(--surface-card));border-radius:var(--radius-pill);padding:2px 8px}[data-theme=dark] .attr-warn{color:var(--status-pending)}.attr-control{display:flex;align-items:center;gap:10px}.attr-control .control{max-width:260px}.attr-state{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-faint);white-space:nowrap}.attr-readonly{font-size:var(--fs-sm);color:var(--text-body)}.attr-lock{color:var(--text-faint)}.attr-error{color:var(--accent)}.photo-empty{margin:2px 0}.photo-grid{display:flex;flex-wrap:wrap;gap:var(--space-4)}.photo{position:relative;width:104px;margin:0;display:flex;flex-direction:column;gap:4px}.photo img{width:104px;height:104px;object-fit:cover;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-sunken);display:block}.photo figcaption{font-size:var(--fs-micro);color:var(--text-muted);line-height:1.3;word-break:break-word}.photo-del{position:absolute;top:4px;right:4px;width:20px;height:20px;border-radius:var(--radius-full);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 18%,var(--surface-card));color:var(--accent);cursor:pointer;line-height:1;font-size:13px;display:flex;align-items:center;justify-content:center}.photo-del:hover{background:color-mix(in srgb,var(--accent) 30%,var(--surface-card))}.photo-add{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:4px}.photo-add .control{max-width:220px}.photo-file{font-size:var(--fs-meta);color:var(--text-muted)}.signature-current{position:relative;width:max-content;max-width:100%;margin:2px 0}.signature-current img{display:block;width:240px;max-width:100%;height:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md)}.signature-pad{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-top:6px}.signature-canvas{width:320px;max-width:100%;height:120px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);touch-action:none;cursor:crosshair}.signature-actions{display:flex;gap:8px}.dep-block{margin-bottom:var(--space-5)}.dep-sub{display:block;color:var(--text-faint);margin-bottom:6px}.dep-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dep-item{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dep-link{color:var(--text-body);font-size:var(--fs-sm);font-weight:var(--fw-medium)}.dep-link:hover{color:var(--accent);text-decoration:underline}.dep-item.cross-job{padding:5px 8px;border:1px dashed color-mix(in srgb,var(--status-pending) 55%,transparent);border-radius:var(--radius-sm);background:color-mix(in srgb,var(--status-pending) 8%,transparent)}.dep-cross{color:var(--status-pending-ink);background:color-mix(in srgb,var(--status-pending) 22%,var(--surface-card));border-radius:var(--radius-pill);padding:2px 7px}[data-theme=dark] .dep-cross{color:var(--status-pending)}.dep-empty{margin:0}.dep-hint{font-size:var(--fs-meta);margin:var(--space-4) 0 0}.qr-code-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-5)}.qr-code-item{display:flex;align-items:center;gap:var(--space-4)}.qr-code-img{flex:0 0 auto;background:#fff;border-radius:var(--radius-sm);padding:4px;box-sizing:content-box}.qr-code-token{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:var(--ls-mono);color:var(--text-body);word-break:break-all}.history{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-5)}.history-entry{display:flex;gap:10px}.history-dot{width:8px;height:8px;border-radius:var(--radius-full);margin-top:6px;flex:0 0 auto}.history-dot.dot-status{background:var(--accent)}.history-dot.dot-attribute{background:var(--hue-teal)}.history-main{min-width:0;display:flex;flex-direction:column;gap:2px}.history-line{font-size:var(--fs-sm);color:var(--text-body);line-height:1.4}.history-who{font-weight:var(--fw-semibold);color:var(--text-strong)}.history-change{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-body)}.history-note{color:var(--text-muted);font-style:italic}.history-time{color:var(--text-faint)}.note-thread{list-style:none;margin:0 0 var(--space-6);padding:0;display:flex;flex-direction:column;gap:var(--space-5)}.note-item{display:flex;gap:10px}.note-main{min-width:0;flex:1 1 auto;display:flex;flex-direction:column;gap:3px}.note-meta{display:flex;align-items:baseline;gap:8px}.note-author{font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--fs-sm)}.note-time{color:var(--text-faint)}.note-body{margin:0;font-size:var(--fs-sm);color:var(--text-body);line-height:1.5;white-space:pre-wrap;word-break:break-word}.note-actions{display:flex;gap:12px}.note-edit{display:flex;flex-direction:column;gap:6px}.note-edit-actions{display:flex;gap:8px}.note-composer{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.note-composer .control{width:100%}@media(max-width:980px){.task-grid{grid-template-columns:1fr}.task-head-meta{align-items:flex-start}}.mw-list{display:flex;flex-direction:column;gap:var(--space-6)}.mw-job{padding:0;overflow:hidden}.mw-job-head{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--surface-sunken)}.mw-job-title{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--text-strong)}.mw-job-title:hover{color:var(--accent);text-decoration:underline}.mw-job-head .count-badge{margin-left:auto}.mw-tasks{list-style:none;margin:0;padding:0}.mw-tasks>li{border-bottom:1px solid var(--border)}.mw-tasks>li:last-child{border-bottom:none}.mw-task{display:flex;align-items:center;gap:12px;padding:10px 16px;min-height:var(--row-h);color:var(--text-body);transition:background var(--dur-fast) var(--ease-standard)}.mw-task:hover{background:var(--surface-sunken)}.mw-task-title{font-size:var(--fs-body);font-weight:var(--fw-medium);color:var(--text-strong);min-width:0;flex:1 1 auto}.mw-task-type{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--text-muted);white-space:nowrap}.mw-task-window{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-faint);white-space:nowrap}.mw-waits{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);color:var(--text-muted);background:var(--surface-card);white-space:nowrap}.mw-waits.blocked{color:var(--status-pending-ink);background:color-mix(in srgb,var(--status-pending) 22%,var(--surface-card));border-color:color-mix(in srgb,var(--status-pending) 45%,transparent)}[data-theme=dark] .mw-waits.blocked{color:var(--status-pending)}@media(max-width:720px){.mw-task{flex-wrap:wrap;gap:8px}.mw-task-title{flex-basis:100%}}.cal-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-6);margin-bottom:var(--space-6);flex-wrap:wrap}.cal-nav{display:flex;align-items:center;gap:var(--space-3)}.cal-month-label{margin:0 0 0 var(--space-3);font:var(--fw-bold) var(--fs-h2) / var(--lh-tight) var(--font-sans);color:var(--text-strong);letter-spacing:var(--ls-tight)}.cal-view-toggle .tabs{margin-bottom:0;border-bottom:none}.cal-month{--cal-num-h: 22px;--cal-bar-h: 22px;border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;background:var(--surface-card)}.cal-weekhead{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--table-head-bg);border-bottom:1px solid var(--border)}.cal-weekhead-cell{padding:6px 8px;color:var(--text-muted);text-align:left}.cal-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-bottom:1px solid var(--border)}.cal-week:last-child{border-bottom:none}.cal-day{min-height:88px;border-right:1px solid var(--border);padding:3px}.cal-day:nth-child(7 of.cal-day){border-right:none}.cal-day.other-month{background:color-mix(in srgb,var(--surface-sunken) 45%,transparent)}.cal-day.other-month .cal-day-num{color:var(--text-faint)}.cal-day.is-today{background:color-mix(in srgb,var(--accent) 8%,transparent)}.cal-day-num{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 4px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-muted);border-radius:var(--radius-pill)}.cal-day.is-today .cal-day-num{background:var(--accent);color:var(--accent-contrast);font-weight:var(--fw-bold)}.cal-bar{align-self:center;height:calc(var(--cal-bar-h) - 4px);margin:0 2px;padding:0 7px;display:inline-flex;align-items:center;gap:4px;border:1px solid transparent;border-radius:var(--radius-sm);cursor:pointer;font:var(--fw-semibold) var(--fs-micro) / 1 var(--font-sans);color:var(--text-strong);overflow:hidden;white-space:nowrap;text-align:left;min-width:0}.cal-bar:hover{filter:brightness(.97)}.cal-bar:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.cal-bar-title{overflow:hidden;text-overflow:ellipsis}.cal-bar-inh{font-family:var(--font-mono);opacity:.75;flex:0 0 auto}.cal-bar.kind-job{background:color-mix(in srgb,var(--hue-teal) 24%,var(--surface-card));border-left:3px solid var(--hue-teal)}.cal-bar.kind-task{background:color-mix(in srgb,var(--accent) 18%,var(--surface-card));border-left:3px solid var(--accent)}.cal-bar.inherited{border-left-style:dashed;background:color-mix(in srgb,var(--surface-sunken) 60%,transparent)}.cal-bar.cont-left{border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:0;margin-left:0}.cal-bar.cont-right{border-top-right-radius:0;border-bottom-right-radius:0;margin-right:0}.agenda{display:flex;flex-direction:column;gap:var(--space-6)}.agenda-day{display:grid;grid-template-columns:140px 1fr;gap:var(--space-5)}.agenda-date{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding-top:8px;position:sticky;top:0}.agenda-today{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--accent-contrast);background:var(--accent);border-radius:var(--radius-pill);padding:1px 7px}.agenda-rows{display:flex;flex-direction:column;gap:6px;min-width:0}.agenda-row{display:flex;align-items:center;gap:var(--space-5);width:100%;text-align:left;padding:9px 12px;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text-body);transition:border-color var(--dur-fast) var(--ease-standard),background var(--dur-fast) var(--ease-standard)}.agenda-row:hover{border-color:var(--accent);background:var(--surface-sunken)}.agenda-row:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.agenda-kind{width:4px;align-self:stretch;min-height:24px;border-radius:var(--radius-pill);flex:0 0 auto}.agenda-kind.kind-job{background:var(--hue-teal)}.agenda-kind.kind-task{background:var(--accent)}.agenda-main{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}.agenda-title{font:var(--fw-semibold) var(--fs-body) / 1.2 var(--font-sans);color:var(--text-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.agenda-context{font-size:var(--fs-meta);color:var(--text-muted)}.agenda-meta{display:flex;align-items:center;gap:var(--space-4);flex:0 0 auto;flex-wrap:wrap;justify-content:flex-end}.agenda-window{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-muted);white-space:nowrap}.agenda-inh{color:var(--text-faint)}.cal-legend{display:flex;gap:var(--space-7);margin-top:var(--space-6);flex-wrap:wrap}.cal-legend-item{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-meta);color:var(--text-muted)}.cal-swatch{display:inline-flex;align-items:center;justify-content:center;width:22px;height:14px;border-radius:var(--radius-xs);font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-strong)}.cal-swatch.kind-job{background:color-mix(in srgb,var(--hue-teal) 24%,var(--surface-card));border-left:3px solid var(--hue-teal)}.cal-swatch.kind-task{background:color-mix(in srgb,var(--accent) 18%,var(--surface-card));border-left:3px solid var(--accent)}.cal-swatch.inherited{background:color-mix(in srgb,var(--surface-sunken) 60%,transparent);border-left:3px dashed var(--border-strong);color:var(--text-faint)}@media(max-width:720px){.agenda-day{grid-template-columns:1fr;gap:var(--space-3)}.agenda-date{position:static}}.person-cell{display:flex;align-items:center;gap:9px}.person-ident{display:flex;flex-direction:column;gap:1px;min-width:0}.person-name{font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--fs-sm)}.person-email{font-size:var(--fs-meta);color:var(--text-faint)}.skills-cell{white-space:normal;min-width:220px}.skill-toggles{display:flex;flex-wrap:wrap;gap:5px}.skill-toggle{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-faint);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.skill-toggle:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.skill-toggle.on{background:var(--accent-tint);color:var(--accent-press);border-color:color-mix(in srgb,var(--accent) 45%,transparent);font-weight:var(--fw-bold)}[data-theme=dark] .skill-toggle.on{color:var(--accent)}.skill-toggle:disabled{opacity:.5;cursor:progress}.skill-toggle:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.type-names{white-space:normal;color:var(--text-body)}.field-error{font-size:var(--fs-micro);color:var(--accent);margin-top:2px}.scan-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-8);align-items:start}.scan-main{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.scan-form{display:flex;gap:var(--space-4);align-items:center;flex-wrap:wrap}.scan-input{flex:1 1 240px;font-family:var(--font-mono);letter-spacing:var(--ls-mono)}.scan-camera{display:flex;flex-direction:column;gap:8px;align-items:center}.scan-video{width:100%;max-width:420px;aspect-ratio:4 / 3;object-fit:cover;background:var(--ink-900);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.scan-camera-hint{margin:0;font-size:var(--fs-meta);color:var(--text-muted)}.scan-placeholder{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-10) var(--space-8);text-align:center;color:var(--text-faint);background:color-mix(in srgb,var(--surface-sunken) 40%,transparent)}.scan-placeholder-icon{font-size:26px;opacity:.7;margin-bottom:6px}.scan-placeholder p{margin:0;font-size:var(--fs-sm)}.scan-result{border-left:4px solid var(--border-strong)}.scan-result-job{border-left-color:var(--hue-teal)}.scan-result-task{border-left-color:var(--accent)}.scan-result-blank{border-left-color:var(--status-pending)}.scan-result-miss{border-left-color:var(--status-pending);background:color-mix(in srgb,var(--status-pending) 8%,var(--surface-card))}.scan-result-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:4px}.scan-result-kind{color:var(--text-muted)}.scan-result-token{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:var(--ls-mono);color:var(--text-faint);margin:2px 0;word-break:break-all}.scan-result-title{margin:4px 0 0;font:var(--fw-bold) var(--fs-h2) / var(--lh-snug) var(--font-sans);color:var(--text-strong)}.scan-result-msg{margin:8px 0 0;font-size:var(--fs-sm);color:var(--text-body);line-height:1.5;max-width:52ch}.scan-result-actions{margin-top:var(--space-6);display:flex;gap:8px;flex-wrap:wrap}.scan-dependents{margin-top:var(--space-6);padding-top:var(--space-5);border-top:1px solid var(--border)}.scan-dependents-label{display:block;color:var(--text-muted);margin-bottom:var(--space-4)}.scan-dependents-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-4)}.scan-dependent{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding:7px 9px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-sunken)}.scan-dependent.is-mine{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-card))}.scan-dependent-open{display:flex;flex-direction:column;gap:2px;min-width:0;text-align:left;background:none;border:0;padding:0;cursor:pointer;color:var(--text-body)}.scan-dependent-title{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-strong)}.scan-dependent-open:hover .scan-dependent-title{color:var(--accent);text-decoration:underline}.scan-dependent-open:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.scan-dependent-meta{font-size:var(--fs-micro);color:var(--text-muted)}.scan-dependent-tags{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.scan-dependent-mine{color:var(--accent);background:color-mix(in srgb,var(--accent) 16%,var(--surface-card));border-radius:var(--radius-pill);padding:2px 7px}.scan-history h3{margin:0 0 10px}.scan-history-empty{font-size:var(--fs-sm);margin:0}.scan-history-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.scan-history-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:7px 9px;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-body)}.scan-history-item:hover{border-color:var(--accent)}.scan-history-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.scan-history-token{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:var(--ls-mono);color:var(--text-strong);word-break:break-all}.scan-history-outcome{font-size:var(--fs-micro);color:var(--text-muted)}@media(max-width:860px){.scan-layout{grid-template-columns:1fr}}.qr-token{display:inline-flex;align-items:center;gap:var(--space-4)}.qr-token-value{font-family:var(--font-mono);letter-spacing:var(--ls-mono);color:var(--text-strong);word-break:break-all}.qr-new{color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent);border-radius:var(--radius-pill);padding:1px 7px;flex:0 0 auto}.qr-show{flex:0 0 auto;font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:var(--ls-mono);color:var(--text-muted);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:1px 7px;cursor:pointer}.qr-show:hover{color:var(--accent);border-color:var(--accent)}.qr-bound{display:inline-flex;align-items:baseline;gap:var(--space-4)}.qr-bound-kind{color:var(--text-faint);flex:0 0 auto}.qr-bound-label{color:var(--text-body)}.qr-created{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-muted);white-space:nowrap}.qr-status-active{color:var(--hue-teal)}[data-theme=dark] .qr-status-active{color:var(--hue-teal-lt)}.pill.qr-retired{opacity:.7;text-decoration:line-through}.qr-actions{display:inline-flex;gap:var(--space-3);justify-content:flex-end}.qr-confirm-token{font-family:var(--font-mono);font-size:var(--fs-meta);letter-spacing:var(--ls-mono);color:var(--text-strong);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 10px;margin:0 0 var(--space-5);word-break:break-all}.qr-bind-modes{display:flex;gap:var(--space-7);margin:0 0 var(--space-5)}.qr-bind-mode{display:inline-flex;align-items:center;gap:var(--space-3);font-size:var(--fs-sm);color:var(--text-body);cursor:pointer}.qr-bind-mode input{accent-color:var(--accent)}.qr-modal{display:flex;flex-direction:column;align-items:center;gap:var(--space-4)}.qr-modal-img{width:240px;height:240px;background:#fff;border-radius:var(--radius-sm);padding:var(--space-4);box-sizing:content-box}.qr-modal-loading{opacity:.35}.qr-modal-url{font-family:var(--font-mono);font-size:var(--fs-meta);color:var(--text-muted);word-break:break-all;text-align:center;margin:0}.qr-modal .qr-confirm-token{width:100%;text-align:center;margin:0}.react-flow{direction:ltr;--xy-edge-stroke-default: #b1b1b7;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #555;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(255, 255, 255, .5);--xy-minimap-background-color-default: #fff;--xy-minimap-mask-background-color-default: rgba(240, 240, 240, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #e2e2e2;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: transparent;--xy-background-pattern-dots-color-default: #91919a;--xy-background-pattern-lines-color-default: #eee;--xy-background-pattern-cross-color-default: #e2e2e2;background-color:var(--xy-background-color, var(--xy-background-color-default));--xy-node-color-default: inherit;--xy-node-border-default: 1px solid #1a192b;--xy-node-background-color-default: #fff;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(0, 0, 0, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #1a192b;--xy-node-border-radius-default: 3px;--xy-handle-background-color-default: #1a192b;--xy-handle-border-color-default: #fff;--xy-selection-background-color-default: rgba(0, 89, 220, .08);--xy-selection-border-default: 1px dotted rgba(0, 89, 220, .8);--xy-controls-button-background-color-default: #fefefe;--xy-controls-button-background-color-hover-default: #f4f4f4;--xy-controls-button-color-default: inherit;--xy-controls-button-color-hover-default: inherit;--xy-controls-button-border-color-default: #eee;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #ffffff;--xy-edge-label-color-default: inherit;--xy-resize-background-color-default: #3367d9}.react-flow.dark{--xy-edge-stroke-default: #3e3e3e;--xy-edge-stroke-width-default: 1;--xy-edge-stroke-selected-default: #727272;--xy-connectionline-stroke-default: #b1b1b7;--xy-connectionline-stroke-width-default: 1;--xy-attribution-background-color-default: rgba(150, 150, 150, .25);--xy-minimap-background-color-default: #141414;--xy-minimap-mask-background-color-default: rgba(60, 60, 60, .6);--xy-minimap-mask-stroke-color-default: transparent;--xy-minimap-mask-stroke-width-default: 1;--xy-minimap-node-background-color-default: #2b2b2b;--xy-minimap-node-stroke-color-default: transparent;--xy-minimap-node-stroke-width-default: 2;--xy-background-color-default: #141414;--xy-background-pattern-dots-color-default: #777;--xy-background-pattern-lines-color-default: #777;--xy-background-pattern-cross-color-default: #777;--xy-node-color-default: #f8f8f8;--xy-node-border-default: 1px solid #3c3c3c;--xy-node-background-color-default: #1e1e1e;--xy-node-group-background-color-default: rgba(240, 240, 240, .25);--xy-node-boxshadow-hover-default: 0 1px 4px 1px rgba(255, 255, 255, .08);--xy-node-boxshadow-selected-default: 0 0 0 .5px #999;--xy-handle-background-color-default: #bebebe;--xy-handle-border-color-default: #1e1e1e;--xy-selection-background-color-default: rgba(200, 200, 220, .08);--xy-selection-border-default: 1px dotted rgba(200, 200, 220, .8);--xy-controls-button-background-color-default: #2b2b2b;--xy-controls-button-background-color-hover-default: #3e3e3e;--xy-controls-button-color-default: #f8f8f8;--xy-controls-button-color-hover-default: #fff;--xy-controls-button-border-color-default: #5b5b5b;--xy-controls-box-shadow-default: 0 0 2px 1px rgba(0, 0, 0, .08);--xy-edge-label-background-color-default: #141414;--xy-edge-label-color-default: #f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props, var(--xy-background-color, var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:grab}.react-flow__pane.dragging{cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width, var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke, var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width, var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selected .react-flow__edge-path,.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected, var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke, var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color, var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color, var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.top.center,.react-flow__panel.bottom.center{left:50%;transform:translate(-15px) translate(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color, var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{position:absolute;width:100%;height:100%;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__viewport-portal{position:absolute;width:100%;height:100%;left:0;top:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__minimap{background:var( --xy-minimap-background-color-props, var(--xy-minimap-background-color, var(--xy-minimap-background-color-default)) )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var( --xy-minimap-mask-background-color-props, var(--xy-minimap-mask-background-color, var(--xy-minimap-mask-background-color-default)) );stroke:var( --xy-minimap-mask-stroke-color-props, var(--xy-minimap-mask-stroke-color, var(--xy-minimap-mask-stroke-color-default)) );stroke-width:var( --xy-minimap-mask-stroke-width-props, var(--xy-minimap-mask-stroke-width, var(--xy-minimap-mask-stroke-width-default)) )}.react-flow__minimap-node{fill:var( --xy-minimap-node-background-color-props, var(--xy-minimap-node-background-color, var(--xy-minimap-node-background-color-default)) );stroke:var( --xy-minimap-node-stroke-color-props, var(--xy-minimap-node-stroke-color, var(--xy-minimap-node-stroke-color-default)) );stroke-width:var( --xy-minimap-node-stroke-width-props, var(--xy-minimap-node-stroke-width, var(--xy-minimap-node-stroke-width-default)) )}.react-flow__background-pattern.dots{fill:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-dots-color-default)) )}.react-flow__background-pattern.lines{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-lines-color-default)) )}.react-flow__background-pattern.cross{stroke:var( --xy-background-pattern-color-props, var(--xy-background-pattern-color, var(--xy-background-pattern-cross-color-default)) )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow, var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color, var(--xy-controls-button-background-color-default));border-bottom:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) );color:var( --xy-controls-button-color-props, var(--xy-controls-button-color, var(--xy-controls-button-color-default)) );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-input,.react-flow__node-default,.react-flow__node-output,.react-flow__node-group{padding:10px;border-radius:var(--xy-node-border-radius, var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color, var(--xy-node-color-default));text-align:center;border:var(--xy-node-border, var(--xy-node-border-default));background-color:var(--xy-node-background-color, var(--xy-node-background-color-default))}.react-flow__node-input.selectable:hover,.react-flow__node-default.selectable:hover,.react-flow__node-output.selectable:hover,.react-flow__node-group.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover, var(--xy-node-boxshadow-hover-default))}.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected, var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color, var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color, var(--xy-selection-background-color-default));border:var(--xy-selection-border, var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var( --xy-controls-button-background-color-hover-props, var(--xy-controls-button-background-color-hover, var(--xy-controls-button-background-color-hover-default)) );color:var( --xy-controls-button-color-hover-props, var(--xy-controls-button-color-hover, var(--xy-controls-button-color-hover-default)) )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var( --xy-controls-button-border-color-props, var(--xy-controls-button-border-color, var(--xy-controls-button-border-color-default)) )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.top,.react-flow__resize-control.bottom{cursor:ns-resize}.react-flow__resize-control.top.left,.react-flow__resize-control.bottom.right{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.top.left,.react-flow__resize-control.handle.bottom.left{left:0}.react-flow__resize-control.handle.top.right,.react-flow__resize-control.handle.bottom.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color, var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.top,.react-flow__resize-control.line.bottom{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color, var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color, var(--xy-edge-label-color-default))}.builder-page{height:100%;display:flex;flex-direction:column;min-height:0;margin:calc(var(--space-8) * -1) calc(var(--space-9) * -1)}.builder-main{flex:1 1 auto;min-height:0;display:flex}.builder-body{flex:1 1 auto;min-height:0;display:flex;width:100%}.builder-canvas-wrap{position:relative;flex:1 1 auto;min-width:0;min-height:0}.builder-canvas-wrap .react-flow{background:var(--surface-canvas)}.builder-panel{display:flex;gap:var(--space-3)}.builder-panel .btn{box-shadow:var(--shadow-sm)}.builder-hint{background:color-mix(in srgb,var(--status-pending) 16%,var(--surface-card));border:1px solid color-mix(in srgb,var(--status-pending) 40%,transparent);color:var(--status-pending-ink);padding:8px 14px;border-radius:var(--radius-md);font-size:var(--fs-meta);max-width:460px;box-shadow:var(--shadow-sm)}[data-theme=dark] .builder-hint{color:var(--status-pending)}.tbadge{font-family:var(--font-mono);font-size:9px;font-weight:var(--fw-bold);letter-spacing:.09em;text-transform:uppercase;padding:2px 7px;border-radius:var(--radius-pill);line-height:1.5;flex:0 0 auto}.tbadge-job{background:var(--hue-teal);color:var(--white)}.tbadge-group{background:var(--hue-gold);color:var(--ink-950)}.tbadge-task{background:var(--coral-500);color:var(--ink-950)}.bnode{width:100%;height:100%;font-size:var(--fs-sm);color:var(--text-body)}.bnode-head{display:flex;align-items:center;gap:var(--space-4);padding:8px 12px;font-weight:var(--fw-semibold);white-space:nowrap;overflow:hidden}.bnode-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;cursor:text}.bnode-meta{color:var(--text-muted);font-weight:var(--fw-regular);font-size:var(--fs-meta);overflow:hidden;text-overflow:ellipsis}.bnode-spacer{flex:1}.bnode-rename{font:inherit;font-size:var(--fs-sm);padding:2px 6px;min-width:0;flex:1;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong)}.bnode-job{background:color-mix(in srgb,var(--hue-teal) 8%,var(--surface-card));border:1.5px solid color-mix(in srgb,var(--hue-teal) 55%,var(--border));border-radius:var(--radius-xl);box-shadow:var(--shadow-md)}.bnode-job>.bnode-head{background:color-mix(in srgb,var(--hue-teal) 16%,var(--surface-card));border-bottom:1px solid color-mix(in srgb,var(--hue-teal) 30%,var(--border));border-radius:12px 12px 0 0;color:var(--text-strong)}.bnode-group{background:color-mix(in srgb,var(--hue-gold) 7%,var(--surface-card));border:1.5px dashed color-mix(in srgb,var(--hue-gold) 60%,var(--border));border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.bnode-group>.bnode-head{background:color-mix(in srgb,var(--hue-gold) 15%,var(--surface-card));border-bottom:1px solid color-mix(in srgb,var(--hue-gold) 30%,var(--border));border-radius:10px 10px 0 0;color:var(--text-strong)}.bnode-task{position:relative;background:var(--surface-card);border:1px solid var(--border);border-left:3px solid var(--coral-500);border-radius:var(--radius-md);padding:8px 11px 8px 10px;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:3px;justify-content:center;transition:box-shadow var(--dur-fast) var(--ease-standard)}.bnode-task:hover{box-shadow:var(--shadow-md)}.bnode-task .bnode-title{font-weight:var(--fw-semibold)}.bnode-task .tbadge-task{position:absolute;top:-8px;left:8px;box-shadow:var(--shadow-xs)}.task-line1{display:flex;gap:var(--space-4);align-items:center;justify-content:space-between;min-width:0}.task-line2{color:var(--text-muted);font-size:var(--fs-meta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-sched{color:color-mix(in srgb,var(--hue-gold) 70%,var(--text-muted))}.task-attr{font-size:var(--fs-meta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-attr-label{color:var(--coral-600);font-weight:var(--fw-semibold)}.react-flow__node.selected>.bnode-job{box-shadow:0 0 0 2.5px var(--hue-teal),var(--shadow-md)}.react-flow__node.selected>.bnode-group{box-shadow:0 0 0 2.5px var(--hue-gold),var(--shadow-sm)}.react-flow__node.selected>.bnode-task{box-shadow:0 0 0 2.5px var(--coral-500),var(--shadow-md)}.bnode-mini{font:inherit;font-size:var(--fs-meta);padding:2.5px 8px;cursor:pointer;background:var(--surface-card);color:var(--text-body);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.bnode-mini:hover{border-color:var(--accent);color:var(--accent)}.bnode-mini.danger{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.bnode-mini.danger:hover{background:color-mix(in srgb,var(--accent) 15%,transparent)}.builder-canvas-wrap .react-flow__handle{width:10px;height:10px;background:var(--coral-500);border:2px solid var(--surface-card);box-shadow:var(--shadow-xs);transition:transform var(--dur-fast) var(--ease-standard)}.builder-canvas-wrap .react-flow__handle:hover{transform:scale(1.35)}.react-flow__edge.dep-edge .react-flow__edge-path{stroke:var(--slate-500);stroke-width:2}.react-flow__edge.dep-edge.cross-job .react-flow__edge-path{stroke:var(--hue-gold);stroke-dasharray:7 5}.react-flow__edge.selected .react-flow__edge-path{stroke:var(--accent);stroke-width:2.6}.react-flow__connectionline path{stroke:var(--coral-500);stroke-width:2;stroke-dasharray:5 4}.react-flow__controls{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md)}.react-flow__controls button{background:var(--surface-card);border-bottom:1px solid var(--border);color:var(--text-body);fill:var(--text-body)}.react-flow__controls button:hover{background:var(--surface-sunken)}.react-flow__minimap{border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-md);background:var(--surface-card)}.inspector{flex:0 0 300px;height:100%;overflow-y:auto;border-left:1px solid var(--border);box-shadow:-4px 0 16px var(--shadow-sm);padding:12px 14px;background:var(--surface-card)}.insp-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-4)}.insp-title{font-weight:var(--fw-semibold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.insp-sec{margin:14px 0 6px;font-family:var(--font-mono);font-size:var(--fs-label);font-weight:var(--fw-regular);letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--text-muted)}.insp-subhead{font-size:var(--fs-sm);font-weight:var(--fw-semibold);color:var(--text-body);margin:6px 0 2px}.insp-row{display:flex;flex-direction:column;gap:3px;margin-bottom:var(--space-4);min-width:0}.insp-row>label{font-size:var(--fs-meta);color:var(--text-muted)}.insp-input{font:inherit;font-size:var(--fs-sm);padding:5px 8px;width:100%;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-body)}.insp-input:focus{outline:2px solid var(--focus-ring);outline-offset:0;border-color:var(--accent)}.insp-static{font-size:var(--fs-sm);padding:5px 0;color:var(--text-body)}.insp-2col{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.insp-check{display:flex;gap:7px;align-items:center;font-size:var(--fs-sm);padding:2.5px 0;cursor:pointer}.insp-check input{accent-color:var(--accent)}.insp-status{margin-bottom:6px}.insp-note{font-size:var(--fs-meta)}.insp-link{font-size:var(--fs-sm);color:var(--accent);text-decoration:underline}.insp-dep{font-size:var(--fs-sm);margin:4px 0 10px}.insp-display{margin-top:12px;border-top:1px solid var(--border);padding-top:8px}.insp-display>summary{cursor:pointer;color:var(--accent);font-size:var(--fs-meta)}.transitions{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.transition-btn{width:100%;text-align:left}.builder-console{flex:0 0 auto;height:160px;display:flex;flex-direction:column;background:var(--ink-950);color:var(--cream);border-top:1px solid #000}.builder-console.collapsed{height:auto}.console-head{display:flex;align-items:center;gap:var(--space-4);padding:6px 12px;border-bottom:1px solid var(--ink-700);flex:0 0 auto}.console-toggle,.console-clear{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-mono);text-transform:uppercase;background:none;border:none;color:var(--cream);cursor:pointer;padding:2px 4px}.console-clear{color:var(--slate-300)}.console-clear:hover{color:var(--cream)}.console-count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--slate-300)}.console-spacer{flex:1}.console-body{flex:1 1 auto;overflow-y:auto;padding:6px 10px}.console-empty{color:var(--slate-300);font-size:var(--fs-meta);padding:8px 2px}.log{border-left:3px solid var(--ink-600);background:var(--ink-900);padding:5px 9px;margin-bottom:5px;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.log.ok{border-left-color:var(--hue-teal)}.log.err{border-left-color:var(--accent)}.log.warn{border-left-color:var(--hue-gold);background:var(--ink-800)}.log-l1{display:flex;align-items:center;gap:8px;font-family:var(--font-mono);font-size:var(--fs-micro)}.log-meth{color:var(--hue-teal-lt);font-weight:var(--fw-bold);letter-spacing:var(--ls-mono)}.log-meth.note{color:var(--slate-300)}.log-path{color:var(--cream)}.log-st{margin-left:auto;font-weight:var(--fw-bold)}.log-st.ok{color:var(--hue-teal-lt)}.log-st.err{color:var(--accent)}.log-st.warn{color:var(--hue-gold)}.log-msg{color:var(--cream);font-size:var(--fs-meta);margin-top:3px}.log-det{color:var(--hue-gold);font-family:var(--font-mono);font-size:var(--fs-micro);margin-top:2px}@font-face{font-family:Hanken Grotesk;font-style:normal;font-weight:100 900;font-display:swap;src:url(/design/fonts/hanken-grotesk.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/design/fonts/space-mono-400.woff2) format("woff2")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/design/fonts/space-mono-700.woff2) format("woff2")}:root{--coral-50: #fff4ef;--coral-100: #fbede7;--coral-200: #f6e2d9;--coral-300: #f3ddd2;--coral-400: #efd5c8;--coral-500: #fc8265;--coral-600: #d6755d;--coral-700: #a85b47;--ink-950: #001d21;--ink-900: #06232a;--ink-850: #0c2328;--ink-800: #123037;--ink-750: #143339;--ink-700: #173a40;--ink-600: #24505a;--ink-500: #3a6b76;--white: #ffffff;--cream: #ede4dc;--cream-2: #f3ece5;--slate-300: #c9d3d8;--slate-500: #7f8a90;--slate-600: #5d666b;--black: #121212;--hue-teal: #54aeae;--hue-teal-lt: #74c9c9;--hue-orange: #ee8700;--hue-gold: #e9c22e}:root,[data-theme=light]{--surface-canvas: var(--coral-100);--surface-card: var(--white);--surface-sunken: var(--coral-200);--surface-raised: var(--white);--surface-inverse: var(--ink-950);--table-head-bg: var(--coral-200);--table-row-bg: var(--coral-100);--table-strip-bg: var(--coral-400);--header-bg: var(--ink-950);--header-fg: var(--cream);--header-muted: color-mix(in srgb, var(--cream) 60%, transparent);--text-strong: var(--ink-950);--text-body: #17323a;--text-muted: #5d7178;--text-faint: #8fa1a7;--text-on-accent: var(--white);--text-inverse: var(--cream);--accent: var(--coral-500);--accent-hover: var(--coral-600);--accent-press: var(--coral-700);--accent-tint: var(--coral-100);--accent-contrast: var(--white);--border: #eadcd3;--border-strong: #dcc9bd;--border-ondark: color-mix(in srgb, var(--cream) 16%, transparent);--focus-ring: var(--coral-500);--status-complete: var(--hue-teal);--status-complete-ink: #06322f;--status-progress: var(--hue-orange);--status-progress-ink: #3d2200;--status-pending: var(--hue-gold);--status-pending-ink: #3c3100;--status-blocked: var(--ink-950);--status-blocked-ink: var(--cream);--status-neutral: #d9cabf;--status-neutral-ink: #5d7178;--avatar-bg: var(--coral-500);--avatar-fg: var(--ink-950)}[data-theme=dark]{--surface-canvas: var(--ink-900);--surface-card: var(--ink-850);--surface-sunken: var(--ink-800);--surface-raised: var(--ink-700);--surface-inverse: var(--cream);--table-head-bg: var(--ink-800);--table-row-bg: var(--ink-850);--table-strip-bg: var(--ink-700);--header-bg: #041a20;--header-fg: var(--cream);--header-muted: color-mix(in srgb, var(--cream) 55%, transparent);--text-strong: var(--cream);--text-body: var(--cream-2);--text-muted: var(--slate-300);--text-faint: #7f9198;--text-on-accent: var(--white);--text-inverse: var(--ink-950);--accent: var(--coral-500);--accent-hover: #ff9077;--accent-press: var(--coral-600);--accent-tint: color-mix(in srgb, var(--coral-500) 16%, transparent);--accent-contrast: var(--ink-950);--border: color-mix(in srgb, var(--cream) 12%, transparent);--border-strong: color-mix(in srgb, var(--cream) 22%, transparent);--border-ondark: color-mix(in srgb, var(--cream) 16%, transparent);--status-complete: var(--hue-teal-lt);--status-complete-ink: #05231f;--status-progress: var(--hue-orange);--status-progress-ink: #2a1800;--status-pending: var(--hue-gold);--status-pending-ink: #2c2400;--status-blocked: #123138;--status-blocked-ink: var(--cream);--status-neutral: #24505a;--status-neutral-ink: var(--slate-300);--avatar-bg: var(--coral-500);--avatar-fg: var(--ink-950)}[data-theme=light-alt]{--surface-canvas: #eef1f1;--surface-card: #ffffff;--surface-sunken: #e4e9e9;--surface-raised: #ffffff;--surface-inverse: var(--ink-950);--table-head-bg: #e4e9e9;--table-row-bg: #eef1f1;--table-strip-bg: #dbe2e2;--text-strong: var(--ink-950);--text-body: #223033;--text-muted: #5a6a6d;--text-faint: #8a9899;--border: #e2e7e7;--border-strong: #ccd4d4}:root{--font-sans: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--fw-extra: 800;--fs-display: 30px;--fs-h1: 24px;--fs-h2: 20px;--fs-h3: 17px;--fs-body: 14px;--fs-sm: 13px;--fs-meta: 12px;--fs-label: 11px;--fs-micro: 10px;--lh-tight: 1.1;--lh-snug: 1.25;--lh-normal: 1.45;--ls-label: .14em;--ls-mono: .06em;--ls-tight: -.01em;--text-display: var(--fw-extra) var(--fs-display)/var(--lh-tight) var(--font-sans);--text-title: var(--fw-bold) var(--fs-h3)/var(--lh-snug) var(--font-sans);--text-row: var(--fw-medium) var(--fs-body)/var(--lh-snug) var(--font-sans)}.th-label{font-family:var(--font-mono);font-weight:var(--fw-regular);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-transform:uppercase;line-height:1}:root{--space-0: 0;--space-1: 2px;--space-2: 4px;--space-3: 6px;--space-4: 8px;--space-5: 12px;--space-6: 16px;--space-7: 20px;--space-8: 24px;--space-9: 32px;--space-10: 40px;--space-11: 48px;--space-12: 64px;--row-h: 40px;--group-h: 36px;--control-h: 32px;--control-h-sm: 24px;--radius-xs: 3px;--radius-sm: 5px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--radius-full: 50%;--border-w: 1px;--border-w-2: 2px;--shadow-xs: 0 1px 2px rgba(0, 29, 33, .06);--shadow-sm: 0 1px 3px rgba(0, 29, 33, .08), 0 1px 2px rgba(0, 29, 33, .04);--shadow-md: 0 4px 12px rgba(0, 29, 33, .1), 0 1px 3px rgba(0, 29, 33, .06);--shadow-lg: 0 12px 32px rgba(0, 29, 33, .16), 0 2px 8px rgba(0, 29, 33, .08);--shadow-accent: 0 6px 18px rgba(252, 130, 101, .35);--ease-standard: cubic-bezier(.2, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--dur-fast: .12s;--dur-normal: .18s;--dur-slow: .26s;--header-h: 64px;--sidebar-w: 56px;--container-max: 1440px}[data-theme=dark]{--shadow-xs: 0 1px 2px rgba(0, 0, 0, .35);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .45), 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 14px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .35);--shadow-lg: 0 14px 36px rgba(0, 0, 0, .6), 0 2px 8px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body{margin:0;height:100%}#root{height:100%}body{font:var(--fw-regular) var(--fs-body)/var(--lh-normal) var(--font-sans);color:var(--text-body);background:var(--surface-canvas);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}::selection{background:color-mix(in srgb,var(--accent) 30%,transparent)}.th-label,.nav-group-title,.field-label,.kv-key,table.data th{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-label);font-weight:var(--fw-regular)}a{color:inherit;text-decoration:none}code{font-family:var(--font-mono);font-size:.92em;background:var(--surface-sunken);padding:1px 5px;border-radius:var(--radius-xs);color:var(--text-strong)}.app-shell{display:flex;flex-direction:column;height:100vh;overflow:hidden}.app-body{flex:1 1 auto;display:grid;grid-template-columns:212px 1fr;min-height:0}.app-main{overflow:auto;padding:var(--space-8) var(--space-9);min-width:0}.topbar{display:flex;align-items:center;gap:var(--space-7);background:var(--header-bg);color:var(--header-fg);padding:0 var(--space-6);height:54px;flex:0 0 auto;border-bottom:1px solid var(--border-ondark)}.topbar-brand{font-weight:var(--fw-bold);letter-spacing:var(--ls-tight);font-size:16px;color:var(--header-fg);display:inline-flex;align-items:center;gap:8px}.topbar-brand .brand-mark{height:18px;width:auto;display:block}.topbar-brand .brand-tag{color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-mono);text-transform:uppercase}.topbar-org{display:inline-flex;align-items:center;gap:8px;padding:5px 11px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--cream) 8%,transparent);border:1px solid var(--border-ondark);font-size:var(--fs-sm);color:var(--header-fg)}.topbar-spacer{margin-left:auto}.topbar-actions{display:flex;align-items:center;gap:var(--space-5)}.topbar-user{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--header-fg)}.topbar-user .name{font-weight:var(--fw-semibold)}.topbar-user .sep{color:var(--header-muted)}.dot{width:9px;height:9px;border-radius:var(--radius-full);background:var(--slate-500);display:inline-block;flex:0 0 auto}.dot.up{background:var(--hue-teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--hue-teal) 26%,transparent)}.dot.down{background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 26%,transparent)}.theme-switch{display:inline-flex;gap:2px;padding:2px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--cream) 8%,transparent);border:1px solid var(--border-ondark)}.theme-switch button{height:22px;padding:0 10px;border:none;border-radius:var(--radius-pill);background:transparent;color:var(--header-muted);cursor:pointer;font-family:var(--font-mono);font-size:9px;letter-spacing:var(--ls-mono);text-transform:uppercase;font-weight:var(--fw-regular)}.theme-switch button:hover{color:var(--header-fg)}.theme-switch button[aria-pressed=true]{background:var(--accent);color:var(--accent-contrast)}.theme-switch button:focus-visible{outline:2px solid var(--focus-ring);outline-offset:1px}.sidebar{background:var(--surface-card);border-right:1px solid var(--border);overflow:auto;padding:var(--space-4) 0}.nav-group{padding:var(--space-3) 0}.nav-group-title{margin:10px 14px 5px;font-size:var(--fs-label);color:var(--text-faint)}.nav-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:7px 14px;cursor:pointer;font-size:var(--fs-sm);color:var(--text-body);transition:background var(--dur-fast) var(--ease-standard)}.nav-item:hover{background:var(--surface-sunken)}.nav-item.active{background:var(--accent-tint);color:var(--accent-press);font-weight:var(--fw-semibold);box-shadow:inset 3px 0 0 var(--accent)}[data-theme=dark] .nav-item.active{color:var(--accent)}.nav-item-label{display:inline-flex;align-items:center;gap:9px;min-width:0}.nav-item-icon{width:18px;text-align:center;font-size:14px}.nav-item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:var(--fw-semibold) var(--fs-sm)/1 var(--font-sans);cursor:pointer;background:var(--accent);color:var(--accent-contrast);border:1px solid var(--accent);border-radius:var(--radius-sm);padding:8px 13px;height:var(--control-h);white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),border-color var(--dur-fast) var(--ease-standard)}.btn:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn:active{background:var(--accent-press);border-color:var(--accent-press)}.btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.ghost{background:var(--surface-card);color:var(--text-body);border-color:var(--border-strong)}.btn.ghost:hover{background:var(--surface-sunken);border-color:var(--accent);color:var(--accent)}.btn.danger{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.btn.danger:hover{background:color-mix(in srgb,var(--accent) 26%,transparent);border-color:var(--accent)}.btn.link{background:none;border:none;color:inherit;text-decoration:underline;padding:0;height:auto;font:var(--fw-regular) var(--fs-meta)/1 var(--font-sans);opacity:.8}.btn.link:hover{opacity:1;background:none}.btn.sm{height:var(--control-h-sm);padding:4px 9px;font-size:var(--fs-meta)}.card{background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);padding:15px 17px;box-shadow:var(--shadow-sm)}.card>h3{margin:0 0 11px;font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--text-strong)}.page-header{display:flex;align-items:flex-start;gap:var(--space-6);margin-bottom:var(--space-8)}.page-header-main{min-width:0;flex:1 1 auto}.page-title{font:var(--fw-extra) var(--fs-h1)/var(--lh-tight) var(--font-sans);margin:0 0 4px;color:var(--text-strong);letter-spacing:var(--ls-tight)}.page-subtitle{color:var(--text-muted);margin:0;font-size:var(--fs-sm);max-width:74ch;line-height:1.5}.page-header-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field.full{grid-column:1 / -1}.field-label{font-size:var(--fs-micro);color:var(--text-muted)}.field-label .req{color:var(--accent);margin-left:2px}.field-hint{font-size:11px;line-height:1.4;color:var(--text-faint)}.control{font:var(--fw-regular) var(--fs-sm)/1.3 var(--font-sans);padding:7px 9px;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-body);width:100%}.control:focus{outline:2px solid var(--focus-ring);outline-offset:0;border-color:var(--accent)}.control:disabled{opacity:.55;cursor:not-allowed}textarea.control{resize:vertical;min-height:72px}.form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:11px 14px}.form-foot{margin-top:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.tbl-wrap{overflow:auto;border:1px solid var(--border);border-radius:var(--radius-md)}table.data{border-collapse:collapse;width:100%;font-size:var(--fs-meta)}table.data th,table.data td{border-bottom:1px solid var(--border);padding:7px 10px;text-align:left;white-space:nowrap;vertical-align:top}table.data th{background:var(--table-head-bg);position:sticky;top:0;font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-muted);z-index:1}table.data td{color:var(--text-body)}table.data tbody tr:hover td,table.data tr.clickable:hover td{background:var(--surface-sunken)}table.data tr.clickable{cursor:pointer}table.data td .nul{color:var(--text-faint)}.pill{font-family:var(--font-mono);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-mono);padding:2px 8px;border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--surface-card);color:var(--text-muted);display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.cat{font-family:var(--font-mono);font-size:var(--fs-micro);padding:3px 9px;border-radius:var(--radius-pill);font-weight:var(--fw-bold);letter-spacing:var(--ls-mono);text-transform:uppercase;white-space:nowrap;display:inline-block}.cat-todo{background:var(--status-neutral);color:var(--status-neutral-ink)}.cat-in_progress{background:var(--status-progress);color:var(--status-progress-ink)}.cat-on_hold{background:var(--status-pending);color:var(--status-pending-ink)}.cat-blocked{background:var(--status-blocked);color:var(--status-blocked-ink)}.cat-review{background:color-mix(in srgb,var(--accent) 20%,var(--surface-card));color:var(--accent-press)}.cat-done{background:var(--status-complete);color:var(--status-complete-ink)}.cat-cancelled{background:var(--status-neutral);color:var(--status-neutral-ink);opacity:.7;text-decoration:line-through}[data-theme=dark] .cat-review{color:var(--accent)}.jobstatus{font-family:var(--font-mono);font-size:var(--fs-micro);padding:3px 9px;border-radius:var(--radius-pill);font-weight:var(--fw-bold);letter-spacing:var(--ls-mono);text-transform:uppercase;white-space:nowrap;display:inline-block}.jobstatus-draft{background:var(--status-neutral);color:var(--status-neutral-ink)}.jobstatus-scheduled{background:var(--status-pending);color:var(--status-pending-ink)}.jobstatus-in_progress{background:var(--status-progress);color:var(--status-progress-ink)}.jobstatus-on_hold{background:var(--status-blocked);color:var(--status-blocked-ink)}.jobstatus-completed{background:var(--status-complete);color:var(--status-complete-ink)}.jobstatus-cancelled{background:var(--status-neutral);color:var(--status-neutral-ink);opacity:.7;text-decoration:line-through}.access{font-family:var(--font-mono);font-weight:var(--fw-bold);padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--fs-micro);text-transform:uppercase;letter-spacing:var(--ls-mono);white-space:nowrap;display:inline-block}.access-read_write_all{background:color-mix(in srgb,var(--status-complete) 20%,var(--surface-card));color:var(--status-complete-ink)}.access-read_write_some{background:color-mix(in srgb,var(--accent) 18%,var(--surface-card));color:var(--accent-press)}.access-read_only{background:color-mix(in srgb,var(--status-pending) 22%,var(--surface-card));color:var(--status-pending-ink)}[data-theme=dark] .access-read_write_all{color:var(--status-complete)}[data-theme=dark] .access-read_only{color:var(--status-pending)}[data-theme=dark] .access-read_write_some{color:var(--accent)}.badge{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:3px 9px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--cream) 10%,transparent);color:var(--header-fg);border:1px solid var(--border-ondark);white-space:nowrap;display:inline-block}.badge.role-admin{background:color-mix(in srgb,var(--accent) 22%,transparent);color:#ffd8cb;border-color:color-mix(in srgb,var(--accent) 42%,transparent)}.badge.role-supervisor{background:color-mix(in srgb,var(--hue-teal) 24%,transparent);color:#c6f0f0;border-color:color-mix(in srgb,var(--hue-teal) 44%,transparent)}.badge.role-worker{background:color-mix(in srgb,var(--cream) 12%,transparent);color:var(--cream)}.avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--avatar-bg);color:var(--avatar-fg);font-family:var(--font-mono);font-weight:var(--fw-bold);letter-spacing:0;text-transform:uppercase;flex:0 0 auto;overflow:hidden}.progress{display:flex;align-items:center;gap:8px}.progress-track{flex:1 1 auto;height:6px;min-width:60px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}.progress-fill{height:100%;background:var(--status-complete);border-radius:var(--radius-pill);transition:width var(--dur-normal) var(--ease-standard)}.progress-label{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-faint);white-space:nowrap}.count-badge{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-faint);min-width:18px;text-align:right}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:var(--space-7)}.tab{background:none;border:none;cursor:pointer;padding:9px 14px;font:var(--fw-semibold) var(--fs-sm)/1 var(--font-sans);color:var(--text-muted);border-bottom:2px solid transparent;margin-bottom:-1px;display:inline-flex;align-items:center;gap:7px}.tab:hover{color:var(--text-strong)}.tab.active{color:var(--accent-press);border-bottom-color:var(--accent)}[data-theme=dark] .tab.active{color:var(--accent)}.tab:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}.tab .tab-count{font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-faint)}.empty-state{border:1px dashed var(--border-strong);border-radius:var(--radius-lg);padding:var(--space-11) var(--space-8);text-align:center;color:var(--text-muted);background:color-mix(in srgb,var(--surface-sunken) 40%,transparent)}.empty-state .empty-icon{font-size:26px;margin-bottom:8px;opacity:.8}.empty-state .empty-title{color:var(--text-strong);font-weight:var(--fw-semibold);font-size:var(--fs-body);margin-bottom:4px}.empty-state .empty-msg{font-size:var(--fs-sm);max-width:52ch;margin:0 auto;line-height:1.5}.empty-state .empty-action{margin-top:var(--space-6)}.q-loading{display:flex;align-items:center;gap:10px;color:var(--text-muted);padding:var(--space-9);font-size:var(--fs-sm)}.spinner{width:18px;height:18px;border-radius:var(--radius-full);border:2px solid color-mix(in srgb,var(--accent) 30%,transparent);border-top-color:var(--accent);animation:spin .7s linear infinite;flex:0 0 auto}.spinner.lg{width:28px;height:28px;border-width:3px}@keyframes spin{to{transform:rotate(360deg)}}.q-error{border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);background:color-mix(in srgb,var(--accent) 8%,var(--surface-card));border-radius:var(--radius-lg);padding:var(--space-8);max-width:62ch}.q-error.perm{border-color:color-mix(in srgb,var(--status-pending) 50%,transparent);background:color-mix(in srgb,var(--status-pending) 14%,var(--surface-card))}.q-error-title{font-weight:var(--fw-bold);color:var(--text-strong);font-size:var(--fs-h3);margin:0 0 6px;display:flex;align-items:center;gap:8px}.q-error-msg{color:var(--text-body);font-size:var(--fs-sm);margin:0 0 12px;line-height:1.5}.q-error-code{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:2px 7px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding:7vh 20px 20px;background:color-mix(in srgb,var(--ink-950) 45%,transparent);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);overflow:auto}.modal{width:100%;max-width:640px;background:var(--surface-card);color:var(--text-body);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:20px 22px}.modal.wide{max-width:820px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px}.modal-title{margin:0;font-size:var(--fs-h2);font-weight:var(--fw-bold);color:var(--text-strong)}.modal-desc{color:var(--text-muted);font-size:var(--fs-sm);margin:2px 0 14px;line-height:1.5}.modal-close{background:none;border:none;cursor:pointer;color:var(--text-faint);font-size:20px;line-height:1;padding:2px 6px;border-radius:var(--radius-sm)}.modal-close:hover{color:var(--accent);background:var(--surface-sunken)}.toast-region{position:fixed;z-index:200;bottom:18px;right:18px;display:flex;flex-direction:column;gap:10px;width:min(380px,calc(100vw - 36px))}.toast{background:var(--surface-card);border:1px solid var(--border-strong);border-left:4px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:11px 13px;display:flex;gap:10px;align-items:flex-start}.toast .toast-body{min-width:0;flex:1 1 auto}.toast .toast-title{font-weight:var(--fw-semibold);color:var(--text-strong);font-size:var(--fs-sm);margin-bottom:2px}.toast .toast-msg{font-size:var(--fs-meta);color:var(--text-body);line-height:1.45;word-break:break-word}.toast .toast-code{display:inline-block;margin-top:6px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);text-transform:uppercase;padding:2px 7px;border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted)}.toast .toast-close{background:none;border:none;cursor:pointer;color:var(--text-faint);font-size:16px;line-height:1;padding:0 2px}.toast .toast-close:hover{color:var(--accent)}.toast.success{border-left-color:var(--status-complete)}.toast.error{border-left-color:var(--accent)}.toast.permission{border-left-color:var(--status-pending);background:color-mix(in srgb,var(--status-pending) 10%,var(--surface-card))}.toast.info{border-left-color:var(--hue-teal)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.stack{display:flex;flex-direction:column;gap:var(--space-6)}.row{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.hint{background:color-mix(in srgb,var(--status-pending) 16%,var(--surface-card));border:1px solid color-mix(in srgb,var(--status-pending) 40%,transparent);color:var(--status-pending-ink);padding:9px 13px;border-radius:var(--radius-md);font-size:var(--fs-meta)}[data-theme=dark] .hint{color:var(--status-pending)}@media(max-width:860px){.app-body{grid-template-columns:1fr}.sidebar{display:none}.app-main{padding:var(--space-7) var(--space-6)}}
