:root{color-scheme:light;--bg:#f7f7f4;--surface:#ffffff;--surface-strong:#f0efe8;--text:#20201d;--muted:#696b61;--line:#d9d8cf;--accent:#176e65;--accent-strong:#0d514a;--gold:#b8860b;--rust:#9b4e32;--blue:#2f5f98;--shadow:0 18px 50px rgba(25,28,24,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-columns:272px minmax(0,1fr);min-height:100vh}.sidebar{border-right:1px solid var(--line);background:#fbfbf8;padding:22px 16px;display:flex;flex-direction:column;gap:22px;position:-webkit-sticky;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding:8px}.brand span,.brand strong{display:block}.brand strong{font-size:18px}.brand span,.eyebrow,.muted,.panel-heading span,.sidebar-note,small{color:var(--muted)}.brand span,.sidebar-note{font-size:12px}nav{display:grid;grid-gap:4px;gap:4px}nav a{min-height:42px;display:flex;align-items:center;gap:10px;padding:0 10px;border-radius:8px;color:#454840}nav a:hover,nav a[aria-current=page]{background:var(--surface-strong);color:var(--text)}.sidebar-note{margin-top:auto;display:flex;gap:8px;align-items:center;padding:10px;border-top:1px solid var(--line)}.sidebar-logout button{width:100%;min-height:40px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--muted);cursor:pointer}.main{padding:34px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;margin-bottom:28px}.page-header h1{margin:4px 0 8px;font-size:44px;line-height:1.02;letter-spacing:0}.page-header p{max-width:680px;margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:12px;font-weight:700}.health-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;box-shadow:var(--shadow)}.health-link,.primary-button,button{border:1px solid var(--line);border-radius:8px;background:var(--surface)}.primary-button,button{min-height:42px;color:var(--text);font:inherit;font-weight:700;cursor:pointer}.primary-button{border-color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.6}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px}.login-panel{width:min(100%,440px);border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:26px}.login-panel h1{margin:8px 0;font-size:32px;letter-spacing:0}.login-mark{width:46px;height:46px;display:grid;place-items:center;border-radius:8px;background:#eef7f4;color:var(--accent)}.login-form,.login-form label{display:grid;grid-gap:8px;gap:8px}.login-form{margin-top:18px;gap:14px}.login-form span{color:var(--muted);font-size:13px;font-weight:700}.login-form input{min-height:44px;border:1px solid var(--line);border-radius:8px;padding:0 12px;font:inherit}.dashboard-hero{display:grid;grid-gap:18px;gap:18px;margin-bottom:18px}.dashboard-hero-header{margin-bottom:0}.dashboard-start-grid,.status-grid{display:grid;grid-gap:12px;gap:12px}.status-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-start-grid{grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr)}.status-card{min-height:128px;display:grid;grid-gap:7px;gap:7px;align-content:start;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:var(--shadow);padding:14px}.status-card svg{color:var(--accent)}.status-card small,.status-card span{color:var(--muted)}.status-card span{font-size:13px}.status-card strong{font-size:22px;text-transform:capitalize}.next-step-panel,.quick-panel{min-height:auto}.quick-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));grid-gap:8px;gap:8px}.quick-links a{min-height:46px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:9px;gap:9px;border:1px solid var(--line);border-radius:8px;background:#fcfcfa;padding:0 11px}.quick-links a:hover{border-color:var(--accent);background:#f4faf7}.quick-links span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.next-step-list{margin:0;padding-left:22px;color:var(--muted);line-height:1.65}.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:10px;gap:10px;margin-bottom:18px}.empty-state,.metric-card,.panel{border:1px solid var(--line);background:var(--surface);border-radius:8px;box-shadow:var(--shadow)}.setup-panel{display:grid;grid-gap:18px;gap:18px;max-width:900px}.setup-list{margin:0;padding-left:22px;color:var(--muted);line-height:1.7}.metric-card{min-height:94px;padding:14px;display:grid;grid-gap:8px;gap:8px}.metric-card span{color:var(--muted);font-size:13px}.metric-card strong{font-size:26px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);grid-gap:18px;gap:18px}.graph-panel{grid-row:span 2}.panel{min-height:280px;padding:18px}.panel-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:16px}.panel-heading h2{font-size:18px;margin:0}.compact-heading{margin-top:18px}.warning-note{border:1px solid #e6c998;background:#fff8e8;color:#6b5121;border-radius:8px;padding:10px 12px;margin:0 0 12px}.success-note{border:1px solid #b7d8c2;background:#edf8f0;color:#28553a;border-radius:8px;padding:10px 12px}.workflow-panel{min-height:auto;margin-bottom:18px}.workflow-steps{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.workflow-steps span{border:1px solid var(--line);border-radius:8px;background:#fcfcfa;padding:7px 9px;color:var(--muted);font-size:13px}blockquote{margin:0;border-left:4px solid var(--accent);padding:8px 12px;background:#f4faf7;color:var(--text)}.stack{display:grid;grid-gap:10px;gap:10px}.deployment-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.85fr);grid-gap:18px;gap:18px}.deployment-summary{grid-row:span 2}.deployment-actions{min-height:auto}.deploy-button-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));grid-gap:10px;gap:10px}.deploy-button-grid .primary-button,.deploy-button-grid button{display:inline-flex;justify-content:center;align-items:center;gap:8px;padding:0 12px}.deployment-row{display:grid;grid-gap:5px;gap:5px;border:1px solid var(--line);border-radius:8px;background:#fcfcfa;padding:12px}.deployment-row small,.deployment-row span{color:var(--muted)}.deployment-log-panel{grid-column:1/-1}.deploy-log{max-height:460px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#1f2523;color:#eef7f4;padding:14px;white-space:pre-wrap}.outreach-row,.relation-edge,.relevance-card,.relevance-row,.review-card,.signal-row{border:1px solid var(--line);border-radius:8px;padding:12px;background:#fcfcfa}.signal-row{display:grid;grid-gap:8px;gap:8px;grid-template-columns:minmax(0,1fr) auto}.outreach-row p,.relevance-row p,.signal-row p{margin:4px 0 0;color:var(--muted)}.signal-row small{grid-column:1/-1;display:block}.relevance-row{display:grid;grid-gap:8px;gap:8px}meter{width:100%;height:10px}.outreach-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;grid-gap:10px;gap:10px}.outreach-row span{color:var(--accent-strong);font-size:12px}.row-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-actions input{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 10px;color:var(--text)}.filter-bar{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:10px;gap:10px;align-items:end}.filter-bar input,.filter-bar select{min-height:40px;border:1px solid var(--line);border-radius:8px;padding:0 10px;background:#fff;color:var(--text)}.inline-danger{margin-top:0}.relation-map,.review-card{display:grid;grid-gap:12px;gap:12px}.relation-edge{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.5fr) minmax(0,1fr);grid-gap:12px;gap:12px;align-items:center}.relation-edge p{grid-column:1/-1;margin:0;color:var(--muted)}.edge-line small,.relation-edge span{display:block;color:var(--muted);font-size:12px}.edge-line{text-align:center;border-top:1px solid var(--line);padding-top:8px}.relevance-card{display:grid;grid-template-columns:58px minmax(0,1fr);grid-gap:14px;gap:14px}.score-badge{width:52px;height:52px;border-radius:8px;display:grid;place-items:center;background:var(--accent);color:#fff;font-weight:800;font-size:20px}.breakdown-grid{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.breakdown-grid span{padding:4px 8px;color:var(--muted);font-size:12px}.breakdown-grid span,.panel textarea{border:1px solid var(--line);border-radius:8px}.panel textarea{width:100%;padding:10px;font:inherit;background:#fcfcfa}.graph-preview{display:grid;grid-gap:18px;gap:18px}.node-list{min-height:260px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;align-content:start}.graph-node{min-height:82px;padding:12px;border:1px solid var(--line);border-left:5px solid var(--accent);border-radius:8px;background:#fcfcfa}.graph-edge span,.graph-node span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.graph-node strong{display:block;margin-top:8px}.graph-node-topic{border-left-color:var(--gold)}.graph-node-organization{border-left-color:var(--blue)}.graph-node-signal{border-left-color:var(--rust)}.edge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.graph-edge,.graph-empty{border:1px dashed var(--line);border-radius:8px;padding:12px}.empty-state,.loading-block{min-height:calc(100vh - 68px);display:grid;place-items:center;align-content:center;text-align:center;padding:48px}.empty-state h2{margin:14px 0 6px}.empty-state p{max-width:680px;margin:0 auto;color:var(--muted)}.entity-list{display:grid;grid-gap:10px;gap:10px}.entity-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(0,1.5fr) minmax(160px,.6fr);grid-gap:14px;gap:14px;align-items:center;min-height:64px;border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:12px 14px}.entity-row small,.entity-row span{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entity-form{display:grid;grid-gap:14px;gap:14px}.entity-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:13px}.entity-form input,.entity-form select,.entity-form textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:10px 11px;font:inherit;color:var(--text);background:#fff}.danger-button,.primary-button{min-height:40px;border:0;border-radius:8px;padding:0 14px;font-weight:700;cursor:pointer;justify-self:start}.primary-button{background:var(--accent);color:#fff}.danger-button{margin-top:16px;background:#f5e8e3;color:var(--rust)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:18px;gap:18px;margin-bottom:18px}.detail-list{display:grid;grid-gap:10px;gap:10px;margin:0}.detail-list div{display:grid;grid-template-columns:140px minmax(0,1fr);grid-gap:10px;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px}.detail-list dt{color:var(--muted)}.detail-list dd{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.csv-preview,.processing-result{display:grid;grid-gap:10px;gap:10px}.csv-preview textarea{width:100%}.preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.preview-grid pre,.preview-grid strong,.processing-result pre{border:1px solid var(--line);border-radius:8px;background:#fcfcfa;padding:10px}.preview-grid pre{max-height:260px}.preview-grid pre,.processing-result pre{overflow:auto;white-space:pre-wrap;font-size:12px}.processing-result pre{max-height:420px}.choice-group{border:1px solid var(--line);border-radius:8px;padding:10px 12px;display:grid;grid-gap:8px;gap:8px}.choice-group legend{color:var(--muted);font-size:13px;padding:0 4px}.checkbox-row,.choice-group label{display:flex;align-items:center;gap:8px}.checkbox-row{color:var(--text)}.loading-block{color:var(--muted);gap:14px}.loading-block div{width:34px;height:34px;border-radius:999px;border:3px solid var(--line);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}@media (max-width:1100px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}nav{grid-template-columns:repeat(4,minmax(0,1fr))}.dashboard-grid,.dashboard-start-grid,.deployment-layout,.metrics,.status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.main{padding:20px}.page-header,.panel-heading{display:grid}.page-header h1{font-size:34px}.dashboard-grid,.dashboard-start-grid,.deployment-layout,.detail-grid,.edge-list,.metrics,.node-list,.outreach-row,.relation-edge,.relevance-card,.signal-row,.status-grid,nav{grid-template-columns:1fr}.deployment-log-panel,.deployment-summary{grid-column:auto;grid-row:auto}}