:root{--bg: #f3f5f7;--bg-2: #ffffff;--bg-3: #f3f5f7;--bg-4: #e6eaee;--line: #e4e9ee;--line-2: #d2dae1;--fg: #16212b;--fg-2: #5c6b78;--fg-3: #7f8d99;--brand: #006198;--brand-hover: #00507e;--brand-ink: #ffffff;--sky: #006198;--sky-raw: #70b8e0;--sky-soft: #eaf3f9;--ok: #1f8a56;--ok-soft: #e8f5ee;--warn: #a8690f;--warn-soft: #fbf3e2;--err: #b4322e;--err-soft: #fbe9e8;--ai: #0f8f62;--ai-ink: #ffffff;--ai-soft: #e6f4ee;--bar: #0b2033;--bar-fg: rgba(255, 255, 255, .72);--bar-fg-strong: #ffffff;--bar-line: rgba(255, 255, 255, .1);--shadow: 0 1px 2px rgba(22, 33, 43, .04);--shadow-2: 0 8px 24px rgba(22, 33, 43, .07);--radius: 8px;--radius-sm: 6px;--font: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono: ui-monospace, "Cascadia Mono", "SF Mono", Consolas, "Liberation Mono", monospace;--top: 60px;--motion-100: .1s;--motion-150: .15s;--motion-200: .2s;--motion-300: .3s;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-in: cubic-bezier(.7, 0, .84, 0);color-scheme:light}:root[data-theme=dark]{--bg: #0d151d;--bg-2: #131d27;--bg-3: #192431;--bg-4: #22303e;--line: #22303d;--line-2: #2f4050;--fg: #e8eef3;--fg-2: #a9b6c2;--fg-3: #7d8c9a;--brand: #3a95cf;--brand-hover: #4ea3d8;--sky: #70b8e0;--sky-soft: rgba(112, 184, 224, .12);--ok: #4ccf92;--ok-soft: rgba(76, 207, 146, .12);--warn: #e9b549;--warn-soft: rgba(233, 181, 73, .12);--err: #f28b86;--err-soft: rgba(242, 139, 134, .12);--ai: #3fd39d;--ai-ink: #07111b;--ai-soft: rgba(63, 211, 157, .12);--bar: #07111b;--shadow: inset 0 1px 0 rgba(255, 255, 255, .04);--shadow-2: 0 12px 32px rgba(0, 0, 0, .4);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font);font-size:14px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden;font-variant-numeric:tabular-nums}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4{margin:0;font-weight:600;line-height:1.2;text-wrap:balance}h1{font-size:24px;letter-spacing:-.01em}h2{font-size:18px}h3{font-size:15px}p{margin:0}code{font-family:var(--mono);font-size:13px}.mono{font-variant-numeric:tabular-nums;letter-spacing:.01em}::selection{background:var(--brand);color:#fff}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}@keyframes introIn{to{opacity:1;transform:none}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.muted{color:var(--fg-2)}.faint{color:var(--fg-3)}.small{font-size:14px}.tiny{font-size:12px;line-height:1.4}.lede{font-size:16px;line-height:1.55}.grid{display:grid;gap:16px}.grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.c4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.side{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.grid.side-r{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack{display:grid;gap:12px}.between{justify-content:space-between}.pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:500;color:var(--fg-2);white-space:nowrap;line-height:20px}.pill:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--fg-3);flex:none}.pill .dot{display:none}.pill.ok:before,.pill.live:before{background:var(--ok)}.pill.warn:before,.pill.mock:before,.pill.demo:before{background:var(--warn)}.pill.err:before{background:var(--err)}.pill.sky:before{background:var(--brand)}.pill.ai{color:var(--ai)}.pill.ai:before{background:var(--ai)}.pill.solid{color:var(--fg)}.pill.solid:before{background:var(--brand)}.pill:first-letter{text-transform:uppercase}.dot{width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}.chip{font-size:12px;color:var(--fg-3);white-space:nowrap}.chip.dark{font-size:13px;font-weight:600;color:var(--fg)}.chip.brand{color:var(--brand)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg);font-weight:500;cursor:pointer;transition:background var(--motion-150) var(--ease-out),border-color var(--motion-150) var(--ease-out),color var(--motion-150) var(--ease-out);white-space:nowrap;line-height:1.2}.btn:hover{border-color:var(--fg-3);text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary,.btn.sky{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover,.btn.sky:hover{background:var(--brand-hover);border-color:var(--brand-hover)}.btn.ai{background:var(--ai);border-color:var(--ai);color:var(--ai-ink)}.btn.ai:hover{filter:brightness(.94)}.btn.ai-ghost{border-color:var(--ai);color:var(--ai);background:var(--bg-2)}.ai-mark{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--ai);color:var(--ai-ink);flex:none}.btn.danger{color:var(--err)}.btn.danger:hover{border-color:var(--err);background:var(--err-soft)}.btn.sm{min-height:32px;padding:4px 10px;font-size:13px}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{border-color:transparent;background:var(--bg-3)}.btn .ico{width:16px;height:16px;flex:none}.icon-btn{position:relative;width:44px;height:44px;display:grid;place-items:center;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--fg-2);cursor:pointer;transition:background var(--motion-150) var(--ease-out),color var(--motion-150) var(--ease-out)}.icon-btn:hover{background:var(--bg-3);color:var(--fg)}.icon-btn .ico{width:20px;height:20px}.icon-btn .badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;border-radius:8px;background:var(--brand);color:#fff;font-size:12px;font-weight:600;line-height:16px;text-align:center}[data-tip]{position:relative}[data-tip]:after{content:attr(data-tip);position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%,-2px);padding:5px 8px;border-radius:var(--radius-sm);background:var(--fg);color:var(--bg-2);font-size:12px;font-weight:500;line-height:1.3;white-space:nowrap;opacity:0;pointer-events:none;z-index:40;transition:opacity var(--motion-150) var(--ease-out),transform var(--motion-150) var(--ease-out)}[data-tip]:hover:after,[data-tip]:focus-visible:after{opacity:1;transform:translate(-50%)}[data-tip].tip-left:after{left:auto;right:0;transform:translateY(-2px)}[data-tip].tip-left:hover:after,[data-tip].tip-left:focus-visible:after{transform:translate(0)}.card{background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);padding:20px 24px;min-width:0;box-shadow:var(--shadow)}.card.flat{background:transparent;box-shadow:none}.card.pad-0{padding:0}.card h2,.card h3{margin-bottom:4px}.card .sub{color:var(--fg-2);font-size:14px}.card-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.card-head .right{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.eyebrow{font-size:12px;font-weight:500;color:var(--fg-2);line-height:1.4}.stat{padding:16px 20px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);display:grid;gap:4px;align-content:start}.stat .eyebrow{font-size:13px;color:var(--fg-2)}.stat .v{font-size:28px;font-weight:500;line-height:1.15;letter-spacing:-.01em;color:var(--fg)}.stat .v.sky{color:var(--fg)}.grid.c4:has(>.stat){gap:0;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.grid.c4>.stat{border:0;border-radius:0;box-shadow:none;border-left:1px solid var(--line)}.grid.c4>.stat:first-child{border-left:0}.table{width:100%;border-collapse:collapse;font-size:14px}.table th{text-align:left;font-weight:500;color:var(--fg-2);font-size:12px;padding:10px 12px;border-bottom:1px solid var(--line-2);white-space:nowrap}.table td{padding:12px;border-bottom:1px solid var(--line);vertical-align:top}.table tr:last-child td{border-bottom:0}.table tr.click{cursor:pointer}.table tr.click:hover td{background:var(--bg-3)}.table td.mono{white-space:nowrap}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table-wrap{overflow-x:auto}.field{display:grid;gap:6px;min-width:0}.field label,.label{font-size:13px;font-weight:500;color:var(--fg-2)}.input,select.input,textarea.input{width:100%;min-height:36px;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg);min-width:0;transition:border-color var(--motion-150) var(--ease-out),box-shadow var(--motion-150) var(--ease-out)}.input:hover{border-color:var(--fg-3)}.input:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--sky-soft);outline:none}.input[readonly]{background:var(--bg-3);color:var(--fg-2)}textarea.input{min-height:112px;resize:vertical;line-height:1.55}.check{display:flex;align-items:center;gap:12px;min-height:44px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-2);transition:border-color var(--motion-150) var(--ease-out),background var(--motion-150) var(--ease-out);user-select:none}.check:hover{border-color:var(--fg-3)}.check.on{border-color:var(--brand);background:var(--sky-soft)}.check .box{width:18px;height:18px;border-radius:4px;border:1.5px solid var(--line-2);background:var(--bg-2);display:grid;place-items:center;flex:none}.check.on .box{background:var(--brand);border-color:var(--brand);color:#fff}.check-aside{margin-left:auto;flex:none;display:inline-flex;align-items:center;gap:6px}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:20px;overflow-x:auto}.tabs button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 0;color:var(--fg-2);font-weight:500;font-size:14px;cursor:pointer;white-space:nowrap;margin-bottom:-1px;transition:color var(--motion-150) var(--ease-out)}.tabs button span{color:var(--fg-3);font-weight:400}.tabs button.active{color:var(--fg);border-bottom-color:var(--brand)}.tabs button:hover{color:var(--fg)}.pipeline{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.stage{padding:12px 14px;border-left:1px solid var(--line);background:var(--bg-2);display:grid;gap:4px;cursor:pointer;position:relative;min-width:0;transition:background var(--motion-150) var(--ease-out)}.stage:first-child{border-left:0}.stage:hover{background:var(--bg-3)}.stage.active{box-shadow:inset 0 -2px 0 var(--brand)}.stage .n{font-size:12px;color:var(--fg-3)}.stage .t{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stage .bar{height:2px;border-radius:1px;background:var(--bg-4);margin:4px 0 2px}.stage .bar.in_progress{background:linear-gradient(90deg,var(--brand) 50%,var(--bg-4) 50%)}.stage .bar.review{background:linear-gradient(90deg,var(--warn) 80%,var(--bg-4) 80%)}.stage .bar.complete{background:var(--ok)}.stage .bar.blocked{background:var(--err)}.strip{display:flex;align-items:center;font-size:13px;overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius-sm);width:fit-content;max-width:100%}.strip .s{padding:6px 12px;border-left:1px solid var(--line);color:var(--fg-3);background:var(--bg-2);white-space:nowrap}.strip .s:first-child{border-left:0}.strip .s.done{color:var(--fg-2)}.strip .s.now{color:var(--fg);font-weight:500;box-shadow:inset 0 -2px 0 var(--brand)}.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px}.source{font-size:14px;white-space:pre-wrap;line-height:1.6;color:var(--fg-2);max-height:70vh;overflow:auto;padding:16px;background:var(--bg-3);border-radius:var(--radius-sm);border:1px solid var(--line)}.source mark{background:#fff3b0;color:var(--fg);border-radius:2px;padding:0 2px}:root[data-theme=dark] .source mark{background:#e9b5494d}.trace{font-size:12px;color:var(--brand);cursor:pointer;text-decoration:underline dotted}.editable{border:1px dashed transparent;border-radius:4px;padding:2px 4px;margin:-2px -4px}.editable:hover,.editable:focus{border-color:var(--line-2);outline:none;background:var(--bg-3)}.decision{display:grid;grid-template-columns:56px 1fr auto;gap:12px;padding:12px;border-bottom:1px solid var(--line);align-items:start}.decision:last-child{border-bottom:0}.decision.out{opacity:.55}.decision .code{font-weight:500;color:var(--brand)}.decision .why{font-size:12px;color:var(--fg-3);margin-top:2px}.diff{font-family:var(--mono);font-size:12px;white-space:pre-wrap;line-height:1.55;max-height:60vh;overflow:auto}.diff .add{background:var(--ok-soft);color:var(--ok)}.diff .del{background:var(--err-soft);color:var(--err);text-decoration:line-through}.empty{padding:40px 24px;text-align:center;color:var(--fg-2);border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);display:grid;gap:8px;justify-items:center}.empty h3{color:var(--fg)}.sheet{background:#fff;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--line-2)}.sheet svg{display:block;width:100%;height:auto}.toasts{position:fixed;right:24px;bottom:24px;display:grid;gap:8px;z-index:60;max-width:min(420px,calc(100vw - 48px))}.toast{padding:12px 16px;border-radius:var(--radius);background:var(--bg-2);border:1px solid var(--line-2);box-shadow:var(--shadow-2);font-size:14px;display:flex;gap:10px;align-items:center;animation:fadeIn var(--motion-200) var(--ease-out)}.toast:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ok);flex:none}.toast.err:before{background:var(--err)}.toast.warn:before{background:var(--warn)}.modal-bg{position:fixed;inset:0;background:#0b203380;z-index:50;display:grid;place-items:center;padding:24px;animation:fadeIn var(--motion-150) var(--ease-out)}.modal{width:min(720px,100%);max-height:90vh;overflow:auto;background:var(--bg-2);border:1px solid var(--line-2);border-radius:12px;padding:24px;box-shadow:var(--shadow-2)}.modal.wide{width:min(1080px,100%)}.avatar{width:32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:600;flex:none}.avatar.lg{width:40px;height:40px;font-size:14px}.menu{position:absolute;right:0;top:calc(100% + 8px);background:var(--bg-2);border:1px solid var(--line-2);border-radius:var(--radius);min-width:280px;box-shadow:var(--shadow-2);padding:6px;z-index:30;color:var(--fg);animation:fadeIn var(--motion-150) var(--ease-out)}.menu button{width:100%;display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:var(--radius-sm);background:none;border:0;text-align:left;cursor:pointer;min-height:40px}.menu button:hover{background:var(--bg-3)}.menu button.on{background:var(--sky-soft)}.kbd{font-family:var(--mono);font-size:12px;border:1px solid var(--line-2);border-radius:4px;padding:0 5px;line-height:18px}.callout{padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--line);border-left:3px solid var(--brand);background:var(--bg-2);font-size:14px}.callout.warn{border-left-color:var(--warn)}.callout.err{border-left-color:var(--err)}.bar-row{display:grid;grid-template-columns:200px 1fr 112px;gap:12px;align-items:center;font-size:14px}.bar-track{height:8px;background:var(--bg-4);border-radius:4px;overflow:hidden}.bar-fill{height:100%;background:var(--brand)}.bar-fill.best{background:var(--ok)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line)}.hub{min-height:100%;display:grid;grid-template-rows:var(--top) 1fr;overflow-x:clip}.hub-top{position:sticky;top:0;z-index:30;height:var(--top);display:flex;align-items:center;gap:16px;padding:0 16px 0 24px;background:var(--bar);color:var(--bar-fg-strong)}:root[data-theme=dark] .hub-top{border-bottom:1px solid var(--line)}.hub-brand{display:flex;align-items:baseline;gap:8px;background:none;border:0;color:#fff;cursor:pointer;padding:0;white-space:nowrap}.hub-brand .a{font-size:20px;font-weight:600;letter-spacing:-.02em}.hub-brand .b{font-size:15px;font-weight:400;color:var(--sky-raw)}.hub-tabs{display:flex;gap:4px;margin-left:16px;height:100%}.hub-tabs button{height:var(--top);background:none;border:0;color:var(--bar-fg);font-size:14px;font-weight:500;padding:0 12px;cursor:pointer;box-shadow:inset 0 -2px 0 transparent;transition:color var(--motion-150) var(--ease-out),box-shadow var(--motion-150) var(--ease-out)}.hub-tabs button:hover{color:#fff}.hub-tabs button.on{color:#fff;box-shadow:inset 0 -2px 0 var(--sky-raw)}.hub-top .spacer{flex:1}.hub-sub{font-size:14px;color:var(--bar-fg);padding-left:16px;border-left:1px solid var(--bar-line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hub-sub+.hub-tabs{margin-left:8px}.hub-main.gen-only{max-width:1480px;padding-top:24px}@media (max-width: 900px){.hub-sub{display:none}}.hub-search{position:relative;display:flex;align-items:center;gap:8px;width:min(300px,32vw);height:36px;padding:0 10px;border-radius:var(--radius-sm);background:#ffffff14;border:1px solid var(--bar-line);color:var(--bar-fg);transition:background var(--motion-150) var(--ease-out)}.hub-search:focus-within{background:#fff;color:var(--fg);border-color:#fff}.hub-search .ico{width:16px;height:16px;flex:none}.hub-search input{flex:1;min-width:0;border:0;background:none;color:inherit;font-size:14px}.hub-search input::placeholder{color:inherit;opacity:.8}.hub-search input:focus{outline:none}.hub-search .kbd{border-color:#ffffff40;color:inherit;opacity:.8}.hub-search:focus-within .kbd{border-color:var(--line-2)}.hub-search .menu{color:var(--fg)}.hub-top .icon-btn{color:var(--bar-fg)}.hub-top .icon-btn:hover{background:#ffffff1a;color:#fff}.hub-top .icon-btn .badge{background:var(--sky-raw);color:var(--bar)}.hub-top [data-tip]:after{background:#fff;color:var(--bar);box-shadow:var(--shadow-2)}.avatar-btn{border:0;background:none;padding:2px;cursor:pointer;border-radius:50%;width:44px;height:44px;display:grid;place-items:center}.avatar-btn .avatar{width:34px;height:34px;background:var(--sky-raw);color:var(--bar)}.hub-top .menu{color:var(--fg)}.hub-body{display:grid;grid-template-columns:248px minmax(0,1fr) 296px;align-items:start}.hub-left{position:sticky;top:var(--top);height:calc(100vh - var(--top));overflow:auto;background:var(--bg-2);border-right:1px solid var(--line);display:flex;flex-direction:column}.me{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;align-items:center;padding:20px 20px 16px;border-bottom:1px solid var(--line)}.me .me-co{grid-column:1 / -1;font-size:12px;color:var(--fg-3);margin-top:8px}.me-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.me-role{font-size:13px;color:var(--fg-2)}.hub-nav{display:grid;gap:2px;padding:8px 12px}.hub-nav .nav-section{margin:12px 12px 4px;font-size:12px;font-weight:500;color:var(--fg-3)}.hub-nav a{display:flex;align-items:center;gap:12px;min-height:40px;padding:8px 12px;border-radius:var(--radius-sm);color:var(--fg-2);font-size:14px;font-weight:500;transition:background var(--motion-150) var(--ease-out),color var(--motion-150) var(--ease-out)}.hub-nav a:hover{background:var(--bg-3);color:var(--fg);text-decoration:none}.hub-nav a.active{background:var(--bg-3);color:var(--fg);box-shadow:inset 2px 0 0 var(--brand)}.hub-nav a .ico{width:18px;height:18px;flex:none;color:var(--fg-3)}.hub-nav a.active .ico{color:var(--brand)}.hub-nav a .count{margin-left:auto;min-width:20px;text-align:center;font-size:12px;font-weight:600;color:var(--brand);background:var(--sky-soft);border-radius:10px;padding:0 6px;line-height:20px}.hub-left-foot{margin-top:auto;padding:16px 20px;border-top:1px solid var(--line);display:grid;gap:8px}.hub-main{padding:32px 40px 64px;min-width:0;max-width:1120px;width:100%;margin:0 auto}.hub-body.wide{grid-template-columns:248px minmax(0,1fr)}.hub-body.wide .hub-main{max-width:1480px}.hub-body.wide .hub-main:has(.gen),.hub-body.focus .hub-main{padding-bottom:12px}.hub-body.focus{grid-template-columns:minmax(0,1fr)}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.page-head .crumbs{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--fg-3);margin-bottom:8px}.page-head .crumbs .sep{color:var(--line-2)}.page-head h1{font-size:32px;font-weight:600;letter-spacing:-.015em;line-height:1.15}.page-head .intro{margin-top:8px;color:var(--fg-2);font-size:16px;max-width:64ch}.hub-right{position:sticky;top:var(--top);height:calc(100vh - var(--top));overflow:auto;background:var(--bg-2);border-left:1px solid var(--line);padding:24px 20px 40px;display:grid;gap:4px;align-content:start}.rail-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.rail-head .eyebrow{font-size:14px;font-weight:600;color:var(--fg)}.rail-sec{padding:16px 0 8px;border-top:1px solid var(--line)}.rail-item{display:grid;grid-template-columns:40px 1fr;gap:12px;width:100%;text-align:left;background:none;border:0;padding:12px 0;border-bottom:1px solid var(--line);cursor:pointer;color:inherit}.rail-item:last-child{border-bottom:0}.rail-item:hover .t{color:var(--brand)}.rail-item .date{display:grid;justify-items:center;align-content:start;line-height:1.1}.rail-item .date b{font-size:20px;font-weight:500}.rail-item .date span{font-size:12px;color:var(--fg-3)}.rail-item .date.mono-sm{font-size:12px;font-weight:500;color:var(--fg-2);padding-top:4px}.rail-item .body{display:grid;gap:2px;min-width:0}.rail-item .t{font-weight:500;font-size:14px;line-height:1.3;transition:color var(--motion-150) var(--ease-out)}.rail-item .s{font-size:12px;color:var(--fg-2)}.rail-item .chip,.hub-phone{display:none}.gate{min-height:100%;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);background:var(--bg-2);color:var(--fg)}.gate-art{position:relative;background:var(--bar);color:#fff;overflow:hidden;min-height:100vh}.gate-art svg{position:absolute;inset:0;width:100%;height:100%}.gate-art .mark{position:absolute;left:48px;top:40px;display:flex;align-items:baseline;gap:10px;opacity:0;animation:introIn var(--motion-300) var(--ease-out) .1s forwards;transform:translateY(6px)}.gate-art .mark .a{font-size:28px;font-weight:600;letter-spacing:-.02em}.gate-art .mark .b{font-size:20px;color:var(--sky-raw)}.gate-art .claim{position:absolute;left:48px;bottom:48px;max-width:34ch;font-size:18px;line-height:1.4;color:#ffffffd1;opacity:0;transform:translateY(6px);animation:introIn var(--motion-300) var(--ease-out) .25s forwards}.gate-art .claim small{display:block;margin-top:12px;font-size:13px;color:#ffffff8c}.gate-body{display:grid;place-items:center;padding:48px 32px}.gate-inner{width:min(400px,100%);display:grid;gap:24px}.gate-inner h1{font-size:28px}.gate-inner .enter-title{color:var(--fg-2);font-size:14px;margin-top:8px}.gate .enter{display:grid;gap:16px}.gate .roles{display:grid;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.gate .roles button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:52px;padding:12px 16px;border:0;border-top:1px solid var(--line);background:var(--bg-2);color:var(--fg);font-size:14px;font-weight:500;cursor:pointer;text-align:left;transition:background var(--motion-150) var(--ease-out)}.gate .roles button:first-child{border-top:0}.gate .roles button:hover{background:var(--bg-3)}.gate .roles button small{color:var(--fg-2);font-size:13px;font-weight:400}.gate .ms{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 16px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg);font-weight:500;cursor:pointer}.gate .ms:hover{border-color:var(--fg-3)}.gate-foot{font-size:12px;color:var(--fg-3)}.proj-list{display:grid}.proj-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto 20px;gap:16px;align-items:center;width:100%;min-height:64px;padding:12px 20px;background:none;border:0;border-top:1px solid var(--line);color:inherit;text-align:left;cursor:pointer;transition:background var(--motion-150) var(--ease-out)}.proj-row:first-child{border-top:0}.proj-row:hover{background:var(--bg-3)}.proj-no{font-size:13px;color:var(--fg-3);font-variant-numeric:tabular-nums}.proj-main{display:grid;gap:2px;min-width:0}.proj-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-sub{font-size:13px;color:var(--fg-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-side{display:grid;gap:6px;justify-items:end}.proj-bars{display:flex;gap:3px}.proj-bars .b{width:14px;height:3px;border-radius:2px;background:var(--bg-4)}.proj-bars .b.complete{background:var(--ok)}.proj-bars .b.in_progress{background:var(--brand)}.proj-bars .b.review{background:var(--warn)}.proj-bars .b.blocked{background:var(--err)}.proj-chev{width:16px;height:16px;color:var(--fg-3);transform:rotate(-90deg)}.tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--radius);background:var(--bg-2);overflow:hidden}.tool{display:flex;align-items:center;gap:12px;padding:12px 16px;min-height:56px;border-left:1px solid var(--line);color:inherit;transition:background var(--motion-150) var(--ease-out)}.tool:first-child{border-left:0}.tool:hover{background:var(--bg-3);text-decoration:none}.tool>.ico{width:20px;height:20px;color:var(--brand);flex:none}.tool .chev{width:16px;height:16px;color:var(--fg-3);transform:rotate(-90deg);margin-left:auto}.tool-body{display:grid;gap:1px;min-width:0}.tool-title{font-weight:500}@media (max-width: 760px){.proj-row{grid-template-columns:minmax(0,1fr) 20px}.proj-no,.proj-side{display:none}.tools{grid-template-columns:1fr}.tool{border-left:0;border-top:1px solid var(--line)}.tool:first-child{border-top:0}}.insp{display:grid;gap:24px}.composer-grid{display:grid;grid-template-columns:224px minmax(0,1fr);gap:24px;align-items:start}.photo-slot{width:100%;aspect-ratio:4 / 3;display:grid;place-content:center;justify-items:center;gap:4px;border:1px dashed var(--line-2);border-radius:var(--radius);background:var(--bg-3);color:var(--fg-2);cursor:pointer;font-weight:500;transition:border-color var(--motion-150) var(--ease-out),background var(--motion-150) var(--ease-out)}.photo-slot:hover{border-color:var(--brand);color:var(--fg)}.photo-slot .ico{width:28px;height:28px;color:var(--fg-3)}.photo-slot.has{aspect-ratio:auto;border-style:solid;padding:8px;background:var(--bg-2);cursor:default;gap:8px}.photo-slot.has img{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:var(--radius-sm);display:block}.dictate{position:relative}.dictate textarea.input{padding-right:56px}.dictate .mic{position:absolute;right:6px;top:6px;width:40px;height:40px;border:1px solid var(--line-2);background:var(--bg-2);color:var(--fg-2)}.dictate .mic:hover{border-color:var(--brand);color:var(--brand)}.dictate .mic.on{background:var(--err-soft);border-color:var(--err);color:var(--err)}.dictate.on textarea.input{border-color:var(--err)}.proposal{display:grid;gap:10px;padding:12px 16px;border:1px solid var(--ai);border-radius:var(--radius);background:var(--ai-soft)}.proposal textarea.input{background:var(--bg-2)}.obs{display:grid;grid-template-columns:160px minmax(0,1fr);gap:20px;padding:16px}.obs-photo{width:160px;height:120px;object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--line);display:block}.obs-photo.empty{display:grid;place-items:center;background:var(--bg-3);color:var(--fg-3)}.obs-photo.empty .ico{width:24px;height:24px}.obs-body{min-width:0}.obs-text{margin-top:8px;white-space:pre-wrap;line-height:1.55}@media (max-width: 760px){.composer-grid,.obs{grid-template-columns:1fr}.obs-photo{width:100%;height:auto;aspect-ratio:4 / 3}}.gen-notice{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--sky-soft);font-size:13px;color:var(--fg-2);flex:none}.gen-notice b{color:var(--fg);font-weight:600}.gen{--gen-h: calc(100vh - var(--top) - 24px);display:grid;grid-template-columns:384px minmax(0,1fr);gap:16px;align-items:start;scroll-margin-top:72px}.gen-side{display:flex;flex-direction:column;height:var(--gen-h);min-height:420px;background:var(--bg-2);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.gen-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--line);flex:none}.gen-steps li+li{border-left:1px solid var(--line)}.gen-steps button{width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;background:none;border:0;box-shadow:inset 0 -2px 0 transparent;color:var(--fg-2);cursor:pointer;text-align:left;min-height:56px;transition:box-shadow var(--motion-150) var(--ease-out),background var(--motion-150) var(--ease-out)}.gen-steps button:hover{background:var(--bg-3)}.gen-steps button .n{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:500;background:var(--bg-3);color:var(--fg-2)}.gen-steps button .t{display:grid;min-width:0}.gen-steps button .l{font-size:13px;font-weight:500;color:var(--fg)}.gen-steps button .s{font-size:12px;color:var(--fg-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gen-steps button.on{box-shadow:inset 0 -2px 0 var(--brand)}.gen-steps button.on .n{background:var(--brand);color:#fff}.gen-panel{flex:1;min-height:0;overflow:auto;padding:16px}.gen-group{display:grid;gap:8px}.gen-group-head{display:flex;align-items:center;gap:8px;width:100%;padding:4px 0;background:none;border:0;cursor:pointer;color:inherit;text-align:left}.gen-group-head.static{cursor:default}.gen-group-head .eyebrow{margin:0;flex:1;font-size:13px;font-weight:600;color:var(--fg)}.gen-group-head .chev{width:14px;height:14px;color:var(--fg-3);transition:transform var(--motion-150) var(--ease-out);transform:rotate(-90deg)}.gen-group-head .chev.open{transform:rotate(0)}.gen-input{display:grid;gap:6px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2)}.gen-input>label{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;font-weight:500}.gen-impact{font-size:12px;font-weight:500;white-space:nowrap;color:var(--fg-3)}.gen-impact.adds{color:var(--brand)}.gen-impact.holds{color:var(--fg-2)}.gen-master{display:flex;align-items:center;gap:12px;width:100%;padding:12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg-2);color:inherit;text-align:left;cursor:pointer;transition:border-color var(--motion-150) var(--ease-out),background var(--motion-150) var(--ease-out)}.gen-master:hover{border-color:var(--fg-3)}.gen-master.on{border-color:var(--brand);background:var(--sky-soft)}.gen-master .v{flex:none;min-width:36px;padding:2px 8px;border-radius:4px;background:var(--bg-3);color:var(--fg-2);font-size:12px;font-weight:500;text-align:center}.gen-master.on .v{background:var(--brand);color:#fff}.gen-master .t{display:grid;min-width:0;flex:1}.gen-master .ico{color:var(--brand);width:16px;height:16px}.gen-sec{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center}.gen-sec .check{align-items:flex-start}.gen-sec .check .box{margin-top:2px}.gen-sec.overridden .check{border-style:dashed}.gen-foot{border-top:1px solid var(--line);padding:12px 16px;display:grid;gap:8px;flex:none}.gen-foot-sum{display:flex;justify-content:space-between;gap:8px;font-size:13px}.gen-main{display:grid;gap:8px;min-width:0}.gen-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;min-height:40px}.gen-bar a.pill{text-decoration:none}.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:var(--radius-sm);overflow:hidden;background:var(--bg-2)}.seg button{background:none;border:0;padding:6px 12px;min-height:32px;font-size:13px;font-weight:500;color:var(--fg-2);cursor:pointer;transition:background var(--motion-150) var(--ease-out)}.seg button+button{border-left:1px solid var(--line-2)}.seg button:hover{background:var(--bg-3)}.seg button.on{background:var(--fg);color:var(--bg-2)}.gen-paper{background:var(--bg-4);border:1px solid var(--line);border-radius:var(--radius);padding:24px;height:calc(var(--gen-h) - 48px);min-height:380px;overflow:auto}.pdf-host{display:grid;gap:16px;justify-items:center}.pdf-host.zoomed{justify-items:start}.pdf-pages{display:grid;gap:24px;width:100%;justify-items:center}.pdf-host.zoomed .pdf-pages{justify-items:start;width:max-content}.pdf-page{max-width:100%;height:auto;background:#fff;border:1px solid rgba(22,33,43,.08);box-shadow:0 4px 16px #16212b12;border-radius:2px}.pdf-host.zoomed .pdf-page{max-width:none}.pdf-empty{color:var(--fg-3);padding:40px;font-size:14px}@media (max-width: 1280px){.hub-body{grid-template-columns:232px minmax(0,1fr)}.hub-right{display:none}}@media (max-width: 1100px){.grid.c4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.c4>.stat:nth-child(odd){border-left:0}.grid.c4>.stat:nth-child(n+3){border-top:1px solid var(--line)}.grid.side,.grid.side-r,.split,.gen{grid-template-columns:1fr}.gen-side{height:auto;max-height:70vh}.gen-paper{height:70vh}.pipeline{grid-template-columns:repeat(3,minmax(0,1fr))}.stage:nth-child(3n+1){border-left:0}.stage:nth-child(n+4){border-top:1px solid var(--line)}}@media (max-width: 900px){.hub-body{grid-template-columns:1fr}.hub-left{display:none}.hub-main{padding:24px 16px 96px}.hub-tabs{display:none}.hub-top{gap:8px;padding:0 8px 0 16px}.hub-brand .b,.hub-search .kbd,.hub-top .icon-btn.theme{display:none}.hub-search{width:clamp(120px,36vw,220px)}.page-head h1{font-size:26px}.page-head .intro{max-width:100%;font-size:15px}.hub-phone{position:fixed;bottom:0;left:0;right:0;z-index:25;display:flex;justify-content:space-around;background:var(--bg-2);border-top:1px solid var(--line);padding:4px 8px calc(4px + env(safe-area-inset-bottom,0px))}.hub-phone a{display:grid;justify-items:center;gap:2px;min-width:56px;min-height:48px;padding:6px 8px;border-radius:var(--radius-sm);color:var(--fg-3);font-size:12px;font-weight:500}.hub-phone a.active{color:var(--brand)}.hub-phone .ico{width:22px;height:22px}.gate{grid-template-columns:1fr}.gate-art{min-height:260px}.gate-art .mark{left:24px;top:24px}.gate-art .claim{left:24px;bottom:24px;font-size:15px;max-width:30ch}.gate-body{padding:32px 16px 48px}}@media (max-width: 760px){.grid.c2,.grid.c3{grid-template-columns:1fr}.pipeline{grid-template-columns:repeat(2,minmax(0,1fr))}.stage:nth-child(n){border-left:1px solid var(--line);border-top:0}.stage:nth-child(odd){border-left:0}.stage:nth-child(n+3){border-top:1px solid var(--line)}.bar-row{grid-template-columns:1fr}.modal-bg{padding:12px}.modal{padding:20px 16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}.gate-art .mark,.gate-art .claim{opacity:1;transform:none}}:root{--bg: #f2f5f9;--bg-3: #f1f4f8;--bg-4: #e3e8ee;--line: #e2e8ef;--line-2: #cfd8e1;--fg: #101c27;--fg-2: #536374;--fg-3: #7b8a99;--brand: #006198;--brand-hover: #00507e;--brand-2: #0a84c6;--sky-soft: #e6f2fa;--bar: #081a2b;--bar-2: #0d2942;--shadow: 0 1px 2px rgba(16, 28, 39, .05), 0 1px 1px rgba(16, 28, 39, .03);--shadow-2: 0 4px 8px -2px rgba(16, 28, 39, .06), 0 16px 40px -8px rgba(16, 28, 39, .16);--shadow-lift: 0 2px 4px rgba(16, 28, 39, .05), 0 10px 24px -6px rgba(16, 28, 39, .12);--ring: 0 0 0 3px rgba(10, 132, 198, .22);--radius: 12px;--radius-sm: 8px;--top: 60px;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}:root[data-theme=dark]{--bg: #0a121a;--bg-2: #111b25;--bg-3: #17232f;--bg-4: #213040;--line: #1f2d3a;--line-2: #2c3e4f;--brand: #3d9ddb;--brand-hover: #56abe2;--brand-2: #5bb4ea;--bar: #060f18;--bar-2: #0b1c2c;--shadow: inset 0 1px 0 rgba(255, 255, 255, .04), 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 16px 48px rgba(0, 0, 0, .5);--shadow-lift: 0 10px 28px rgba(0, 0, 0, .45);--ring: 0 0 0 3px rgba(91, 180, 234, .3)}body{background:radial-gradient(1200px 600px at 100% -10%,rgba(10,132,198,.06),transparent 60%),var(--bg);background-attachment:fixed;letter-spacing:-.003em}h1,h2,h3{letter-spacing:-.015em}:focus-visible{outline:none;box-shadow:var(--ring);border-radius:6px}.spacer{flex:1}.btn{border-radius:9px;box-shadow:0 1px 1px #101c270a;transition:background var(--motion-150) var(--ease-out),border-color var(--motion-150) var(--ease-out),box-shadow var(--motion-150) var(--ease-out),transform var(--motion-100) var(--ease-out)}.btn:hover:not(:disabled){box-shadow:0 2px 6px #101c2714}.btn:active:not(:disabled){transform:translateY(1px) scale(.99);box-shadow:none}.btn.primary,.btn.sky{background:linear-gradient(180deg,var(--brand-2),var(--brand));border-color:var(--brand);box-shadow:inset 0 1px #ffffff2e,0 1px 2px #00619859,0 4px 12px -2px #0061984d}.btn.primary:hover:not(:disabled),.btn.sky:hover:not(:disabled){background:linear-gradient(180deg,var(--brand-2),var(--brand-hover));box-shadow:inset 0 1px #ffffff2e,0 2px 4px #00619866,0 8px 18px -4px #00619866}.btn.ghost,.btn.ghost:hover{box-shadow:none}.btn.lg{min-height:46px;padding:10px 18px;font-size:15px;font-weight:600;border-radius:11px}.btn.danger.solid{background:var(--err);border-color:var(--err);color:#fff}.btn.danger.solid:hover{filter:brightness(.94);background:var(--err)}button.link{background:none;border:0;padding:0;color:var(--brand);font-weight:500;cursor:pointer;text-align:left}button.link:hover{text-decoration:underline}.input,select.input,textarea.input{border-radius:9px;min-height:40px;padding:8px 12px}.input:focus{border-color:var(--brand-2);box-shadow:var(--ring)}.input.code{font-size:22px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums;min-height:52px}.check{border-radius:10px}.check.on{box-shadow:inset 0 0 0 1px var(--brand)}.pill{padding:2px 10px 2px 8px;border-radius:999px;background:var(--bg-3);border:1px solid var(--line);font-size:12.5px;line-height:20px}.pill.ok,.pill.live{background:var(--ok-soft);border-color:transparent;color:var(--ok)}.pill.warn,.pill.mock,.pill.demo{background:var(--warn-soft);border-color:transparent;color:var(--warn)}.pill.err{background:var(--err-soft);border-color:transparent;color:var(--err)}.pill.sky,.pill.solid{background:var(--sky-soft);border-color:transparent;color:var(--brand)}.pill.ai{background:var(--ai-soft);border-color:transparent}.hub-top .pill,.hub-left-foot .pill{background:transparent;border-color:transparent;padding:0}.card{border-radius:var(--radius);box-shadow:var(--shadow);transition:box-shadow var(--motion-200) var(--ease-out),transform var(--motion-200) var(--ease-out),border-color var(--motion-200) var(--ease-out)}.card[style*="cursor: pointer"]:hover,.card.click:hover{box-shadow:var(--shadow-lift);transform:translateY(-2px);border-color:var(--line-2)}.stat{position:relative;padding:18px 22px}.stat .v{font-size:30px;font-weight:600;letter-spacing:-.02em}.grid.c4:has(>.stat){box-shadow:var(--shadow)}.grid.c4>.stat:after{content:"";position:absolute;left:22px;bottom:0;width:28px;height:3px;border-radius:3px 3px 0 0;background:linear-gradient(90deg,var(--brand-2),var(--sky-raw));opacity:.9}.table th{font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--fg-3);background:color-mix(in srgb,var(--bg-3) 60%,transparent)}.table tr.click:hover td{background:var(--sky-soft)}.callout{border-radius:10px;background:var(--sky-soft);border-color:transparent;border-left:3px solid var(--brand)}.callout.warn{background:var(--warn-soft)}.callout.err{background:var(--err-soft)}.callout.ok{background:var(--ok-soft);border-left-color:var(--ok)}.empty{border-style:dashed;border-color:var(--line-2);background:transparent;padding:48px 24px}.tabs button{padding:12px 2px}.tabs button span{display:inline-block;min-width:20px;padding:0 6px;border-radius:10px;background:var(--bg-4);color:var(--fg-2);font-size:12px;font-weight:600;line-height:20px;text-align:center}.tabs button.active span{background:var(--sky-soft);color:var(--brand)}.modal-bg{background:#081a2b8c;backdrop-filter:blur(3px)}.modal{border-radius:16px;border-color:var(--line);animation:modalIn var(--motion-200) var(--ease-out)}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}}.toast{border-radius:12px;box-shadow:var(--shadow-2);animation:toastIn var(--motion-300) var(--ease-out)}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)}}.menu{border-radius:14px;box-shadow:var(--shadow-2);border-color:var(--line)}.avatar{background:linear-gradient(135deg,var(--brand-2),var(--brand))}.avatar.off{background:var(--bg-4);color:var(--fg-3)}.hub-top{background:linear-gradient(90deg,var(--bar),var(--bar-2));box-shadow:0 1px #70b8e02e,0 6px 20px -8px #081a2b8c;padding-top:var(--safe-top);height:calc(var(--top) + var(--safe-top))}.hub{grid-template-rows:calc(var(--top) + var(--safe-top)) 1fr}.hub-left,.hub-right{top:calc(var(--top) + var(--safe-top));height:calc(100vh - var(--top) - var(--safe-top))}.hub-brand .a{font-weight:700}.hub-brand .b{background:linear-gradient(90deg,#8fd0f5,#70b8e0);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:500}.hub-tabs{align-items:center;gap:2px}.hub-tabs button{position:relative;height:36px;padding:0 14px;border-radius:9px;box-shadow:none;transition:background var(--motion-150) var(--ease-out),color var(--motion-150) var(--ease-out)}.hub-tabs button:hover{background:#ffffff12}.hub-tabs button.on{background:#70b8e029;color:#fff;box-shadow:inset 0 0 0 1px #70b8e047}.tab-dot{position:absolute;top:6px;right:6px;width:7px;height:7px;border-radius:50%;background:#ffb547;box-shadow:0 0 0 2px var(--bar-2)}.hub-search{border-radius:10px}.hub-left{background:color-mix(in srgb,var(--bg-2) 92%,transparent)}.me{background:linear-gradient(180deg,var(--sky-soft),transparent)}.hub-nav a{border-radius:10px;position:relative}.hub-nav a.active{background:var(--sky-soft);color:var(--brand);box-shadow:none;font-weight:600}.hub-nav a.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--brand)}.hub-main{animation:pageIn var(--motion-300) var(--ease-out)}@keyframes pageIn{0%{opacity:0;transform:translateY(6px)}}.page-head h1{font-size:30px;font-weight:700;letter-spacing:-.025em}.page-head .crumbs{color:var(--brand);font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.pipeline,.tools,.strip{box-shadow:var(--shadow)}.stage.active,.proj-row:hover{background:var(--sky-soft)}.rail-item .date b{color:var(--brand);font-weight:600}@media (max-width: 900px){.hub-phone{padding:6px 8px calc(6px + var(--safe-bottom));background:color-mix(in srgb,var(--bg-2) 94%,transparent);backdrop-filter:blur(12px);box-shadow:0 -8px 24px -12px #101c2740}.hub-phone a{border-radius:12px;transition:background var(--motion-150) var(--ease-out),color var(--motion-150) var(--ease-out)}.hub-phone a.active{background:var(--sky-soft);color:var(--brand)}.hub-phone a:hover{text-decoration:none}.hub-main{padding-bottom:calc(104px + var(--safe-bottom))}.toasts{bottom:calc(84px + var(--safe-bottom));right:12px;left:12px;max-width:none}.page-head h1{font-size:24px}.modal-bg{align-items:end;padding:0}.modal,.modal.wide{width:100%;max-height:92vh;border-radius:18px 18px 0 0;padding-bottom:calc(20px + var(--safe-bottom));animation:sheetIn var(--motion-300) var(--ease-out)}.input,select.input,textarea.input{font-size:16px;min-height:44px}.btn{min-height:42px}}@keyframes sheetIn{0%{transform:translateY(100%)}}.gate{background:var(--bg-2)}.gate-art{padding-top:var(--safe-top)}.gate-inner{width:min(420px,100%);gap:28px}.gate-inner h1{font-size:30px;font-weight:700;letter-spacing:-.025em}.gate .enter{gap:18px}.gate-links{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:14px}.form-err{padding:10px 12px;border-radius:9px;background:var(--err-soft);color:var(--err);font-size:14px;font-weight:500}.pw{position:relative;display:block}.pw .input{padding-right:64px}.pw-toggle{position:absolute;right:6px;top:50%;transform:translateY(-50%);height:30px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:var(--fg-2);font-size:13px;font-weight:600;cursor:pointer}.pw-toggle:hover{background:var(--bg-3);color:var(--fg)}.pw-meter{display:block;height:4px;border-radius:2px;background:var(--bg-4);overflow:hidden}.pw-meter span{display:block;height:100%;border-radius:2px;background:var(--warn);transition:width var(--motion-200) var(--ease-out),background var(--motion-200) var(--ease-out)}.pw-meter span.ok{background:var(--brand-2)}.pw-meter span.strong{background:var(--ok)}.spiral-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:spiralDraw 2.2s var(--ease-out) .2s forwards}@keyframes spiralDraw{to{stroke-dashoffset:0}}.splash{min-height:100%;display:grid;place-content:center;justify-items:center;gap:20px;background:linear-gradient(135deg,#081a2b,#0d2942 60%,#00507e);color:#fff}.splash-mark{display:flex;align-items:baseline;gap:10px}.splash-mark .a{font-size:34px;font-weight:700;letter-spacing:-.03em}.splash-mark .b{font-size:24px;color:var(--sky-raw)}.splash-bar{width:120px;height:3px;border-radius:2px;background:#ffffff24;overflow:hidden;position:relative}.splash-bar:after{content:"";position:absolute;inset:0;width:40%;border-radius:2px;background:var(--sky-raw);animation:splashRun 1.1s ease-in-out infinite}@keyframes splashRun{0%{transform:translate(-110%)}to{transform:translate(260%)}}.toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:14px 16px;border-bottom:1px solid var(--line)}.person{display:flex;align-items:center;gap:12px;min-width:0}.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px 24px}.facts.wide{grid-template-columns:1fr;gap:0}.facts>div{display:grid;gap:2px}.facts.wide>div{grid-template-columns:220px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line)}.facts.wide>div:last-child{border-bottom:0}.facts span{font-size:12.5px;color:var(--fg-3)}.facts b{font-weight:500}.facts.wide span{font-size:14px;font-weight:600;color:var(--fg)}.facts.wide b{color:var(--fg-2);font-weight:400}.access-group{border:0;padding:0;margin:0 0 14px;min-width:0}.access-group legend{padding:0;margin-bottom:8px;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3)}.access-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:8px}.access-grid .check{min-height:40px;padding:8px 12px;font-size:14px}.access-grid.read{gap:4px 24px;font-size:14px}.access-grid.read .yes{color:var(--fg)}.access-grid.read .no{color:var(--fg-3)}.mark{font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;padding:1px 7px;border-radius:999px}.mark.added{background:var(--ok-soft);color:var(--ok)}.mark.removed{background:var(--err-soft);color:var(--err)}.mark.sens{background:var(--warn-soft);color:var(--warn)}.request{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 24px;align-items:center}.request-note{grid-column:1 / -1;padding:10px 12px;border-radius:9px;background:var(--bg-3);color:var(--fg-2)}.table.matrix th.c,.table.matrix td.c{text-align:center;width:120px}.table.matrix tr.group td{background:var(--bg-3);font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--fg-3);padding:8px 12px}.tick{color:var(--ok);font-weight:700}.qr{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.qr img{border-radius:10px;border:1px solid var(--line);background:#fff}.secret{font-size:15px;letter-spacing:.06em;padding:8px 10px;border-radius:8px;background:var(--bg-3);user-select:all}.codes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.codes code{padding:10px 12px;border-radius:8px;background:var(--bg-3);text-align:center;font-size:15px;letter-spacing:.04em;user-select:all}.offline-banner{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;padding:12px 16px;border-radius:12px;background:var(--warn-soft);color:var(--fg);border:1px solid color-mix(in srgb,var(--warn) 30%,transparent);font-size:14px}.offline-banner .ico{width:20px;height:20px;flex:none;color:var(--warn);margin-top:1px}.sync-chip{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(112,184,224,.35);background:#70b8e024;color:#fff;font-size:13px;font-weight:600;white-space:nowrap;cursor:pointer}.sync-chip .ico{width:16px;height:16px}.sync-chip.off{background:#ffb5472e;border-color:#ffb54780;color:#ffd699}.sync-chip.err{background:#f28b862e;border-color:#f28b8680;color:#ffc4c0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sync-menu{min-width:340px;max-width:calc(100vw - 24px)}.sync-head{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--line)}.sync-label{padding:10px 10px 4px}.sync-list{list-style:none;margin:0;padding:0 10px;display:grid}.sync-list li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.sync-list li:last-child{border-bottom:0}@media (max-width: 900px){.sync-chip span{display:none}.sync-chip{padding:0 9px}.facts.wide>div{grid-template-columns:1fr;gap:2px}.request,.access-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){.spiral-draw{stroke-dashoffset:0;animation:none}}
