.v31-root{font-family:var(--sans);color:var(--ink-1);background:var(--bg-canvas);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-size:14px;line-height:1.5}.v31-root *{box-sizing:border-box}.v31-root h1,.v31-root h2,.v31-root h3,.v31-root h4{font-family:var(--serif);color:var(--ink-1);letter-spacing:-.01em;margin:0;font-weight:600;line-height:1.3}.v31-root button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none;padding:0}.v31-root input,.v31-root textarea,.v31-root select{font-family:inherit;font-size:inherit;color:inherit}.v31-root a{color:var(--v31-accent);text-decoration:none}.v31-root a:hover{text-decoration:underline}.v31-root code,.v31-root pre,.v31-root .mono{font-family:var(--mono);font-size:12.5px}.v31-root ::selection{background:var(--v31-accent-soft)}@keyframes v31-pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes v31-fadein{0%{opacity:0}to{opacity:1}}.v31-root .btn{border:1px solid var(--line-1);background:var(--bg-surface);height:32px;color:var(--ink-1);white-space:nowrap;border-radius:4px;align-items:center;gap:6px;padding:0 12px;font-size:13px;transition:background .12s;display:inline-flex}.v31-root .btn:hover{background:var(--bg-sunken)}.v31-root .btn[disabled]{color:var(--ink-4);cursor:not-allowed}.v31-root .btn[disabled]:hover{background:var(--bg-surface)}.v31-root .btn-primary{background:var(--v31-accent);border-color:var(--v31-accent);color:#fff}.v31-root .btn-primary:hover{background:var(--v31-accent-strong);border-color:var(--v31-accent-strong)}.v31-root .btn-ghost{background:0 0;border-color:#0000}.v31-root .btn-ghost:hover{background:var(--bg-sunken)}.v31-root .btn-sm{height:26px;padding:0 8px;font-size:12px}.v31-root .tag{background:var(--bg-sunken);height:20px;color:var(--ink-2);border:1px solid var(--line-2);letter-spacing:.01em;border-radius:9999px;align-items:center;gap:4px;padding:0 8px;font-size:11.5px;display:inline-flex}.v31-root .tag-accent{background:var(--v31-accent-soft);color:var(--v31-accent);border-color:#0000}.v31-root .tag-ok{background:var(--ok-soft);color:var(--ok);border-color:#0000}.v31-root .tag-current{background:var(--st-current-soft);color:var(--st-current);border-color:#0000}.v31-root .tag-warn{background:var(--warn-soft);color:var(--warn);border-color:#0000}.v31-root .tag-err{background:var(--err-soft);color:var(--err);border-color:#0000}.v31-root .tag-info{background:var(--info-soft);color:var(--info);border-color:#0000}.v31-root .tag-pending-confirm{background:var(--warn-soft);color:var(--warn);border-color:#0000}.v31-root .dot{background:currentColor;border-radius:9999px;width:6px;height:6px;display:inline-block}.v31-root .dot-pulse{animation:1.4s ease-in-out infinite v31-pulse}.v31-root .row{align-items:center;display:flex}.v31-root .col{flex-direction:column;display:flex}.v31-root .gap-4{gap:4px}.v31-root .gap-6{gap:6px}.v31-root .gap-8{gap:8px}.v31-root .gap-12{gap:12px}.v31-root .gap-16{gap:16px}.v31-root .gap-24{gap:24px}.v31-root .grow{flex:1;min-width:0}.v31-root .muted{color:var(--ink-3)}.v31-root .secondary{color:var(--ink-2)}.v31-root hr.div{border:0;border-top:1px solid var(--line-2);margin:0}.v31-root hr.div-strong{border:0;border-top:1px solid var(--line-1);margin:0}.v31-root .app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.v31-root .topbar{background:var(--bg-surface);border-bottom:2px solid var(--ink-1);flex-shrink:0;align-items:center;gap:18px;height:56px;padding:0 20px;display:flex}.v31-root .topbar .brand-rule{background:var(--v31-accent);width:4px;height:28px;margin-right:2px}.v31-root .topbar .brand{font-family:var(--serif);letter-spacing:-.015em;color:var(--ink-1);font-size:18px;font-weight:700}.v31-root .topbar .crumb{color:var(--ink-2);align-items:center;gap:8px;font-size:13px;display:flex}.v31-root .topbar .crumb-sep{color:var(--ink-4)}.v31-root .main{flex:1;min-height:0;display:flex}.v31-root .left-rail{background:var(--bg-sunken);border-right:1px solid var(--line-1);flex-direction:column;flex-shrink:0;width:16%;min-width:176px;max-width:232px;transition:width .14s;display:flex;overflow-y:auto}.v31-root .left-rail.collapsed{width:52px;min-width:52px;max-width:52px}.v31-root .left-rail.collapsed .rail-label,.v31-root .left-rail.collapsed .nav-item>span:not(.num),.v31-root .left-rail.collapsed .toc,.v31-root .left-rail.collapsed .rail-plan-preview{display:none}.v31-root .left-rail.collapsed .rail-section{padding:10px 6px 6px}.v31-root .left-rail.collapsed .nav-item{justify-content:center;padding-left:0;padding-right:0}.v31-root .rail-toggle-row{justify-content:flex-end;padding:8px 8px 0;display:flex}.v31-root .rail-toggle-row.collapsed{justify-content:center;padding:8px 0 0}.v31-root .rail-toggle{width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.v31-root .rail-toggle:hover{background:var(--bg-canvas);color:var(--ink-1)}.v31-root .rail-section{padding:16px 16px 8px}.v31-root .rail-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:8px;font-size:11px;font-weight:600}.v31-root .rail-brand{border-bottom:1px solid var(--line-2);flex-shrink:0;align-items:center;gap:10px;height:56px;padding:0 14px 0 16px;display:flex}.v31-root .rail-brand-mark{justify-content:center;align-items:center;width:28px;height:28px;display:inline-flex}.v31-root .rail-brand-name{font-family:var(--serif);letter-spacing:-.005em;color:var(--ink-1);font-size:17px;font-weight:600}.v31-root .rail-collapse{width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;margin-left:auto;transition:background .12s,color .12s;display:inline-flex}.v31-root .rail-collapse:hover{background:var(--bg-canvas);color:var(--ink-1)}.v31-root .rail-new-btn{border:1px solid var(--line-1);background:var(--bg-surface);height:38px;color:var(--ink-1);cursor:pointer;box-shadow:var(--shadow-0);border-radius:4px;align-items:center;gap:8px;margin:14px 12px 6px;padding:0 12px;font-size:13.5px;font-weight:500;transition:background .12s,border-color .12s;display:flex}.v31-root .rail-new-btn:hover{background:var(--bg-surface);border-color:var(--v31-accent);color:var(--v31-accent)}.v31-root .rail-new-plus{width:18px;height:18px;color:var(--v31-accent);justify-content:center;align-items:center;display:inline-flex}.v31-root .rail-recent{flex-direction:column;flex:1;min-height:0;padding:14px 12px 12px;display:flex;overflow-y:auto}.v31-root .rail-recent-h{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);padding:6px 8px 8px;font-size:10.5px;font-weight:600}.v31-root .rail-recent-empty{color:var(--ink-4);font-size:12.5px;font-style:italic;font-family:var(--serif);padding:4px 10px 10px}.v31-root .rail-recent-list{flex-direction:column;gap:1px;display:flex}.v31-root .rail-recent-item{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 10px;transition:background .12s,border-color .12s;display:flex}.v31-root .rail-recent-item:hover{background:#00000009}.v31-root .rail-recent-item.active{background:var(--bg-surface);border-color:var(--line-1);box-shadow:var(--shadow-0)}.v31-root .rail-recent-item .ttl{color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;width:100%;font-size:13px;line-height:1.35;overflow:hidden}.v31-root .rail-recent-item.active .ttl{font-weight:500}.v31-root .rail-recent-item .sub{color:var(--ink-3);font-size:11px;font-family:var(--mono);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;max-width:100%;line-height:1.2;display:inline-flex;overflow:hidden}.v31-root .rail-recent-item .stage-tag{color:var(--ink-2)}.v31-root .rail-recent-item.active .stage-tag{color:var(--v31-accent)}.v31-root .rail-recent-item .dotsep{color:var(--ink-4)}.v31-root .rail-user{border-top:1px solid var(--line-2);background:var(--bg-app);cursor:pointer;flex-shrink:0;align-items:center;gap:10px;padding:12px 14px;transition:background .12s;display:flex}.v31-root .rail-user:hover{background:var(--bg-sunken)}.v31-root .rail-user-avatar{background:var(--ink-1);width:30px;height:30px;color:var(--bg-surface);font-family:var(--serif);letter-spacing:0;border-radius:9999px;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;font-weight:600;display:inline-flex}.v31-root .rail-user-meta{flex-direction:column;gap:1px;min-width:0;display:flex}.v31-root .rail-user-meta .name{color:var(--ink-1);font-size:13px;font-weight:500;line-height:1.2}.v31-root .rail-user-meta .plan{color:var(--ink-3);font-size:11px;font-family:var(--mono);line-height:1.2}.v31-root .nav-item{color:var(--ink-2);cursor:pointer;border-radius:4px;align-items:center;gap:10px;margin:1px 0;padding:6px 10px;font-size:13px;line-height:1.3;display:flex}.v31-root .nav-item:hover{background:#00000009}.v31-root .nav-item.active{background:var(--bg-surface);color:var(--ink-1);border-left:2px solid var(--v31-accent);padding-left:8px;font-weight:500}.v31-root .nav-item .num{font-family:var(--mono);color:var(--ink-3);width:18px;font-size:11px}.v31-root .nav-item.active .num{color:var(--v31-accent);font-weight:600}.v31-root .nav-item .stale{color:var(--warn);margin-left:auto}.v31-root .center{background:var(--bg-canvas);flex:1;min-width:0;overflow-y:auto}.v31-root .center-inner{min-width:0;max-width:880px;margin:0 auto;padding:32px 48px 64px}.v31-root .right-panel{background:var(--bg-surface);border-left:1px solid var(--line-1);flex-direction:column;flex-shrink:0;width:40%;min-width:0;min-height:0;display:flex;position:relative}.v31-root .right-panel-resizer{cursor:col-resize;z-index:5;touch-action:none;width:7px;position:absolute;top:0;bottom:0;left:-3px}.v31-root .right-panel-resizer:after{content:"";background:var(--line-1);width:1px;transition:background .12s,width .12s;position:absolute;top:0;bottom:0;left:3px}.v31-root .right-panel-resizer:hover:after,.v31-root .right-panel-resizer:active:after{background:var(--v31-accent);width:2px}.v31-root .right-panel-resizer:before{content:"";background:var(--line-2,var(--line-1));opacity:0;border-radius:3px;width:5px;height:28px;transition:opacity .12s;position:absolute;top:50%;left:1px;transform:translateY(-50%)}.v31-root .right-panel:hover .right-panel-resizer:before,.v31-root .right-panel-resizer:hover:before{opacity:1}.v31-root .mobile-pane-switch{display:none}@media (max-width:767.98px){.v31-root .mobile-pane-switch{background:var(--bg-surface);border-bottom:1px solid var(--line-1);flex-shrink:0;gap:6px;padding:6px 8px;display:flex}.v31-root .mobile-pane-switch .mps-tab{border:1px solid var(--line-2);height:34px;color:var(--ink-2);cursor:pointer;appearance:none;background:0 0;border-radius:6px;flex:1;font-size:13px;font-weight:500}.v31-root .mobile-pane-switch .mps-tab.active{background:var(--bg-sunken);border-color:var(--ink-1);color:var(--ink-1);font-weight:600}.v31-root .main>.left-rail,.v31-root .main>.center,.v31-root .main>.right-panel{display:none}.v31-root .main[data-mpane=nav]>.left-rail{border-right:0;min-width:0;max-width:none;display:flex;width:100%!important}.v31-root .main[data-mpane=center]>.center{display:block}.v31-root .main[data-mpane=chat]>.right-panel{border-left:0;min-width:0;display:flex;width:100%!important}.v31-root .left-rail.collapsed{min-width:0;max-width:none;width:100%!important}.v31-root .left-rail.collapsed .rail-label,.v31-root .left-rail.collapsed .nav-item>span:not(.num),.v31-root .left-rail.collapsed .toc,.v31-root .left-rail.collapsed .rail-plan-preview{display:revert}.v31-root .left-rail.collapsed .nav-item{justify-content:flex-start;padding-left:10px;padding-right:10px}.v31-root .rail-toggle-row,.v31-root .right-panel-resizer{display:none}.v31-root .center-inner{max-width:none!important;padding:16px 14px 48px!important}.v31-root .topbar{gap:10px;padding:0 12px}.v31-root .topbar .crumb{display:none}.v31-root .topbar .brand{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:16px;overflow:hidden}}.v31-root .doc-h1{letter-spacing:-.018em;margin-bottom:4px;font-size:34px;font-weight:700;line-height:1.15}.v31-root .doc-eyebrow{font-family:var(--sans);text-transform:uppercase;letter-spacing:.14em;color:var(--v31-accent);margin-bottom:8px;font-size:11px;font-weight:600}.v31-root .doc-subtitle{color:var(--ink-3);margin-bottom:24px;font-size:13px}.v31-root .section{border:1px solid var(--line-1);background:var(--bg-surface);border-radius:4px;margin-bottom:16px;overflow:hidden}.v31-root .section.primary{border-color:var(--ink-1);box-shadow:var(--shadow-1)}.v31-root .section.primary>.section-head{background:var(--bg-canvas)}.v31-root .section-head{cursor:pointer;background:var(--bg-surface);align-items:center;gap:12px;padding:12px 16px;display:flex}.v31-root .section-head:hover{background:var(--bg-sunken)}.v31-root .section.expanded .section-head{border-bottom:1px solid var(--line-2)}.v31-root .section-caret{color:var(--ink-3);text-align:center;width:12px;font-size:10px;transition:transform .15s}.v31-root .section.expanded .section-caret{transform:rotate(90deg)}.v31-root .section-title{font-family:var(--serif);flex-shrink:0;font-size:16px;font-weight:600}.v31-root .section-summary{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:12.5px;overflow:hidden}.v31-root .section-meta{align-items:center;gap:8px;display:flex}.v31-root .section-body{padding:20px 24px 24px}.v31-root .md h1{margin:24px 0 12px;font-size:24px}.v31-root .md h2{border-bottom:1px solid var(--line-2);margin:22px 0 10px;padding-bottom:6px;font-size:19px}.v31-root .md h3{font-size:15px;font-family:var(--sans);margin:18px 0 8px;font-weight:600}.v31-root .md h2:first-child,.v31-root .md h3:first-child,.v31-root .md h1:first-child{margin-top:0}.v31-root .md p{color:var(--ink-1);margin:0 0 12px;line-height:1.65}.v31-root .md ul,.v31-root .md ol{margin:0 0 12px;padding-left:22px}.v31-root .md li{margin:4px 0;line-height:1.6}.v31-root .md li::marker{color:var(--ink-3)}.v31-root .md code{background:var(--bg-code);border:1px solid var(--line-2);border-radius:2px;padding:1px 5px;font-size:12px}.v31-root .md pre{background:var(--bg-code);border:1px solid var(--line-2);border-radius:4px;margin:0 0 14px;padding:12px 14px;font-size:12.5px;line-height:1.55;overflow-x:auto}.v31-root .md pre code{background:0 0;border:0;padding:0}.v31-root .md blockquote{border-left:3px solid var(--line-1);color:var(--ink-2);background:var(--bg-sunken);margin:0 0 12px;padding:4px 0 4px 14px}.v31-root .md table{border-collapse:collapse;width:100%;margin:0 0 16px;font-size:12.5px}.v31-root .md table th,.v31-root .md table td{border:1px solid var(--line-2);text-align:left;padding:6px 10px}.v31-root .md table th{background:var(--bg-sunken);font-weight:600}.v31-root .md a{color:var(--v31-accent)}.v31-root .md hr{border:0;border-top:1px solid var(--line-2);margin:18px 0}.v31-root .md .frontmatter{background:var(--bg-sunken);border:1px solid var(--line-2);font-family:var(--mono);color:var(--ink-2);white-space:pre;border-radius:4px;margin-bottom:14px;padding:10px 14px;font-size:11.5px;overflow-x:auto}.v31-root .checklist{margin:0 0 12px;padding:0;list-style:none}.v31-root .checklist li{align-items:flex-start;gap:8px;padding:4px 0;font-size:13.5px;display:flex}.v31-root .checklist .check{font-family:var(--mono);width:16px;color:var(--ok);flex-shrink:0;margin-top:2px;font-size:12px}.v31-root .checklist .check.fail{color:var(--err)}.v31-root .checklist .check.warn{color:var(--warn)}.v31-root .stage-nav .nav-item{margin:2px 0}.v31-root .toc{color:var(--ink-3);padding:4px 0;font-size:12.5px}.v31-root .toc-item{cursor:pointer;border-left:2px solid #0000;padding:3px 12px 3px 24px}.v31-root .toc-item:hover{color:var(--ink-1)}.v31-root .toc-item.active{color:var(--ink-1);border-left-color:var(--v31-accent);background:#00000005}.v31-root .toc-group{color:var(--ink-2);align-items:center;gap:6px;padding:6px 12px 3px;font-size:11.5px;font-weight:500;display:flex}.v31-root .toc-group .ico{width:8px;color:var(--ink-3);font-size:9px}.v31-root .ai-head{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:12px 14px 10px;display:flex}.v31-root .ai-head .title{font-family:var(--serif);flex:1;font-size:14px;font-weight:600}.v31-root .ai-status{border-radius:9999px;align-items:center;gap:6px;height:22px;padding:0 8px;font-size:11.5px;display:inline-flex}.v31-root .ai-status .dot{width:6px;height:6px}.v31-root .ai-stream{flex-direction:column;flex:1;gap:14px;padding:14px;display:flex;overflow-y:auto}.v31-root .msg{flex-direction:column;gap:4px;font-size:13px;display:flex}.v31-root .msg-head{color:var(--ink-3);align-items:center;gap:6px;font-size:11.5px;display:flex}.v31-root .msg-author{color:var(--ink-2);font-weight:600}.v31-root .msg-author.agent{color:var(--info)}.v31-root .msg-author.user{color:var(--v31-accent)}.v31-root .msg-body{color:var(--ink-1);line-height:1.55}.v31-root .msg-body.system{color:var(--ink-2);font-size:12.5px;font-style:italic}.v31-root .ask-card{border:1px solid var(--warn);background:var(--warn-soft);border-radius:4px;margin-top:6px;padding:10px 12px}.v31-root .ask-card .ask-tag{font-size:10.5px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--warn);margin-bottom:4px}.v31-root .ask-card .ask-actions{gap:6px;margin-top:10px;display:flex}.v31-root .ai-controls{border-top:1px solid var(--line-2);background:var(--bg-canvas);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.v31-root .ai-control-row{gap:6px;display:flex}.v31-root .ai-control-row .btn{flex:1;height:30px;padding:0 6px;font-size:12px}.v31-root .ai-input-wrap{border:1px solid var(--line-1);background:var(--bg-surface);border-radius:4px;padding:8px 10px}.v31-root .ai-input-wrap:focus-within{border-color:var(--v31-accent)}.v31-root .ai-input-wrap textarea{resize:none;background:0 0;border:0;outline:0;width:100%;min-height:40px;max-height:120px;font-size:13px;line-height:1.5}.v31-root .ai-input-wrap .hint{color:var(--ink-3);justify-content:space-between;margin-top:4px;font-size:11px;display:flex}.v31-root .home-hero{text-align:center;padding:80px 0 28px}.v31-root .home-hero .brand-mark{font-family:var(--serif);letter-spacing:-.025em;align-items:baseline;gap:0;font-size:56px;font-weight:700;line-height:1;display:inline-flex}.v31-root .home-hero .brand-mark:before{content:"";background:var(--v31-accent);align-self:center;width:6px;height:44px;margin-right:14px;display:inline-block}.v31-root .home-hero .tagline{color:var(--ink-2);font-size:16px;font-family:var(--serif);margin-top:14px;font-style:italic}.v31-root .home-prompt{border:1px solid var(--line-1);background:var(--bg-surface);border-radius:6px;flex-direction:column;gap:8px;max-width:720px;margin:24px auto 0;padding:16px 18px;display:flex}.v31-root .home-prompt textarea{resize:none;background:0 0;border:0;outline:0;width:100%;min-height:60px;font-size:14px;line-height:1.55}.v31-root .home-prompt-foot{color:var(--ink-3);justify-content:space-between;align-items:center;font-size:12px;display:flex}.v31-root .home-templates-label{text-align:center;color:var(--ink-2);letter-spacing:.04em;margin:56px 0 16px;font-size:13px}.v31-root .home-templates-label:before,.v31-root .home-templates-label:after{content:"";border-top:1px solid var(--line-1);vertical-align:middle;width:80px;margin:0 16px;display:inline-block}.v31-root .tpl-grid{grid-template-columns:repeat(4,1fr);gap:12px;max-width:880px;margin:0 auto;display:grid}.v31-root .tpl-card{border:1px solid var(--line-1);background:var(--bg-surface);cursor:pointer;border-radius:4px;padding:16px 14px;transition:all .15s}.v31-root .tpl-card:hover{border-color:var(--v31-accent);background:var(--bg-surface);box-shadow:inset 4px 0 0 var(--v31-accent)}.v31-root .tpl-card .name{font-family:var(--serif);font-size:15px;font-weight:600}.v31-root .tpl-card .desc{color:var(--ink-3);margin-top:4px;font-size:12px;line-height:1.5}.v31-root .tpl-card .meta{font-family:var(--mono);color:var(--ink-3);justify-content:space-between;margin-top:12px;font-size:11px;display:flex}.v31-root .proj-list-item{cursor:pointer;border-radius:3px;flex-direction:column;gap:2px;margin:1px 0;padding:8px 10px;font-size:13px;display:flex}.v31-root .proj-list-item:hover{background:#0000000a}.v31-root .proj-list-item.active{background:var(--bg-surface);border:1px solid var(--line-1);padding:7px 9px}.v31-root .proj-list-item .ttl{color:var(--ink-1)}.v31-root .proj-list-item .sub{color:var(--ink-3);font-size:11px;font-family:var(--mono)}.v31-root .ov-meta{border:1px solid var(--line-1);background:var(--bg-surface);border-radius:4px;margin-bottom:24px;padding:20px 24px}.v31-root .ov-meta .title{font-size:24px;font-family:var(--serif);margin-bottom:6px}.v31-root .pending-inner.current-inner{position:relative}.v31-root .pending-inner.current-inner .ps{border-left:2px solid var(--v31-accent);padding-left:14px}.v31-root .pending-inner.current-inner .ps-h-num{color:var(--v31-accent)}.v31-root .pending-inner.current-inner .gf-pill{color:var(--v31-accent);border-color:color-mix(in srgb,var(--v31-accent)40%,transparent)}.v31-root .ov-meta .question{color:var(--ink-2);max-width:640px;font-size:14px;line-height:1.6}.v31-root .ov-meta .idea-toggle{color:var(--v31-accent);cursor:pointer;white-space:nowrap;background:0 0;border:none;margin-left:6px;padding:0;font-size:13px;font-weight:500}.v31-root .ov-meta .idea-toggle:hover{text-decoration:underline}.v31-root .ov-meta-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;margin-top:18px;font-size:12px;display:grid}.v31-root .ov-meta-grid .label{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:11px}.v31-root .ov-meta-grid .val{color:var(--ink-1);font-family:var(--mono);font-size:12.5px}.v31-root .progress-segs{gap:4px;margin-top:14px;display:flex}.v31-root .progress-segs .seg{background:var(--line-2);border-radius:2px;flex:1;height:4px}.v31-root .progress-segs .seg.done{background:var(--ok)}.v31-root .progress-segs .seg.active{background:var(--st-current)}.v31-root .stage-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;display:grid}.v31-root .stage-card{border:1px solid var(--line-1);background:var(--bg-surface);cursor:pointer;border-radius:4px;flex-direction:column;gap:10px;min-height:220px;padding:18px 18px 14px;transition:border-color .12s;display:flex}.v31-root .stage-card:hover{border-color:var(--ink-3)}.v31-root .stage-card.active{border-color:var(--st-current);box-shadow:inset 0 -3px 0 var(--st-current)}.v31-root .stage-card.done{background:#faf6e8}.v31-root .stage-card-head{align-items:baseline;gap:8px;display:flex}.v31-root .stage-card-num{font-family:var(--mono);color:var(--ink-3);font-size:11px}.v31-root .stage-card-name{font-family:var(--serif);font-size:17px;font-weight:600}.v31-root .stage-card-goal{color:var(--ink-2);flex:1;font-size:12.5px;line-height:1.55}.v31-root .stage-card-deliv{color:var(--ink-3);font-size:11.5px;font-family:var(--mono);flex-direction:column;gap:2px;display:flex}.v31-root .stage-card-foot{border-top:1px solid var(--line-2);justify-content:space-between;align-items:center;margin-top:4px;padding-top:10px;font-size:11.5px;display:flex}.v31-root .modal-back{z-index:100;background:#281c0a52;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.v31-root .modal{background:var(--bg-surface);border:1px solid var(--line-1);border-radius:6px;flex-direction:column;width:540px;max-width:calc(100vw - 32px);max-height:80vh;display:flex;overflow:hidden}.v31-root .modal-head{border-bottom:1px solid var(--line-2);padding:16px 20px 12px}.v31-root .modal-title{font-family:var(--serif);font-size:17px;font-weight:600}.v31-root .modal-body{flex:1;padding:16px 20px;overflow-y:auto}.v31-root .modal-foot{border-top:1px solid var(--line-2);background:var(--bg-canvas);justify-content:flex-end;gap:8px;padding:12px 16px;display:flex}.v31-root .wizard-progress{background:var(--bg-sunken);border:1px solid var(--line-2);border-radius:4px;margin-bottom:16px;padding:14px 16px}.v31-root .progress-bar{background:var(--line-2);border-radius:2px;height:4px;margin:8px 0 6px;overflow:hidden}.v31-root .progress-bar-fill{background:var(--v31-accent);height:100%;transition:width .4s}.v31-root .fab{background:var(--ink-1);color:#fff;cursor:pointer;border:0;border-radius:4px;align-items:center;gap:8px;height:40px;padding:0 16px;font-size:13px;display:inline-flex;position:fixed;bottom:24px;right:24px;box-shadow:0 2px 8px #3c280f38}.v31-root .fab:hover{background:#000}.v31-root .attach-list{flex-direction:column;gap:6px;margin-top:8px;display:flex}.v31-root .attach{border:1px solid var(--line-2);background:var(--bg-canvas);border-radius:4px;align-items:center;gap:10px;padding:8px 12px;font-size:12.5px;display:flex}.v31-root .attach .ext{font-family:var(--mono);background:var(--bg-sunken);border:1px solid var(--line-2);color:var(--ink-2);text-transform:uppercase;border-radius:2px;padding:1px 6px;font-size:10px}.v31-root .attach .name{flex:1}.v31-root .attach .size{color:var(--ink-3);font-family:var(--mono);font-size:11px}.v31-root .attach-clickable{width:100%;font:inherit;text-align:left;cursor:pointer;transition:border-color .12s,background .12s}.v31-root .done-combo .done-attach-list .attach-clickable:hover{border-color:var(--v31-accent);background:var(--v31-accent-soft)}.v31-root .banner-stale{background:var(--warn-soft);color:var(--warn);border:1px solid #e0cb95;border-radius:4px;align-items:center;gap:10px;margin-bottom:16px;padding:8px 12px;font-size:12.5px;display:flex}.v31-root .drawer-back{z-index:90;background:#281c0a47;position:fixed;inset:0}.v31-root .drawer{background:var(--bg-surface);border-left:1px solid var(--line-1);z-index:95;flex-direction:column;width:420px;max-width:calc(100vw - 32px);display:flex;position:fixed;top:0;bottom:0;right:0}.v31-root .icon{justify-content:center;align-items:center;display:inline-flex}.v31-root .lib-search-top{border:1px solid var(--line-1);background:var(--bg-canvas);border-radius:4px;align-items:center;gap:6px;width:280px;padding:3px 8px;display:flex}.v31-root .lib-search-top input{background:0 0;border:0;outline:0;flex:1;height:22px;font-size:12.5px}.v31-root .lib3{flex:1;min-height:0;display:flex}.v31-root .lib3-side{border-right:1px solid var(--line-2);background:var(--bg-canvas);flex-shrink:0;width:220px;padding:8px 0;overflow-y:auto}.v31-root .lib3-side-sec{padding:4px 0 12px}.v31-root .lib3-side-sec+.lib3-side-sec{border-top:1px solid var(--line-2)}.v31-root .lib3-side-h{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);justify-content:space-between;align-items:center;padding:10px 14px 4px;font-size:10.5px;display:flex}.v31-root .lib3-side-h .add{cursor:pointer;padding:0 6px;font-weight:600}.v31-root .lib3-side-h .add:hover{color:var(--v31-accent)}.v31-root .lib3-coll{color:var(--ink-2);cursor:pointer;border-left:2px solid #0000;align-items:center;gap:8px;padding:5px 14px;font-size:12.5px;display:flex}.v31-root .lib3-coll:hover{background:var(--bg-sunken)}.v31-root .lib3-coll.active{background:var(--v31-accent-soft);color:var(--ink-1);border-left-color:var(--v31-accent)}.v31-root .lib3-coll .ic{text-align:center;flex-shrink:0;width:16px;font-size:12px}.v31-root .lib3-coll .ic.is-dot{color:var(--v31-accent);font-size:9px}.v31-root .lib3-coll .lbl{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.v31-root .lib3-coll .cnt{font-family:var(--mono);color:var(--ink-3);font-size:10.5px}.v31-root .lib3-coll.active .cnt{color:var(--ink-2)}.v31-root .lib3-tag-cloud{flex-wrap:wrap;gap:4px;padding:4px 12px 8px;display:flex}.v31-root .lib3-tag{border:1px solid var(--line-2);cursor:pointer;background:var(--bg-surface);border-radius:999px;padding:2px 7px;font-size:11px}.v31-root .lib3-tag:hover{border-color:var(--v31-accent);color:var(--v31-accent)}.v31-root .lib3-tag.active{background:var(--ink-1);color:#fff;border-color:var(--ink-1)}.v31-root .lib3-main{background:var(--bg-surface);flex-direction:column;flex:1;min-width:0;display:flex}.v31-root .lib3-bread{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:10px 16px 8px;display:flex}.v31-root .lib3-bread .lbl{font-family:var(--serif);color:var(--ink-1);font-size:15px;font-weight:600}.v31-root .lib3-thead{background:var(--bg-canvas);border-bottom:1px solid var(--line-2);color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em;z-index:1;align-items:center;padding:6px 10px;font-size:11px;font-weight:600;display:flex;position:sticky;top:0}.v31-root .lib3-th{cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;flex-shrink:0;padding:4px 8px}.v31-root .lib3-th.tiny{text-align:center;cursor:default;padding:4px 2px}.v31-root .lib3-th:not(.tiny):hover,.v31-root .lib3-th.active{color:var(--ink-1)}.v31-root .lib3-th.r{text-align:right}.v31-root .lib3-th .arr{color:var(--v31-accent);margin-left:4px}.v31-root .lib3-th:not([style*=width]){flex:1}.v31-root .lib3-rows{flex:1;overflow-y:auto}.v31-root .lib3-tr{border-bottom:1px solid var(--line-2);color:var(--ink-1);cursor:pointer;align-items:center;min-height:32px;padding:7px 10px;font-size:12.5px;display:flex}.v31-root .lib3-tr:hover{background:var(--bg-canvas)}.v31-root .lib3-tr.active{background:var(--v31-accent-soft)}.v31-root .lib3-tr.active .ttl{color:var(--ink-1)}.v31-root .lib3-td{white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;padding:0 8px;overflow:hidden}.v31-root .lib3-td.tiny{text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:0 2px}.v31-root .lib3-td.r{text-align:right}.v31-root .lib3-td.title-c{flex:1;min-width:0;padding:0 8px}.v31-root .lib3-td.title-c .ttl{font-family:var(--serif);color:var(--ink-1);margin-right:6px}.v31-root .lib3-td.auth-c{color:var(--ink-2);font-size:12px}.v31-root .lib3-td.journal-c{color:var(--ink-3);font-size:11.5px;font-style:italic}.v31-root .lib3-grade{font-size:9.5px;font-family:var(--mono);border:1px solid var(--line-1);color:var(--ink-3);vertical-align:1px;border-radius:2px;padding:1px 5px}.v31-root .lib3-unread{background:var(--v31-accent);border-radius:50%;width:7px;height:7px;display:inline-block}.v31-root .lib3-empty{text-align:center;color:var(--ink-3);padding:60px 20px;font-size:13px}.v31-root .lib3-prev{border-left:1px solid var(--line-2);background:var(--bg-canvas);flex-direction:column;flex-shrink:0;width:360px;display:flex;overflow:hidden}.v31-root .lib3-prev-head{border-bottom:1px solid var(--line-2);background:var(--bg-surface);padding:14px 16px 10px}.v31-root .lib3-prev-head .row{align-items:center;gap:4px;margin-bottom:8px;display:flex}.v31-root .lib3-prev-title{font-family:var(--serif);color:var(--ink-1);margin:0 0 6px;font-size:16px;font-weight:600;line-height:1.35}.v31-root .lib3-prev-auth{color:var(--ink-2);margin-bottom:4px;font-size:12px}.v31-root .lib3-prev-meta{color:var(--ink-3);gap:6px;font-size:11px;display:flex}.v31-root .lib3-prev-tabs{border-bottom:1px solid var(--line-2);padding:0 12px;display:flex}.v31-root .lib3-prev-tab{cursor:pointer;color:var(--ink-3);border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-size:12px}.v31-root .lib3-prev-tab:hover{color:var(--ink-1)}.v31-root .lib3-prev-tab.active{color:var(--ink-1);border-bottom-color:var(--v31-accent);font-weight:500}.v31-root .lib3-prev-body{flex:1;padding:14px 16px;overflow-y:auto}.v31-root .lib3-prev-h{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin:14px 0 6px;font-size:10.5px;font-weight:600}.v31-root .lib3-prev-h:first-child{margin-top:0}.v31-root .lib3-kv{grid-template-columns:auto 1fr;gap:4px 12px;font-size:12px;display:grid}.v31-root .lib3-kv .k{color:var(--ink-3)}.v31-root .lib3-kv .v{color:var(--ink-1)}.v31-root .lib3-kv .v.mono{font-family:var(--mono);font-size:11px}.v31-root .lib3-abs{font-family:var(--serif);color:var(--ink-1);margin:0 0 8px;font-size:12.5px;line-height:1.65}.v31-root .lib3-annot{border-bottom:1px solid var(--line-2);gap:10px;padding:10px 0;font-size:12px;display:flex}.v31-root .lib3-annot:last-child{border-bottom:0}.v31-root .lib3-annot-mark{border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;display:flex}.v31-root .lib3-annot .hi{font-family:var(--serif);padding:1px 4px;line-height:1.55;display:inline}.v31-root .lib3-annot .loc{color:var(--ink-3);font-size:10.5px;font-family:var(--mono);margin-top:4px}.v31-root .lib3-annot-note{background:var(--bg-canvas);border-left:2px solid var(--v31-accent);color:var(--ink-2);margin-top:5px;padding:4px 8px;font-size:11.5px}.v31-root .lib-layout{flex:1;min-height:0;display:flex}.v31-root .lib-list-pane{border-right:1px solid var(--line-1);background:var(--bg-surface);flex-direction:column;flex-shrink:0;width:380px;display:flex}.v31-root .lib-list-head{border-bottom:1px solid var(--line-2);flex-direction:column;gap:8px;padding:12px 14px;display:flex}.v31-root .lib-search{border:1px solid var(--line-1);background:var(--bg-canvas);border-radius:4px;align-items:center;gap:6px;padding:6px 10px;display:flex}.v31-root .lib-search input{background:0 0;border:0;outline:0;flex:1;font-size:13px}.v31-root .lib-filter-row{flex-wrap:wrap;gap:4px;font-size:11px;display:flex}.v31-root .lib-filter{border:1px solid var(--line-2);cursor:pointer;color:var(--ink-2);background:var(--bg-canvas);border-radius:9999px;padding:2px 8px}.v31-root .lib-filter.active{background:var(--ink-1);color:#fff;border-color:var(--ink-1)}.v31-root .lib-rows{flex:1;overflow-y:auto}.v31-root .lib-row{border-bottom:1px solid var(--line-2);cursor:pointer;flex-direction:column;gap:4px;padding:12px 16px;display:flex}.v31-root .lib-row:hover{background:var(--bg-canvas)}.v31-root .lib-row.active{background:var(--v31-accent-soft);border-left:3px solid var(--v31-accent);padding-left:13px}.v31-root .lib-row .row-top{color:var(--ink-3);align-items:center;gap:6px;font-size:11px;display:flex}.v31-root .lib-row .ttl{font-family:var(--serif);color:var(--ink-1);font-size:14px;font-weight:600;line-height:1.35}.v31-root .lib-row .auth{color:var(--ink-3);font-size:11.5px}.v31-root .lib-row .row-bot{align-items:center;gap:8px;margin-top:2px;font-size:10.5px;display:flex}.v31-root .lib-detail{background:var(--bg-canvas);flex-direction:column;flex:1;min-width:0;display:flex}.v31-root .lib-detail-head{background:var(--bg-surface);border-bottom:1px solid var(--line-1);padding:20px 28px 14px}.v31-root .lib-detail-meta{grid-template-columns:repeat(3,1fr);gap:6px 18px;margin-top:10px;font-size:12px;display:grid}.v31-root .lib-detail-meta .k{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:10.5px}.v31-root .lib-detail-meta .v{color:var(--ink-1);font-family:var(--mono);font-size:12px}.v31-root .lib-tabs{border-bottom:1px solid var(--line-1);background:var(--bg-surface);gap:2px;padding:0 28px;display:flex}.v31-root .lib-tab{color:var(--ink-3);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-size:13px}.v31-root .lib-tab:hover{color:var(--ink-1)}.v31-root .lib-tab.active{color:var(--ink-1);border-bottom-color:var(--v31-accent);font-weight:500}.v31-root .lib-tab-body{flex:1;padding:24px 28px;overflow-y:auto}.v31-root .pdf-stage{gap:18px;height:100%;display:flex}.v31-root .pdf-canvas{background:var(--bg-surface);border:1px solid var(--line-1);font-family:var(--serif);color:var(--ink-1);border-radius:4px;flex:1;padding:36px 48px;font-size:12.5px;line-height:1.65;position:relative;overflow-y:auto}.v31-root .pdf-canvas h2{margin:14px 0 8px;font-size:18px}.v31-root .pdf-canvas .pg-num{text-align:right;font-family:var(--mono);color:var(--ink-3);font-size:10px;position:sticky;top:0}.v31-root .pdf-canvas mark{background:var(--st-warn-soft);padding:0 1px}.v31-root .pdf-side{background:var(--bg-surface);border:1px solid var(--line-1);border-radius:4px;flex-direction:column;width:320px;display:flex}.v31-root .pdf-side-head{border-bottom:1px solid var(--line-2);align-items:center;gap:6px;padding:10px 14px;display:flex}.v31-root .pdf-side-head .seg{border:1px solid var(--line-1);border-radius:4px;font-size:11.5px;display:inline-flex;overflow:hidden}.v31-root .pdf-side-head .seg button{color:var(--ink-2);background:0 0;border:0;padding:4px 10px}.v31-root .pdf-side-head .seg button.on{background:var(--ink-1);color:#fff}.v31-root .qa-stream{flex-direction:column;flex:1;gap:10px;padding:12px 14px;display:flex;overflow-y:auto}.v31-root .qa-msg{font-size:13px;line-height:1.55}.v31-root .qa-msg .who{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:10.5px;font-weight:600}.v31-root .qa-msg.q .who{color:var(--v31-accent)}.v31-root .qa-cite{border-left:2px solid var(--v31-accent);color:var(--ink-2);background:var(--bg-canvas);cursor:pointer;margin-top:6px;padding:2px 8px;font-size:11.5px}.v31-root .qa-cite:hover{background:var(--v31-accent-soft)}.v31-root .qa-input{border-top:1px solid var(--line-2);gap:6px;padding:8px 10px;display:flex}.v31-root .qa-input input{border:1px solid var(--line-1);border-radius:4px;outline:0;flex:1;padding:6px 10px;font-size:12.5px}.v31-root .qa-input input:focus{border-color:var(--v31-accent)}.v31-root .qa-quick{flex-wrap:wrap;gap:4px;padding:6px 10px 0;display:flex}.v31-root .qa-quick .qq{border:1px solid var(--line-2);cursor:pointer;color:var(--ink-2);background:var(--bg-canvas);border-radius:9999px;padding:2px 8px;font-size:11px}.v31-root .qa-quick .qq:hover{border-color:var(--v31-accent);color:var(--v31-accent)}.v31-root .tx-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.v31-root .tx-col{background:var(--bg-surface);border:1px solid var(--line-1);font-family:var(--serif);border-radius:4px;padding:14px 18px;font-size:13px;line-height:1.7}.v31-root .tx-col .tx-label{font-family:var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:8px;font-size:10.5px}.v31-root .lib-actions{border-bottom:1px solid var(--line-2);background:var(--bg-canvas);gap:6px;padding:10px 14px;display:flex}.v31-root .note-pill{background:var(--bg-canvas);border:1px solid var(--line-2);border-left:3px solid var(--v31-accent);border-radius:3px;margin-bottom:8px;padding:8px 10px;font-size:12.5px}.v31-root .note-pill .head{color:var(--ink-3);margin-bottom:2px;font-size:10.5px}.v31-root .lit-add-row{gap:10px;margin-bottom:12px;display:flex}.v31-root .lit-add-row label{color:var(--ink-2);flex-direction:column;flex:1;gap:4px;font-size:12px;font-weight:500;display:flex}.v31-root .lit-add-row input,.v31-root .lit-add-row select,.v31-root .lit-add-row textarea{border:1px solid var(--line-1);border-radius:4px;padding:7px 10px;font-family:inherit;font-size:13px}.v31-root .lit-add-row textarea{resize:vertical;min-height:60px}.v31-root .drop{border:1.5px dashed var(--line-1);text-align:center;background:var(--bg-canvas);color:var(--ink-3);border-radius:4px;padding:20px;font-size:12.5px}.v31-root .drop strong{color:var(--v31-accent)}.v31-root .tpl-details{border-top:1px solid var(--line-2);margin-top:22px;padding-top:18px}.v31-root .tpl-details-divider{justify-content:space-between;align-items:baseline;margin-bottom:14px;display:flex}.v31-root .tpl-details-divider .lbl{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:700}.v31-root .tpl-sec{margin-bottom:16px}.v31-root .tpl-sec:last-child{margin-bottom:0}.v31-root .tpl-h{color:var(--ink-1);border-left:2px solid var(--v31-accent);margin-bottom:6px;padding-left:8px;font-size:12px;font-weight:600}.v31-root .tpl-p{color:var(--ink-2);margin:0;font-size:12.5px;line-height:1.7}.v31-root .tpl-list{color:var(--ink-2);margin:0;padding-left:22px;font-size:12.5px;line-height:1.75;list-style:decimal}.v31-root .tpl-list.compact{line-height:1.6}.v31-root .tpl-list li{margin-bottom:2px}.v31-root .tpl-list li::marker{color:var(--v31-accent);font-variant-numeric:tabular-nums;font-weight:600}.v31-root .tpl-stages{flex-direction:column;gap:4px;display:flex}.v31-root .tpl-stage{border:1px solid var(--line-1);background:var(--bg-2);border-radius:4px}.v31-root .tpl-stage.open{background:var(--bg-1);border-color:var(--line-2)}.v31-root .tpl-stage-head{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;padding:8px 10px;font-size:12.5px;display:flex}.v31-root .tpl-stage-head:hover,.v31-root .tpl-stage.open .tpl-stage-head:hover{background:var(--bg-2)}.v31-root .tpl-stage-head .num{font-family:var(--mono);color:var(--v31-accent);min-width:22px;font-size:11.5px;font-weight:600}.v31-root .tpl-stage-head .name{color:var(--ink-1);font-weight:600}.v31-root .tpl-stage-head .goal-pre{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:12px;overflow:hidden}.v31-root .tpl-stage.open .tpl-stage-head .goal-pre{display:none}.v31-root .tpl-stage-head .grow{flex:1}.v31-root .tpl-stage-head .caret{color:var(--ink-3);font-size:11px}.v31-root .tpl-stage-body{border-top:1px dashed var(--line-1);margin-top:2px;padding:4px 10px 12px}.v31-root .tpl-row{border-bottom:1px dashed var(--line-1);grid-template-columns:72px 1fr;gap:10px;padding:8px 0;display:grid}.v31-root .tpl-row:last-child{border-bottom:none}.v31-root .tpl-row .k{color:var(--ink-3);padding-top:2px;font-size:11.5px}.v31-root .tpl-row .v{color:var(--ink-1);font-size:12.5px;line-height:1.7}.v31-root .tpl-steps{color:var(--ink-2);margin:0;padding-left:22px;font-size:12.5px;line-height:1.75;list-style:decimal}.v31-root .tpl-steps li{margin-bottom:8px}.v31-root .tpl-steps li:last-child{margin-bottom:0}.v31-root .tpl-steps li::marker{color:var(--v31-accent);font-variant-numeric:tabular-nums;font-weight:600}.v31-root .tpl-step-title{color:var(--ink-1);font-weight:600;line-height:1.5}.v31-root .tpl-step-brief{color:var(--ink-2);margin-top:2px;line-height:1.65}.v31-root .fdrawer-back{z-index:90;background:#281c0a4d;justify-content:center;align-items:stretch;padding:24px;animation:.16s ease-out v31-fadein;display:flex;position:fixed;inset:0}.v31-root .fdrawer{background:var(--bg-canvas);border:1px solid var(--line-1);border-radius:6px;flex-direction:column;flex:1;max-width:1280px;display:flex;overflow:hidden;box-shadow:0 24px 60px #3c280f38}.v31-root .fdrawer-head{border-bottom:1px solid var(--line-2);background:var(--bg-surface);align-items:center;gap:12px;padding:10px 14px;display:flex}.v31-root .fdrawer-head .ext-pill{font-family:var(--mono);background:var(--ink-1);color:#fff;text-transform:uppercase;border-radius:3px;padding:3px 7px;font-size:10px}.v31-root .fdrawer-name{font-family:var(--serif);color:var(--ink-1);font-size:14.5px;font-weight:600}.v31-root .fdrawer-path{color:var(--ink-3);align-items:center;gap:6px;margin-top:2px;font-size:11px;display:flex}.v31-root .fdrawer-tabs{border:1px solid var(--line-1);border-radius:4px;gap:0;display:flex;overflow:hidden}.v31-root .fdrawer-tab{color:var(--ink-2);cursor:pointer;border:0;border-right:1px solid var(--line-1);background:0 0;padding:5px 12px;font-size:12px}.v31-root .fdrawer-tab:last-child{border-right:0}.v31-root .fdrawer-tab:hover{background:var(--bg-canvas)}.v31-root .fdrawer-tab.active{background:var(--ink-1);color:#fff}.v31-root .fdrawer-body{flex:1;min-height:0;overflow:auto}.v31-root .fdrawer-pane{padding:24px 32px}.v31-root .fdrawer-edit{flex-direction:column;height:100%;padding:0;display:flex}.v31-root .fdrawer-edit-foot{border-top:1px solid var(--line-2);background:var(--bg-surface);align-items:center;gap:6px;padding:8px 14px;display:flex}.v31-root .cm-editor{min-height:480px;font-family:var(--mono);background:var(--bg-canvas);flex:1;font-size:12.5px;line-height:1.6;display:flex;overflow:auto}.v31-root .cm-editor.cm-readonly{border:1px solid var(--line-2);border-radius:4px;min-height:400px;max-height:70vh}.v31-root .cm-gutter{background:var(--bg-sunken);color:var(--ink-4);text-align:right;-webkit-user-select:none;user-select:none;border-right:1px solid var(--line-2);flex-shrink:0;padding:12px 8px 12px 12px}.v31-root .cm-ln{height:1.6em;font-size:10.5px;line-height:1.6}.v31-root .cm-stage{flex:1;min-width:0;padding:12px 16px;position:relative}.v31-root .cm-hl,.v31-root .cm-input{font:inherit;white-space:pre;word-break:keep-all;tab-size:2;background:0 0;margin:0;padding:0;line-height:1.6}.v31-root .cm-hl{color:var(--ink-1);pointer-events:none}.v31-root .cm-hl>div{min-height:1.6em}.v31-root .cm-input{resize:none;color:#0000;caret-color:var(--ink-1);background:0 0;border:0;outline:0;width:calc(100% - 32px);position:absolute;inset:12px 16px}.v31-root .cm-input::selection{color:#0000;background:#1c1a1724}.v31-root .t-key{color:var(--ink-1);font-weight:600}.v31-root .t-id{color:#2f5a78}.v31-root .t-fld{color:#6e3a8a}.v31-root .t-str{color:#4a6b2e}.v31-root .t-num{color:#8a5a0e}.v31-root .t-pun{color:var(--ink-3)}.v31-root .csv-tools{align-items:center;gap:8px;padding:0 0 10px;display:flex}.v31-root .csv-filter{border:1px solid var(--line-1);border-radius:3px;outline:0;width:180px;padding:3px 8px;font-size:12px}.v31-root .csv-wrap{border:1px solid var(--line-2);border-radius:4px;max-width:100%;overflow-x:auto}.v31-root .csv-tab{border-collapse:collapse;width:100%;font-size:12px}.v31-root .csv-tab th,.v31-root .csv-tab td{border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);text-align:left;white-space:nowrap;text-overflow:ellipsis;max-width:160px;padding:6px 10px;overflow:hidden}.v31-root .csv-tab thead th{background:var(--bg-sunken);color:var(--ink-2);font-weight:600;position:sticky;top:0}.v31-root .csv-tab .csv-rownum{background:var(--bg-sunken);color:var(--ink-4);font-family:var(--mono);text-align:right;width:40px;font-size:10.5px}.v31-root .csv-tab tbody tr:hover{background:var(--bg-sunken)}.v31-root .csv-pager{justify-content:center;align-items:center;gap:12px;padding:12px 0 0;display:flex}.v31-root .bib-card{background:var(--bg-surface);border:1px solid var(--line-2);border-radius:4px;padding:12px 16px}.v31-root .bib-card-h{gap:10px;margin-bottom:6px;display:flex}.v31-root .bib-card-t{font-family:var(--serif);color:var(--ink-1);margin-bottom:4px;font-size:14px;font-weight:600}.v31-root .bib-card-a{color:var(--ink-2);margin-bottom:4px;font-size:12px}.v31-root .bib-card-m{color:var(--ink-3);font-size:11.5px;font-style:italic}.v31-root .fhist{height:100%;min-height:480px;display:flex}.v31-root .fhist-rail{border-right:1px solid var(--line-2);background:var(--bg-surface);flex-shrink:0;width:280px;padding:12px 0;overflow-y:auto}.v31-root .fhist-h{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding:0 16px 8px;font-size:10.5px;font-weight:600}.v31-root .fhist-item{cursor:pointer;gap:10px;padding:8px 16px;display:flex}.v31-root .fhist-item:hover{background:var(--bg-canvas)}.v31-root .fhist-item.active{background:var(--v31-accent-soft);border-left:2px solid var(--v31-accent);padding-left:14px}.v31-root .fhist-bar{flex-direction:column;align-items:center;padding-top:4px;display:flex}.v31-root .fhist-dot{background:var(--line-1);border:2px solid var(--bg-surface);width:9px;height:9px;box-shadow:0 0 0 1px var(--line-1);border-radius:50%}.v31-root .fhist-dot.now{background:var(--v31-accent);box-shadow:0 0 0 1px var(--v31-accent)}.v31-root .fhist-line{background:var(--line-2);flex:1;width:1px;min-height:24px;margin-top:2px}.v31-root .fhist-meta{flex:1;min-width:0}.v31-root .fhist-main{flex-direction:column;flex:1;min-width:0;display:flex}.v31-root .fhist-banner{background:var(--bg-sunken);border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:10px 16px;display:flex}.v31-root .diff{font-family:var(--mono);background:var(--bg-canvas);flex:1;padding:0;font-size:12px;overflow-y:auto}.v31-root .diff-row{align-items:stretch;line-height:1.7;display:flex}.v31-root .diff-row .diff-n{text-align:right;width:40px;color:var(--ink-4);background:var(--bg-sunken);border-right:1px solid var(--line-2);flex-shrink:0;padding:0 6px;font-size:10.5px}.v31-root .diff-row .diff-mk{text-align:center;flex-shrink:0;width:22px}.v31-root .diff-row .diff-c{white-space:pre-wrap;flex:1;padding:0 12px}.v31-root .diff-add{background:#4a6b2e1f}.v31-root .diff-add .diff-mk,.v31-root .diff-add .diff-c{color:#4a6b2e}.v31-root .diff-del{background:var(--st-err-soft)}.v31-root .diff-del .diff-mk,.v31-root .diff-del .diff-c{color:var(--st-err)}.v31-root .diff-ctx .diff-mk{color:var(--ink-4)}.v31-root .edit-pane{flex-direction:column;height:100%;display:flex}.v31-root .edit-toolbar{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:8px 14px;display:flex}.v31-root .edit-area{font-family:var(--mono);resize:none;background:var(--bg-code);border:0;outline:0;flex:1;padding:16px 18px;font-size:13px;line-height:1.6}.v31-root .plan-banner{z-index:5;background:var(--bg-canvas);border-bottom:1px solid var(--line-1);margin:0 -48px 24px;padding:0 48px;position:sticky;top:0}.v31-root .plan-banner.expanded{background:var(--bg-surface);box-shadow:0 1px #3c280f0d}.v31-root .plan-banner-row{cursor:pointer;align-items:center;gap:12px;height:44px;font-size:12.5px;display:flex}.v31-root .plan-banner-row:hover{background:#00000004}.v31-root .plan-banner.expanded .plan-banner-row{border-bottom:1px solid var(--line-2)}.v31-root .plan-banner-caret{color:var(--ink-3);width:10px;font-size:10px}.v31-root .plan-banner-label{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-size:10.5px;font-weight:600}.v31-root .plan-banner-goal{color:var(--ink-1);font-size:13px;font-family:var(--serif);flex-shrink:0;font-weight:500}.v31-root .plan-banner-spacer{flex:1}.v31-root .plan-banner-ac{align-items:center;gap:10px;display:flex}.v31-root .plan-banner-ac-bar{gap:3px;display:flex}.v31-root .plan-banner-ac-bar .seg{background:var(--line-2);border-radius:1px;width:14px;height:6px}.v31-root .plan-banner-ac-bar .seg.ok{background:var(--ok)}.v31-root .plan-banner-ac-bar .seg.warn{background:var(--warn)}.v31-root .plan-banner-ac-bar .seg.fail{background:var(--err)}.v31-root .plan-banner-body{flex-direction:column;gap:22px;padding:18px 0 22px;display:flex}.v31-root .plan-banner-h{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:8px;font-size:11px;font-weight:600}.v31-root .plan-goal-text{font-family:var(--serif);color:var(--ink-1);border-left:3px solid var(--v31-accent);padding-left:12px;font-size:16px;font-weight:500;line-height:1.5}.v31-root .plan-banner-stepmini{align-items:center;gap:4px;margin-right:12px;display:inline-flex}.v31-root .plan-banner-stepmini .stepdot{background:var(--line-1);border-radius:50%;width:7px;height:7px}.v31-root .plan-banner-stepmini .stepdot.done{background:var(--ok)}.v31-root .plan-banner-stepmini .stepdot.active{background:var(--v31-accent);box-shadow:0 0 0 2px var(--v31-accent-soft)}.v31-root .step-track{grid-template-columns:repeat(6,1fr);gap:0;margin:0;padding:0;list-style:none;display:grid;position:relative}.v31-root .step-row{flex-direction:column;gap:8px;padding:0 6px;display:flex;position:relative}.v31-root .step-row .step-num{background:var(--bg-surface);border:1.5px solid var(--line-1);width:26px;height:26px;font-family:var(--mono);color:var(--ink-3);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:600;display:flex}.v31-root .step-row.step-done .step-num{background:var(--ok);border-color:var(--ok);color:#fff}.v31-root .step-row.step-active .step-num{background:var(--v31-accent);border-color:var(--v31-accent);color:#fff;box-shadow:0 0 0 4px var(--v31-accent-soft)}.v31-root .step-row .step-conn{background:var(--line-1);z-index:0;height:1.5px;position:absolute;top:12px;left:calc(50% + 18px);right:calc(18px - 50%)}.v31-root .step-row.step-done .step-conn{background:var(--ok)}.v31-root .step-row:last-child .step-conn{display:none}.v31-root .step-card{padding-top:4px;font-size:12.5px;line-height:1.5}.v31-root .step-card .step-op{color:var(--ink-1);margin-bottom:2px;font-weight:600}.v31-root .step-card .step-tool,.v31-root .step-card .step-out{color:var(--ink-2);font-size:11.5px}.v31-root .step-row.step-active .step-card .step-op{color:var(--v31-accent)}.v31-root .doc-page .md h1:first-child,.v31-root .doc-page .md h2:first-child{margin-top:0}.v31-root .doc-meta-line{color:var(--ink-3);border-bottom:1px solid var(--line-2);font-size:11.5px;font-family:var(--mono);align-items:center;gap:14px;margin-bottom:24px;padding:6px 0 18px;display:flex}.v31-root .doc-meta-line .doc-meta-sep{color:var(--ink-4)}.v31-root .doc-meta-line .doc-meta-edit{gap:4px;margin-left:auto;display:flex}.v31-root .doc-page .md>*{position:relative}.v31-root .doc-page .md>:after{content:attr(data-rev);font-family:var(--mono);color:var(--ink-3);white-space:nowrap;opacity:0;pointer-events:none;font-size:10.5px;transition:opacity .12s;position:absolute;top:4px;right:-14px;transform:translate(100%)}.v31-root .doc-page .md>[data-rev]:hover:after{opacity:1}.v31-root .doc-page .md>[data-rev]:hover{background:linear-gradient(90deg,#0000 0,#1c1a170d 100%)}.v31-root .ai-tabs{border-bottom:1px solid var(--line-2);background:var(--bg-canvas);display:flex}.v31-root .ai-tab{height:34px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;font-family:inherit;font-size:12.5px;display:inline-flex}.v31-root .ai-tab:hover{color:var(--ink-1)}.v31-root .ai-tab.active{color:var(--ink-1);border-bottom-color:var(--v31-accent);background:var(--bg-surface)}.v31-root .ai-tab-count{font-family:var(--mono);color:var(--ink-3);background:var(--bg-sunken);text-align:center;border-radius:8px;min-width:18px;padding:1px 5px;font-size:10.5px}.v31-root .ai-tab.active .ai-tab-count{background:var(--v31-accent-soft);color:var(--v31-accent)}.v31-root .activity-feed{padding:4px 0 8px}.v31-root .act-item{align-items:stretch;gap:10px;padding:0 14px;display:flex}.v31-root .act-rail{flex-direction:column;flex-shrink:0;align-items:center;width:12px;padding-top:4px;display:flex}.v31-root .act-dot{background:var(--ink-4);border:2px solid var(--bg-surface);width:8px;height:8px;box-shadow:0 0 0 1px var(--line-1);border-radius:50%;flex-shrink:0}.v31-root .act-dot-edit{background:var(--info);box-shadow:0 0 0 1px var(--info)}.v31-root .act-dot-ask{background:var(--warn);box-shadow:0 0 0 1px var(--warn)}.v31-root .act-dot-milestone{background:var(--ok);box-shadow:0 0 0 1px var(--ok)}.v31-root .act-dot-tool{background:var(--v31-accent);box-shadow:0 0 0 1px var(--v31-accent)}.v31-root .act-line{background:var(--line-2);flex:1;width:1px;margin-top:2px}.v31-root .act-body{flex:1;min-width:0;padding:0 0 14px}.v31-root .act-head{align-items:center;gap:6px;margin-bottom:2px;font-size:11.5px;display:flex}.v31-root .act-text{color:var(--ink-1);font-size:12.5px;line-height:1.55}.v31-root .act-target{color:var(--ink-3);margin-top:3px;font-size:11px}.v31-root .file-pick-row{border-radius:3px;align-items:center;gap:8px;margin:1px 0;padding:6px 8px;display:flex}.v31-root .file-pick-row:hover{background:var(--bg-sunken)}.v31-root .file-pick-row .ext{font-family:var(--mono);background:var(--bg-sunken);border:1px solid var(--line-2);color:var(--ink-2);text-transform:uppercase;border-radius:2px;flex-shrink:0;padding:1px 5px;font-size:9.5px}.v31-root .stage-state-toggle{border:1px dashed var(--line-1);background:repeating-linear-gradient(-45deg,#0000 0 6px,#3c280f06 6px 7px);border-radius:4px;align-items:center;gap:0;height:28px;padding:0 4px 0 8px;display:inline-flex}.v31-root .stage-state-toggle .sst-eyebrow{color:var(--ink-4);letter-spacing:.1em;text-transform:uppercase;margin-right:8px;font-size:9.5px}.v31-root .stage-state-toggle .sst-btn{height:20px;color:var(--ink-3);font-size:11px;font-family:var(--sans);cursor:pointer;background:0 0;border:0;border-radius:3px;padding:0 9px;transition:background .1s}.v31-root .stage-state-toggle .sst-btn:hover{color:var(--ink-1);background:#0000000a}.v31-root .stage-state-toggle .sst-btn.active{color:var(--ink-1);background:var(--bg-surface);box-shadow:0 0 0 1px var(--line-1);font-weight:600}.v31-root .stage-state-toggle .sst-btn.sst-idle.active{color:var(--ink-2)}.v31-root .stage-state-toggle .sst-btn.sst-current.active{color:var(--v31-accent);box-shadow:0 0 0 1px var(--v31-accent)}.v31-root .stage-state-toggle .sst-btn.sst-done.active{color:var(--ok);box-shadow:0 0 0 1px var(--ok)}.v31-root .nav-state-mk{font-family:var(--mono);color:var(--ink-4);justify-content:center;align-items:center;width:14px;font-size:11px;display:inline-flex}.v31-root .nav-state-mk.nav-state-done{color:var(--ok)}.v31-root .nav-state-mk.nav-state-current,.v31-root .nav-state-mk.nav-state-partial,.v31-root .nav-state-mk.nav-state-allout{color:var(--v31-accent)}.v31-root .nav-state-mk.nav-state-failed{color:var(--warn)}.v31-root .nav-state-mk.nav-state-idle{color:var(--ink-4);font-size:9px}.v31-root .nav-state-mk.nav-state-idle-active{color:var(--warn);font-size:11px}.v31-root .stage-hero{margin-bottom:28px}.v31-root .shero-eyebrow{letter-spacing:.16em;color:var(--ink-3);text-transform:uppercase;margin-bottom:6px;font-size:10.5px;font-weight:600}.v31-root .shero-title-row{align-items:baseline;gap:14px;margin-bottom:6px;display:flex}.v31-root .shero-title{font-family:var(--serif);letter-spacing:-.02em;color:var(--ink-1);font-size:38px;font-weight:700;line-height:1.1}.v31-root .shero-meta{color:var(--ink-3);max-width:640px;font-size:13.5px;line-height:1.55}.v31-root .shero-pill{letter-spacing:.02em;border:1px solid;border-radius:9999px;flex-shrink:0;align-items:center;gap:6px;height:26px;padding:0 12px;font-size:12px;font-weight:600;display:inline-flex;position:relative;top:-4px}.v31-root .shero-pill-glyph{font-family:var(--mono);font-size:11px}.v31-root .shero-pill-idle{background:var(--bg-sunken);border-color:var(--line-1);color:var(--ink-3)}.v31-root .shero-pill-current{background:var(--st-current-soft);border-color:var(--st-current);color:var(--st-current)}.v31-root .shero-pill-current .shero-pill-glyph{color:var(--st-current);animation:1.4s ease-in-out infinite v31-pulse}.v31-root .shero-pill-done{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.v31-root .pending-inner{background:repeating-linear-gradient(135deg,#0000 0 18px,#3c280f05 18px 19px);padding-top:36px}.v31-root .stage-hero-idle .shero-title{color:var(--ink-2)}.v31-root .depend-card{border:1px solid var(--warn);background:linear-gradient(180deg,var(--warn-soft)0%,var(--bg-surface)100%);border-radius:6px;align-items:flex-start;gap:16px;margin-bottom:32px;padding:16px 18px;display:flex}.v31-root .depend-icon{background:var(--bg-surface);border:1px solid var(--warn);width:44px;height:44px;color:var(--warn);border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.v31-root .depend-body{flex:1;min-width:0}.v31-root .depend-h{font-family:var(--serif);color:var(--ink-1);margin-bottom:10px;font-size:15px;font-weight:600}.v31-root .depend-chain{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.v31-root .depend-step{background:var(--bg-surface);border:1px solid var(--line-1);border-radius:4px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.v31-root .depend-step .ds-num{color:var(--ink-3);font-size:10.5px}.v31-root .depend-step .ds-name{font-family:var(--serif);color:var(--ink-1);font-weight:600}.v31-root .depend-step-this{border-color:var(--ink-1);border-style:dashed}.v31-root .depend-arrow{color:var(--ink-4);font-family:var(--mono);font-size:14px}.v31-root .depend-foot{color:var(--ink-3);letter-spacing:.02em;font-size:11px}.v31-root .depend-actions{flex-direction:column;flex-shrink:0;gap:6px;display:flex}.v31-root .ps{margin-bottom:28px}.v31-root .ps-h{font-family:var(--serif);color:var(--ink-1);border-bottom:1px solid var(--line-2);align-items:baseline;gap:10px;margin:0 0 12px;padding-bottom:6px;font-size:16px;font-weight:600;display:flex}.v31-root .ps-h-num{color:var(--v31-accent);letter-spacing:.06em;font-size:10.5px;font-weight:600;font-family:var(--mono)}.v31-root .ps-goal{font-family:var(--serif);color:var(--ink-1);border-left:3px solid var(--line-1);padding-left:14px;font-size:16px;line-height:1.6}.v31-root .ps-empty{color:var(--ink-3);padding:10px 0;font-size:13px;font-style:italic}.v31-root .step-track-pending .step-row .step-num{background:var(--bg-surface);border:1.5px dashed var(--line-1);color:var(--ink-4)}.v31-root .step-track-pending .step-row .step-conn{border-top:1.5px dashed var(--line-1);background:0 0;height:0}.v31-root .step-track-pending .step-card .step-op{color:var(--ink-2)}.v31-root .ghost-files{grid-template-columns:1fr;gap:6px;display:grid}.v31-root .ghost-file{border:1.5px dashed var(--line-1);background:repeating-linear-gradient(135deg,#0000 0 8px,#3c280f06 8px 9px);border-radius:4px;align-items:center;gap:10px;padding:10px 14px;display:flex}.v31-root .ghost-file .gf-ext{background:var(--bg-sunken);border:1px solid var(--line-2);color:var(--ink-3);text-transform:uppercase;border-radius:2px;flex-shrink:0;padding:1px 6px;font-size:10px}.v31-root .ghost-file .gf-body{flex:1;min-width:0}.v31-root .ghost-file .gf-name{color:var(--ink-2);font-size:13px}.v31-root .ghost-file .gf-meta{color:var(--ink-4);margin-top:1px;font-size:10.5px}.v31-root .ghost-file .gf-pill{color:var(--ink-4);border:1px solid var(--line-1);letter-spacing:.04em;text-transform:uppercase;border-radius:9999px;flex-shrink:0;padding:1px 6px;font-size:10px}.v31-root .ghost-file.gf-present{border-style:solid;border-color:var(--ok);background:var(--ok-soft)}.v31-root .ghost-file.gf-present .gf-name{color:var(--ink-1)}.v31-root .ghost-file.gf-present .gf-pill{color:var(--ok);border-color:var(--ok)}.v31-root .ghost-file.gf-clickable{cursor:pointer;transition:filter .12s}.v31-root .ghost-file.gf-clickable:hover{filter:brightness(.97)}.v31-root .ghost-file.gf-clickable:focus-visible{outline:2px solid var(--ok);outline-offset:1px}.v31-root .ghost-extra-fold{margin-top:8px}.v31-root .ghost-extra-fold>summary{cursor:pointer;list-style:revert;color:var(--ink-4);letter-spacing:.02em;-webkit-user-select:none;user-select:none;padding:4px 2px;font-size:11.5px}.v31-root .ghost-extra-fold>summary:hover{color:var(--ink-3)}.v31-root .ghost-extra-fold[open]>summary{color:var(--ink-3);margin-bottom:6px}.v31-root .ghost-extra-fold>.ghost-files,.v31-root .ghost-extra-fold>.deliv-list{opacity:.85}.v31-root .stage-overview .deliv-list{margin:0;padding:0;list-style:none}.v31-root .stage-overview .deliv-list-row{border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:8px 0;font-size:13px;display:flex}.v31-root .stage-overview .deliv-list-row:last-child{border-bottom:none}.v31-root .stage-overview .stage-meta-row{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.v31-root .stage-overview .stage-meta-id{color:var(--ink-3);margin-right:2px;font-size:12px}.v31-root .stage-overview .stage-meta-chip{border:1px solid var(--line-1);color:var(--ink-2);background:var(--bg-sunken);border-radius:999px;padding:4px 8px;font-size:11px;line-height:1}.v31-root .stage-overview .stage-meta-chip.is-done,.v31-root .stage-overview .stage-meta-chip.is-ok{color:#16a34a;background:#f0faf3;border-color:#b6e3c2}.v31-root .stage-overview .stage-meta-chip.is-partial{color:var(--err);background:#fbf2f2;border-color:#e6c2c2}.v31-root .stage-overview .stage-conclusion{border-left:3px solid var(--v31-accent);margin-bottom:22px;padding:2px 0 2px 14px}.v31-root .stage-overview .sc-label{letter-spacing:.06em;color:var(--v31-accent);margin-bottom:6px;font-size:11px}.v31-root .stage-overview .sc-text{color:var(--ink-1);margin:0;font-size:17px;font-weight:500;line-height:1.65}.v31-root .stage-overview .stage-reviewer{margin-bottom:22px}.v31-root .stage-overview .srv-item{border-radius:8px;align-items:baseline;gap:10px;margin-bottom:6px;padding:9px 12px;display:flex}.v31-root .stage-overview .srv-item:last-child{margin-bottom:0}.v31-root .stage-overview .srv-item-label{white-space:nowrap;border-radius:6px;flex:none;padding:2px 7px;font-size:11px;font-weight:600}.v31-root .stage-overview .srv-item-text{color:var(--ink-1);margin:0;font-size:13px;line-height:1.6}.v31-root .stage-overview .srv-improve{background:#fdf6ec;border:1px solid #f0d9b5}.v31-root .stage-overview .srv-improve .srv-item-label{color:#b9770e;background:#f5b14233}.v31-root .stage-overview .srv-strength{background:var(--bg-sunken)}.v31-root .stage-overview .srv-strength .srv-item-label{color:#16a34a;background:#16a34a22}.v31-root .stage-overview .deliv-list-row-col{flex-direction:column;align-items:stretch;gap:5px;padding:12px 0}.v31-root .stage-overview .deliv-row-head{align-items:center;gap:10px;display:flex}.v31-root .stage-overview .ps-h-group{align-items:baseline;gap:10px;display:inline-flex}.v31-root .stage-overview .deliv-row-idx{color:var(--ink-3);flex:none;font-size:11px}.v31-root .stage-overview .deliv-row-name{appearance:none;cursor:pointer;color:var(--ink-1);background:0 0;border:0;padding:0;font-size:13px;text-decoration:none}.v31-root .stage-overview .deliv-row-name.is-link{color:var(--v31-accent);text-underline-offset:2px;font-weight:600;text-decoration:underline}.v31-root .stage-overview .deliv-row-name.is-link:hover{filter:brightness(.9)}.v31-root .deliv-row-name-icon{opacity:.75;margin-left:4px;font-size:11px;text-decoration:none;display:inline-block}.v31-root .stage-overview .deliv-row-name:hover{color:var(--v31-accent);text-decoration:underline}.v31-root .stage-overview .deliv-row-name.is-missing{cursor:default;color:var(--ink-3);font-weight:400}.v31-root .stage-overview .deliv-row-desc{font-size:12px}.v31-root .stage-overview .deliv-point,.v31-root .stage-overview .deliv-review{color:var(--ink-3);gap:6px;margin:0;font-size:12px;line-height:1.5;display:flex}.v31-root .stage-overview .deliv-point-label,.v31-root .stage-overview .deliv-review-label{background:var(--line-2);color:var(--ink-2);border-radius:4px;flex:none;height:fit-content;padding:1px 5px;font-size:10px}.v31-root .stage-overview .stage-goal-fold{margin-top:18px;font-size:12px}.v31-root .stage-overview .stage-goal-fold>summary{cursor:pointer;color:var(--ink-3);list-style:revert}.v31-root .stage-overview .stage-goal-fold>div{margin-top:6px;font-size:13px;line-height:1.6}.v31-root .checklist-pending .check-idle{color:var(--ink-4);font-family:var(--mono)}.v31-root .checklist-pending li{color:var(--ink-2)}.v31-root .pending-right{flex-direction:column;height:100%;display:flex}.v31-root .pending-right--empty{justify-content:center;align-items:center;padding:24px}.v31-root .pr-wait{color:var(--ink-3);flex-direction:column;align-items:center;gap:12px;display:flex}.v31-root .pr-wait-dot{background:var(--bg-sunken);border-radius:999px;justify-content:center;align-items:center;width:28px;height:28px;display:flex}.v31-root .pr-wait-text{color:var(--ink-2);text-align:center;font-size:13px;line-height:1.5}.v31-root .pr-head{border-bottom:1px solid var(--line-2);align-items:center;gap:8px;padding:12px 14px 10px;display:flex}.v31-root .pr-head .title{font-family:var(--serif);flex:1;font-size:14px;font-weight:600}.v31-root .pr-body{flex:1;padding:14px;overflow-y:auto}.v31-root .pr-sec{margin-bottom:22px}.v31-root .pr-sec:last-child{margin-bottom:0}.v31-root .pr-h{text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3);margin-bottom:10px;font-size:10.5px;font-weight:600}.v31-root .pr-cond{margin:0;padding:0;list-style:none}.v31-root .pr-cond li{color:var(--ink-1);border-bottom:1px dashed var(--line-2);gap:10px;padding:8px 0;font-size:12.5px;line-height:1.5;display:flex}.v31-root .pr-cond li:last-child{border-bottom:0}.v31-root .pr-cond-mk{font-family:var(--mono);color:var(--ink-4);flex-shrink:0;font-size:13px}.v31-root .pr-auto-list{border:1px solid var(--line-2);background:var(--bg-canvas);border-radius:4px;overflow:hidden}.v31-root .pr-auto-row{color:var(--ink-2);border-bottom:1px solid var(--line-2);align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex}.v31-root .pr-auto-row:last-child{border-bottom:0}.v31-root .pr-auto-step{color:var(--ink-4);letter-spacing:.04em;width:18px;font-size:10px}.v31-root .cur-step-strip{background:linear-gradient(90deg,var(--v31-accent-soft)0%,var(--bg-surface)100%);border-left:3px solid var(--v31-accent);border-radius:0 4px 4px 0;align-items:center;gap:12px;margin:-8px -16px 22px;padding:10px 14px;font-size:13px;display:flex}.v31-root .cur-step-strip .cs-pulse{color:var(--v31-accent);font-size:0}.v31-root .cur-step-strip .cs-pulse .dot{width:8px;height:8px}.v31-root .cur-step-strip .cs-label{color:var(--v31-accent);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600}.v31-root .cur-step-strip .cs-op{font-family:var(--serif);color:var(--ink-1);font-size:14px;font-weight:600}.v31-root .done-inner{padding-top:0;position:relative}.v31-root .done-inner .stage-conclusion{border-left:3px solid var(--ok)}.v31-root .done-inner .ps{border-left:2px solid var(--ok);padding-left:14px}.v31-root .done-inner .ps-h-num,.v31-root .done-inner .sc-label{color:var(--ok)}.v31-root .sealed-strip{background:linear-gradient(180deg,var(--ok-soft)0%,var(--bg-canvas)100%);border-bottom:1px solid var(--ok);z-index:5;align-items:center;gap:12px;margin:0 -48px 28px;padding:12px 18px;display:flex;position:sticky;top:0}.v31-root .sealed-tick{color:var(--ok);align-items:center;display:flex}.v31-root .sealed-text{flex-direction:column;gap:2px;display:flex}.v31-root .sealed-h{font-family:var(--serif);color:var(--ok);font-size:14px;font-weight:600}.v31-root .sealed-meta{color:var(--ink-3);letter-spacing:.02em;font-size:11px}.v31-root .ac-summary{border:1px solid var(--ok);background:var(--ok-soft);border-radius:4px;margin-bottom:28px;padding:14px 18px}.v31-root .ac-sum-head{align-items:center;margin-bottom:10px;display:flex}.v31-root .checklist-done{margin:0}.v31-root .checklist-done .check{color:var(--ok);font-weight:700}.v31-root .ac-summary.done-combo{padding:16px 18px 18px}.v31-root .done-combo .done-combo-section+.done-combo-section,.v31-root .done-combo .done-combo-divider+.done-combo-section{margin-top:4px}.v31-root .done-combo .done-combo-divider{background:var(--ok);opacity:.25;height:1px;margin:14px -18px}.v31-root .done-combo .done-attach-list .attach{background:#ffffff8c;border-color:#4a6b2e59}.v31-root .doc-meta-sealed{border-bottom-color:var(--ok);opacity:.95}.v31-root .sealed-doc{border:1px solid var(--line-1);border-top:3px solid var(--ok);background:var(--bg-surface);box-shadow:var(--shadow-1);border-radius:0 0 4px 4px;padding:28px 32px;position:relative}.v31-root .sealed-doc:before{content:"FINAL";font-family:var(--mono);letter-spacing:.18em;color:var(--ok);border:1px solid var(--ok);opacity:.65;border-radius:2px;padding:1px 6px;font-size:10px;position:absolute;top:10px;right:14px}.v31-root .sealed-watermark{border-top:1px dashed var(--line-1);text-align:center;color:var(--ink-4);letter-spacing:.08em;text-transform:uppercase;margin-top:22px;padding-top:14px;font-size:10.5px}.v31-root .next-stage-cta{border:1px solid var(--ink-1);background:var(--bg-surface);border-radius:6px;align-items:center;gap:18px;margin-top:32px;padding:20px 24px;display:flex;position:relative;overflow:hidden}.v31-root .next-stage-cta:before{content:"";background:var(--v31-accent);width:4px;position:absolute;top:0;bottom:0;left:0}.v31-root .next-stage-cta .nsc-left{flex:1;min-width:0}.v31-root .next-stage-cta .nsc-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--v31-accent);margin-bottom:4px;font-size:10px;font-weight:600}.v31-root .next-stage-cta .nsc-title{font-family:var(--serif);color:var(--ink-1);margin-bottom:4px;font-size:20px;font-weight:700}.v31-root .next-stage-cta .nsc-goal{color:var(--ink-3);font-size:12.5px;line-height:1.5}.v31-root .done-summary-card{background:var(--bg-canvas);border:1px solid var(--line-2);border-left:3px solid var(--ok);border-radius:4px;margin-bottom:14px;padding:12px 14px}.v31-root .done-summary-card .dsc-h{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px;font-size:10.5px;font-weight:600}.v31-root .done-summary-card .dsc-row{color:var(--ink-1);align-items:center;gap:10px;padding:4px 0;font-size:12px;display:flex}.v31-root .done-summary-card .dsc-row .mono{color:var(--ink-3);flex-shrink:0;min-width:124px;font-size:11px}.v31-root .done-summary-card .dsc-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.v31-root .done-summary-card .dsc-dot-start{background:var(--info)}.v31-root .done-summary-card .dsc-dot-mid{background:var(--ink-4)}.v31-root .done-summary-card .dsc-dot-end{background:var(--ok);box-shadow:0 0 0 2px var(--ok-soft)}.v31-root .completed-right-foot{border-top:1px solid var(--line-2);background:var(--bg-canvas);color:var(--ink-3);text-align:center;letter-spacing:.02em;padding:10px 14px;font-size:11px}.v31-root .stage-state-done .right-panel .ai-controls{display:none}.v31-root .ov-dashboard{padding:0}.v31-root .ov-stage-grid-section{margin-bottom:24px}.v31-root .stage-card-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.v31-root .stage-card-grid .stage-card{text-align:left;border:1px solid var(--line-1);background:var(--bg-surface);cursor:pointer;border-radius:4px;flex-direction:column;gap:8px;width:100%;min-height:0;padding:14px 14px 10px;transition:border-color .12s,box-shadow .12s;display:flex}.v31-root .stage-card-grid .stage-card:hover{border-color:var(--ink-3)}.v31-root .stage-card-grid .stage-card.status-done{border-color:var(--ok);background:var(--ok-soft)}.v31-root .stage-card-grid .stage-card.status-doing{border-color:var(--v31-accent);box-shadow:inset 0 -3px 0 var(--v31-accent)}.v31-root .stage-card-grid .stage-card.status-todo{border-color:var(--line-1)}.v31-root .stage-card-grid .stage-card.is-stalled{border-color:var(--err)!important;box-shadow:inset 0 -3px 0 var(--err)!important}.v31-root .stage-card-grid .stage-card .stage-card-head{align-items:center;gap:6px;display:flex}.v31-root .stage-card-grid .stage-card .num{font-family:var(--mono);color:var(--ink-3);flex-shrink:0;font-size:11px}.v31-root .stage-card-grid .stage-card.status-doing .num{color:var(--v31-accent);font-weight:600}.v31-root .stage-card-grid .stage-card .title{font-family:var(--serif);color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;flex:1;font-size:14px;font-weight:600;overflow:hidden}.v31-root .stage-card-grid .stage-card .stage-card-metrics{font-size:11.5px;font-family:var(--mono);flex-wrap:wrap;gap:10px;display:flex}.v31-root .stage-card-grid .stage-card .stage-card-goal{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.4;overflow:hidden}.v31-root .stage-card-grid .stage-card .stalled-mk{color:var(--err);flex-shrink:0;font-size:13px}.v31-root .stage-card-grid .stage-card .status-mk{font-family:var(--mono);color:var(--ink-3);flex-shrink:0;font-size:12px}.v31-root .stage-card-grid .stage-card.status-done .status-mk{color:var(--ok)}.v31-root .stage-card-grid .stage-card.status-doing .status-mk{color:var(--v31-accent)}.v31-root .ov-deliv-table{border:1px solid var(--line-1);background:var(--bg-surface);border-radius:4px;overflow:hidden}.v31-root .ov-deliv-row{border-bottom:1px solid var(--line-1);align-items:center;gap:12px;padding:9px 14px;font-size:12.5px;display:flex}.v31-root .ov-deliv-row:last-child{border-bottom:0}.v31-root .ov-deliv-head{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);background:var(--bg-muted,#00000005);font-size:11px}.v31-root .ov-deliv-c-idx{text-align:right;flex-shrink:0;width:24px;font-size:11.5px}.v31-root .ov-deliv-c-name{min-width:120px;color:var(--ink-1);flex:1;align-items:center;gap:8px;display:flex}.v31-root .ov-deliv-file{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:var(--mono);font-size:12px;overflow:hidden}.v31-root .ov-deliv-desc{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.v31-root .ov-deliv-c-stage{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:150px;font-size:12px;overflow:hidden}.v31-root .ov-deliv-c-status{flex-shrink:0;width:80px;font-size:12px}.v31-root .ov-deliv-c-verdict{text-align:left;flex:0 220px;min-width:0;font-size:12px}.v31-root .ov-lit-row{border-bottom:1px solid var(--line-1);align-items:center;gap:12px;padding:9px 14px;font-size:12.5px;display:flex}.v31-root .ov-lit-row:last-child{border-bottom:0}.v31-root .ov-lit-c-title{min-width:0;color:var(--ink-1);flex:1;align-items:center;gap:5px;display:flex}.v31-root .ov-lit-empty{align-items:center;display:flex}.v31-root .stage-progress{border-left:3px solid var(--v31-accent);background:var(--v31-accent-soft);border-radius:0 4px 4px 0;margin:4px 0 18px;padding:10px 14px}.v31-root .sp-metrics{align-items:baseline;gap:28px;display:flex}.v31-root .sp-metric{align-items:baseline;gap:8px;display:flex}.v31-root .sp-metric-label{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-size:11px;font-family:var(--mono)}.v31-root .sp-metric-val{color:var(--ink-1);font-size:15px;font-weight:600}.v31-root .sp-hint,.v31-root .stage-plan-fold{margin-top:8px;font-size:12px}.v31-root .stage-plan-fold>summary{cursor:pointer;color:var(--ink-3);list-style:revert;padding:4px 0}.v31-root .stage-plan-fold .spf-body{margin-top:8px}.v31-root .stage-plan-fold .spf-goal{color:var(--ink-1);margin-bottom:10px;font-size:13px;line-height:1.6}.v31-root .ov-deliv-link{cursor:pointer;font-family:var(--mono);color:var(--v31-accent);text-underline-offset:2px;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:0 0;border:0;min-width:0;max-width:100%;padding:0;font-size:12px;font-weight:600;text-decoration:underline;overflow:hidden}.v31-root .ov-deliv-link:hover{filter:brightness(.9)}.v31-root .ov-deliv-file.is-missing{color:var(--ink-3)}.v31-root .ov-deliv-review{cursor:pointer;text-align:left;color:var(--ink-2);-webkit-line-clamp:2;background:0 0;border:0;-webkit-box-orient:vertical;margin:0;padding:0;font-family:inherit;font-size:11.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.v31-root .ov-deliv-review.is-open{-webkit-line-clamp:unset;display:block;overflow:visible}.v31-root .ov-deliv-review:hover{color:var(--ink-1)}.v31-root .ov-lit-table{border:1px solid var(--line-1);background:var(--bg-surface);border-radius:4px;overflow:hidden}.v31-root .ov-lit-head{text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);background:var(--bg-muted,#00000005);font-size:11px}.v31-root .ov-lit-icon{width:14px;height:14px;color:var(--ink-3);flex-shrink:0}.v31-root .ov-lit-title-col{flex-direction:column;gap:1px;min-width:0;display:flex}.v31-root .ov-lit-link{cursor:pointer;text-align:left;color:var(--ink-1);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:12.5px;display:flex;overflow:hidden}.v31-root .ov-lit-link:hover{color:var(--v31-accent);text-decoration:underline}.v31-root .ov-lit-title-zh{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.v31-root .ov-lit-c-journal{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;width:180px;font-size:12px;font-style:italic;overflow:hidden}.v31-root .ov-lit-c-year{text-align:right;width:56px;font-family:var(--mono);flex-shrink:0;font-size:12px}.v31-root .ac-ok{color:var(--ok);font-weight:600}.v31-root .ac-partial{color:var(--warn);font-weight:600}.v31-root .ac-checklist{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.v31-root .ac-row{align-items:flex-start;gap:8px;padding:2px 0;font-size:13px;line-height:1.5;display:flex}.v31-root .ac-row.ac-row-pass,.v31-root .ac-row.ac-row-fail{color:var(--ink-1)}.v31-root .ac-row.ac-row-pending{color:var(--ink-2)}.v31-root .ac-mark{text-align:center;width:18px;font-family:var(--mono);flex-shrink:0;padding-top:1px;font-size:12px}.v31-root .ac-row-pass .ac-mark{color:#16a34a}.v31-root .ac-row-fail .ac-mark{color:var(--err)}.v31-root .ac-row-pending .ac-mark{color:var(--ink-4)}.v31-root .ac-body{flex:1;min-width:0}.v31-root .ac-desc{color:var(--ink-1);font-size:13px}.v31-root .ac-row-pending .ac-desc{color:var(--ink-2)}.v31-root .ac-id{font-family:var(--mono);color:var(--ink-3);margin-right:4px;font-size:11px}.v31-root .ac-reason{color:var(--ink-3);margin-top:2px;padding-left:4px;font-size:11.5px;font-style:italic}.v31-root .ac-empty{color:var(--ink-3);padding:8px 0;font-size:13px;font-style:italic}.v31-root .stage-detail{padding-bottom:32px}.v31-root .sd-goal,.v31-root .sd-acceptance,.v31-root .sd-deliverables,.v31-root .sd-steps,.v31-root .sd-raw{margin-bottom:20px}.v31-root .sd-fold-toggle{color:var(--v31-accent);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--sans);background:0 0;border:none;align-items:center;gap:4px;padding:0;line-height:1.4;display:inline-flex}.v31-root .sd-fold-toggle:hover{text-decoration:underline}.v31-root .sd-steps-list{color:var(--ink-2);flex-direction:column;gap:4px;margin:8px 0 0;padding-left:24px;font-size:13px;line-height:1.6;display:flex}.v31-root .sd-steps-list li::marker{color:var(--v31-accent);font-weight:600;font-family:var(--mono);font-size:11px}
