:root{--bg: #0a0f1a;--panel: #0f1a2c;--panel-2: #152238;--border: #1e3a5f;--text: #d8e4f0;--white: #ffffff;--muted: #6b8399;--accent: #00c8ff;--accent-2: #0090c8;--orange: #ffa726;--red: #ef4444;--green: #10b981;--yellow: #facc15;--sev-critical: #ef4444;--sev-high: #ffa726;--sev-medium: #facc15;--sev-low: #10b981;--sev-info: #6b8399;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "SF Mono", Menlo, Consolas, "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:15.5px;line-height:1.5}input,select,button,textarea{font:inherit;color:inherit}.app{min-height:100vh;display:flex;flex-direction:row}.sidebar{width:220px;height:100vh;background:var(--panel);border-right:1px solid var(--border);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0}.logo-area{padding:20px 18px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:11px}.logo-mark-img{height:34px;width:auto;display:block;object-fit:contain}.logo-name{font-size:15.5px;font-weight:700;color:var(--white);letter-spacing:.5px}.logo-version{margin-left:6px;font-size:10.5px;font-weight:600;color:var(--muted);letter-spacing:.3px;vertical-align:middle}.logo-sub{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:1.4px;margin-top:2px}.nav{padding:12px 0;flex:1;min-height:0;overflow-y:auto}.nav-label{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--border);padding:8px 18px 3px;font-weight:700}.nav-item{display:flex;align-items:center;gap:9px;padding:9px 18px;cursor:pointer;font-size:14px;color:var(--muted);border-left:3px solid transparent;transition:all .15s;text-decoration:none;-webkit-user-select:none;user-select:none}.nav-item:hover{color:var(--text);background:#00c8ff0a}.nav-item.active{color:var(--accent);background:#00c8ff14;border-left-color:var(--accent)}.main-area{flex:1;display:flex;flex-direction:column;min-width:0}.topbar{height:60px;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:14px;background:var(--panel);flex-shrink:0}.topbar-title{font-size:15.5px;font-weight:700;color:var(--white);letter-spacing:.3px}.topbar-sub{font-size:12.5px;color:var(--muted);margin-top:1px}.topbar-actions{margin-left:auto;display:flex;gap:10px;align-items:center}.content{padding:28px;overflow-y:auto;flex:1}.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}@media (max-width: 1280px){.proj-grid{grid-template-columns:repeat(2,1fr)}}.proj-card{background:var(--panel);border:1px solid var(--border);border-radius:11px;padding:18px 20px;cursor:pointer;transition:border .2s,background .15s;display:flex;flex-direction:column;min-height:160px;text-decoration:none;color:inherit}.proj-card:hover{border-color:var(--accent);background:#00c8ff08}.proj-icon-row{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px;font-size:24px}.proj-name{font-size:15.5px;font-weight:700;color:var(--white);margin-bottom:4px}.proj-desc{font-size:12.5px;color:var(--muted);margin-bottom:12px;min-height:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.proj-footer{display:flex;align-items:center;justify-content:space-between;padding-top:10px;border-top:1px solid rgba(30,58,95,.5);font-size:11.5px;color:var(--muted);margin-top:auto}.new-proj-card{background:transparent;border:2px dashed var(--border);border-radius:11px;padding:18px 20px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:160px;transition:border .2s,background .15s;color:var(--muted)}.new-proj-card:hover{border-color:var(--accent);background:#00c8ff08;color:var(--accent)}.new-proj-plus{width:36px;height:36px;border-radius:50%;background:#00c8ff14;border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:300;color:var(--accent)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#04090fb3;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:22px 26px;width:480px;max-width:95vw;max-height:90vh;overflow-y:auto;box-shadow:0 12px 40px #00000080}.modal h2{font-size:15.5px;color:var(--accent);text-transform:uppercase;letter-spacing:1px;margin:0 0 16px}.modal form>.btn-row:last-child,.modal>.btn-row:last-child{position:sticky;bottom:-22px;background:var(--panel);padding:10px 0 12px;margin-top:12px;border-top:1px solid var(--border);z-index:1}.empty-state{text-align:center;padding:60px 20px;color:var(--muted);font-size:14.5px}.empty-state-title{font-size:16px;color:var(--text);margin-bottom:8px;font-weight:600}.error-banner{background:#ef444414;border:1px solid var(--red);border-left:4px solid var(--red);border-radius:6px;padding:10px 14px;color:var(--red);font-size:13.5px;margin-bottom:16px}.tabs{display:flex;gap:0;border-bottom:1px solid var(--border);margin-bottom:22px}.tab{padding:10px 22px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--muted);border-bottom:2px solid transparent;transition:color .15s,border-color .15s;-webkit-user-select:none;user-select:none}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.data-table{width:100%;border-collapse:collapse;font-size:13.5px}.data-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:1px;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--border);font-weight:700;background:var(--panel)}.data-table td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text)}.data-table tr.clickable{cursor:pointer;transition:background .1s}.data-table tr.clickable:hover td{background:#00c8ff0a}.data-table .col-id{font-family:var(--font-mono);color:var(--muted);font-size:12.5px}.data-table .col-actions{text-align:right;white-space:nowrap}.data-table .row-action{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:5px;padding:4px 9px;font-size:12px;cursor:pointer;transition:all .12s}.data-table .row-action:hover{border-color:var(--red);color:var(--red)}.card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:20px 24px;margin-bottom:20px}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}.field input,.field select,.field textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:7px;padding:9px 12px;color:var(--text);outline:none;transition:border .15s;font-family:var(--font-mono);font-size:13.5px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent)}.btn{padding:9px 18px;border-radius:7px;border:1px solid var(--accent);background:var(--accent);color:#001825;font-weight:600;cursor:pointer;transition:all .15s}.btn:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--accent)}.btn-secondary:hover{background:#00c8ff14}.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--muted)}.btn-ghost:hover{color:var(--text);border-color:var(--accent)}.btn-row{display:flex;gap:10px;align-items:center}.pill{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:1px}.pill-running{background:#00c8ff1f;color:var(--accent);border:1px solid var(--accent);animation:pulse-outline 1.2s infinite}.pill-cancelled{background:#6b83991a;color:var(--muted);border:1px solid var(--border)}@keyframes pulse-outline{0%,to{box-shadow:0 0 #00c8ff66}50%{box-shadow:0 0 0 4px #00c8ff00}}.run-pipeline{display:flex;align-items:center;gap:0;padding:8px 0 4px;overflow-x:auto}.run-stage{display:flex;flex-direction:column;align-items:center;gap:6px;flex:1;min-width:90px}.run-stage-num{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13.5px;font-weight:700;background:var(--border);color:var(--muted);transition:all .4s}.run-stage-num.done{background:var(--green);color:#000}.run-stage-num.running{background:var(--accent);color:#001825;animation:pulse-ring 1.2s infinite}.run-stage-num.failed{background:var(--red);color:#fff}.run-stage-lbl{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.8px;text-align:center;transition:color .3s}.run-stage-lbl.active{color:var(--accent);font-weight:700}.run-stage-lbl.done{color:var(--green)}.run-stage-lbl.failed{color:var(--red)}@keyframes pulse-ring{0%{box-shadow:0 0 #00c8ff80}70%{box-shadow:0 0 0 10px #00c8ff00}to{box-shadow:0 0 #00c8ff00}}.run-log{background:#070d14;border:1px solid #0d2540;border-radius:8px;padding:14px 16px;font-family:var(--font-mono);font-size:13px;color:#10b981;line-height:1.7;white-space:pre-wrap;overflow-y:auto;max-height:500px}.run-log .t-cmd{color:#93c5fd;font-weight:700}.run-log .t-label{color:var(--yellow);font-weight:700}.run-log .t-success{color:#10b981}.run-log .t-muted{color:#4a7090}.run-log .t-error{color:var(--red);font-weight:700}.muted{color:var(--muted)}.mono{font-family:var(--font-mono)}.link{color:var(--accent);cursor:pointer}.input{flex:1;padding:9px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:8px;color:var(--text)}.input::placeholder{color:var(--muted)}.chip{background:var(--panel-2);border:1px solid var(--border);border-radius:14px;padding:3px 10px;display:inline-block;margin:0 6px 6px 0;font-size:13px}.chip .thr{color:var(--muted);font-size:11px}.sev{font-weight:700;text-transform:capitalize}.sev-critical{color:var(--sev-critical)}.sev-high{color:var(--sev-high)}.sev-medium{color:var(--sev-medium)}.sev-low{color:var(--sev-low)}.sev-info{color:var(--sev-info)}.pill-done{background:#10b98126;color:var(--green)}.pill-error{background:#ef444426;color:var(--red)}.pill-running{background:#00c8ff26;color:var(--accent)}.mono{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.cs-spinner{width:14px;height:14px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;display:inline-block;animation:cs-spin .7s linear infinite}@keyframes cs-spin{to{transform:rotate(360deg)}}:root{--spec-doc: #7dd3fc;--spec-code: #a5b4fc;--spec-prompt: #c4b5fd;--spec-human: #5eead4;--spec-hypothesis: #94a3b8;--spec-analysis: #8ba3c7;--spec-conflict: #f0abfc;--spec-stale: #d8b4fe;--spec-warn: #fbbf24;--panel-3: #1a2b45;--border-2: #2a4a72;--muted-2: #8fa6bd}.spec-ws{position:relative}.spec-badge{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:5px;border:1px solid var(--border);background:#0000002e;color:var(--muted-2);font-size:10.5px;font-weight:700;letter-spacing:.3px;white-space:nowrap}.spec-status-extracted{border-style:dashed}.spec-status-confirmed{color:var(--spec-human);border-color:var(--spec-human)}.spec-status-rejected{color:var(--spec-warn);border-color:var(--spec-warn)}.spec-hyp{color:var(--spec-hypothesis);border-color:var(--spec-hypothesis);border-style:dashed}.spec-verified{color:var(--accent);border-color:var(--accent)}.spec-warn{color:var(--spec-warn);border-color:var(--spec-warn)}.spec-state{font-weight:600}.spec-prov-document{color:var(--spec-doc);border-color:var(--spec-doc)}.spec-prov-human{color:var(--spec-human);border-color:var(--spec-human)}.spec-prov-derived{color:var(--spec-conflict);border-color:var(--spec-conflict)}.spec-prov-generated{color:var(--spec-hypothesis);border-color:var(--spec-hypothesis);border-style:dashed}.spec-rel{color:var(--text);border-color:var(--accent-2);border-radius:4px}.spec-rel-unknown{color:var(--muted);border-style:dashed;border-color:var(--border)}.spec-back{color:var(--text);border-color:var(--border);border-radius:10px;font-weight:600}.spec-back-unknown{color:var(--muted);border-style:dashed}.spec-fresh-fresh{color:var(--accent);border-color:var(--accent)}.spec-fresh-stale{color:var(--spec-stale);border-color:var(--spec-stale)}.spec-fresh-not_run{color:var(--muted);border-style:dashed}.spec-chip{display:inline-flex;gap:4px;align-items:center;font-size:10.5px;color:var(--muted-2);padding:1px 6px;border-radius:4px;background:#00000038}.spec-chip b{font-family:var(--font-mono);color:var(--text);font-weight:600}.spec-link{background:none;border:none;padding:0;color:var(--accent);cursor:pointer;font:inherit}.spec-link:hover{text-decoration:underline}.btn-sm{padding:3px 9px;font-size:11.5px;font-weight:600}.spec-subnav{display:flex;flex-wrap:wrap;gap:4px;align-items:flex-end;margin-bottom:14px;border-bottom:1px solid var(--border)}.spec-subnav button{background:none;border:none;border-bottom:2px solid transparent;color:var(--muted);padding:7px 12px;font-size:13px;cursor:pointer;display:flex;gap:6px;align-items:center}.spec-subnav button:hover{color:var(--text)}.spec-subnav button.active{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.spec-subnav-count{font-size:10.5px;color:var(--muted);background:var(--panel-2);border-radius:9px;padding:0 6px}.spec-crumb{color:var(--muted);padding:7px 4px;font-size:13px}.spec-notice{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:1px solid var(--border);background:var(--panel-2);font-size:12.5px;margin-bottom:12px}.spec-refusal{margin-bottom:12px}.spec-map-head{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}.spec-map-hint{margin-left:auto;font-size:11.5px}.spec-stat{display:flex;align-items:baseline;gap:5px;font-size:12px;color:var(--muted)}.spec-stat b{font-family:var(--font-mono);font-size:15px;color:var(--text)}.spec-map-wrap{display:grid;grid-template-columns:1fr 320px;gap:14px;align-items:start}@media (max-width: 1100px){.spec-map-wrap{grid-template-columns:1fr}}.spec-map{position:relative}.spec-lanes{display:flex;flex-direction:column;gap:12px}.spec-lane{border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.spec-lane-gap{border-color:#fbbf248c}.spec-lane-head{display:flex;align-items:center;gap:10px;padding:9px 12px;border-bottom:1px solid var(--border);background:linear-gradient(90deg,var(--panel-2),transparent)}.spec-lane-name{font-weight:800;font-size:13.5px}.spec-lane-meta{margin-left:auto;font-size:11px;color:var(--muted)}.spec-lane-meta b{color:var(--text)}.spec-lane-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px}@media (min-width: 1800px){.spec-lane-body{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 1100px){.spec-lane-body{grid-template-columns:repeat(2,minmax(0,1fr))}}.spec-rejected-bar{width:100%;text-align:left;padding:6px 12px;border:none;border-top:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;font-size:11.5px}.spec-rejected-bar:hover{background:var(--panel-2)}.spec-card{position:relative;z-index:2;overflow:hidden;min-width:0;border:1px solid var(--border);border-radius:8px;background:var(--panel-2);padding:9px 10px 8px;cursor:pointer;transition:border-color .15s,box-shadow .15s,opacity .2s,transform .15s}.spec-card:hover{border-color:var(--accent-2)}.spec-card:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.spec-card.sel{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 22px #00c8ff2e;transform:translateY(-1px)}.spec-card.rel{border-color:var(--border-2);box-shadow:0 0 0 1px var(--rel-color, var(--border-2))}.spec-card.dim{opacity:.32}.spec-card.off{opacity:.45;filter:saturate(.4)}.spec-card.idle{opacity:.6}.spec-card.gap{border-color:#fbbf2473}.spec-card-title{display:flex;align-items:baseline;gap:7px;min-width:0;flex-wrap:wrap}.spec-card-name{font-weight:700;font-size:13px;white-space:nowrap}.spec-card-badges{margin-left:auto;display:flex;gap:4px;flex-shrink:0}.spec-card-badges .spec-badge{font-size:9px}.spec-card-op{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spec-card-desc{font-size:11.5px;color:var(--muted-2);margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spec-card-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px;align-items:center}.spec-open{margin-left:auto;padding:3px 9px;font-size:11.5px}.spec-edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:1}.spec-edges path{fill:none;stroke-width:1.6;opacity:.9;stroke-dasharray:6 4;animation:spec-flow 1.2s linear infinite}@keyframes spec-flow{to{stroke-dashoffset:-20}}.spec-side{border:1px solid var(--border);border-radius:10px;background:var(--panel);position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto}@media (max-width: 1100px){.spec-side{position:static}}.spec-side-head{padding:10px 14px;border-bottom:1px solid var(--border);font-weight:700}.spec-side-body{padding:12px 14px;font-size:12.5px;line-height:1.6}.spec-side-body p{margin:0 0 10px}.spec-legend{display:grid;gap:6px;margin:8px 0}.spec-legend div{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted-2)}.spec-legend i,.spec-relgroup-k i{width:14px;height:3px;border-radius:2px;display:inline-block;flex-shrink:0}.spec-relgroup{margin-top:12px}.spec-relgroup-k{display:flex;align-items:center;gap:6px;font-size:10.5px;letter-spacing:.8px;text-transform:uppercase;color:var(--muted);font-weight:700;margin-bottom:5px}.spec-relrow{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:5px 8px;border-radius:6px;background:var(--panel-2);margin-bottom:4px;cursor:pointer;border:1px solid transparent;color:var(--text);font:inherit}.spec-relrow:hover{border-color:var(--border-2)}.spec-relrow-n{font-weight:600}.spec-relrow-why{color:var(--muted);font-size:10.5px;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.spec-page{animation:spec-fade .18s ease-out}@keyframes spec-fade{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.spec-page-head{display:flex;gap:16px;align-items:flex-start;padding:14px 16px;border:1px solid var(--border);border-radius:10px;background:linear-gradient(180deg,var(--panel),var(--panel-2));margin-bottom:12px}.spec-page-title-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.spec-page-title{margin:0;font-size:20px;letter-spacing:-.2px}.spec-page-desc{margin-top:6px;font-size:13.5px}.spec-page-facts{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}.spec-kv{font-size:11.5px;color:var(--muted)}.spec-kv b{color:var(--text);font-weight:600;font-family:var(--font-mono);font-size:11.5px}.spec-symbol{color:var(--accent)!important}.spec-page-right{margin-left:auto;display:flex;flex-direction:column;gap:6px;align-items:flex-end;flex-shrink:0}.spec-mapping{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;margin-top:6px;font-size:11.5px}.spec-band{margin-top:16px}.spec-band-title{font-size:12px;letter-spacing:1px;text-transform:uppercase;color:var(--text);font-weight:700;margin:0 0 8px}.spec-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width: 1100px){.spec-two{grid-template-columns:1fr}}.spec-panel{border:1px solid var(--border);border-radius:10px;background:var(--panel)}.spec-panel-head{display:flex;align-items:center;gap:8px;padding:9px 14px;border-bottom:1px solid var(--border)}.spec-panel-title{font-size:10.5px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700}.spec-panel-n{margin-left:auto;font-family:var(--font-mono);color:var(--muted)}.spec-panel-body{padding:10px 14px}.spec-line{padding:7px 8px 7px 12px;border-left:2px solid var(--border);margin:4px 0}.spec-line:hover{border-left-color:var(--spec-doc)}.spec-line.off{opacity:.45}.spec-line-head{display:flex;gap:8px;align-items:flex-start}.spec-line-title{flex:1;font-weight:600;font-size:12.5px}.spec-line-title.mono{font-weight:400;font-size:11.5px;color:var(--text)}.spec-line-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;align-items:center;font-size:11px;color:var(--muted)}.spec-conv{background:color-mix(in srgb,var(--spec-doc) 22%,transparent);color:var(--text);border-radius:3px;padding:0 2px}.spec-conv.dim{background:none;color:var(--muted);text-decoration:underline dotted}.spec-conv-note{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:4px;font-size:11.5px}.spec-redecide{padding:1px 8px;font-size:11px}.spec-badge.spec-turn{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--text);margin-right:6px}.spec-badge.spec-ok{background:color-mix(in srgb,var(--spec-human) 22%,transparent)}.spec-badge.spec-dash{border:1px dashed var(--border);background:none}.spec-group-head{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:10px 0 4px}.spec-group-head:first-child{margin-top:0}.spec-fact-under{font-family:var(--font-mono);font-size:10.5px;color:var(--muted)}.spec-gloss{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap;margin-bottom:4px;padding-bottom:4px;border-bottom:1px dashed var(--border)}.spec-gloss-text{flex:1;min-width:160px;font-size:12.5px;font-style:italic}.spec-verdict-unknown{border-color:var(--border)}.spec-cond{display:grid;grid-template-columns:52px 1fr;gap:4px 8px;font-size:11.5px;margin-top:5px}.spec-cond-k{color:var(--muted);text-transform:uppercase;font-size:10px;letter-spacing:.8px;padding-top:3px}.spec-expr{font-family:var(--font-mono);font-size:11.5px;line-height:1.6;background:var(--bg);border:1px solid var(--border);border-radius:5px;padding:3px 7px;margin-top:5px;white-space:pre-wrap;word-break:break-word;color:var(--text)}.spec-verdict{align-items:flex-start}.spec-verdict-conflict{border-color:var(--spec-warn)}.spec-verdict-exact{border-color:var(--spec-human)}.spec-decide{display:inline-flex;gap:3px;flex-shrink:0}.spec-decide-btn{padding:1px 7px;font-size:11px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--muted-2);cursor:pointer;line-height:1.5}.spec-decide-btn:hover{color:var(--text);border-color:var(--border-2)}.spec-decide-btn.on{background:var(--accent);color:#04121c;border-color:var(--accent)}.spec-decide-btn.on.reject{background:var(--spec-warn);border-color:var(--spec-warn)}.spec-decide-btn:disabled{opacity:.4;cursor:not-allowed}.spec-decided{font-size:9.5px;font-weight:700;padding:1px 7px;border-radius:5px;border:1px solid;white-space:nowrap}.spec-decided.confirm{color:var(--spec-human);border-color:var(--spec-human)}.spec-decided.reject{color:var(--spec-warn);border-color:var(--spec-warn)}.spec-tray{position:sticky;bottom:0;margin-top:12px;padding:10px 14px;border:1px solid var(--accent-2);border-radius:10px;background:var(--panel);display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 -8px 24px #00000059;z-index:3}.spec-tray input[type=text]{flex:1;min-width:220px;padding:6px 10px;background:var(--panel-2);border:1px solid var(--border);border-radius:6px;color:var(--text)}.spec-inbox{display:grid;grid-template-columns:260px 1fr;gap:12px;align-items:start}@media (max-width: 900px){.spec-inbox{grid-template-columns:1fr}}.spec-inbox-nav{border:1px solid var(--border);border-radius:10px;background:var(--panel);position:sticky;top:12px}.spec-inbox-sec{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);font-weight:700;padding:10px 12px 4px}.spec-inbox-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:7px 12px;cursor:pointer;color:var(--muted-2);background:none;border:none;font:inherit}.spec-inbox-row.active{background:var(--panel-2);color:var(--accent)}.spec-inbox-n{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--muted)}.spec-inbox-item{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;padding:8px 14px;border-bottom:1px solid var(--border)}.spec-inbox-item:hover{background:var(--panel-2)}.spec-evidence{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:1px solid var(--border);border-radius:6px;background:var(--panel-2);color:var(--text);cursor:pointer;text-align:left;font-size:12px;margin:4px 0}.spec-evidence:hover{border-color:var(--accent)}.spec-evidence-path{font-family:var(--font-mono);font-size:11.5px;color:var(--muted)}.spec-source{border:1px solid var(--border);border-radius:8px;overflow:auto;background:var(--bg);font-family:var(--font-mono);font-size:12px;line-height:1.65;margin-top:6px;max-height:340px}.spec-source-line{display:flex}.spec-source-line.hit{background:#00c8ff1a}.spec-source-n{width:52px;text-align:right;padding:0 10px;color:var(--muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.spec-source-code{white-space:pre;padding:0 10px 0 4px}.spec-matrix td,.spec-matrix th{white-space:nowrap}.spec-dot-off{color:var(--border)}.spec-empty-state{padding:24px}:root{--arch-orange: #fb923c;--arch-pink: #f472b6;--arch-green: #4ade80;--arch-red: #f87171;--arch-warn: #fbbf24}.arch-bar{display:flex;align-items:center;gap:14px;margin-bottom:10px;flex-wrap:wrap}.arch-stat{font-size:12.5px;color:var(--muted)}.arch-stat b{color:var(--text);font-weight:700}.arch-hint{margin-left:auto;font-size:12px;color:var(--muted)}.arch-wrap{display:flex;gap:14px;align-items:flex-start}.arch-canvas{position:relative;flex:1;min-width:0;border:1px solid var(--border);border-radius:10px;background:var(--panel);overflow:hidden}.arch-canvas-empty{height:240px}.arch-edges{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.arch-edges path{fill:none;stroke-width:1.4;opacity:.75;transition:opacity .12s}.arch-edges path.arch-e-read{stroke:var(--muted-2)}.arch-edges path.arch-e-write{stroke:var(--arch-orange)}.arch-edges path.arch-e-msg{stroke:var(--accent)}.arch-edges path.arch-e-tool{stroke:var(--spec-code);opacity:.6}.arch-edges path.dim{opacity:.1}.arch-edges path.hot{opacity:1;stroke-width:2.2}.arch-col-h{position:absolute;font-size:9.5px;letter-spacing:1.4px;color:var(--muted);font-weight:800;text-transform:uppercase}.arch-node{position:absolute;z-index:2;border:1px solid var(--border-2);border-radius:8px;background:var(--panel-2);padding:7px 10px;cursor:pointer;transition:opacity .12s;box-sizing:border-box}.arch-node:hover,.arch-node.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.arch-node.dim{opacity:.22}.arch-node .t{font-weight:800;font-size:12.5px;display:flex;align-items:center;gap:6px;justify-content:space-between}.arch-node .t .n{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arch-node .s{font-size:11px;color:var(--muted-2);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.arch-node .m{font-size:10.5px;color:var(--muted);margin-top:6px;white-space:normal;line-height:1.35}.arch-agent{background:linear-gradient(180deg,#14304a,#0f2238);border-color:#2a6a8f;padding:9px 12px}.arch-agent .t{font-size:13.5px}.arch-a2a{border-style:dashed;border-color:var(--arch-pink)}.arch-tool{padding:4px 8px;border-radius:6px;display:flex;align-items:center}.arch-tool .t{width:100%;font-size:12px}.arch-badges{display:flex;gap:4px;flex-shrink:0}.arch-entity{border-color:var(--arch-orange);background:#1c1a14}.arch-gap{border-style:dashed;border-color:var(--arch-warn);background:transparent;cursor:default}.arch-grp{position:absolute;z-index:1;border:1px dashed var(--border-2);border-radius:9px;box-sizing:border-box;transition:opacity .12s}.arch-grp.dim{opacity:.22}.arch-grp .gh{position:absolute;top:-8px;left:10px;background:var(--panel);padding:0 6px;font-size:10px;font-weight:800;letter-spacing:.8px;color:var(--muted-2);text-transform:uppercase}.arch-grp .gh b{color:var(--text)}.arch-store{border-color:var(--arch-orange)}.arch-box{border:1px solid #2a6a8f;border-radius:12px;background:#14304a2e;pointer-events:none}.arch-box .gh{pointer-events:auto;cursor:pointer;font-size:11px;color:var(--text)}.arch-box .arch-col-h{position:absolute}.arch-box-empty{position:absolute;top:40px;right:20px;bottom:20px;left:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:var(--muted-2);font-size:13px;pointer-events:auto}.arch-others{border-style:dotted}.arch-badge{display:inline-flex;align-items:center;gap:4px;padding:0 6px;border-radius:5px;border:1px solid var(--border);font-size:9.5px;font-weight:800;letter-spacing:.3px;white-space:nowrap;color:var(--muted-2);background:#0000002e;line-height:16px}.arch-badge.read{color:var(--muted-2)}.arch-badge.write{color:var(--arch-orange);border-color:var(--arch-orange)}.arch-badge.generic{color:var(--spec-hypothesis);border-color:var(--spec-hypothesis)}.arch-tool.unreg{opacity:.5}.arch-badge.unreg{color:var(--muted);border-color:var(--muted)}.arch-badge.undetermined{color:var(--orange);border-color:var(--orange)}.spec-card.unreg{opacity:.55}.arch-badge.risk{color:var(--arch-red);border-color:var(--arch-red)}.arch-badge.teal{color:var(--spec-human);border-color:var(--spec-human)}.arch-badge.pink{color:var(--arch-pink);border-color:var(--arch-pink)}.arch-badge.warn{color:var(--arch-warn);border-color:var(--arch-warn)}.arch-badge.ok{color:var(--arch-green);border-color:var(--arch-green)}.arch-side{width:320px;flex-shrink:0;border:1px solid var(--border);border-radius:10px;background:var(--panel);position:sticky;top:12px;max-height:calc(100vh - 40px);overflow:auto}.arch-side-h{padding:12px 14px;border-bottom:1px solid var(--border);font-weight:800;font-size:14px}.arch-side-b{padding:12px 14px;font-size:12.5px}.arch-side-b p{margin:0 0 10px}.arch-side-b ul{margin:4px 0 0 16px;padding:0}.arch-side-b li{margin:2px 0}.arch-kv{display:flex;gap:8px;padding:4px 0;border-top:1px solid var(--border)}.arch-kv>span:first-child{color:var(--muted);width:92px;flex-shrink:0}.arch-kv>span:last-child{min-width:0;word-break:break-word}.arch-ref{font-family:var(--font-mono);font-size:11px;color:var(--accent);display:block;padding:3px 0}.arch-sec{font-size:9.5px;letter-spacing:1.3px;color:var(--muted);font-weight:800;margin:12px 0 6px;text-transform:uppercase}.arch-legend div{display:flex;align-items:center;gap:8px;padding:3px 0;color:var(--muted-2)}.arch-legend i{width:22px;height:0;border-top:2px solid;display:inline-block}.spec-progress{color:var(--accent);font-weight:600}.spec-prior{font-size:11px;margin-right:6px;font-style:italic}.arch-set-aside{list-style:none;margin:4px 0 0;padding:0;font-size:12px}.arch-set-aside li{padding:1px 0}.arch-set-aside-dirs{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;margin-top:4px}.spec-summary{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.spec-tile{border:1px solid var(--border);background:var(--panel);border-radius:8px;padding:8px 12px;min-width:150px}.spec-tile b{display:block;font-size:18px;font-variant-numeric:tabular-nums}.spec-tile span{color:var(--muted);font-size:12px}.spec-tile-none{color:var(--arch-red, #f87171)}.spec-turn-cols{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:16px;align-items:start;margin-top:16px}@media (max-width: 900px){.spec-turn-cols{grid-template-columns:1fr}}.spec-stack{display:grid;gap:16px;min-width:0}.spec-sec{border:1px solid var(--border);border-radius:10px;background:var(--panel);min-width:0}.spec-sec-h{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 14px;border-bottom:1px solid var(--border)}.spec-sec-h h2,.spec-sec-h h3,.spec-session-h h2{margin:0;font-size:14px}.spec-sec-n{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.spec-sec-b{padding:8px 14px 12px}.spec-sub{font-size:12px;color:var(--muted);margin:2px 0 8px}.spec-shared{border:1px solid var(--border);background:color-mix(in srgb,var(--panel) 70%,var(--bg));border-radius:8px;padding:8px 10px;margin:4px 0 8px;font-size:12px}.spec-shared ul{margin:4px 0 0;padding-left:18px;color:var(--muted)}.spec-session{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--border));border-radius:12px;padding:12px;display:grid;gap:12px;background:color-mix(in srgb,var(--accent) 4%,transparent)}.spec-session-h .muted{font-size:12px;margin-top:4px}.spec-session-verdict{color:var(--text)}.spec-table-wrap{overflow-x:auto}.spec-table{border-collapse:collapse;width:100%;min-width:560px;font-size:12px;table-layout:fixed}.spec-table td{overflow-wrap:normal;word-break:normal}.spec-table th,.spec-table td{text-align:left;vertical-align:top;padding:6px 8px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.spec-table th{color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:.04em}.spec-tools{display:inline-flex;flex-wrap:wrap;gap:4px 8px}.spec-cell{display:grid;gap:3px}.spec-cell-row{display:flex;flex-wrap:wrap;gap:6px;align-items:baseline}.spec-badge.spec-none{color:var(--arch-red, #f87171);border-color:var(--arch-red, #f87171)}.spec-badge.spec-review{color:var(--accent);border-color:var(--accent)}.spec-badge.spec-src{color:var(--spec-doc);border-color:color-mix(in srgb,var(--spec-doc) 45%,transparent)}.spec-tools .spec-link{text-align:left;overflow-wrap:normal;word-break:normal}.spec-align{display:grid;gap:4px;margin-top:4px}.spec-align-q{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}.spec-unreg{margin:6px 0 10px;font-size:12.5px;color:var(--muted)}.spec-unreg summary{cursor:pointer}.spec-unreg ul{margin:6px 0 0;padding-left:18px}.spec-variants{grid-column:1 / -1;display:grid;grid-template-columns:inherit;gap:8px;padding:6px 8px 8px;border:1px dashed var(--border);border-radius:8px}.spec-variants-head{grid-column:1 / -1;font-size:12px}.spec-inst{font-size:12.5px;margin-top:4px}.spec-inst-steps{margin:4px 0 0;padding-left:18px}.spec-subnav .spec-subnav-verify{margin-left:auto;font-size:12px;color:var(--muted)}.spec-crow{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:12px;padding:10px 0;border-bottom:1px solid var(--border);align-items:start}.spec-crow.off{opacity:.6}.spec-crow.focus{background:color-mix(in srgb,var(--accent) 7%,transparent)}.spec-crow-headrow{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:2px 0 6px}.spec-crow-side{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;margin-top:4px}.spec-crow-status{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.spec-crow-detail{grid-column:1 / -1}.spec-entered{font-size:12px;display:flex;flex-direction:column;gap:6px}.spec-entered-c{padding:1px 0}.spec-cls{cursor:pointer;font:inherit;font-size:11.5px}.spec-cls-exact{color:var(--green, #2f9e6b);border-color:currentColor}.spec-cls-partial{color:var(--orange);border-color:currentColor}.spec-cls-none,.spec-cls-contradicts,.spec-cls-failed{color:var(--spec-conflict);border-color:currentColor}.spec-cls-undecided,.spec-cls-comparing{color:var(--muted);border-style:dashed}.spec-cls-conversation{color:var(--spec-doc);border-color:currentColor}.spec-detail{border:1px solid var(--border);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:10px;font-size:12.5px}.spec-detail-list{margin:4px 0 0;padding-left:18px}.spec-code-group{margin-bottom:10px}.spec-nc-group{margin-top:8px}.spec-nc-row{display:flex;gap:8px;align-items:baseline;width:100%;text-align:left;background:none;border:0;padding:4px 0;cursor:pointer;color:var(--text);font:inherit}.spec-nc-row:hover{color:var(--accent)}@media (max-width: 900px){.spec-crow{grid-template-columns:1fr}}.spec-crow>*{min-width:0}.spec-crow-status .spec-cls{white-space:normal;text-align:left;max-width:100%}.spec-crow.spec-crow-one{grid-template-columns:minmax(0,1fr)}.spec-got-resultline{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:8px}.spec-got-resultline .spec-got-result{flex-basis:100%}.spec-got-why{font-size:12px}.spec-src-btn{cursor:pointer;font:inherit}.spec-src-btn.on{text-decoration:underline}.spec-got-source{flex-basis:100%;width:100%;min-width:0;margin-top:6px;font-size:12px;color:var(--text)}.spec-got-source .spec-source-code{white-space:pre-wrap;overflow-wrap:anywhere}.spec-got-sites .spec-code-impl,.spec-got-result{min-width:0;max-width:100%}.spec-code-impl{margin:4px 0 8px 18px;font-size:12px}.spec-crow-status .spec-link{font-size:12px}section[data-testid=not-checked]{margin-bottom:14px}.spec-origin{font-weight:600}.spec-origin-extracted{color:var(--spec-doc);border-color:var(--spec-doc)}.spec-origin-hypothesized{color:var(--spec-hypothesis);border-color:var(--spec-hypothesis);border-style:dashed}.spec-origin-knowledge{color:var(--accent);border-color:var(--accent)}.spec-origin-human{color:var(--spec-human);border-color:var(--spec-human)}.spec-step{margin-top:6px}.spec-step-row{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.spec-step-tag{font-size:12px}.spec-step-q{border-style:dashed}.spec-step-cand{display:inline-flex;align-items:center;gap:4px}.spec-step-note{font-size:12px;margin-top:2px}.spec-stat-filter{background:none;border:1px solid transparent;border-radius:6px;padding:2px 6px;cursor:pointer;color:inherit;font:inherit;text-align:right}.spec-stat-filter:hover{border-color:var(--border)}.spec-stat-filter.on{border-color:var(--accent)}.spec-origin-block+.spec-origin-block{margin-top:14px}.spec-got{margin-bottom:14px}.spec-got-from{font-size:11.5px}.spec-got-gwt{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:3px 10px;font-size:13px}.spec-got-k{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding-top:2px}.spec-got-note{font-size:12px;margin-top:4px}.spec-got-uncovered{margin-top:10px}.spec-got-line{font-size:12.5px;padding:2px 0}.spec-review{display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px;font-size:11.5px}.spec-crow-status .spec-review{margin-top:2px}.spec-review-pending{color:var(--muted);border-style:dashed}.spec-review-confirmed{color:var(--spec-human);border-color:var(--spec-human)}.spec-review-rejected{color:var(--spec-warn);border-color:var(--spec-warn)}.spec-review-btn{background:none;border:1px solid var(--border);border-radius:5px;color:var(--text);padding:0 6px;font:inherit;font-size:11px;cursor:pointer}.spec-review-btn:hover:not(:disabled){border-color:var(--accent)}.spec-review-btn:disabled{opacity:.45;cursor:default}.spec-chipbtn{background:none;border:1px solid var(--border);border-radius:5px;color:var(--muted);width:22px;height:20px;padding:0;font-size:12px;line-height:1;cursor:pointer}.spec-chipbtn:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.spec-chipbtn.ok.on{color:var(--spec-human);border-color:var(--spec-human);background:color-mix(in srgb,var(--spec-human) 14%,transparent)}.spec-chipbtn.no.on{color:var(--spec-warn);border-color:var(--spec-warn);background:color-mix(in srgb,var(--spec-warn) 14%,transparent)}.spec-review-note{font:inherit;font-size:11.5px;padding:1px 6px;border:1px solid var(--border);border-radius:5px;background:var(--panel-2);color:var(--text);min-width:180px}.spec-review-said{font-size:11.5px}.spec-got-filter{display:inline-flex;gap:2px;margin-left:8px;font-size:11.5px}.spec-got-links{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin-top:6px;font-size:12px}.spec-got-link{display:inline-flex;align-items:center;gap:6px}.spec-got-subjects{display:grid;gap:4px;padding-bottom:8px;margin-bottom:4px;border-bottom:1px solid var(--border)}.spec-got-subject{display:grid;grid-template-columns:max-content minmax(0,1fr) auto;gap:10px;align-items:center;font-size:12.5px}@media (max-width: 700px){.spec-got-subject{grid-template-columns:1fr}}.spec-got-links{flex-direction:column;align-items:flex-start}.spec-got-link{display:flex;flex-direction:column;align-items:flex-start;gap:3px}.spec-got-link-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.spec-got-result{margin-left:14px;padding-left:8px;border-left:2px solid var(--border);display:grid;gap:3px;font-size:12px}.spec-got-reason{color:var(--text)}.spec-got-result-review{display:inline-flex;align-items:center;gap:6px}.spec-got-sites{display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}.spec-got-sites .spec-link.on{text-decoration:underline}.spec-got-basis{font-size:12px;margin-top:2px}.spec-code-fact{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:3px 0;font-size:12.5px}.spec-code-fact .spec-got-sites{display:inline-flex}.spec-got-sites .spec-code-impl{flex-basis:100%}.spec-got-impl{grid-column:1 / -1;font-size:12px}.spec-got-impl-body{margin:4px 0 2px 14px;display:grid;gap:4px}.spec-got-notshown ul{margin:2px 0 0;padding-left:18px;color:var(--muted)}.spec-ov{display:grid;gap:4px}.spec-ov-row{display:grid;grid-template-columns:minmax(0,1fr) 120px minmax(0,1.2fr);gap:12px;align-items:center;width:100%;text-align:left;background:none;border:1px solid transparent;border-radius:8px;padding:8px 10px;color:var(--text);font:inherit;cursor:pointer}.spec-ov-row:hover{border-color:var(--border);background:var(--panel-2)}.spec-ov-results{display:flex;flex-wrap:wrap;gap:4px}@media (max-width: 800px){.spec-ov-row{grid-template-columns:1fr}}
