:root{font-family:"Microsoft YaHei","Segoe UI",sans-serif;color:#25312e;background:#f4f6f5;font-size:14px;letter-spacing:0;font-synthesis:none;--green:#176f51;--line:#dfe5e1;--muted:#748078}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit;letter-spacing:0}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}a{color:var(--green);text-decoration:none}button{border:1px solid var(--line);background:#fff;color:#34423a;border-radius:5px;padding:9px 13px;display:inline-flex;gap:8px;align-items:center;justify-content:center;min-height:37px}button:hover{background:#f0f5f2;border-color:#b9ccc0}button.primary,.primary{background:var(--green);color:#fff;border-color:var(--green)}button.primary:hover{background:#115a40}button.danger{color:#ab4039;border-color:#e5c5c1}button:focus-visible,a:focus-visible{outline:3px solid #9ac9b4;outline-offset:3px}svg.lucide{width:17px;height:17px;stroke-width:1.8;flex-shrink:0}.shell{display:flex;min-height:100vh}.sidebar{width:218px;flex-shrink:0;background:#fff;border-right:1px solid var(--line);position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;padding:28px 15px 16px;z-index:5}.brand{display:flex;align-items:center;gap:10px;color:#173d2c}.brand strong{font-size:23px;letter-spacing:0}.brand-mark{width:31px;height:33px;background:var(--green);color:white;display:grid;place-items:center;font-size:22px;font-weight:bold;border-radius:5px}.workspace-label{display:flex;gap:7px;align-items:center;font-size:11px;color:#7d8780;margin:20px 0 28px;padding:0 8px}.dot{width:6px;height:6px;border-radius:50%;background:#a2aba5;display:inline-block;flex-shrink:0}.dot.green{background:#369974}.tag{font-size:11px;line-height:18px;display:inline-flex;align-items:center;gap:6px;padding:2px 7px;border-radius:4px;background:#eef2ef;color:#6e7c72;border:1px solid #e2e9e3;white-space:nowrap}.tag.green{background:#e9f4ed;color:#25774f;border-color:#d3e6d8}.tag.amber{background:#fff7e8;color:#916a23;border-color:#f1e5c7}.tag.red{color:#a4453c;background:#fff0ec;border-color:#f2d7ce}nav{display:flex;flex-direction:column;gap:6px}nav button{justify-content:flex-start;border:0;background:transparent;color:#69766e;gap:12px;padding:12px 15px;min-height:44px}nav button.active{background:#eaf3ed;color:#216b4a;font-weight:600}nav button:hover{background:#f0f5f2}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:16px 4px 0;display:flex;align-items:center;gap:7px;font-size:11px;color:#809085}.icon-btn{padding:7px;min-width:32px;min-height:32px}.sidebar-bottom button{margin-left:auto}.main-shell{margin-left:218px;min-width:0;flex:1;display:flex;flex-direction:column}.topbar{height:72px;display:flex;justify-content:space-between;align-items:center;padding:0 32px;border-bottom:1px solid var(--line);background:#fff}.breadcrumb{color:#8b958f;font-size:12px}.slash{margin:0 14px;color:#c5ccc7}.top-actions{display:flex;align-items:center;gap:18px}.avatar{height:29px;width:29px;display:grid;place-items:center;border-radius:50%;background:#e7ede9;color:#4c6355;font-size:12px}main#content{padding:30px 32px;flex:1;max-width:1600px;width:100%;margin:0 auto}.heading{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:23px}.eyebrow{font-size:10px;font-weight:600;color:#819085;margin-bottom:9px}.heading h1{font-size:25px;line-height:1.4;margin:0 0 8px;font-weight:600}.heading p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}.heading-actions,.row-actions{display:flex;gap:9px;flex-wrap:wrap}.status-strip{display:flex;gap:22px;border:1px solid var(--line);background:#fff;padding:12px 16px;margin-bottom:22px;font-size:11px;align-items:center;flex-wrap:wrap}.status-strip>span{display:inline-flex;align-items:center;gap:7px}.status-strip .muted{margin-left:auto}.muted{color:var(--muted)}.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:28px}.metric{border:1px solid var(--line);border-radius:6px;background:#fff;padding:18px 20px}.metric-top{display:flex;justify-content:space-between;color:#77857b;font-size:12px}.metric-top svg{color:#91a397}.metric strong{font-size:28px;display:block;margin:13px 0 9px;font-family:"Segoe UI",sans-serif;font-weight:600}.metric small{color:#859087;font-size:11px}.columns{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:26px}.section{margin-bottom:27px;min-width:0}.section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px;gap:12px}.section-head h2{font-size:15px;margin:0;font-weight:600}.section-head span{font-size:11px;color:#89938d}.section-head button{min-height:28px;padding:4px 8px;font-size:11px}.surface{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0}.surface.padded{padding:20px}.chart-head{display:flex;justify-content:space-between;align-items:center;padding:0 20px 14px}.chart-head strong{font-family:"Segoe UI",sans-serif;font-size:24px;font-weight:600}.chart-head small{font-size:11px;color:#89928c;display:block;margin-top:5px}.chart-wrap{height:185px;position:relative;padding:0 20px}canvas{display:block;width:100%;height:100%}.chart-foot{padding:12px 20px 0;display:flex;justify-content:space-between;color:#929c95;font-size:10px}.workflow{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px 20px}.step{display:flex;gap:13px;padding:18px 0;border-bottom:1px solid #edf0ed;align-items:flex-start}.step:last-child{border:0}.step-num{height:25px;width:25px;display:grid;place-items:center;flex-shrink:0;background:#f0f4f1;color:#679077;border-radius:50%;font-size:11px}.step h3{font-size:12px;margin:1px 0 6px}.step p{font-size:11px;margin:0;color:#89938b;line-height:1.8}.step>svg{margin-left:auto;color:#b5c2b8;margin-top:4px}.notice{border-left:3px solid #b99b5a;background:#faf6ec;padding:12px 15px;line-height:1.8;font-size:12px;color:#867044;margin-bottom:22px}.notice.neutral{border-color:#78a88e;background:#edf5f0;color:#587563}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:#8a958d;font-weight:400;font-size:11px;background:#f8faf8}th,td{padding:13px 15px;border-bottom:1px solid #e8ede9;white-space:nowrap}td.wrap{white-space:normal;overflow-wrap:anywhere;max-width:300px}td button{font-size:11px;padding:4px 8px;min-height:27px}tr:last-child td{border-bottom:0}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line)}.empty-state{padding:36px 20px;text-align:center;color:#8a958d;background:#fff;border-block:1px solid var(--line);font-size:12px}.empty-state svg{display:block;margin:0 auto 12px;width:27px;height:27px;color:#a2b7a9}.empty-state p{margin:8px 0 18px;line-height:1.9}.project-row{display:flex;gap:12px;align-items:center;padding:15px;background:white;border-bottom:1px solid var(--line)}.project-icon{height:36px;width:36px;background:#edf4ef;display:grid;place-items:center;color:#629177;border-radius:5px;flex-shrink:0}.project-row h3{font-size:12px;margin:0 0 6px}.project-row small{font-size:10px;color:#89968d}.project-row button{margin-left:auto;min-height:29px;padding:5px 9px;font-size:11px}.project-row .tag{margin-left:auto}.activity{background:#fff;border-block:1px solid var(--line);padding:0 18px}.activity-item{padding:13px 0;display:flex;gap:10px;border-bottom:1px solid #edf0ed}.activity-item:last-child{border:0}.activity-item .dot{margin-top:6px}.activity-item strong{font-size:11px;font-weight:500}.activity-item small{font-size:10px;color:#8c988f;display:block;margin-top:5px;overflow-wrap:anywhere;line-height:1.7}.activity-item time{margin-left:auto;white-space:nowrap;font-size:10px;color:#9aa59d}.page-footer{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:#9aa39e;padding:16px 32px;border-top:1px solid var(--line)}.developer{display:grid;grid-template-columns:220px minmax(0,1fr);gap:24px}.project-list{border-right:1px solid var(--line);padding-right:18px}.project-list button{display:flex;width:100%;justify-content:flex-start;margin:8px 0;text-align:left;overflow-wrap:anywhere}.project-list button.selected{background:#e7f1eb;border-color:#a9c7b4;color:#226a47}.project-detail h2{margin-top:0;font-size:18px}.spec{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px;line-height:1.9;background:#fff;border-block:1px solid var(--line);padding:18px;margin-bottom:18px;max-height:220px;overflow:auto}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{display:block;font-size:12px;color:#627367;line-height:1.8}input:not([type=checkbox]),select,textarea{display:block;width:100%;padding:10px 11px;border:1px solid #d4ded6;border-radius:5px;background:#fff;color:#304237;margin-top:5px;min-width:0}input:focus,select:focus,textarea:focus{outline:2px solid #b3d2bf;border-color:#71a587}textarea{resize:vertical;min-height:110px}.full{grid-column:1/-1}.check-label{display:flex;gap:8px;align-items:flex-start;margin:14px 0}.check-label input{margin-top:4px;accent-color:var(--green)}.task-output{white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid var(--line);padding:18px;font-size:12px;line-height:1.9;max-height:420px;overflow:auto}.file-list{display:flex;gap:8px;flex-wrap:wrap;padding:12px 0}.file-list a{font-size:11px;border:1px solid var(--line);border-radius:4px;background:#fff;padding:8px}.tabs{display:flex;gap:20px;border-bottom:1px solid var(--line);margin:22px 0 16px}.tabs button{border:0;border-radius:0;background:transparent;padding:10px 0;color:#839087}.tabs button.active{color:var(--green);border-bottom:2px solid var(--green)}.lesson{display:grid;grid-template-columns:36px 1fr auto;align-items:start;gap:16px;padding:23px 0;border-bottom:1px solid var(--line)}.lesson h3{font-size:14px;margin:0 0 10px}.lesson p,.lesson li{font-size:12px;color:#7a887e;line-height:2}.lesson p{margin:0}.lesson ol{padding-left:20px;margin:9px 0}.lesson button{font-size:11px}.terminal{border:1px solid var(--line);border-radius:6px;background:white;padding:18px;margin-bottom:12px}.terminal-title{display:flex;align-items:center;gap:10px}.terminal-title .tag{margin-left:auto}.terminal dl{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0 0}.terminal dt{font-size:11px;color:#859188}.terminal dd{margin:7px 0 0;font-size:13px;overflow-wrap:anywhere}dialog{border:1px solid #d7e1d9;border-radius:7px;padding:25px;width:min(520px,calc(100% - 28px));max-height:90dvh;overflow:auto;box-shadow:0 20px 80px #18372624}dialog::backdrop{background:#15281e66}dialog h2{font-size:19px;margin:0 0 18px}dialog .row-actions{justify-content:flex-end;margin-top:22px}dialog p{line-height:1.9;font-size:12px}.confirm-list{display:grid;grid-template-columns:1fr 1fr;gap:12px}.confirm-list>div{border-bottom:1px solid var(--line);padding:10px 0}.confirm-list small{display:block;color:#8d988f;margin-bottom:6px}.secret{overflow-wrap:anywhere;background:#f1f5f2;padding:13px;font-family:Consolas,monospace;user-select:all}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);background:#213e2d;color:#fff;padding:13px 20px;border-radius:5px;z-index:50;font-size:12px;box-shadow:0 5px 25px #12332222}.login-page{display:grid;place-items:center;min-height:100dvh;background:#f0f4f1;padding:20px}.login-box{max-width:420px;width:100%;background:#fff;border:1px solid var(--line);border-radius:7px;padding:32px}.login-box h1{font-size:22px;margin-top:32px}.login-box label{margin:18px 0}.login-box button{width:100%;justify-content:space-between}.login-box small{font-size:11px;color:#97a099;display:block;margin-top:23px;line-height:1.9}#error{color:#b04c40;font-size:12px}.danger-text{color:#b15747}.mono{font-family:Consolas,monospace}.divider{margin:25px 0;border:0;border-top:1px solid var(--line)}.settings-block{max-width:750px}.settings-block h2{font-size:15px;margin:22px 0 13px}.settings-block p{font-size:12px;line-height:2;color:#7a897f}.terminal-token{font-size:11px;line-height:1.8}.compact{font-size:11px}.positive{color:#257f55}.negative{color:#b85b48}@media(min-width:1600px){main#content{padding-top:38px}.chart-wrap{height:230px}}@media(max-width:1100px){.sidebar{width:185px}.main-shell{margin-left:185px}.columns{grid-template-columns:minmax(0,1fr)}.metrics{gap:10px}.metric{padding:15px}.metric strong{font-size:23px}main#content{padding:24px}.topbar{padding:0 24px}}@media(max-width:700px){.sidebar{width:62px;padding:18px 7px}.sidebar .brand{justify-content:center}.brand strong,.workspace-label,nav button span,.sidebar-bottom>span{display:none}nav{margin-top:30px}nav button{justify-content:center;padding:12px}.sidebar-bottom{justify-content:center;padding:12px 0 0}.sidebar-bottom button{margin:0}.main-shell{margin-left:62px}.topbar{height:60px;padding:0 14px}.breadcrumb,.slash,.avatar{display:none}.top-actions{gap:5px}.top-actions .tag{font-size:9px;padding:2px 5px}main#content{padding:22px 13px}.heading{flex-wrap:wrap;margin-bottom:18px}.heading h1{font-size:22px}.heading-actions{width:100%}.metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.metric{padding:14px}.metric strong{font-size:23px}.metric small{font-size:10px}.status-strip{gap:12px;padding:12px;font-size:10px}.status-strip .muted{margin-left:0}.columns{gap:8px}.developer{grid-template-columns:1fr;gap:18px}.project-list{border-right:0;border-bottom:1px solid var(--line);padding:0 0 12px}.project-list>div{display:flex;gap:6px;overflow:auto}.project-list button{min-width:110px;max-width:180px;font-size:11px;flex-shrink:0}.form-grid{grid-template-columns:1fr}.full{grid-column:auto}.page-footer{padding:13px;font-size:9px;flex-wrap:wrap}.page-footer>span:nth-child(2){display:none}.lesson{grid-template-columns:26px 1fr;gap:10px}.lesson>button{grid-column:2;justify-self:start}.terminal dl{grid-template-columns:1fr 1fr}.chart-head{padding-inline:14px}.chart-wrap{padding-inline:8px}.tabs{gap:17px}.heading p{font-size:11px}.confirm-list{gap:10px}button{font-size:12px}.login-box{padding:25px}.login-box .brand strong{display:block}.login-box .brand{justify-content:flex-start}.login-box .tag{margin-left:auto}}
.table-wrap table{min-width:570px}.table-wrap td.wrap{min-width:160px}
.management-plan{border-block:1px solid var(--line);background:#fff;padding:18px;margin-bottom:18px}.management-plan h3{font-size:14px;line-height:1.9;margin:0 0 15px}.management-plan ol{padding-left:20px;font-size:12px;line-height:2;color:#6a7e70}.management-scope{font-size:11px;margin:0 0 16px}.management-scope div{display:grid;grid-template-columns:65px minmax(0,1fr);gap:8px;margin:12px 0}.management-scope dt{color:#8b9a90}.management-scope dd{margin:0;overflow-wrap:anywhere}
