:root{--ink:#17212b;--muted:#5b6b7a;--line:#dde3ea;--bg:#f5f7fa;--card:#fff;--accent:#1f5f99;--ok:#1d7a45;--warn:#a66300;--bad:#b3261e;--info:#1f5f99;color:var(--ink);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0}a{color:var(--accent)}h1{margin:0 0 .3rem;font-size:1.6rem}h2{margin:0 0 .6rem;font-size:1.15rem}h3{margin:1rem 0 .4rem;font-size:1rem}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.muted{color:var(--muted)}.ok-text{color:var(--ok)}.bad-text{color:var(--bad)}.topbar{color:#fff;background:#12263a;flex-wrap:wrap;align-items:center;gap:1.5rem;padding:.6rem 1.5rem;display:flex}.topbar a{color:#dbe7f3;text-decoration:none}.topbar nav{flex:1;gap:1rem;display:flex}.topbar nav a.active{color:#fff;font-weight:600}.brand{font-weight:700;color:#fff!important}.user{align-items:center;gap:.5rem;display:flex}.avatar{border-radius:50%;width:26px;height:26px}.topbar .link-button{color:#dbe7f3}.page{max-width:1200px;margin:0 auto;padding:1.5rem}.page.narrow{max-width:900px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.card{background:var(--card);border:1px solid var(--line);color:inherit;border-radius:8px;margin-bottom:1rem;padding:1rem 1.2rem;text-decoration:none;display:block}.card-header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.project-card:hover{border-color:var(--accent)}button,.button{font:inherit;border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:6px;padding:.4rem .9rem;text-decoration:none;display:inline-block}button:disabled{opacity:.5;cursor:not-allowed}.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.link-button{color:var(--accent);cursor:pointer;background:0 0;border:none;padding:0}input,select,textarea{font:inherit;border:1px solid var(--line);background:#fff;border-radius:6px;padding:.35rem .5rem}label{flex-direction:column;gap:.25rem;margin-bottom:.7rem;font-weight:500;display:flex}label.check,label.inline{flex-direction:row;align-items:center;gap:.35rem;margin:0;font-weight:400}fieldset{border:1px solid var(--line);border-radius:6px;margin:0 0 .8rem}.grid2{grid-template-columns:1fr 1fr;gap:0 1rem;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:0 1rem;display:grid}.country-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.2rem .8rem;display:grid}.form-row{flex-wrap:wrap;align-items:flex-end;gap:1rem;display:flex}.editor{width:100%;font-family:ui-monospace,Menlo,monospace;font-size:.85rem}.checklist{columns:2;margin:0 0 .6rem;padding:0;list-style:none}.checklist .missing{color:var(--warn)}.checklist .done{color:var(--ok)}.badge{white-space:nowrap;border-radius:999px;padding:.05rem .5rem;font-size:.78rem;font-weight:600;display:inline-block}.badge-ok{color:var(--ok);background:#e3f4ea}.badge-warn{color:var(--warn);background:#fdf0dc}.badge-bad{color:var(--bad);background:#fbe4e2}.badge-info{color:var(--info);background:#e2eef9}.badge-neutral{color:var(--muted);background:#eceff3}.pill{color:var(--info);background:#e2eef9;border-radius:999px;margin-left:.4rem;padding:.05rem .45rem;font-size:.75rem}.pill-warn{color:var(--warn);background:#fdf0dc}.error-box{color:var(--bad);background:#fdf1f0;border:1px solid #f0b8b3;border-radius:6px;margin-bottom:1rem;padding:.7rem 1rem}.warning-box{background:#fff8ec;border:1px solid #f1d29b;border-radius:6px;margin-bottom:1rem;padding:.7rem 1rem}.ok-box{color:var(--ok);background:#f0faf3;border:1px solid #b7dfc6;border-radius:6px;margin-bottom:1rem;padding:.5rem 1rem}.stats{flex-wrap:wrap;gap:1.5rem;margin:.5rem 0 1rem;display:flex}.stats div{min-width:110px}.stats dt{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.stats dd{margin:0;font-weight:600}.table{border-collapse:collapse;background:#fff;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.45rem .5rem}.table th{color:var(--muted);font-size:.8rem;font-weight:600}.table tr.expired td{background:#fff8ec}.table tr.selected td{background:#e9f2fb}.table tbody tr{cursor:default}.cost-cell{min-width:220px}.costbar-track{background:#eceff3;border-radius:5px;height:10px;position:relative;overflow:hidden}.costbar-fill{background:var(--ok);height:100%}.costbar-warn .costbar-fill{background:var(--warn)}.costbar-over .costbar-fill{background:var(--bad)}.costbar-estimate{background:var(--ink);opacity:.5;width:2px;position:absolute;top:0;bottom:0}.costbar-text{margin-top:.25rem;font-size:.85rem}.timeline{margin:0;padding:0;list-style:none}.timeline-group{gap:.8rem;margin-bottom:.6rem;display:flex}.timeline-group.parallel .timeline-step{flex:1}.timeline-step{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:6px;flex:1;padding:.5rem .7rem}.step-running{border-left-color:var(--info)}.step-completed{border-left-color:var(--ok)}.step-failed{border-left-color:var(--bad)}.step-stopped{border-left-color:var(--warn)}.timeline-title{text-transform:capitalize;justify-content:space-between;gap:.5rem;display:flex}.timeline-run{flex-wrap:wrap;gap:.8rem;margin-top:.25rem;font-size:.82rem;display:flex}.log{border:1px solid var(--line);background:#fafbfc;border-radius:6px;max-height:360px;padding:.5rem;font-family:ui-monospace,Menlo,monospace;font-size:.8rem;overflow:auto}.log-line{white-space:pre-wrap;word-break:break-word}.log-cost_warning,.log-cost_limit_reached,.log-step_error,.log-fetch_failed{color:var(--warn)}.dialog-backdrop{z-index:10;background:#0f192373;justify-content:center;align-items:flex-start;padding-top:6vh;display:flex;position:fixed;inset:0}.dialog{background:#fff;border-radius:10px;width:min(560px,94vw);max-height:88vh;padding:1.4rem;overflow:auto}.dialog-actions{justify-content:flex-end;gap:.5rem;margin-top:1rem;display:flex}.estimate{background:var(--bg);border-radius:6px;padding:.6rem .8rem}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:1rem;display:flex}.split{grid-template-columns:1fr;gap:1rem;display:grid}.split.with-panel{grid-template-columns:minmax(0,1.4fr) minmax(320px,1fr)}.panel{border:1px solid var(--line);background:#fff;border-radius:8px;align-self:start;max-height:calc(100vh - 2rem);padding:1rem;position:sticky;top:1rem;overflow:auto}.panel .close{font-size:1.4rem;position:absolute;top:.5rem;right:.8rem}.meta-list{grid-template-columns:max-content 1fr;gap:.2rem .8rem;font-size:.88rem;display:grid}.meta-list dt{color:var(--muted)}.meta-list dd{word-break:break-word;margin:0}.status-form{border-top:1px solid var(--line);flex-direction:column;gap:.4rem;margin-top:1rem;padding-top:.5rem;display:flex}.history{padding-left:1.2rem;font-size:.88rem}.content-preview{white-space:pre-wrap;background:var(--bg);border-radius:6px;max-height:360px;padding:.7rem;overflow:auto}.markdown table{border-collapse:collapse;margin:.8rem 0;font-size:.9rem}.markdown th,.markdown td{border:1px solid var(--line);padding:.3rem .5rem}.markdown blockquote{border-left:4px solid var(--warn);background:#fff8ec;margin:0;padding:.2rem 1rem}.report .references li{margin-bottom:.4rem;font-size:.9rem}.compare{grid-template-columns:1fr 1fr;gap:1.5rem;display:grid}.compare-side{border:1px solid var(--line);background:#fff;border-radius:8px;padding:1rem;overflow:auto}.signin{justify-content:center;align-items:center;min-height:100vh;display:flex}.signin-card{border:1px solid var(--line);text-align:center;background:#fff;border-radius:12px;width:min(440px,92vw);padding:2rem}@media (width<=800px){.grid2,.grid3,.compare,.split.with-panel{grid-template-columns:1fr}.timeline-group{flex-direction:column}.page{padding:1rem}}.info-box{background:#e9f2fb;border:1px solid #c4dbf2;border-radius:8px;flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1rem;padding:.7rem 1rem;display:flex}.study-questions .card-header h2 small{font-size:.85rem;font-weight:400}.question-group h3{margin:1rem 0 .4rem;font-size:1rem}.table.questions td{vertical-align:top}.table.questions select{padding:.1rem .2rem}.small{font-size:.82rem}.row-actions{white-space:nowrap}button.link{color:var(--info);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.pill.origin-research_plan{color:var(--info);background:#e2eef9}.pill.origin-user{color:#6b3fa0;background:#efe6f8}.pill.origin-agent_gap{color:var(--warn);background:#fdf0dc}.pill-info{color:var(--info);background:#e2eef9}.question-counts{margin-top:.4rem}ul.plain{padding-left:0;list-style:none}ul.plain li{margin:.3rem 0}.passage{border-left:3px solid var(--line);color:var(--muted);max-height:8rem;margin:.5rem 0;padding:.3rem .8rem;overflow:auto}.checklist{border:1px solid var(--line);border-radius:6px;max-height:40vh;margin:.6rem 0;padding:.5rem .8rem;overflow:auto}.check{align-items:flex-start;gap:.5rem;font-weight:400;display:flex}.check input{width:auto;margin-top:.2rem}.selection-bar{border:1px solid var(--line);z-index:5;background:#fff;border-radius:999px;align-items:center;gap:.5rem;max-width:94vw;padding:.4rem .8rem;display:flex;position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #0f19232e}.selection-bar .muted{text-overflow:ellipsis;white-space:nowrap;max-width:22rem;overflow:hidden}.entity-link{cursor:pointer;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.plan-questions{margin-top:1.5rem}.selection-bar button{white-space:nowrap}.tabs{border-bottom:1px solid var(--line);gap:.3rem;margin-bottom:1rem;display:flex}.tabs button,.actions button[role=tab]{border-radius:6px 6px 0 0}.tabs button.active,.actions button[role=tab].active{background:var(--info);color:#fff;border-color:var(--info)}.table.library td{vertical-align:top}.page.wide{max-width:1500px}.editor-layout{grid-template-columns:minmax(0,1fr) 380px;align-items:start;gap:1rem;display:grid}.editor-layout .side .card{margin-bottom:.8rem}.code-editor{border:1px solid var(--line);background:#fff;border-radius:6px;min-height:420px;max-height:72vh;font-size:.86rem;overflow:auto}.code-editor .cm-editor{min-height:420px}.issues{margin:.5rem 0;padding-left:1.2rem;font-size:.88rem}.warn-text{color:var(--warn)}.save-bar{gap:.5rem;margin:.8rem 0;display:flex}.save-bar input{flex:1}pre.assembled{white-space:pre-wrap;background:#f6f8fa;border-radius:6px;max-height:50vh;padding:.6rem;font-size:.78rem;overflow:auto}.diff{border:1px solid var(--line);background:#fff;border-radius:6px;max-height:60vh;margin:.5rem 0;font-size:.8rem;overflow:auto}.diff-head,.diff-row{grid-template-columns:1fr 1fr;display:grid}.diff-head span{border-bottom:1px solid var(--line);padding:.3rem .5rem;font-weight:600}.diff-row code{white-space:pre-wrap;border-right:1px solid var(--line);min-height:1.2em;padding:0 .5rem}.diff-row .ln{width:2.5em;color:var(--muted);-webkit-user-select:none;user-select:none;display:inline-block}.diff-delete code:first-child,.diff-replace code:first-child{background:#fbe4e2}.diff-insert code:last-child,.diff-replace code:last-child{background:#e3f4ea}.diff-gap{text-align:center;color:var(--muted);background:#f6f8fa}tr.highlight td,tr.changed td{background:#fff8e6}.versions-used{columns:3 220px;padding-left:1rem;font-size:.88rem}.wf-diagram{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.wf-col{align-items:center;gap:.3rem;display:flex}.wf-arrow{color:var(--muted)}.wf-parallel{border-left:2px dashed var(--line);flex-direction:column;gap:.3rem;padding-left:.3rem;display:flex}.wf-review{flex-direction:column;align-items:center;display:flex}.wf-loop{color:var(--warn);font-size:.72rem}.wf-box{border:1px solid var(--line);background:#fff;border-radius:6px;flex-direction:column;padding:.25rem .5rem;font-size:.8rem;display:flex}.wf-report{border-color:var(--ok)}.wf-kr{border-style:dashed}@media (width<=1000px){.editor-layout{grid-template-columns:1fr}}.connection-banner{z-index:20;color:var(--warn);text-align:center;background:#fdf0dc;border-bottom:1px solid #f1d4a6;padding:.5rem 1rem;font-weight:600;position:sticky;top:0}
