.auth-screen[data-v-1a28a06c]{min-height:100vh;padding:28px;background:linear-gradient(rgba(53,93,122,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(53,93,122,.035) 1px,transparent 1px),#e9edf0;background-size:28px 28px}.auth-shell[data-v-1a28a06c]{display:grid;grid-template-columns:minmax(470px,.95fr) minmax(520px,1.05fr);width:min(1320px,calc(100vw - 56px));min-height:calc(100vh - 56px);margin:0 auto;overflow:hidden;background:#fff;border:1px solid #c7d0d7;border-radius:10px;box-shadow:0 18px 45px #1f2b341f}.auth-intro[data-v-1a28a06c]{position:relative;display:flex;flex-direction:column;padding:44px 52px 38px;overflow:hidden;color:#f4f7f9;background:#26343e}.auth-intro[data-v-1a28a06c]:after{position:absolute;right:-150px;bottom:-190px;width:430px;height:430px;border:74px solid rgba(160,190,209,.08);border-radius:50%;content:""}.brand-lockup[data-v-1a28a06c]{position:relative;z-index:1;display:flex;align-items:center;gap:12px}.brand-mark[data-v-1a28a06c]{display:grid;width:44px;height:44px;place-items:center;color:#26343e;background:#eef3f6;border-radius:5px;font-size:13px;font-weight:800;letter-spacing:.08em}.brand-lockup strong[data-v-1a28a06c],.brand-lockup span[data-v-1a28a06c]{display:block}.brand-lockup strong[data-v-1a28a06c]{font-size:15px;letter-spacing:.04em}.brand-lockup div>span[data-v-1a28a06c]{margin-top:2px;color:#aebdc8;font-size:11px}.intro-copy[data-v-1a28a06c]{position:relative;z-index:1;margin-top:clamp(72px,12vh,132px)}.intro-kicker[data-v-1a28a06c]{margin-bottom:16px;color:#94afc1;font-size:11px;font-weight:750;letter-spacing:.2em}.intro-copy h1[data-v-1a28a06c]{margin-bottom:20px;color:#fff;font-size:clamp(32px,3vw,46px);font-weight:680;letter-spacing:-.03em;line-height:1.3}.intro-copy>p[data-v-1a28a06c]:last-child{max-width:470px;color:#bdc9d1;font-size:14px;line-height:1.85}.intro-points[data-v-1a28a06c]{position:relative;z-index:1;display:grid;gap:13px;margin-top:42px}.intro-points>div[data-v-1a28a06c]{display:grid;grid-template-columns:34px 1fr;gap:13px;align-items:start}.intro-points>div>span[data-v-1a28a06c]{padding-top:3px;color:#7f9caf;font-family:var(--mono);font-size:10px}.intro-points p[data-v-1a28a06c]{color:#aebdc8;font-size:12px}.intro-points strong[data-v-1a28a06c]{display:block;margin-bottom:2px;color:#eef3f6;font-size:13px}.intro-foot[data-v-1a28a06c]{position:relative;z-index:1;margin-top:auto;color:#8296a5;font-size:11px}.auth-entry[data-v-1a28a06c]{display:grid;align-items:center;padding:58px clamp(54px,6vw,94px);background:#f9fafb}.auth-card[data-v-1a28a06c]{width:min(100%,440px);margin:0 auto}.auth-heading[data-v-1a28a06c]{margin-bottom:27px}.auth-heading h2[data-v-1a28a06c]{margin:15px 0 7px;color:#202a33;font-size:27px;letter-spacing:-.02em}.auth-heading p[data-v-1a28a06c]{color:#6b7883;font-size:13px}.auth-status[data-v-1a28a06c]{display:inline-flex;align-items:center;gap:7px;color:#456452;font-size:11px;font-weight:700}.auth-status i[data-v-1a28a06c]{width:7px;height:7px;background:#638d70;border-radius:50%;box-shadow:0 0 0 4px #e7f0ea}.auth-tabs[data-v-1a28a06c]{display:grid;grid-template-columns:1fr 1fr;padding:4px;margin-bottom:24px;background:#e9edf0;border-radius:6px}.auth-tabs button[data-v-1a28a06c]{min-height:36px;color:#68757f;background:transparent;border:0;border-radius:4px;font-weight:650}.auth-tabs button.active[data-v-1a28a06c]{color:#294d67;background:#fff;box-shadow:0 1px 3px #1f2b341f}.auth-form[data-v-1a28a06c]{display:grid;gap:17px}.auth-form label>span[data-v-1a28a06c]{display:block;margin-bottom:6px;color:#3d4952;font-size:12px;font-weight:700}.auth-form input[data-v-1a28a06c]{min-height:45px;padding:10px 12px;background:#fff;border-color:#b8c3cb}.auth-form input[data-v-1a28a06c]::placeholder{color:#9aa5ad}.auth-error[data-v-1a28a06c]{display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;padding:10px 12px;color:#744b4b;background:#f5eded;border:1px solid #dbc3c3;border-radius:5px}.auth-error>span[data-v-1a28a06c]{display:grid;width:18px;height:18px;place-items:center;color:#fff;background:#8a5b5b;border-radius:50%;font-size:11px;font-weight:800}.auth-error p[data-v-1a28a06c]{color:inherit;font-size:12px;line-height:1.55}.auth-submit[data-v-1a28a06c]{display:flex;align-items:center;justify-content:space-between;min-height:47px;padding:0 17px;color:#fff;background:#355d7a;border:1px solid #355d7a;border-radius:5px;font-weight:750;transition:background .15s ease,transform .15s ease}.auth-submit[data-v-1a28a06c]:hover:not(:disabled){background:#294b63;transform:translateY(-1px)}.auth-submit[data-v-1a28a06c]:disabled{opacity:.55;cursor:wait}.session-note[data-v-1a28a06c]{padding-top:18px;margin-top:24px;color:#7c8892;border-top:1px solid #d8dee3;font-size:11px;line-height:1.65}@media(max-width:1100px){.auth-screen[data-v-1a28a06c]{padding:0}.auth-shell[data-v-1a28a06c]{grid-template-columns:1fr;width:100%;min-height:100vh;border:0;border-radius:0}.auth-intro[data-v-1a28a06c]{display:none}.auth-entry[data-v-1a28a06c]{padding:40px 24px}}.project-list-page .brand strong[data-v-66ae1818]{font-size:18px}.project-list-page .brand span[data-v-66ae1818]{font-size:13px}.project-list-page .main[data-v-66ae1818]{font-size:15px}.project-list-page .page-head p[data-v-66ae1818]{font-size:14px}.project-summary-grid[data-v-66ae1818]{display:flex;align-items:stretch}.project-summary-grid .summary-card[data-v-66ae1818]{display:grid;flex:0 0 160px;grid-template-rows:50px 22px;align-content:center;min-height:96px;padding:10px 12px}.project-summary-grid .stage-summary-card[data-v-66ae1818]{flex-basis:340px}.project-summary-grid .summary-card .value[data-v-66ae1818]{display:flex;align-items:center;justify-content:center;min-width:0;font-size:20px;line-height:1.25}.stage-summary-value[data-v-66ae1818]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-summary-grid .summary-card .label[data-v-66ae1818]{margin-top:0;font-size:13px;line-height:22px}.project-list-page .form-group label[data-v-66ae1818]{font-size:13px}.project-table-wrap[data-v-66ae1818]{padding:0;overflow-x:auto}.project-table[data-v-66ae1818]{min-width:1460px;font-size:14px}.project-table th[data-v-66ae1818]{font-size:13px}.project-table th[data-v-66ae1818],.project-table td[data-v-66ae1818]{white-space:nowrap;vertical-align:middle}.project-table .tag[data-v-66ae1818],.project-table .gate-progress[data-v-66ae1818]{font-size:13px}:root{--canvas: #eef1f4;--surface: #ffffff;--surface-subtle: #f7f8fa;--surface-strong: #e5e9ed;--line: #cfd6dc;--line-strong: #aeb9c2;--text: #202a33;--muted: #64717c;--soft: #84909a;--accent: #355d7a;--accent-soft: #e8eff4;--success: #456452;--success-soft: #edf3ef;--warning: #735f38;--warning-soft: #f5f1e7;--danger: #744b4b;--danger-soft: #f5eded;--revalidation: #685c78;--revalidation-soft: #f1eef5;--sidebar-width: 246px;--topbar-height: 72px;--radius: 5px;--shadow: 0 1px 2px rgba(29, 42, 53, .06);--font: "Microsoft YaHei", "微软雅黑", "PingFang SC", "Noto Sans CJK SC", sans-serif;--mono: "SF Mono", "Cascadia Code", "Consolas", monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:1180px;color:var(--text);background:var(--canvas);font-family:var(--font);font-size:14px;line-height:1.5}button,select{font:inherit}button{cursor:pointer}.topbar{position:fixed;z-index:20;inset:0 0 auto 0;height:var(--topbar-height);display:flex;align-items:center;gap:18px;padding:0 24px;color:#f7f9fb;background:#26333d;border-bottom:1px solid #172129}.brand{flex:0 0 auto;text-decoration:none;color:inherit}.brand strong{display:block;font-size:15px;letter-spacing:.02em;color:#f7f9fb}.brand span{color:#b9c5ce;font-size:12px}.top-context{min-width:0;flex:1;display:flex;align-items:center;gap:8px;overflow:hidden}.top-context.end{justify-content:flex-end}.context-project{max-width:260px;overflow:hidden;color:#fff;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.context-chip{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:3px 8px;color:#dce5eb;background:#33434f;border:1px solid #4a5c69;border-radius:3px;white-space:nowrap}.context-chip b{color:#fff;font-weight:650}.context-chip .indicator{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:3px}.context-chip .indicator.enabled{background:#6eab7a}.context-chip .indicator.degraded{background:#c9a85c}.context-chip .indicator.disabled{background:#a0adb8}.top-user{display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:3px 8px;color:#dce5eb;background:#33434f;border:1px solid #4a5c69;border-radius:3px;white-space:nowrap}.top-user b{color:#fff;font-weight:650}.sidebar{position:fixed;z-index:10;inset:var(--topbar-height) auto 0 0;width:var(--sidebar-width);padding:18px 14px 24px;overflow-y:auto;background:var(--surface-subtle);border-right:1px solid var(--line)}.sidebar-title{margin:16px 8px 7px;color:var(--soft);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.sidebar-title:first-child{margin-top:0}.nav-item{display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:7px;align-items:center;min-height:35px;margin-bottom:3px;padding:6px 8px;color:var(--text);text-decoration:none;border:1px solid transparent;border-radius:4px;font-size:14px}.nav-item.no-index{grid-template-columns:minmax(0,1fr) auto}.nav-item:hover{background:var(--surface)}.nav-item.current{color:var(--accent);background:var(--accent-soft);border-color:var(--accent-soft);font-weight:700}.nav-item.locked{color:var(--muted)}.nav-index{color:var(--soft);font-size:11px;font-variant-numeric:tabular-nums}.nav-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-state{width:8px;height:8px;border:1px solid var(--line-strong);border-radius:50%;background:var(--surface)}.nav-state.completed{background:var(--success);border-color:var(--success)}.nav-state.current{background:var(--accent);border-color:var(--accent)}.nav-state.available{background:#fff;border:2px solid var(--accent)}.nav-state.locked{background:var(--surface-strong);border-color:var(--line-strong)}.sidebar-legend{margin:16px 4px 0;padding:10px;color:var(--muted);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.sidebar-legend strong{display:block;margin-bottom:7px;color:var(--text);font-size:12px}.legend-row{display:flex;align-items:center;gap:7px;margin-top:5px;font-size:12px}.main{padding:calc(var(--topbar-height) + 22px) 24px 48px}.main.with-sidebar{margin-left:var(--sidebar-width)}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px}.eyebrow{margin-bottom:3px;color:var(--accent);font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:5px;font-size:25px;line-height:1.25}h2{margin-bottom:3px;font-size:16px}h3{margin-bottom:4px;font-size:14px}p{margin-bottom:0;color:var(--muted)}.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 12px;color:var(--text);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius);font-size:14px;white-space:nowrap;text-decoration:none;cursor:pointer}.btn:hover{background:var(--surface-subtle)}.btn.primary{color:#fff;background:var(--accent);border-color:var(--accent);font-weight:700}.btn.primary:hover{background:#294b63}.btn.danger{color:#fff;background:var(--danger);border-color:var(--danger)}.btn.danger:hover{background:#583636}.btn.success{color:#fff;background:var(--success);border-color:var(--success)}.btn.success:hover{background:#2f4d39}.btn.sm{min-height:28px;font-size:13px;padding:4px 9px}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.link{color:var(--accent);background:transparent;border:none;padding:4px 6px;min-height:auto}.btn.link:hover{background:transparent;text-decoration:underline}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:14px}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.card-header h2{margin:0}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border-radius:3px;font-size:12px;font-weight:600;background:var(--surface-subtle);border:1px solid var(--line)}.tag.draft{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-soft)}.tag.confirmed{background:var(--success-soft);color:var(--success);border-color:var(--success-soft)}.tag.failed{background:var(--danger-soft);color:var(--danger);border-color:var(--danger-soft)}.tag.info{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-soft)}.tag.warning{background:var(--warning-soft);color:var(--warning);border-color:var(--warning-soft)}.tag.locked{background:var(--surface-strong);color:var(--muted);border-color:var(--line)}.tag.neutral{background:var(--surface);color:var(--text);border-color:var(--line)}.tag.running{background:var(--revalidation-soft);color:var(--revalidation);border-color:#ccc3db}.alert{display:flex;align-items:flex-start;gap:10px;padding:10px 14px;margin-bottom:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-subtle)}.alert.warning{background:var(--warning-soft);border-color:#d5c9ae}.alert.success{background:var(--success-soft);border-color:#bed5c6}.alert.danger{background:var(--danger-soft);border-color:#d5bebe}.alert.info{background:var(--accent-soft);border-color:#b8cbd8}.alert-icon{flex:0 0 auto;font-size:15px;margin-top:1px}.alert-body{min-width:0;flex:1}.alert-body strong{display:block;margin-bottom:2px}.alert-body p{margin:0;color:var(--muted);font-size:13px}table{width:100%;border-collapse:collapse;font-size:13px}th{padding:8px 9px;color:var(--muted);font-weight:700;font-size:12px;text-align:left;border-bottom:2px solid var(--line);white-space:nowrap}td{padding:7px 9px;border-bottom:1px solid var(--line);vertical-align:top}tr:hover td{background:var(--surface-subtle)}.summary-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;margin-bottom:14px}.summary-card{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);text-align:center}.summary-card .value{font-size:24px;font-weight:700;color:var(--text);line-height:1.2}.summary-card .label{font-size:12px;color:var(--muted);margin-top:3px}.form-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end}.form-row .form-group{flex:1;min-width:140px}.form-group{margin-bottom:6px}.form-group label{display:block;margin-bottom:3px;font-weight:700;font-size:12px}.form-group .hint{color:var(--soft);font-size:12px;margin-top:2px}input,select,textarea{width:100%;min-height:34px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:var(--radius);font-size:14px;background:var(--surface);font-family:var(--font)}input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 2px var(--accent-soft)}textarea{min-height:60px;resize:vertical}input.error{border-color:var(--danger);box-shadow:0 0 0 2px var(--danger-soft)}input[type=checkbox]{width:15px;height:15px;min-height:0;padding:0;margin:0;accent-color:var(--accent);border-radius:3px;vertical-align:middle}input[type=checkbox]:focus{box-shadow:0 0 0 2px var(--accent-soft)}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:14px 16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px}.filter-actions{display:flex;gap:6px;align-items:flex-end;padding-bottom:6px}.divider{border:none;border-top:1px solid var(--line);margin:16px 0}.clickable-row{cursor:pointer}.clickable-row:hover td{background:var(--surface-subtle)}.gate-progress{display:inline-flex;align-items:center;gap:3px;font-size:12px}.gate-dot{display:inline-block;width:9px;height:9px;border-radius:50%;border:1px solid var(--line-strong);background:var(--surface)}.gate-dot.passed{background:var(--success);border-color:var(--success)}.gate-dot.current{background:var(--accent);border-color:var(--accent)}.gate-dot.future{background:var(--surface);border-color:var(--line-strong)}.blocker-dot{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.blocker-dot.has-blocker{background:var(--danger)}.blocker-dot.no-blocker{background:var(--success)}.empty-state{text-align:center;padding:48px 24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}.empty-state .icon{font-size:40px;color:var(--soft);margin-bottom:12px}.empty-state h3{margin-bottom:6px;font-size:16px}.empty-state p{color:var(--muted);margin-bottom:16px}.two-col-layout{display:grid;grid-template-columns:1fr 320px;gap:14px;align-items:start}.checkbox-label{display:flex;align-items:center;gap:7px;font-size:13px;cursor:pointer}.checkbox-label input{width:15px;height:15px;min-height:0}.toast{position:fixed;z-index:99;bottom:28px;left:50%;transform:translate(-50%);padding:10px 22px;background:#26333d;color:#f7f9fb;border-radius:var(--radius);font-size:14px;opacity:0;transition:opacity .25s;pointer-events:none}.toast.show{opacity:1;pointer-events:auto}.context-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:12px;overflow:hidden;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.context-cell{min-height:82px;padding:12px 14px;border-right:1px solid var(--line)}.context-cell:last-child{border-right:0}.cell-label{display:block;margin-bottom:5px;color:var(--soft);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.context-cell strong{display:block;margin-bottom:2px;font-size:14px}.context-cell span{color:var(--muted);font-size:13px}.banner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;margin-bottom:14px;padding:11px 13px;color:var(--warning);background:var(--warning-soft);border:1px solid var(--warning-soft);border-left:4px solid var(--warning);border-radius:var(--radius)}.banner-icon{font-weight:800}.banner strong{display:block;margin-bottom:2px;color:var(--warning)}.banner small{color:var(--warning)}.section{margin-top:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:13px 15px 11px;border-bottom:1px solid var(--line)}.section-body{padding:14px 15px}.section-note{max-width:560px;color:var(--soft);font-size:12px;text-align:right}.readonly-field{min-height:64px;padding:10px 11px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:4px}.readonly-field span{display:block;margin-bottom:5px;color:var(--soft);font-size:11px}.readonly-field strong{font-size:14px}.source-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.source-card{min-height:102px;padding:11px 12px;background:var(--surface-subtle);border:1px solid var(--line);border-top:3px solid var(--line-strong);border-radius:4px}.source-card.rule{border-top-color:var(--accent)}.source-card.ai{border-top-color:#7c8790}.source-card.review{border-top-color:var(--success)}.source-card .source-type{display:inline-block;margin-bottom:6px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.07em;text-transform:uppercase}.source-card strong{display:block;margin-bottom:4px}.source-card p{font-size:13px}.process-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.process-group{position:relative;min-height:112px;padding:11px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:4px}.process-group.active{background:var(--accent-soft);border-color:#b8cbd8}.process-kicker{display:block;margin-bottom:5px;color:var(--soft);font-size:11px;font-weight:700}.process-group strong{display:block;margin-bottom:5px;font-size:13px}.process-group p{font-size:12px}.gate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.gate-card{padding:12px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:4px}.gate-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:9px}.gate-code{color:var(--soft);font-size:11px;font-weight:800;letter-spacing:.08em}.gate-card h3{margin-bottom:0}.gate-detail{display:grid;grid-template-columns:86px minmax(0,1fr);gap:5px 8px;padding-top:8px;border-top:1px solid var(--line);font-size:12px}.gate-detail dt{color:var(--soft)}.gate-detail dd{margin:0;color:var(--text)}.snapshot-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.snapshot-card{padding:11px 12px;background:var(--surface-subtle);border:1px solid var(--line);border-radius:4px}.snapshot-card h3{padding-bottom:8px;border-bottom:1px solid var(--line)}.snapshot-row{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:29px;border-bottom:1px dashed #d8dde1}.snapshot-row:last-child{border-bottom:0}.snapshot-row span{color:var(--muted)}.snapshot-row strong{font-variant-numeric:tabular-nums}.next-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;background:#f4f7f9;border:1px solid #b9c9d4;border-left:4px solid var(--accent);border-radius:var(--radius);box-shadow:var(--shadow)}.next-card h2{margin-bottom:5px}.next-meta{display:flex;flex-wrap:wrap;gap:8px 16px;margin-top:8px;color:var(--muted);font-size:12px}@media(max-width:1260px){.context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.snapshot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
