@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url('/static/fonts/plex-400.ttf') format('truetype')}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:500;font-display:swap;src:url('/static/fonts/plex-500.ttf') format('truetype')}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url('/static/fonts/plex-600.ttf') format('truetype')}
:root{
 --ground:#edf2f4;--surface:#fff;--raised:#f5f7f8;--active:#e1e8eb;--border:#e2e8eb;--rule:#edf0f2;--control:#b9c5ca;
 --text:#1b272d;--muted:#57666d;--faint:#627179;--accent:#1b6c80;--accent-soft:#e7f1f4;--positive:#226746;--negative:#a82e3a;--warning:#805911;
 --font:"IBM Plex Sans","PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;
 --sidebar-width:228px;--gap:24px;--pad:28px;--radius-card:8px;--radius-control:6px;--radius-sheet:16px;
 --fs-title:22px;--fs-section:16px;--fs-body:14px;--fs-small:12px;
 color-scheme:light;font-family:var(--font);font-size:14px;font-synthesis:none;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:#b0bfc6 var(--ground);scrollbar-width:thin}
body{margin:0;background:var(--ground);color:var(--text);font:400 14px/1.55 var(--font);-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:not-allowed;color:var(--muted);background:#e6ecef;border-color:var(--border)}
input,textarea{caret-color:var(--accent)}
input::placeholder,textarea::placeholder{color:var(--faint)}
::selection{background:#cde5eb;color:#123d49}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
a{color:var(--accent);text-underline-offset:3px}
img,svg{display:block;max-width:100%}
h1,h2,h3,p,figure,dl,dd{margin:0}
h1{font-size:var(--fs-title);line-height:1.35;letter-spacing:-.02em;font-weight:600;text-wrap:balance}
h2{font-size:var(--fs-section);line-height:1.5;font-weight:600}
h3{font-size:14px;font-weight:600}
p{max-width:75ch}
small{font-size:12px}
table,.num,.metric{font-variant-numeric:tabular-nums}
.num{text-align:right}
.muted,.field-help,.page-description{color:var(--muted)}
.field-help{font-size:12px;line-height:1.7;margin-top:8px}
.skip-link{position:fixed;left:12px;top:-80px;background:white;padding:12px;z-index:100}
.skip-link:focus{top:12px}
.boot-status{min-height:100svh;display:grid;place-items:center;color:var(--muted)}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--text)}
.brand>span{font-size:21px;font-weight:600;line-height:1.3;letter-spacing:.02em}
.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:.02em;color:var(--muted);margin-top:2px}
.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);grid-template-rows:56px minmax(0,1fr);min-height:100svh}
.sidebar{grid-row:1 / -1;position:sticky;top:0;display:flex;flex-direction:column;height:100svh;min-height:0;padding:25px 16px 16px;overflow:auto}
.sidebar>.brand{padding:0 12px}
.workspace-name{font-size:12px;color:var(--muted);padding:24px 12px 12px}
.main-nav{display:grid;gap:4px}
.main-nav>a{display:flex;align-items:center;gap:12px;min-height:40px;padding:8px 12px;border-radius:6px;text-decoration:none;color:var(--muted)}
.main-nav>a:hover,.sidebar-bottom>a:hover{background:#e7edf0;color:var(--text)}
.main-nav>a.active,.main-nav>a[aria-current="page"],.sidebar-bottom>a.active{background:var(--active);color:var(--text);font-weight:500}
.nav-symbol{width:15px;height:15px;flex:none;border:1.5px solid currentColor;border-radius:3px;position:relative}
.nav-symbol::after{content:"";position:absolute;inset:3px;border-top:1px solid currentColor}
.nav-symbol.lines{border-width:0 0 1.5px;border-radius:0}
.nav-symbol.lines::after{inset:2px 0 4px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
.nav-symbol.pulse{border-radius:50%}
.nav-symbol.pulse::after{inset:3px;border:1px solid currentColor;border-radius:50%}
.nav-symbol.split::after{inset:0 6px;border:0;border-left:1px solid currentColor}
.nav-section-title{margin:32px 10px 10px;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}
.sites-nav{display:grid;gap:3px}
.sites-nav button,.site-nav-item{display:flex;align-items:center;gap:9px;text-align:left;background:transparent;border:0;width:100%;padding:9px 12px;border-radius:6px;font-size:13px;overflow:hidden;text-overflow:ellipsis}
.sites-nav button:hover,.sites-nav button.active,.site-nav-item.active{background:#e1e8eb}
.sites-nav .empty-nav,.sites-nav>p{padding:8px 12px;font-size:12px;color:var(--muted)}
.site-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}
.site-nav-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-bottom{margin-top:auto;padding-top:32px}
.sidebar-bottom>a{display:block;text-decoration:none;color:var(--muted);padding:9px 12px;border-radius:6px}
.sidebar-bottom>p{font-size:12px;color:var(--faint);padding:16px 12px 0;line-height:1.8}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 28px;min-width:0}
.breadcrumb,.topbar-end{display:flex;align-items:center;gap:12px;min-width:0;font-size:12px}
.breadcrumb>span{color:var(--muted)}
.breadcrumb>strong{font-weight:500;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.connection-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.connection-status::before{content:"";width:5px;height:5px;background:var(--accent);border-radius:50%}
.workspace{background:var(--surface);margin:0 8px 8px 0;border:1px solid var(--border);border-radius:var(--radius-sheet);min-width:0;min-height:calc(100svh - 64px);padding:var(--pad)}
.workspace:focus{outline:none}
.view{max-width:1440px;margin:0 auto}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.page-title{font-size:22px;font-weight:600;line-height:1.4}
.page-description{font-size:13px;margin-top:8px;line-height:1.7}
.page-header .inline-actions{flex:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:7px 14px;border:1px solid var(--control);border-radius:var(--radius-control);background:#fff;text-decoration:none;font-size:13px;font-weight:500;line-height:1.4;white-space:nowrap}
.button:hover{border-color:#6c828d;background:var(--raised)}
.button.primary{background:var(--text);border-color:var(--text);color:white}
.button.primary:hover{background:#30434c;border-color:#30434c}
.button:disabled,.button.primary:disabled,.button.primary:disabled:hover{background:#e6ecef;border-color:var(--border);color:var(--muted);cursor:not-allowed}
.button.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.button.danger{color:var(--negative);border-color:#dcb1b6}
.button.small{font-size:12px;min-height:30px;padding:4px 10px}
.text-button{border:0;background:transparent;color:var(--muted);padding:6px 4px;font-size:12px;text-decoration:none;line-height:1.5}
.text-button:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.toolbar,.filter-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 20px}
.toolbar .field{margin:0}.toolbar input,.filter-row input{width:min(100%,320px)}
.toolbar select,.filter-row select{width:auto;min-width:140px}
.toolbar-spacer{flex:1}
.inline-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.split-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:var(--gap);align-items:start}
.main-column,.side-column{min-width:0;display:grid;gap:var(--gap)}
.main-column>.toolbar,.main-column>.notice,.main-column>.field{margin-bottom:0}
.panel{border:1px solid var(--border);border-radius:var(--radius-card);min-width:0;background:white;overflow:hidden}
.panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px 12px}
.panel-header h2{font-size:15px}.panel-header p{font-size:12px;color:var(--muted);margin-top:4px}
.panel-body{padding:8px 20px 20px}
.panel-body>p+p{margin-top:12px}
.panel-body>.inline-actions{margin-top:16px}
.side-column .panel{background:var(--raised);border:0}
.side-column .panel-header{padding-top:20px}
.side-column p{font-size:13px;line-height:1.8}
.side-column ul{margin:12px 0 0;padding-left:18px;color:var(--muted);font-size:13px;line-height:1.8}
.key-values{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;margin:8px 0;font-size:13px}
.key-values dt{color:var(--muted)}.key-values dd{text-align:right;overflow-wrap:anywhere}
.empty-state{padding:36px 28px;min-width:0;display:flex;align-items:flex-start;flex-direction:column;gap:12px;background:#f8fafb;border-radius:8px}
.empty-state h2,.empty-state h3{font-size:17px;font-weight:500}
.empty-state p{font-size:13px;color:var(--muted);line-height:1.8;max-width:58ch}
.empty-state .button{margin-top:6px}
.empty-state.compact{padding:20px;gap:8px}
.panel>.empty-state,.panel-body>.empty-state{background:transparent;border-radius:0;padding:24px 20px}
.onboarding{max-width:100%;padding:36px;background:var(--raised);border-radius:8px}
.onboarding h2{font-size:20px;margin-bottom:12px}
.onboarding p{font-size:14px;line-height:1.8;color:var(--muted)}
.notice{padding:12px 16px;background:var(--accent-soft);border-radius:6px;font-size:12px;line-height:1.8;color:#285363;margin-bottom:18px}
.notice.warning{background:#fcf5e6;color:var(--warning)}
.notice.error,.error-panel{background:#fbf0f2;color:var(--negative);padding:16px;border-radius:8px}
.error-panel .button{margin-top:12px}
.metric-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:24px;border-block:1px solid var(--border);padding:18px 0;gap:0}
.metric{padding:0 20px;border-right:1px solid var(--border);min-width:0}
.metric:first-child{padding-left:0}.metric:last-child{border:0}
.metric-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.metric-value{font-size:28px;line-height:1.2;font-weight:400;letter-spacing:-.02em}
.metric-caption,.metric-note{font-size:12px;color:var(--muted);margin-top:7px}
.metric strong{font-size:28px;font-weight:400;display:block}.metric>span{font-size:12px;color:var(--muted)}
.table-wrap{overflow:auto;max-width:100%;scrollbar-width:thin}
.data-table{width:100%;border-collapse:collapse;font-size:13px;text-align:left}
.data-table th{font-size:12px;color:var(--muted);font-weight:400;padding:12px 16px;white-space:nowrap;text-align:left}
.data-table td{padding:14px 16px;border-top:1px solid var(--rule);vertical-align:top;line-height:1.65}
.data-table th.num,.data-table td.num{text-align:right}
.data-table td:first-child{min-width:150px;max-width:400px}
.data-table td .muted{font-size:12px}.data-table tbody tr:hover{outline:1px solid var(--border);outline-offset:-1px}
.data-table button{white-space:nowrap}
.row-title{font-weight:500;color:var(--text)}
.row-subtitle{font-size:12px;color:var(--muted);margin-top:3px}
.chip{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:4px;font-size:12px;font-weight:500;line-height:1.6;white-space:nowrap;flex:none;background:#edf1f3;color:#44525a}
.chip.positive{background:#e6f2eb;color:#205b3f}.chip.warning{background:#faf2df;color:#795414}.chip.negative{background:#faecee;color:#993440}.chip.neutral{background:#edf1f3;color:#44525a}
.field{display:flex;flex-direction:column;gap:7px;min-width:0;margin-bottom:18px}
label,.field-label{font-size:13px;font-weight:500}
input:not([type=checkbox]):not([type=radio]),select,textarea{display:block;width:100%;border:1px solid var(--control);border-radius:6px;background:#fff;padding:9px 11px;min-height:40px;font-size:13px;line-height:1.6;min-width:0}
textarea{resize:vertical;min-height:90px}
input[type=checkbox],input[type=radio]{accent-color:var(--accent);width:17px;height:17px;flex:none;cursor:pointer}
input[readonly]{background:var(--raised)}
.check-label{display:flex;align-items:center;gap:8px;font-weight:400;cursor:pointer}
.check-label input{margin:0}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.form-grid .full,.form-grid .wide{grid-column:1 / -1}
.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid var(--rule)}
.form-error{color:var(--negative);font-size:12px;line-height:1.7;min-height:18px;margin:10px 0}
.question-editor{display:grid;gap:16px}
.question-row{padding:18px 20px;border:1px solid var(--border);border-radius:8px;background:white;min-width:0}
.question-row-header{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}
.question-row .field{margin-bottom:12px}.question-row textarea{min-height:64px}
.question-row .form-grid{grid-template-columns:minmax(0,1fr) 170px}
.question-row input[type=checkbox]{vertical-align:middle}
.question-row.disabled{background:var(--raised)}
.question-row .inline-actions{justify-content:space-between}
.save-bar{display:flex;justify-content:space-between;gap:16px;align-items:center;position:sticky;bottom:0;background:var(--surface);padding:16px 0;border-top:1px solid var(--border);margin-top:20px;z-index:2}
.save-bar p{font-size:12px;color:var(--muted)}
.progress-track{height:5px;background:#e7edef;border-radius:3px;overflow:hidden;margin:12px 0}
.progress-fill{height:100%;background:var(--accent);width:0}
.run-list{display:grid;gap:12px}
.run-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid var(--rule)}
.run-item:last-child{border-bottom:0}
.run-item h3{font-weight:500}.run-item p{font-size:12px;color:var(--muted);margin-top:5px}
.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.detail-grid>.full{grid-column:1 / -1}
.evidence-text{white-space:pre-wrap;overflow-wrap:anywhere;font:400 14px/1.9 var(--font);margin:12px 0 0;padding:20px;background:#f7f9fa;border-radius:8px;max-width:100%;overflow:auto}
.evidence-section{margin-top:24px}.evidence-section h3{margin-bottom:10px}
.evidence-meta{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:10px}
.sources-list{padding-left:20px;margin:12px 0;line-height:1.9;font-size:13px;overflow-wrap:anywhere}
.competitor-list{list-style:none;padding:0;margin:0}
.competitor-list li{padding:14px 0;border-bottom:1px solid var(--rule)}
.competitor-list li:last-child{border:0}
.competitor-heading{display:flex;justify-content:space-between;gap:16px;font-weight:500}
.competitor-list p{font-size:12px;color:var(--muted);margin-top:6px}
.bar-track{height:3px;background:#edf1f3;margin-top:10px}.bar-fill{height:100%;background:var(--accent)}
.dialog{width:min(640px,calc(100vw - 32px));max-height:calc(100svh - 48px);border:1px solid var(--border);border-radius:16px;padding:28px;overflow:auto;background:white;color:var(--text);box-shadow:0 18px 60px #12293624}
dialog::backdrop{background:#132c3966}
.dialog-header{display:flex;justify-content:space-between;gap:16px;margin-bottom:20px}
.dialog-header h2{font-size:20px}.dialog-header p{font-size:13px;color:var(--muted);margin-top:6px}
.dialog-close{margin-left:auto;flex:none}
.evidence-dialog{position:fixed;inset:0 0 0 auto;margin:0;width:min(760px,100vw);height:100svh;max-height:100svh;max-width:100vw;border:0;border-left:1px solid var(--border);border-radius:0;padding:28px;background:white;color:var(--text);overflow:auto}
.evidence-dialog .dialog-header{position:sticky;top:-28px;padding:20px 0;background:white;z-index:2;border-bottom:1px solid var(--rule)}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--text);color:#fff;border-radius:8px;padding:12px 18px;max-width:calc(100vw - 32px);font-size:13px;z-index:30;box-shadow:0 6px 20px #11202b24}
.mobile-menu{display:none}
.login-view{min-height:100svh;display:grid;grid-template-columns:1fr 1fr;background:var(--surface)}
.login-story{background:var(--ground);padding:44px 48px;display:flex;flex-direction:column;position:relative;min-height:100svh}
.login-intro{margin:auto 0;padding:80px 0 56px}
.login-intro h1{font-size:32px;line-height:1.55;letter-spacing:-.02em;max-width:14ch}
.login-intro p{font-size:15px;color:var(--muted);margin-top:24px;line-height:1.9}
.login-steps{display:flex;gap:20px;align-items:center;padding:24px 0;border-top:1px solid #cedae0;font-size:12px;color:var(--muted)}
.login-steps span+span::before{content:"/";display:inline-block;padding-right:20px;color:#899ba4}
.login-foot{font-size:12px;color:var(--muted);padding-top:24px}
.login-panel{display:flex;align-items:center;justify-content:center;padding:48px}
.login-form{width:100%;max-width:340px}
.login-form h2{font-size:22px;font-weight:600}.login-form>p:first-of-type{margin-top:10px;margin-bottom:32px;font-size:13px;color:var(--muted)}
.login-form label{display:block;margin-bottom:10px}.login-form input{min-height:44px}
.login-form .button{width:100%;min-height:42px;margin:8px 0 24px}
.loading-line{height:6px;background:var(--active);width:120px;margin:14px 0;border-radius:3px}
.skeleton{background:var(--raised);border-radius:4px;min-height:20px}
.settings-section{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;padding:24px 0;border-top:1px solid var(--border)}
.settings-section:first-of-type{border-top:0}.settings-section p{font-size:13px;color:var(--muted);margin-top:8px}
.settings-section .panel{background:var(--raised);border:0;padding:20px}
.settings-section .panel-body{padding:0}
.settings-section .field:last-child{margin:0}
.site-profile{font-size:13px;line-height:1.85}
.site-profile .chip{margin:4px 4px 4px 0}
.tag-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}
.section-gap{margin-top:24px}
.text-link{background:none;border:0;padding:0;color:var(--accent);text-align:left;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.nowrap{white-space:nowrap}.break-word{overflow-wrap:anywhere}.spacer{flex:1}
@media(min-width:1600px){:root{--pad:36px}.split-layout{grid-template-columns:minmax(0,1fr) 340px}}
@media(max-width:1100px){
 .action-table{min-width:530px}
 .action-table th:last-child,.action-table td:last-child{position:sticky;right:0;z-index:2;min-width:84px;background:var(--surface);border-left:1px solid var(--border)}
 :root{--sidebar-width:200px;--pad:24px;--gap:20px}
 .split-layout{grid-template-columns:minmax(0,1fr) 260px}.metric{padding:0 12px}.topbar{padding:0 24px}
 .settings-section{grid-template-columns:180px minmax(0,1fr);gap:24px}
}
@media(max-width:900px){
 .app-shell{grid-template-columns:minmax(0,1fr);grid-template-rows:56px minmax(0,1fr)}
 .sidebar{display:none;position:fixed;top:56px;bottom:0;left:0;width:260px;height:calc(100svh - 56px);background:var(--ground);border-right:1px solid var(--control);z-index:12}
 .sidebar.open{display:flex}.mobile-menu{display:block}.topbar{gap:12px}.breadcrumb{margin-right:auto}.connection-status{display:none}
 .workspace{margin:0 8px 8px}.split-layout{grid-template-columns:minmax(0,1fr) 250px}
 .login-story{padding:32px}.login-panel{padding:32px}.login-intro h1{font-size:28px}.login-steps{gap:10px}.login-steps span+span::before{padding-right:10px}
}
@media(max-width:700px){
 .split-layout,.detail-grid{grid-template-columns:1fr}.side-column{grid-template-columns:repeat(2,minmax(0,1fr))}.side-column>.panel:only-child{grid-column:1 / -1}
 .page-header{flex-wrap:wrap;gap:16px}.settings-section{grid-template-columns:1fr;gap:16px}.login-view{grid-template-columns:1fr}
 .login-story{min-height:0;padding:24px 28px 0}.login-intro{padding:32px 0}.login-intro h1{font-size:26px}.login-intro h1 br{display:none}.login-intro h1{max-width:none}
 .login-intro p{font-size:13px;margin-top:12px}.login-steps,.login-foot{display:none}.login-panel{padding:36px 28px 60px}.login-form{max-width:none}
}
@media(max-width:480px){
 :root{--pad:18px;--gap:18px}.topbar{padding:0 18px}.workspace{border:0;border-radius:0;margin:0;min-height:calc(100svh - 56px)}
 h1,.page-title{font-size:21px}.page-header{margin-bottom:20px}.page-header>.inline-actions{width:100%}.page-header>.inline-actions>.button{flex:1}
 .button,.text-button{min-height:40px}.button.small{min-height:36px}.topbar .text-button{min-height:44px}
 .side-column,.form-grid{grid-template-columns:1fr}.form-grid .full,.form-grid .wide{grid-column:auto}
 .metric-strip{grid-template-columns:1fr 1fr;gap:18px 0}.metric{padding:0 14px}.metric:nth-child(odd){padding-left:0}.metric:nth-child(even){border:0}
 .metric-value,.metric strong{font-size:26px}.metric-label{font-size:12px}
 .question-row{padding:16px}.question-row .form-grid{grid-template-columns:1fr}.question-row textarea{font-size:14px;min-height:90px}
 .panel-header{padding:16px 16px 12px}.panel-body{padding:4px 16px 16px}.empty-state,.onboarding{padding:24px 20px}
 .toolbar,.filter-row{gap:10px}.toolbar input,.filter-row input{width:100%}.toolbar select{flex:1}
 .data-table{font-size:12px}.data-table td,.data-table th{padding:12px}.data-table td:first-child{min-width:150px}
 .dialog{padding:22px 18px;max-height:calc(100svh - 24px)}.evidence-dialog{padding:20px 18px}.evidence-dialog .dialog-header{top:-20px}.evidence-text{padding:16px;font-size:13px}
 .save-bar{flex-wrap:wrap;gap:8px}.save-bar .button{margin-left:auto}.run-item{align-items:flex-start;gap:10px}
 .form-actions{flex-wrap:wrap}.form-actions>.button{flex:1}.form-grid input,.form-grid select{font-size:16px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
