:root{color-scheme:light;--bg:#f3f6f6;--panel:#ffffff;--panel-soft:#eef4f1;--ink:#16201f;--ink-soft:#33403e;--muted:#56655f;--line:#dde4e1;--line-strong:#c9d4d0;--accent:#1b7160;--accent-soft:#e6f1ec;--accent-ink:#ffffff;--warn:#8a5a12;--danger:#b03e3e;--nav:#1b2928;--nav-soft:#2b3d3b;--blue:#2f5790;--violet:#6f4aa8;--s1:#2f7d63;--s1-bg:#e9f3ee;--s1-line:#cfe5db;--s2:#2f5790;--s2-bg:#e9eff7;--s2-line:#cfdcee;--s3:#9a6212;--s3-bg:#f8efdc;--s3-line:#ecd9ad;--s4:#b0392f;--s4-bg:#f8e6e3;--s4-line:#eec4bd;--radius:12px;--radius-sm:8px;--shadow-sm:0 1px 2px rgba(18,32,30,.05);--shadow:0 1px 3px rgba(18,32,30,.06),0 8px 24px rgba(18,32,30,.05)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans CJK SC,Noto Sans SC,system-ui,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit;max-width:100%}a,button,input,select,textarea{-webkit-tap-highlight-color:transparent}.header-metrics svg,.row-meta svg,.topbar-status svg,a svg,button svg{flex:0 0 auto}:focus-visible{outline:3px solid #2f8f7d;outline-offset:2px}input{background:#ffffff;border:1px solid var(--line);border-radius:8px;color:var(--ink);min-height:40px;padding:9px 11px}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#edf3f2;display:flex;flex-direction:column;gap:20px;padding:20px 14px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.sidebar-heading{gap:10px;justify-content:space-between}.brand,.sidebar-heading{align-items:center;display:flex}.brand{gap:12px;padding:0 8px 12px}.nav-toggle{display:none}.brand-mark{align-items:center;background:#d9fff4;border-radius:8px;color:#123b34;display:inline-flex;font-weight:700;height:38px;justify-content:center;width:38px}.brand small{color:#aab9b9;display:block;font-size:12px;margin-top:2px}.nav-list{display:flex;flex-direction:column;gap:4px}.nav-list a{align-items:center;border-radius:8px;color:#d7e0df;display:flex;gap:10px;min-height:38px;padding:9px 10px}.nav-list a.active,.nav-list a:focus-visible,.nav-list a:hover{background:var(--nav-soft);color:#ffffff}.workspace{min-width:0}.topbar{background:rgba(245,247,249,.92);border-bottom:1px solid var(--line);gap:16px;justify-content:space-between;min-height:64px;padding:12px 28px;position:-webkit-sticky;position:sticky;top:0;z-index:5}.command-box,.topbar{align-items:center;display:flex}.command-box{background:#ffffff;border:1px solid var(--line);border-radius:8px;color:var(--muted);gap:8px;max-width:520px;min-height:40px;padding:0 12px;width:100%}.command-box input{border:0;min-height:36px;min-width:0;padding:0;width:100%}.global-search{max-width:560px;position:relative;width:100%}.icon-button.inline{height:28px;width:28px}.search-popover{background:#ffffff;border:1px solid var(--line);border-radius:8px;box-shadow:0 18px 36px rgba(20,34,38,.14);display:grid;grid-gap:12px;gap:12px;left:0;max-height:68vh;overflow:auto;padding:12px;position:absolute;right:0;top:calc(100% + 8px);z-index:20}.search-summary{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:8px;justify-content:space-between}.search-group,.search-groups,.search-hit{display:grid;grid-gap:10px;gap:10px}.search-hit{border:1px solid var(--line);border-radius:8px;grid-template-columns:minmax(0,1fr) auto;padding:10px}.search-hit p{color:var(--muted);font-size:12px;line-height:1.4;margin-top:4px;overflow-wrap:anywhere}.header-metrics,.row-meta,.topbar-status{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:13px;gap:8px;min-width:0}.header-metrics span,.row-meta span,.topbar-status span{align-items:center;display:inline-flex;gap:5px;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}.session-link,.session-menu{align-items:center;border:1px solid var(--line);border-radius:8px;display:inline-flex;gap:8px;min-height:34px;padding:0 9px}.session-link{color:var(--ink)}.session-link,.session-menu{background:#ffffff}.language-switcher{align-items:center;display:flex;flex-direction:row;gap:6px}.language-switcher span{color:var(--muted);font-size:13px;font-weight:700}.language-switcher select{min-height:34px;padding:6px 28px 6px 9px}.page{display:flex;flex-direction:column;gap:22px;margin:0 auto;max-width:1180px;padding:28px}.page.narrow{max-width:760px}.page-header{align-items:flex-end;display:flex;justify-content:space-between;gap:20px}.eyebrow{color:var(--accent);font-size:12px;font-weight:700;margin:0 0 6px;text-transform:uppercase}h1,h2,h3,p{margin:0}h1{font-size:30px;line-height:1.15}h2{font-size:17px}h3{font-size:15px}.muted{color:var(--muted);font-size:13px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:18px}.panel-heading{align-items:center;display:flex;justify-content:space-between;gap:12px;margin-bottom:16px;min-width:0}.panel-heading>div{min-width:0}.brief-grid,.dashboard-grid,.split-layout{display:grid;grid-gap:18px;gap:18px}.dashboard-grid{grid-template-columns:minmax(0,1fr) 340px}.split-layout{grid-template-columns:minmax(0,1fr) minmax(320px,.8fr)}.brief-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.candidate-list,.entity-table,.metric-list,.policy-list,.review-list,.stack{display:flex;flex-direction:column;gap:12px}.candidate-row,.entity-row,.metric-row,.object-row,.policy-row,.review-row{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;padding:14px}.object-row{grid-template-columns:32px minmax(0,1fr)}.entity-row,.object-row.compact{grid-template-columns:minmax(0,1fr)}.candidate-row,.metric-row,.policy-row,.review-row{align-items:center;grid-template-columns:minmax(0,1fr) auto}.candidate-row,.metric-row,.policy-row,.review-row{grid-template-columns:auto minmax(0,1fr) auto}.rank{align-items:center;background:var(--panel-soft);border-radius:8px;display:flex;font-weight:700;height:32px;justify-content:center;width:32px}.row-title{font-weight:700;line-height:1.35;margin-bottom:8px;overflow-wrap:anywhere}.draft-card p,.review-row p{color:var(--muted);font-size:13px;line-height:1.4}.badge{align-items:center;background:#eef2f2;border:1px solid #d5dddd;border-radius:999px;color:#344346;display:inline-flex;font-size:12px;font-weight:700;max-width:min(100%,18rem);min-height:24px;min-width:0;overflow:hidden;padding:2px 8px;text-overflow:ellipsis;white-space:nowrap}.badge.active,.badge.approved,.badge.available,.badge.confirmed,.badge.decided,.badge.done,.badge.enabled,.badge.low,.badge.met,.badge.passed,.badge.promoted,.badge.s1{background:#eaf5f1;border-color:#cbe5dc;color:#1b6a5a}.badge.doing,.badge.draft,.badge.exploring,.badge.medium,.badge.open,.badge.pending,.badge.s2{background:#edf3fb;border-color:#cbd9ee;color:var(--blue)}.badge.high,.badge.local-only,.badge.policy-denied,.badge.s3,.badge.s4{background:#fff4dc;border-color:#ecd293;color:var(--warn)}.badge.broken,.badge.discarded,.badge.dropped,.badge.error,.badge.rejected,.badge.unavailable,.badge.urgent{background:#fdecec;border-color:#edcaca;color:var(--danger)}.ai-origin-badge{align-items:center;border:1px solid;border-radius:999px;display:inline-flex;font-size:12px;font-weight:800;gap:5px;max-width:min(100%,16rem);min-height:26px;min-width:0;overflow:hidden;padding:3px 9px;text-overflow:ellipsis;white-space:nowrap}.ai-origin-badge.external{background:#fff1d7;border-color:#e5ad4e;color:#8a4d05}.ai-origin-badge.local{background:#eaf5f1;border-color:#c3dfd5;color:#1b6a5a}.ai-origin-badge.compact{font-size:11px;min-height:22px;padding:2px 7px}.ai-analysis-note{align-items:center;border:1px solid;border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding:10px 12px}.ai-analysis-note.external{background:#fff8eb;border-color:#e7c175}.ai-analysis-note.local{background:#f1f8f5;border-color:#cfebe1}.ai-analysis-note span:last-child{color:var(--muted);font-size:13px;font-weight:700}.evidence-list{display:flex;flex-direction:column;gap:6px;margin-top:10px}.evidence{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;font-size:12px;gap:6px;line-height:1.35;min-width:0}.evidence span{min-width:0;overflow-wrap:anywhere}.evidence.empty{margin-top:10px}.draft-strip{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.draft-card{border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:12px;gap:12px;grid-template-columns:auto minmax(0,1fr);padding:14px}.draft-icon{align-items:center;background:var(--panel-soft);border-radius:8px;color:var(--accent);display:flex;height:34px;justify-content:center;width:34px}.row-actions{display:flex;gap:8px;min-width:0}.row-actions.wrap{flex-wrap:wrap}.icon-button,.primary-button{align-items:center;border:1px solid var(--line);border-radius:8px;cursor:pointer;display:inline-flex;gap:8px;justify-content:center;text-align:center}.icon-button{background:#ffffff;color:var(--ink);height:34px;width:34px}.icon-button.danger{color:var(--danger)}.primary-button{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);min-height:40px;padding:0 14px}.primary-button.secondary{background:#ffffff;border-color:var(--line);color:var(--ink)}.icon-button:disabled,.primary-button:disabled{cursor:wait;opacity:.7}.capture-form{display:flex;flex-direction:column;gap:14px}.checkbox-row,.form-row-heading,.inline-label{align-items:center;display:flex;gap:8px}.checkbox-row{flex-direction:row}.checkbox-row input{min-height:auto}.inline-label{flex-direction:row}.inline-label select{min-height:34px;padding:6px 28px 6px 9px}label{display:flex;flex-direction:column;gap:6px}label span{color:var(--muted);font-size:13px;font-weight:700}select,textarea{background:#ffffff;border:1px solid var(--line);border-radius:8px;color:var(--ink);padding:10px 11px}textarea{min-height:180px;resize:vertical}.submit-state{border-radius:999px;color:var(--muted);font-size:12px;font-weight:700;padding:4px 8px}.submit-state.success{background:#eaf5f1;color:#1b6a5a}.submit-state.error{background:#fdecec;color:var(--danger)}.text-list{color:var(--ink);display:flex;flex-direction:column;gap:8px;margin:0;padding-left:18px}.section-note{margin:-6px 0 14px}.attachment-editor{display:grid;grid-gap:10px;gap:10px}.attachment-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(4,minmax(0,1fr)) auto}.attachment-grid input{min-width:0}.attachment-list,.bulk-toolbar,.chip-row{align-items:center;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.attachment-list span,.meta-chip{background:#f8faf9;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:12px;max-width:100%;min-width:0;overflow:hidden;padding:4px 8px;text-overflow:ellipsis;white-space:nowrap}.bulk-toolbar{border-bottom:1px solid var(--line);margin:-2px 0 14px;padding-bottom:14px}.row-select{padding-top:2px}.candidate-sections{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-top:12px}.candidate-section{background:#f8faf9;border:1px solid var(--line);border-radius:8px;padding:10px}.candidate-section strong{display:block;font-size:12px;margin-bottom:6px}.candidate-section-heading{align-items:center;display:flex;flex-wrap:wrap;gap:6px;justify-content:space-between;margin-bottom:6px}.candidate-section-heading strong{margin-bottom:0}.candidate-section ul{color:var(--muted);display:flex;flex-direction:column;font-size:12px;gap:4px;margin:0;padding-left:16px}.candidate-section li,.metric-row span,.metric-row strong,.policy-row span,.policy-row strong{min-width:0;overflow-wrap:anywhere}.domain-page{max-width:1440px}.domain-toolbar{align-items:end;display:grid;grid-gap:12px;gap:12px;grid-template-columns:minmax(220px,1.3fr) repeat(4,minmax(150px,.7fr))}.search-field{min-width:0}.search-input{align-items:center;background:#ffffff;border:1px solid var(--line);border-radius:8px;display:flex;gap:8px;min-height:40px;padding:0 10px}.search-input input{border:0;min-height:36px;min-width:0;padding:0;width:100%}.domain-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:minmax(0,1fr) minmax(360px,.7fr)}.entity-list-panel{min-width:0}.entity-row.rich{grid-template-columns:minmax(0,1fr) auto}.entity-row.selected,.task-card.selected{border-color:#9fcfc3;box-shadow:0 0 0 2px #e0f4ee}.entity-pick{background:transparent;border:0;color:inherit;cursor:pointer;display:flex;flex-direction:column;gap:5px;min-width:0;padding:0;text-align:left}.entity-pick span,.entity-pick strong{line-height:1.35;overflow-wrap:anywhere}.entity-pick span{color:var(--muted);font-size:13px}.task-board{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(4,minmax(220px,1fr))}.task-column{align-content:start;background:#f9fbfa;border:1px solid var(--line);border-radius:8px;display:grid;grid-gap:10px;gap:10px;min-height:320px;padding:12px}.task-column-heading{align-items:center;display:flex;justify-content:space-between}.task-card{background:#ffffff;border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:10px;padding:12px}.compact-controls{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(90px,.6fr) minmax(0,1fr)}.compact-controls input,.compact-controls select{min-height:34px;padding:6px 8px}.subtask-list{display:flex;flex-direction:column;gap:6px}.subtask-list button{align-items:center;background:#f8faf9;border:1px solid var(--line);border-radius:8px;color:var(--muted);cursor:pointer;display:flex;font-size:12px;gap:6px;min-height:30px;padding:5px 8px;text-align:left}.top3-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr))}.top3-item{align-items:center;background:#ffffff;border:1px solid var(--line);border-radius:8px;color:inherit;cursor:pointer;display:grid;grid-gap:8px;gap:8px;grid-template-columns:34px minmax(0,1fr);min-height:74px;padding:12px;text-align:left}.top3-item span:last-child{color:var(--muted);font-size:12px;grid-column:2}.top3-item strong{min-width:0;overflow-wrap:anywhere}.detail-panel{min-width:0}.insight-grid{display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:14px}.detail-block{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px;margin-top:14px;padding-top:14px}.detail-block code{background:#f8faf9;border:1px solid var(--line);border-radius:8px;display:block;font-size:12px;overflow-wrap:anywhere;padding:8px;white-space:pre-wrap}.related-drafts{border-top:1px solid var(--line);display:grid;grid-gap:10px;gap:10px;margin-top:14px;padding-top:14px}.domain-form{display:grid;grid-gap:12px;gap:12px}.domain-form textarea{min-height:100px}.status-action{font-size:12px;font-weight:700}.progress-track{align-items:center;background:#eef2f2;border-radius:999px;display:flex;min-height:24px;overflow:hidden;position:relative}.progress-track span{align-self:stretch;background:var(--accent);display:block}.progress-track strong{color:var(--ink);font-size:12px;left:50%;position:absolute;transform:translateX(-50%)}.key-result-list{display:grid;grid-gap:8px;gap:8px}.key-result{border:1px solid var(--line);border-radius:8px;display:flex;justify-content:space-between;gap:10px;min-width:0;padding:10px}.key-result span,.key-result strong{min-width:0;overflow-wrap:anywhere}.draft-actions{margin-top:10px}.module-grid{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.module-card{border:1px solid var(--line);border-radius:8px;padding:14px}.module-header{align-items:flex-start;display:flex;gap:10px;justify-content:space-between;margin-bottom:12px;min-width:0}.module-header>div{min-width:0}.module-header h3{overflow-wrap:anywhere}.module-header span{color:var(--muted);display:block;font-size:12px;margin-top:4px}.state-panel{align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;flex-wrap:wrap;gap:10px;justify-content:space-between;padding:16px}.state-panel.error{border-color:#edcaca}.state-panel.loading{background:#f8faf9}.state-panel.empty{background:#fbfcfc}.state-copy{display:flex;flex:1 1 220px;flex-direction:column;gap:3px;min-width:0}.state-copy span{color:var(--muted);overflow-wrap:anywhere}.settings-page{max-width:1440px}.settings-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr))}.settings-panel.wide{grid-column:1/-1}.provider-list,.settings-form{display:grid;grid-gap:12px;gap:12px}.settings-form{margin-bottom:16px}.settings-form.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.brief-section,.provider-card{border:1px solid var(--line);border-radius:8px;padding:14px}.usage-table-wrap{border:1px solid var(--line);border-radius:8px;max-width:100%;overflow-x:auto}.usage-table{border-collapse:collapse;min-width:860px;width:100%}.usage-table td,.usage-table th{border-bottom:1px solid var(--line);font-size:13px;padding:10px 12px;text-align:left;vertical-align:middle;white-space:nowrap}.usage-table td{max-width:190px;overflow:hidden;text-overflow:ellipsis}.usage-table th{background:#f8faf9;color:var(--muted);font-size:12px;font-weight:800}.usage-table tr:last-child td{border-bottom:0}.file-button{cursor:pointer;position:relative}.file-button input{height:1px;opacity:0;position:absolute;width:1px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:960px){.app-shell{grid-template-columns:1fr}.sidebar{height:auto;position:static;padding:12px 16px}.nav-list{display:none;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}.sidebar.open .nav-list{display:grid}.nav-toggle{display:inline-flex}.brief-grid,.dashboard-grid,.domain-grid,.domain-toolbar,.insight-grid,.settings-form.two-column,.settings-grid,.split-layout,.task-board,.top3-grid{grid-template-columns:1fr}.candidate-row,.metric-row,.policy-row,.review-row{align-items:flex-start;grid-template-columns:1fr}}@media (max-width:640px){.page-header,.topbar{align-items:stretch;flex-direction:column}.topbar{position:static;padding:12px 16px}.bulk-toolbar,.header-metrics,.row-actions,.topbar-status{align-items:stretch}.bulk-toolbar>*,.header-metrics>*,.row-actions>*,.topbar-status>*{width:100%}.language-switcher,.session-link,.session-menu{justify-content:space-between}.page{padding:18px 16px}.panel-heading{align-items:flex-start;flex-direction:column}.candidate-row,.entity-row.rich,.metric-row,.policy-row,.review-row,.search-hit{align-items:flex-start;grid-template-columns:1fr}.attachment-grid,.compact-controls{grid-template-columns:1fr}.ai-origin-badge,.badge,.header-metrics span,.row-meta span,.topbar-status span{max-width:100%}.icon-button,.primary-button{min-width:40px}}.panel{border-radius:var(--radius)}.candidate-row,.draft-card,.entity-row,.module-card,.object-row,.panel,.task-card{box-shadow:var(--shadow-sm)}h1{letter-spacing:-.01em}.eyebrow{letter-spacing:.1em}.badge.local-only,.badge.s1{background:var(--s1-bg);border-color:var(--s1-line);color:var(--s1)}.badge.s2{background:var(--s2-bg);border-color:var(--s2-line);color:var(--s2)}.badge.s3{background:var(--s3-bg);border-color:var(--s3-line);color:var(--s3)}.badge.s4{background:var(--s4-bg);border-color:var(--s4-line);color:var(--s4)}.badge.captured,.badge.draft,.badge.open,.badge.pending,.badge.proposed{background:#eef2f6;border-color:#d6dfe8;color:#43526d}.badge.doing,.badge.exploring{background:var(--s3-bg);border-color:var(--s3-line);color:var(--s3)}.badge.approved,.badge.confirmed,.badge.decided,.badge.done,.badge.executed,.badge.met,.badge.passed,.badge.promoted{background:var(--s1-bg);border-color:var(--s1-line);color:var(--s1)}.badge.broken,.badge.discarded,.badge.dropped,.badge.rejected{background:#f1f0ee;border-color:#ddd9d4;color:#6f6a64}.badge.overdue,.badge.urgent{background:var(--s4-bg);border-color:var(--s4-line);color:var(--s4)}.topbar{background:rgba(255,255,255,.88);-webkit-backdrop-filter:saturate(1.08) blur(6px);backdrop-filter:saturate(1.08) blur(6px)}.primary-button{box-shadow:var(--shadow-sm)}.primary-button:not(:disabled):hover{filter:brightness(1.06)}.rank{background:var(--accent-soft);color:var(--accent)}