:root{--bg:#fff;--panel:#fff;--panel-2:#f8fafc;--panel-hover:#f5f7fa;--panel-soft:#fbfcfe;--border:#edeff3;--border-strong:#e2e8f0;--text:#1e293b;--text-strong:#0f172a;--muted:#64748b;--muted-soft:#94a3b8;--primary:#3b82f6;--primary-deep:#2563eb;--primary-ring:#bfdbfe;--accent:#3b82f6;--accent-soft:#eff6ff;--green:#10b981;--green-soft:#e7f8f1;--amber:#f59e0b;--amber-soft:#fef3e2;--red:#ef4444;--red-soft:#feecef;--purple:#8b5cf6;--purple-soft:#f1ecfe;--teal:#06b6d4;--teal-soft:#e4f8fb;--radius:14px;--radius-xs:6px;--radius-sm:8px;--radius-md:10px;--radius-lg:14px;--radius-xl:16px;--shadow-card:0 1px 2px #0f172a0a, 0 6px 18px #0f172a09;--shadow-raised:0 4px 14px #0f172a14, 0 1px 2px #0f172a0d;--shadow-pop:0 18px 50px #0f172a29;--sidebar-w:195px}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text)}body{font-family:system-ui,-apple-system,Microsoft YaHei,PingFang SC,Segoe UI,sans-serif;font-size:14px;line-height:1.55}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input,select,textarea{font-family:inherit}.shell{min-height:100vh}.sidebar{width:var(--sidebar-w);background:var(--panel);border-right:1px solid var(--border);z-index:45;flex-direction:column;padding:16px 14px 14px;transition:width .18s,transform .2s;display:flex;position:fixed;top:0;bottom:0;left:0}.shell.collapsed .sidebar{width:64px;padding:16px 8px 14px}.sb-brand{white-space:nowrap;flex:none;align-items:center;gap:9px;margin-bottom:20px;padding:2px 4px 0;font-weight:700;display:flex;overflow:hidden}.brand-logo{-o-object-fit:contain;object-fit:contain;flex:none;width:26px;height:26px}.tb-name{letter-spacing:.01em;color:var(--text-strong);white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.brand-dot{background:var(--primary);border-radius:6px;flex:none;width:22px;height:22px;display:inline-block;position:relative}.brand-dot:after{content:"";background:#fff;border-radius:3px;position:absolute;inset:5.5px}.tb-ver{color:var(--primary);background:var(--accent-soft);border-radius:999px;flex:none;padding:0 5px;font-size:9px;font-weight:400;line-height:1.5}.sb-nav{flex-direction:column;flex:1;gap:2px;margin-top:16px;display:flex;overflow-y:auto}.sb-link{border-radius:var(--radius-md);cursor:pointer;width:100%;height:36px;color:var(--muted);white-space:nowrap;background:0 0;border:none;align-items:center;gap:10px;padding:0 10px;font-size:12px;line-height:1.4;text-decoration:none;transition:color .15s,background .15s;display:flex}.sb-link :deep(svg){flex:none}.sb-link:hover{color:var(--text);background:var(--panel-hover)}.sb-link.router-link-exact-active{color:var(--primary-deep);background:var(--accent-soft);font-weight:600}.sb-toggle{justify-content:flex-start}.sb-toggle .caret{margin-left:auto;font-size:10px;transition:transform .15s}.sb-toggle .caret.open{transform:rotate(180deg)}.sb-toggle.on{color:var(--primary);background:var(--accent-soft);font-weight:600}.sb-group,.sb-sub{flex-direction:column;display:flex}.sb-sub{border-left:1px solid var(--border);gap:1px;margin:2px 0 6px 14px;padding-left:10px}.sb-subitem{border-radius:var(--radius-xs);height:32px;color:var(--text);white-space:nowrap;align-items:center;gap:8px;padding:0 9px;font-size:12px;text-decoration:none;display:flex}.sb-subitem:hover{background:var(--panel-hover);color:var(--primary)}.sb-subitem.router-link-exact-active{background:var(--accent-soft);color:var(--primary);font-weight:600}.sb-foot{border-top:1px solid var(--border);flex:none;padding:10px 14px 12px}.tb-pill{color:var(--green);background:var(--green-soft);white-space:nowrap;border:1px solid #16a34a40;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:11px;display:inline-flex}.sb-collapse{border:1px solid var(--border);background:var(--panel);width:22px;height:22px;color:var(--muted);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:70px;right:-11px;box-shadow:0 2px 8px #0f172a1f}.sb-collapse:hover{color:var(--primary);border-color:var(--primary)}.sb-burger{z-index:46;border:1px solid var(--border);background:var(--panel);width:40px;height:40px;color:var(--text);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;top:14px;left:14px;box-shadow:0 4px 14px #0f172a24}.sb-backdrop,.sb-burger{display:none;position:fixed}.sb-backdrop{z-index:44;background:#0f172a66;inset:0}.page-wrap{margin-left:var(--sidebar-w);min-height:100vh;transition:margin-left .18s}.container{padding:26px 34px 24px 32px}.container>.page-head:first-child{margin:-26px -34px 22px -32px}.hero{background:linear-gradient(118deg,#eaf3ff,#f4f9ff 52%,#fff);border:1px solid #e4edfa;border-radius:18px;flex-wrap:wrap;align-items:center;gap:18px;min-height:178px;margin-bottom:18px;padding:26px 30px;display:flex;position:relative;overflow:hidden}.hero:before{pointer-events:none;background-image:radial-gradient(#3b82f621 1.3px,#0000 0);background-size:20px 20px;inset:0;-webkit-mask-image:linear-gradient(100deg,#000,#00000059 55%,#0000 78%);mask-image:linear-gradient(100deg,#000,#00000059 55%,#0000 78%)}.hero:after,.hero:before{content:"";position:absolute}.hero:after{background:#3b82f612;border-radius:50%;width:300px;height:300px;top:-80px;right:-60px}@media (width>=1080px){.hero{padding-right:330px}}.hero .hero-body{z-index:1;flex:1;min-width:280px;position:relative}.hero .eyebrow{letter-spacing:1.8px;color:var(--primary);text-transform:uppercase;font-size:12px;font-weight:600;display:inline-block}.hero h1{color:var(--text-strong);letter-spacing:-.025em;margin:9px 0;font-size:33px;font-weight:800;line-height:1.22}.hero p{color:#5a6b82;max-width:660px;font-size:14px;line-height:1.78}.hero .hero-chips{z-index:3;grid-template-columns:repeat(2,auto);justify-items:start;gap:9px 18px;display:grid;position:absolute;top:26px;right:26px}.hero-chip{color:var(--text);white-space:nowrap;background:0 0;gap:7px;font-size:12.5px}.hero-chip,.hero-chip:before{align-items:center;display:inline-flex}.hero-chip:before{content:"✓";background:var(--accent-soft);width:16px;height:16px;color:var(--primary);border:1px solid #3b82f64d;border-radius:50%;flex:none;justify-content:center;font-size:9px;font-weight:800;line-height:1}@media (width<=1080px){.hero .hero-chips{gap:8px 16px;margin-top:4px;position:static}}.hero-actions{flex-wrap:wrap;gap:10px;margin:0 0 16px;display:flex}.hero-art{pointer-events:none;z-index:0;justify-content:flex-end;align-items:center;width:372px;display:flex;position:absolute;top:38px;bottom:2px;right:8px}.hero-art svg{width:100%;height:100%}@media (width<=1120px){.hero-art{width:320px}}@media (width<=980px){.hero-art{display:none}}.hero-meta{z-index:3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffe6;border:1px solid #e4eaf3f2;border-radius:999px;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 8px 6px 16px;display:flex;position:absolute;top:20px;right:20px;box-shadow:0 2px 10px #0f172a0a}@media (width<=980px){.hero-meta{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none;padding:0;position:static}}.hero-date{color:var(--muted)}.hero-date,.hero-status{white-space:nowrap;font-size:12px}.hero-status{color:var(--primary);background:#fff;border:1px solid #3b82f64d;border-radius:999px;padding:6px 14px;font-weight:600;box-shadow:0 2px 8px #3b82f61a}.hero-status.run{background:var(--primary);border-color:var(--primary);color:#fff}.hero-status.done{background:var(--green);border-color:var(--green);color:#fff}.cc-tabs{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:18px;display:flex}.cc-tabs button{border-radius:var(--radius-pill);height:30px;color:var(--muted);background:0 0;border:1px solid #0000;align-items:center;gap:8px;padding:0 13px;font-size:12px;font-weight:500;transition:all .14s;display:inline-flex}.cc-tabs button i{font-style:normal}.cc-tabs button:hover{color:var(--text);background:var(--panel-2)}.cc-tabs button.on{background:var(--panel);border-color:var(--primary-ring);color:var(--primary-deep);box-shadow:var(--shadow-card);font-weight:600}.cc-row4{grid-template-columns:1.25fr 1fr 1fr 1fr;align-items:start;gap:14px;margin-bottom:14px;display:grid}@media (width<=1200px){.cc-row4{grid-template-columns:1fr 1fr}}@media (width<=700px){.cc-row4{grid-template-columns:1fr}}.mod-link{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:13px;display:flex}.mod-link:hover{border-color:var(--primary)}.mod-ico,.mod-link:hover{background:var(--accent-soft)}.mod-ico{width:32px;height:32px;color:var(--primary);border-radius:9px;flex:none;justify-content:center;align-items:center;display:flex}.mod-link:hover .mod-ico{background:#fff}.ev-ico{border-radius:8px;flex:none;justify-content:center;align-items:center;width:26px;height:26px;margin-top:2px;display:flex}.mini-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.ev-list{max-height:268px;margin-right:-6px;padding-right:6px;overflow-y:auto}.ev-list::-webkit-scrollbar{width:6px}.ev-list::-webkit-scrollbar-thumb{background:#dfe5ee;border-radius:3px}.ev-row{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:9px 0;font-size:13px;display:flex}.ev-list>.ev-row:last-child{border-bottom:none}.ev-msg{line-height:1.5}.ev-time{color:var(--muted-soft);margin-top:2px;font-size:11px}.stack-bar{background:var(--panel-2);border-radius:999px;height:10px;display:flex;overflow:hidden}.stack-bar i{height:100%;display:block}.metrics{grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;display:grid}.metric{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);text-align:left;cursor:pointer;width:100%;font:inherit;color:inherit;align-items:center;gap:13px;padding:15px 16px;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.metric:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.metric .mt-text{flex:1;min-width:0}.metric .metric-arrow{color:#cbd5e1;flex:none;font-size:20px;line-height:1;transition:transform .15s,color .15s}.metric:hover .metric-arrow{color:var(--primary);transform:translate(2px)}.metric .tile{border-radius:var(--radius-lg);flex:none;justify-content:center;align-items:center;width:42px;height:42px;display:flex}.metric .lbl{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:12.5px;line-height:1.3;overflow:hidden}.metric .num{color:var(--text-strong);letter-spacing:-.02em;font-size:27px;font-weight:700;line-height:1.1}.metrics.m6 .metric{gap:12px;padding:14px 15px}.metrics.m6 .metric .tile{width:40px;height:40px}.metrics.m6 .metric .num{font-size:25px}.metrics.m6 .metric .lbl{font-size:12px}.metric .num.small{word-break:break-all;font-size:15px;line-height:1.3}.metric .sub{color:var(--muted-soft);white-space:nowrap;text-overflow:ellipsis;margin-top:3px;font-size:11.5px;overflow:hidden}.metric-card.alerting,.metric.alerting{border-color:#ef444459}.tile.blue{background:var(--accent-soft)}.tile.green{background:var(--green-soft)}.tile.amber{background:var(--amber-soft)}.tile.purple{background:var(--purple-soft)}.tile.red{background:var(--red-soft)}.tile.teal{background:var(--teal-soft)}.cap-band{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);margin-bottom:18px;padding:20px}.cap-band-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:16px;display:flex}.cap-band-title{letter-spacing:-.01em;font-size:17px;font-weight:700}.cap-band-sub{color:var(--muted);max-width:760px;margin-top:5px;font-size:12.5px;line-height:1.65}.cap-band-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.cap-band-card{text-align:left;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);color:var(--text);align-items:center;gap:12px;padding:13px 14px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:flex}.cap-band-card:hover{border-color:var(--primary);transform:translateY(-1px);box-shadow:0 8px 20px #3b82f61f}.cap-band-ico{border-radius:11px;flex:none;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.cap-band-txt{flex-direction:column;gap:2px;min-width:0;display:flex}.cap-band-name{font-size:13.5px;font-weight:600}.cap-band-desc,.cap-band-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cap-band-desc{color:var(--muted);font-size:11.5px;line-height:1.35}@media (width<=1280px){.cap-band-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=980px){.cap-band-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.cap-band-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.metrics.m6{grid-template-columns:repeat(6,1fr)}.cols3{grid-template-columns:1.2fr 1.2fr 1fr}.cols2,.cols3{align-items:start;gap:14px;display:grid}.cols2{grid-template-columns:1.5fr 1fr}@media (width<=1100px){.metrics.m6{grid-template-columns:repeat(3,1fr)}.cols3{grid-template-columns:1fr 1fr}}@media (width<=900px){.cols2,.cols3,.dash{grid-template-columns:1fr}}.dash{grid-template-columns:1.4fr 1fr;align-items:start;gap:14px;display:grid}@media (width<=900px){.dash{grid-template-columns:1fr}}.ptitle{color:var(--text-strong);flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;font-size:16px;font-weight:600;line-height:1.4;display:flex}.pbar{background:var(--panel-2);height:8px;overflow:hidden}.pbar,.pbar>i{border-radius:999px}.pbar>i{background:var(--primary);height:100%;display:block}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--panel);color:var(--text);align-items:center;gap:6px;padding:8px 15px;font-size:13px;transition:all .15s;display:inline-flex}.btn:hover{border-color:var(--primary);color:var(--primary)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff;font-weight:500}.btn.primary:hover{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff}.btn.sm{border-radius:var(--radius-xs);padding:4px 10px;font-size:12px}.btn.danger{color:var(--red);border-color:#ef444466}.btn.danger:hover{border-color:var(--red);color:var(--red)}.card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:18px 20px}.field{margin-bottom:14px}.field label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.field input,.field textarea{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text);outline:none;padding:10px 12px;font-size:13px}.field input:focus,.field textarea:focus{border-color:var(--primary);background:#fff}.field textarea{resize:vertical;min-height:140px}.hint{margin-top:4px}.hint,.tag{color:var(--muted);font-size:12px}.tag{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:2px 10px;display:inline-block}.tag.accent{background:var(--accent-soft);color:var(--primary);border-color:#3b82f64d}.tag.green{background:var(--green-soft);color:var(--green);border-color:#16a34a4d}.tag.red{background:var(--red-soft);color:var(--red);border-color:#ef44444d}.page-title{color:var(--text-strong);letter-spacing:-.01em;margin-bottom:4px;font-size:24px;font-weight:700;line-height:1.3}.page-sub{margin-bottom:20px;font-size:13px;line-height:1.6}.empty,.page-sub{color:var(--muted)}.empty{text-align:center;border:1px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--panel-soft,#fbfcfe);padding:48px 16px}.empty-ico{border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 10px;display:flex}.empty.compact{padding:22px 14px}.alert{border-radius:var(--radius-md);background:var(--red-soft);color:var(--red);border:1px solid #ef444459;margin:12px 0;padding:10px 14px;font-size:13px}.alert.ok{background:var(--green-soft);color:var(--green);border-color:#16a34a59}.banner{border-radius:var(--radius-md);background:var(--amber-soft);color:#b45309;border:1px solid #f59e0b59;margin-bottom:16px;padding:10px 14px;font-size:12.5px;line-height:1.65}.banner.info{color:#5a6b82;background:#f7f9fc;border-color:#e6ecf5}.modal-mask{z-index:50;background:#0f172a66;justify-content:center;align-items:flex-start;padding:8vh 16px 16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-xl);width:100%;max-width:640px;max-height:82vh;box-shadow:var(--shadow-pop);padding:22px;overflow:auto}.modal h3{color:var(--text-strong);margin-bottom:14px;font-size:18px;font-weight:600;line-height:1.35}.modal-actions{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}.project-card{cursor:pointer;transition:border-color .15s,box-shadow .15s;display:block}.project-card:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-raised)}.project-card .pname{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px;font-size:15px;font-weight:600;display:flex}.project-card .pmeta{color:var(--muted);flex-wrap:wrap;gap:10px;margin-top:8px;font-size:12px;display:flex}.tabs{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);scrollbar-width:none;gap:2px;margin-bottom:18px;padding:6px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{color:var(--muted);border-radius:var(--radius-md);white-space:nowrap;background:0 0;border:1px solid #0000;align-items:center;gap:7px;padding:9px 14px;font-size:13.5px;font-weight:500;transition:all .15s;display:inline-flex}.tabs button:hover{color:var(--text);background:var(--panel-hover)}.tabs button.active{color:var(--primary-deep);background:var(--accent-soft);border-color:#3b82f638;font-weight:600}.prd-section{border:1px solid var(--border);border-radius:var(--radius-lg);background:#fbfcfe;margin-bottom:12px;padding:15px 17px}.prd-section h3{color:var(--text-strong);align-items:center;gap:9px;margin-bottom:11px;font-size:15px;font-weight:600;display:flex}.prd-section h3:before{content:"";background:var(--primary);border-radius:2px;width:3px;height:15px}.feature-group{margin-bottom:12px}.feature-group:last-child{margin-bottom:0}.feature-group .fname{color:var(--primary);margin-bottom:5px;font-size:12.5px;font-weight:600}.feature-group li{color:var(--text);padding-left:14px;font-size:13px;line-height:1.75;list-style:none;position:relative}.feature-group li:before{content:"·";color:var(--muted-soft);position:absolute;left:3px}.chips{flex-wrap:wrap;gap:8px;display:flex}.kanban{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.kanban-col{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);min-height:120px;padding:10px}.kanban-col h4{color:var(--text);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;display:flex}.kanban-col h4 .cnt{color:var(--muted);border-radius:999px;padding:0 8px;font-size:12px}.kanban-col h4 .cnt,.node-card{background:var(--panel-2);border:1px solid var(--border)}.node-card{border-radius:var(--radius-md);margin-bottom:10px;padding:12px;transition:border-color .15s,box-shadow .15s}.node-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card)}.node-card .nphase{color:var(--primary);background:var(--accent-soft);border-radius:6px;margin-bottom:6px;padding:1px 8px;font-size:11px;display:inline-block}.node-card .ntitle{font-size:13px;font-weight:600}.node-card .ndesc{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:6px 0;font-size:12px;display:-webkit-box;overflow:hidden}.node-card .nops{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.node-card .ndeps{color:var(--muted);margin-top:6px;font-size:11px}.st-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.st-pending{background:#94a3b8}.st-in_progress{background:var(--primary)}.st-done{background:var(--green)}.st-blocked{background:var(--red)}.q-card{background:var(--panel-2);border:1px solid var(--border);border-radius:12px;margin-bottom:12px;padding:14px}.q-card .q-cat{color:var(--primary);background:var(--accent-soft);border-radius:6px;padding:1px 8px;font-size:11px}.q-card .q-q{margin:8px 0;font-size:14px;font-weight:600}.q-card .q-answer{border:1px solid var(--border);width:100%;color:var(--text);resize:vertical;background:#fff;border-radius:10px;outline:none;min-height:60px;padding:10px 12px;font-size:13px}.q-card .q-answer:focus{border-color:var(--primary)}.sugs{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.sug{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:#fff;border-radius:999px;padding:3px 10px;font-size:12px}.sug:hover{color:var(--primary)}.sug.on,.sug:hover{border-color:var(--primary)}.sug.on{background:var(--primary);color:#fff}.interview-actions{flex-wrap:wrap;gap:10px;margin:16px 0;display:flex}.doc-box{background:var(--panel-2);border:1px solid var(--border);width:100%;min-height:360px;color:var(--text);border-radius:12px;outline:none;padding:14px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:13px;line-height:1.7}.cap-group{margin-bottom:10px}.cap-group .cg-title{color:var(--primary);margin-bottom:4px;font-size:12px}.cap-item{border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:6px;margin:0 6px 6px 0;padding:4px 10px;font-size:13px;display:inline-flex}.cap-item.on,.cap-item:hover{border-color:var(--primary)}.cap-item.on{background:var(--primary);color:#fff}input.field-input,select.field-input,textarea.field-input{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;color:var(--text);outline:none;padding:9px 12px;font-size:13px}input.field-input:focus,select.field-input:focus,textarea.field-input:focus{border-color:var(--primary);background:#fff}input.field-input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input.field-input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.field-input[type=number]{appearance:textfield}.skill-cat{margin-bottom:18px}.skill-cat h3{align-items:center;gap:8px;margin-bottom:10px;font-size:14px;display:flex}.skill-cat h3:before{content:"";background:var(--primary);border-radius:2px;width:4px;height:15px}.grid-skills{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.skill-card{cursor:pointer;transition:border-color .15s,box-shadow .15s}.skill-card:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-raised)}.skill-card .sname{margin-bottom:4px;font-size:14px;font-weight:600}.skill-card .ssum{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;display:-webkit-box;overflow:hidden}.skill-card .smeta{align-items:center;gap:8px;margin-top:10px;display:flex}.st-badge{border-radius:999px;padding:1px 8px;font-size:11px}.st-未接入{background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.st-部分接入{background:var(--amber-soft);color:var(--amber);border:1px solid #f59e0b66}.st-badge.st-done,.st-已接入{background:var(--green-soft);color:var(--green);border:1px solid #16a34a66}.st-badge.st-pending{background:var(--panel-2);border:1px solid var(--border);color:var(--muted)}.st-badge.st-in_progress{background:var(--accent-soft);color:var(--primary);border:1px solid #3b82f666}.st-badge.st-blocked{background:var(--red-soft);color:var(--red);border:1px solid #ef444466}.war-steps{flex-wrap:wrap;align-items:center;gap:0;margin-top:6px;display:flex}.war-step{gap:8px}.war-dot,.war-step{flex:none;align-items:center;display:flex}.war-dot{background:var(--panel-2);border:1px solid var(--border);width:26px;height:26px;color:var(--muted);border-radius:50%;justify-content:center;font-size:12px;font-weight:600}.war-step.done .war-dot{background:var(--green);border-color:var(--green);color:#fff}.war-step.active .war-dot{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 0 0 4px var(--accent-soft)}.war-name{color:var(--muted);white-space:nowrap;font-size:13px}.war-step.done .war-name{color:var(--green);font-weight:600}.war-step.active .war-name{color:var(--primary);font-weight:600}.war-line{background:var(--border);border-radius:2px;flex:1;min-width:18px;height:2px;margin:0 10px}.war-line.on{background:var(--green)}.war-2col{grid-template-columns:1.15fr 1fr;align-items:start;gap:16px;margin-top:16px;display:grid}.war-side{flex-direction:column;gap:16px;display:flex}.ms-name{color:var(--text);font-size:13px;font-weight:600}.ms-cnt{color:var(--muted-soft);font-size:11.5px}@media (width<=900px){.war-2col{grid-template-columns:1fr}}.acc-sum{flex-wrap:wrap;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.acc-sum .as-num{color:var(--text-strong);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:30px;font-weight:700;line-height:1}.acc-sum .as-num span{color:var(--muted-soft);margin-left:4px;font-size:14px;font-weight:500}.acc-sum .as-txt{color:var(--muted);font-size:13px}.acc-sum .as-pct{color:var(--primary);margin-left:6px;font-weight:600}.acc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 26px;display:grid}.acc-item{border-bottom:1px solid var(--border);align-items:flex-start;gap:10px;padding:9px 0;font-size:13px;display:flex}.acc-item .ai-title{font-weight:500}.acc-item .ai-desc{color:var(--muted);margin-top:2px;font-size:12px;line-height:1.6}@media (width<=900px){.acc-grid{grid-template-columns:1fr}}.use-list{flex-direction:column;gap:11px;margin-bottom:12px;display:flex}.use-row{align-items:flex-start;gap:9px;display:flex}.use-row>.udot{background:var(--primary);border-radius:50%;flex:none;width:7px;height:7px;margin-top:7px}.use-row>div{min-width:0}.use-row>div>b{color:var(--text);font-size:13px;font-weight:600;display:block}.use-row>div>span{color:var(--muted);font-size:12px;line-height:1.6}.board-bar{margin-bottom:14px}.bb-title,.board-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.bb-title{color:var(--text-strong);font-size:16px;font-weight:600}.skill-detail .row{margin-bottom:12px}.skill-detail .row label{color:var(--muted);margin-bottom:4px;font-size:12px;display:block}.skill-detail .row .val{white-space:pre-wrap;font-size:13px}.code-box{background:var(--panel-2);border:1px solid var(--border);width:100%;min-height:120px;color:var(--text);resize:vertical;border-radius:10px;outline:none;padding:10px;font-family:ui-monospace,Consolas,monospace;font-size:12px}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tpl-card{flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.tpl-card:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-raised)}.tpl-card>.btn,.tpl-card>div:last-child{margin-top:auto}.tpl-card .tname{margin-bottom:6px;font-size:14px;font-weight:600}.tpl-card .ttag{background:var(--accent-soft);color:var(--primary);border:1px solid #3b82f64d;border-radius:999px;margin-bottom:6px;padding:1px 8px;font-size:11px;display:inline-block}.tpl-card .tdesc{color:var(--muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:6px;font-size:12px;display:-webkit-box;overflow:hidden}.tpl-card .tmeta{color:var(--muted);font-size:11px}.risk-item{background:var(--amber-soft);border:1px solid #f59e0b4d;border-radius:10px;align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;font-size:12px;display:flex}.risk-item .rtitle{color:var(--text);font-weight:500}.receipt-item{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-md);align-items:flex-start;gap:10px;margin-bottom:8px;padding:10px 12px;font-size:12px;transition:border-color .15s,box-shadow .15s;display:flex}.receipt-item:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-card)}.receipt-item .rtitle{color:var(--text);font-weight:500}.risk-item .rmeta{color:var(--muted)}@media (width<=900px){.kanban{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.kanban{grid-template-columns:1fr}.metrics,.metrics.m6{grid-template-columns:1fr 1fr}}.page-wrap{padding:0}.shell.collapsed .page-wrap{margin-left:64px}.page-head{justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:22px;padding:26px 34px 0 32px;display:flex}.page-head .ph-body{flex:1;min-width:0}@media (width<=1180px){.page-head{flex-wrap:wrap}}.page-head h1{color:var(--text-strong);letter-spacing:-.01em;margin:0;font-size:24px;font-weight:700;line-height:1.3}.page-head .ph-sub{color:var(--muted);max-width:660px;margin-top:6px;font-size:12px;line-height:1.6}.page-head .ph-note{flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;display:flex}.page-head .ph-note .hero-date{color:var(--muted);font-size:12px}.page-head .ph-note .hero-status{color:var(--primary-deep);background:var(--accent-soft);border:1px solid var(--primary-ring);white-space:nowrap;border-radius:999px;padding:3px 12px;font-size:12px;font-weight:600}.page-head .ph-note .hero-status.warn{color:var(--amber);background:var(--amber-soft);border-color:#f59e0b4d}.page-head .ph-note .hero-status.good{color:var(--green);background:var(--green-soft);border-color:#10b9814d}.page-head .ph-actions{flex-wrap:wrap;gap:12px;padding-top:2px}.page-head .ph-actions,.search{align-items:center;display:flex}.search{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--panel-2);width:388px;max-width:100%;height:38px;color:var(--muted-soft);gap:8px;padding:0 12px}.search .app-icon{flex:none;font-size:15px}.search input{min-width:0;color:var(--text);background:0 0;border:0;outline:0;flex:1;font-family:inherit;font-size:12px}.search input::placeholder{color:var(--muted-soft)}.icon-btn{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--muted);justify-content:center;align-items:center;transition:background .14s,color .14s;display:inline-flex;position:relative}.icon-btn:hover{background:var(--panel-hover);color:var(--text)}.icon-btn .app-icon{font-size:17px}.icon-btn .dot{background:var(--red);border:1.5px solid var(--panel);border-radius:50%;width:6px;height:6px;position:absolute;top:7px;right:8px}.user-chip{border-radius:var(--radius-pill);align-items:center;gap:8px;height:38px;padding:0 10px 0 4px;transition:background .14s;display:flex}.user-chip:hover{background:var(--panel-hover)}.user-chip img{-o-object-fit:cover;object-fit:cover;border-radius:50%;width:28px;height:28px}.user-chip b{color:var(--text);font-size:12px;font-weight:500}.user-chip .app-icon{color:var(--muted-soft);font-size:14px}.btn-new-task{border-radius:var(--radius-md);background:var(--primary);color:#fff;justify-content:center;align-items:center;gap:6px;width:100%;height:36px;font-size:13px;font-weight:600;transition:background .16s;display:flex;box-shadow:0 6px 14px #3b82f647}.btn-new-task:hover{background:var(--primary-deep)}.btn-new-task .app-icon{font-size:15px}.side-summary{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-card);margin-top:14px;padding:12px 12px 10px}.side-summary h3{color:var(--text);margin-bottom:10px;font-size:12px;font-weight:600}.stat-row{color:var(--muted);justify-content:space-between;align-items:baseline;margin-bottom:7px;font-size:12px;display:flex}.stat-row b{color:var(--text-strong);font-size:13px;font-weight:600}.delta{color:var(--green);gap:2px;font-size:11px;font-weight:500;display:inline-flex}.delta,.side-user{align-items:center}.side-user{border-radius:var(--radius-md);gap:9px;margin-top:12px;padding:8px 6px;transition:background .14s;display:flex}.side-user:hover{background:var(--panel-hover)}.side-user img{-o-object-fit:cover;object-fit:cover;background:var(--panel-2);border-radius:50%;flex:none;width:26px;height:26px}.side-user-meta{min-width:0}.side-user-meta b{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;display:block;overflow:hidden}.side-user-meta span{color:var(--primary);align-items:center;gap:3px;font-size:10px;display:flex}.side-user-arrow{color:var(--muted-soft);margin-left:auto;font-size:14px}.metric-card{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--panel);box-shadow:var(--shadow-card);padding:15px 16px;transition:border-color .15s,box-shadow .15s,transform .15s}.metric-card .m-label{color:var(--muted);align-items:center;gap:6px;font-size:12px;display:flex}.metric-card .m-label .app-icon{flex:none;font-size:14px}.metric-card .m-value{color:var(--text-strong);letter-spacing:-.02em;margin-top:8px;font-size:26px;font-weight:700;line-height:1.15}.metric-card .m-value small{color:var(--muted);margin-left:3px;font-size:12px;font-weight:500}.metric-card .m-foot{color:var(--muted-soft);align-items:center;gap:6px;margin-top:8px;font-size:11px;display:flex}.trend-up{color:var(--green)}.trend-down{color:var(--red)}.metrics-grid{grid-template-columns:repeat(6,1fr);gap:14px;margin-bottom:18px;display:grid}@media (width<=1280px){.metrics-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=980px){.metrics-grid{grid-template-columns:repeat(3,1fr)}}@media (width<=700px){.metrics-grid{grid-template-columns:repeat(2,1fr)}}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}@media (width<=1100px){.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=620px){.quick-grid{grid-template-columns:1fr}}.quick-card{border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--panel);box-shadow:var(--shadow-card);text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;align-items:center;gap:12px;padding:14px 15px;text-decoration:none;transition:border-color .14s,transform .14s,box-shadow .14s;display:flex}.quick-card:hover{border-color:var(--primary-ring);box-shadow:var(--shadow-raised);transform:translateY(-1px)}.quick-card .q-icon{border-radius:var(--radius-md);flex:none;justify-content:center;align-items:center;width:38px;height:38px;font-size:19px;display:inline-flex}.quick-card .q-txt{min-width:0}.quick-card b{color:var(--text-strong);font-size:13px;font-weight:600;display:block}.quick-card span{color:var(--muted);margin-top:2px;font-size:11px;display:block}.agent-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}@media (width<=1280px){.agent-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width<=980px){.agent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=700px){.agent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.agent-card{border:1px solid var(--border);border-radius:var(--radius-xl);background:var(--panel);height:187px;box-shadow:var(--shadow-card);text-align:left;color:inherit;grid-template-columns:92px minmax(0,1fr);padding:0;transition:transform .16s,box-shadow .16s,border-color .16s;display:grid;position:relative;overflow:hidden}.agent-card:hover{box-shadow:var(--shadow-raised);border-color:var(--primary-ring);transform:translateY(-2px)}.agent-card.on{border-color:var(--primary);box-shadow:0 0 0 3px var(--accent-soft)}.agent-card.on:after{content:"✓";z-index:2;background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:800;line-height:1;display:flex;position:absolute;top:8px;right:8px}.agent-portrait{background:linear-gradient(180deg,var(--panel-2),var(--panel));position:relative;overflow:hidden}.agent-portrait img{-o-object-fit:cover;object-fit:cover;-o-object-position:center top;object-position:center top;width:100%;height:100%;position:absolute;inset:0}.skill-ico{border-radius:0;justify-content:center;align-items:center;display:flex}.agent-body{flex-direction:column;min-width:0;padding:14px 12px 12px 10px;display:flex}.agent-name{color:var(--text-strong);align-items:center;gap:6px;font-weight:600;display:flex}.agent-name,.agent-name .app-icon{font-size:15px}.agent-tags{flex-wrap:nowrap;gap:4px;margin-top:7px;display:flex;overflow:hidden}.agent-tags .tag{flex:none;height:19px;padding:0 6px;font-size:10px}.agent-desc{color:var(--muted);-webkit-line-clamp:4;-webkit-box-orient:vertical;margin-top:8px;font-size:11px;line-height:1.5;display:-webkit-box;overflow:hidden}.agent-cta{margin-top:auto}.badge{border-radius:var(--radius-pill);align-items:center;gap:4px;height:20px;padding:0 7px;font-size:11px;font-weight:500;display:inline-flex}.badge-ok{color:var(--green);background:var(--green-soft)}.badge-run{color:var(--primary-deep);background:var(--accent-soft)}.badge-wait{color:var(--amber);background:var(--amber-soft)}.badge-err{color:var(--red);background:var(--red-soft)}.badge-idle{color:var(--muted);background:var(--panel-2)}.pill-tabs{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.pill{border-radius:var(--radius-pill);height:30px;color:var(--muted);border:1px solid #0000;padding:0 13px;font-size:12px;transition:all .14s}.pill:hover{background:var(--panel-2);color:var(--text)}.pill.active{background:var(--panel);border-color:var(--primary-ring);color:var(--primary-deep);box-shadow:var(--shadow-card);font-weight:600}.switch{border-radius:var(--radius-pill);background:var(--border-strong);flex:none;width:36px;height:20px;transition:background .16s;position:relative}.switch:after{content:"";background:var(--panel);border-radius:50%;width:16px;height:16px;transition:transform .16s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a3d}.switch.on{background:var(--primary)}.switch.on:after{transform:translate(16px)}.section-head{justify-content:space-between;align-items:center;gap:16px;margin:22px 0 12px;display:flex}.section-head h2{color:var(--text-strong);font-size:18px;font-weight:600;line-height:1.35}.section-head .note{color:var(--muted);font-size:12px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2,.grid-3{gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.row{gap:10px}.row,.row-between{align-items:center;display:flex}.row-between{justify-content:space-between;gap:12px}.stack{flex-direction:column;gap:10px;display:flex}.muted{color:var(--muted)}.soft{color:var(--muted-soft)}.tiny{font-size:11px}.caption{font-size:12px}.spacer{flex:auto}.divider{background:var(--border);height:1px}.tone-blue{color:var(--primary);background:var(--accent-soft)}.tone-green{color:var(--green);background:var(--green-soft)}.tone-purple{color:var(--purple);background:var(--purple-soft)}.tone-orange{color:var(--amber);background:var(--amber-soft)}.tone-cyan{color:var(--teal);background:var(--teal-soft)}.tone-rose{color:var(--red);background:var(--red-soft)}.card{padding:16px 18px}@media (width<=860px){.sidebar{width:240px;transform:translate(-100%);box-shadow:0 20px 60px #0f172a4d}.shell.mobile-open .sidebar{transform:translate(0)}.shell.mobile-open .sb-backdrop{display:block}.page-wrap,.shell.collapsed .page-wrap{margin-left:0}.sb-burger{display:flex}.sb-collapse{display:none}.container{padding:18px 18px 48px}.container>.page-head:first-child{margin:-18px -18px 18px}.page-head{padding:14px 14px 0 64px}.page-head .ph-actions{padding-right:4px}}.page-wrap.shop-front{max-width:none;padding:0}.app-icon[data-v-f0af36ac]{vertical-align:-.2em;flex:none;display:inline-block}
