:root{font-family:Inter,Microsoft YaHei,system-ui,sans-serif;color:#e8edf5;background:#101924;font-synthesis:none;line-height:1.6;color-scheme:dark}*{box-sizing:border-box}body{margin:0}main{max-width:1100px;margin:auto;padding:40px 28px 32px}header{border-bottom:1px solid #324152;padding-bottom:22px}.eyebrow{color:#7cd9c2;font-size:11px;font-weight:700;letter-spacing:2px}h1{font-size:30px;line-height:1.3;margin:12px 0 8px}header p{margin:0;color:#9caec2}aside{padding:12px 16px;margin:22px 0;background:#182f3a;border-left:3px solid #6cc9b4;font-size:13px}section{padding:22px 0;border-bottom:1px solid #2b394a}h2{font-size:17px;margin:0 0 16px}h2 span{font-size:12px;font-weight:400;color:#98aabc;margin-left:12px}.status pre{font-size:12px;max-height:180px;overflow:auto;color:#a2b8cc}.tag{font-size:11px;border:1px solid #426052;border-radius:4px;color:#92d7ac;padding:3px 8px;margin-left:12px}.metrics{display:flex;gap:16px;flex-wrap:wrap}.metrics div{min-width:110px;flex:1}.metrics b{display:block;font-size:27px;color:#e8f0fc}.metrics span{font-size:12px;color:#97aabc}.actions{display:flex;gap:12px;flex-wrap:wrap}button,.upload{font:inherit;font-size:13px;color:#dce8f5;background:#213244;border:1px solid #465b72;border-radius:5px;cursor:pointer;padding:11px 14px;line-height:1.5;min-height:44px}button:first-child{background:#215e54;border-color:#388976}button:disabled,.disabled{opacity:.4;cursor:wait}.upload{display:inline-block}.upload input{display:none}button:hover:enabled,.upload:hover{border-color:#8ca9c6}.hint,footer{color:#91a4b8;font-size:12px}.log{background:#16222f;padding:16px;border-left:2px solid #477c69;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.error{border-color:#ef8d86;color:#ffc6bd}footer{padding-top:22px}button:focus-visible,.upload:focus-within{outline:2px solid #80d8bf;outline-offset:3px}@media(max-width:600px){main{padding:24px 16px}h1{font-size:24px}.actions{display:grid;grid-template-columns:1fr}.actions>*{width:100%;text-align:left}.metrics div{min-width:80px}.tag{display:table;margin:8px 0 0}.metrics{gap:20px}header{padding-bottom:18px}}:root{--ink:#19221f;--muted:#66716d;--line:#dce3df;--paper:#f7f8f5;--white:#fff;--accent:#176653;--accent-soft:#e5f1ed;--danger:#b33c32;color:var(--ink);background:var(--paper);color-scheme:light}body{background:var(--paper)}button,.upload,.button-link{font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:9px;cursor:pointer;padding:9px 13px;min-height:42px;text-decoration:none}.primary,.dialog .primary{background:var(--accent)!important;color:#fff;border-color:var(--accent)!important}.app-shell{min-height:100vh;display:grid;grid-template-columns:224px 1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:224px;background:#13241f;color:#eaf1ed;padding:26px 18px;border:0;margin:0;display:flex;flex-direction:column;z-index:10}.brand{display:flex;gap:11px;align-items:center;padding:0 7px 24px}.brand>span{display:grid;place-items:center;width:38px;height:38px;background:#d9a85f;color:#13241f;border-radius:11px;font-weight:900}.brand div{display:grid;line-height:1.2}.brand small{font-size:9px;letter-spacing:1.5px;color:#8fa89f}.sidebar nav{display:grid;gap:4px}.sidebar nav button{border:0;background:transparent;color:#adc0b9;text-align:left;display:flex;gap:12px;align-items:center}.sidebar nav button.active,.sidebar nav button:hover{background:#23443a;color:#fff}.sidebar nav i{font-style:normal;width:25px;height:25px;border:1px solid #47635a;border-radius:7px;display:grid;place-items:center;font-size:11px}.storage{margin-top:auto;border-top:1px solid #30463f;padding:18px 7px 0;font-size:12px;color:#b6c7c1}.storage small{display:block;color:#799189;margin:6px 0 0 14px}.dot{display:inline-block;width:7px;height:7px;background:#66cc9c;border-radius:50%;margin-right:7px}.workspace{grid-column:2;max-width:none;margin:0;padding:34px 42px 96px;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:flex-end;border:0;padding:0 0 26px}.topbar p{font-size:12px;color:var(--accent);font-weight:700;letter-spacing:.6px;margin:0;text-transform:uppercase}.topbar h1{font-size:28px;margin:4px 0 0}.panel{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:22px 24px;margin:0;border-bottom:1px solid var(--line)}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-bottom:18px}.summary-strip div{background:#fff;padding:16px 20px}.summary-strip span,.facts span{display:block;font-size:11px;color:var(--muted)}.summary-strip b{font-size:20px}.section-title,.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.section-title h2{margin:0;font-size:19px}.section-title p{margin:3px 0 0;font-size:12px;color:var(--muted)}.segments{display:flex;padding:3px;background:#edf0ed;border-radius:9px}.segments button{border:0;background:transparent;min-height:34px;padding:5px 12px}.segments button.active{background:#fff;color:var(--accent);box-shadow:0 1px 4px #23342d20}.task-list{border-top:1px solid var(--line)}.task-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:center;padding:13px 3px;border-bottom:1px solid #e9eeeb}.complete{width:25px;height:25px;min-height:0;padding:0;border-radius:7px}.task-main{border:0;background:transparent;text-align:left;padding:2px;min-height:0;display:grid;min-width:0}.task-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.task-main span{font-size:11px;color:var(--muted)}.state{font-style:normal;font-size:11px;border-radius:20px;padding:3px 9px;background:#eef1ef;color:#5b6561}.state.active{background:var(--accent-soft);color:var(--accent)}.state.trash{background:#f6e7e5;color:var(--danger)}.empty{padding:48px 20px;text-align:center;color:var(--muted)}.empty b{display:block;color:var(--ink);font-size:16px}.empty p{margin:5px}.check{font-size:12px;color:var(--muted)}.load-more{display:block;margin:18px auto 0}.banner{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;margin-bottom:15px;border-radius:9px}.banner.error{background:#fae9e6;color:#8d2e25;border:1px solid #efc4bf}.toast{position:fixed;right:24px;top:24px;background:#173a30;color:#fff;padding:11px 16px;border-radius:9px;z-index:80}.busy{position:fixed;right:20px;bottom:20px;background:#17221f;color:#fff;padding:10px 15px;border-radius:9px;z-index:100}.modal{position:fixed;inset:0;background:#0a1611a8;display:grid;place-items:center;padding:18px;z-index:50}.dialog{width:min(720px,100%);max-height:94vh;overflow:auto;background:#fff;border-radius:14px;padding:22px}.dialog-head,.dialog-actions{display:flex;justify-content:space-between;align-items:center}.dialog-head{border-bottom:1px solid var(--line);margin-bottom:18px}.dialog-actions{justify-content:flex-end;gap:9px;margin-top:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px}.field{display:grid;gap:5px;margin-bottom:13px;font-size:12px;color:var(--muted)}input,select,textarea{width:100%;font:inherit;color:var(--ink);background:#fff;border:1px solid #cfd8d3;border-radius:8px;padding:9px 10px;min-height:42px}textarea{resize:vertical}.detail{position:fixed;inset:0 0 0 224px;background:var(--paper);z-index:30;padding:27px 40px 80px;overflow:auto}.detail>header{display:flex;gap:20px;align-items:center;border:0;padding:0 0 18px}.detail>header div{flex:1}.detail>header span{font-size:11px;color:var(--muted)}.detail>header h2{margin:2px 0;font-size:23px}.detail-tabs{display:flex;gap:3px;border-bottom:1px solid var(--line);overflow:auto}.detail-tabs button{border:0;border-radius:7px 7px 0 0;background:transparent;white-space:nowrap}.detail-tabs button.active{color:var(--accent);border-bottom:2px solid var(--accent)}.detail>section{background:#fff;border:1px solid var(--line);border-top:0;padding:24px;max-width:960px}.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.facts div{background:#f5f7f5;padding:11px;border-radius:8px}.prose{white-space:pre-wrap}.accept{display:flex;gap:10px;border-bottom:1px solid #edf0ee;padding:10px 2px}.accept input{width:auto}.accept span{display:grid}.accept small{color:var(--muted)}.inline-form,.inline-grid{display:flex;gap:8px;margin-top:14px}.editor{min-height:300px;font-family:ui-monospace,monospace;line-height:1.6}.editor.small{min-height:150px}.version{white-space:pre-wrap;background:#f5f7f5;padding:12px}.proposal{border:1px solid var(--line);padding:16px;border-radius:10px}.proposal-item{display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);padding:10px 0}.proposal-item div{flex:1}.stack-form,.review-form{max-width:760px}.timeline{border-left:2px solid #cbd9d3;margin:24px 0 0 6px}.timeline article{padding:0 0 20px 18px;display:grid}.timeline time{font-size:11px;color:var(--muted)}.review-list{border-top:1px solid var(--line);margin-top:26px;padding-top:20px}.review-list article{border-left:3px solid #a9c9bd;padding:8px 13px;margin:9px 0;background:#f8faf8}.review-list article>*{display:block}.review-list time{font-size:11px;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:20px}.metric-card{border:1px solid var(--line);border-radius:11px;padding:16px}.metric-card>span{float:right;color:var(--muted)}.metric-card>b{font-size:22px}.metric-card form{display:grid;grid-template-columns:1fr 1.4fr auto;gap:5px;margin-top:14px}.archive-list article,.setting-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);padding:13px 2px;gap:12px}.archive-list article>div{display:flex;gap:5px}.danger{color:var(--danger);border-color:#e7b8b3}.setting-row p{margin:3px 0;color:var(--muted);font-size:12px}.mobile-nav{display:none}.lab-page{color:#e8edf5;max-width:1100px;background:#101924}.lab-page a{color:#85dac4}@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.workspace{padding:20px 14px calc(92px + env(safe-area-inset-bottom))}.topbar{align-items:center;padding-bottom:18px}.topbar h1{font-size:21px}.topbar .primary{font-size:12px;padding:7px 10px}.summary-strip{grid-template-columns:1fr}.summary-strip div{padding:11px 14px}.panel{padding:16px 13px}.section-title,.toolbar{align-items:flex-start;gap:10px;flex-direction:column}.form-grid{grid-template-columns:1fr}.detail{inset:0;padding:16px 13px calc(82px + env(safe-area-inset-bottom))}.detail>header{display:grid;grid-template-columns:auto 1fr}.detail>header .primary{grid-column:1/-1}.facts{grid-template-columns:1fr 1fr}.detail>section{padding:17px 13px}.detail-tabs{position:sticky;top:-16px;background:var(--paper);z-index:3}.inline-grid{display:grid;grid-template-columns:1fr 1fr}.inline-grid button{grid-column:1/-1}.proposal-item{align-items:stretch;flex-direction:column}.metric-card form{grid-template-columns:1fr}.archive-list article,.setting-row{align-items:flex-start;flex-direction:column}.mobile-nav{position:fixed;display:grid;grid-template-columns:repeat(5,1fr);inset:auto 0 0;background:#fff;border-top:1px solid var(--line);padding:5px 5px calc(5px + env(safe-area-inset-bottom));z-index:25}.mobile-nav button{border:0;min-height:50px;padding:3px;display:grid;place-items:center;background:transparent;color:var(--muted)}.mobile-nav button.active{color:var(--accent)}.mobile-nav i{font-style:normal}.mobile-nav span{font-size:10px}.dialog{padding:17px}.toast{top:10px;right:10px}.busy{bottom:calc(68px + env(safe-area-inset-bottom));right:10px}.lab-page{padding:24px 16px}.actions{display:grid}.actions>*{width:100%}}.filters{display:grid;grid-template-columns:minmax(180px,2fr) repeat(3,minmax(120px,1fr));gap:8px;margin-bottom:16px}.task-group{margin:18px 0}.task-group>h3{font-size:12px;color:var(--muted);margin:0;padding:6px 3px;background:#f7f9f7}.task-group>h3 span{margin-left:8px;border:1px solid var(--line);border-radius:20px;padding:1px 7px}@media(max-width:760px){.filters{grid-template-columns:1fr 1fr}.filters input{grid-column:1/-1}}.check{display:flex;align-items:center;gap:6px}.check input{width:16px;height:16px;min-height:0;padding:0;flex:none}@media(max-width:760px){.detail-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;overflow:visible}.detail-tabs button{padding:7px 3px;font-size:12px;line-height:1.25;white-space:normal}}
