:root { color-scheme: light; --blue-950:#102a56; --blue-800:#174b91; --blue-650:#1967d2; --blue-500:#3b82f6; --blue-50:#f2f7ff; --ink:#172033; --muted:#667085; --line:#e4e9f2; --surface:#fff; --canvas:#f6f8fc; --success:#168363; --warning:#a55b13; --danger:#c63d4d; --shadow:0 12px 35px rgba(31,64,119,.08); font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,sans-serif; }
* { box-sizing:border-box; }
html,body { margin:0; background:var(--canvas); color:var(--ink); font-size:15px; line-height:1.6; }
a { color:var(--blue-650); text-decoration:none; } a:hover { color:var(--blue-800); }
button,input,select,textarea { font:inherit; } button,.button { cursor:pointer; }
:focus-visible { outline:3px solid rgba(25,103,210,.25); outline-offset:2px; }
.app-shell { min-height:100vh; display:grid; grid-template-columns:236px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; padding:28px 18px 20px; background:#fff; border-right:1px solid var(--line); display:flex; flex-direction:column; }
.brand { display:flex; align-items:center; gap:11px; padding:0 9px 28px; color:var(--ink); font-size:17px; font-weight:750; }
.brand-mark { width:34px; height:34px; border-radius:11px; display:grid; place-items:center; color:#fff; background:linear-gradient(145deg,#448df7,#1457bc); box-shadow:0 7px 18px rgba(25,103,210,.24); }
.brand-mark svg { width:19px; height:19px; }
.nav-list { display:grid; gap:6px; }
.nav-item { display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:10px; color:#526078; font-weight:600; }
.nav-item:hover,.nav-item.is-active { color:var(--blue-650); background:var(--blue-50); }
.nav-icon { width:19px; text-align:center; font-size:14px; }
.sidebar-footer { margin-top:auto; padding:18px 8px 0; border-top:1px solid var(--line); }
.user-name { margin:0 0 9px; font-weight:650; }
.link-button { padding:0; color:var(--muted); background:none; border:0; }
.main-column { min-width:0; } .mobile-header { display:none; }
.page { width:min(1180px,calc(100% - 64px)); margin:0 auto; padding:45px 0 64px; }
.page-header { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:28px; }
.page-header h1 { margin:3px 0; font-size:clamp(27px,3vw,36px); line-height:1.2; letter-spacing:-.035em; }
.page-intro { margin:0; color:var(--muted); }
.eyebrow { margin:0; color:var(--blue-650); font-size:12px; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.page-actions,.form-actions { display:flex; gap:10px; flex-wrap:wrap; }
.flash { margin:0 0 18px; padding:13px 16px; border:1px solid #c9dcfb; border-radius:10px; background:#edf5ff; color:#164c91; }
.flash.error { border-color:#ffd2d6; background:#fff2f3; color:#9f2534; }
.panel,.card,.metric-card { background:var(--surface); border:1px solid var(--line); border-radius:15px; box-shadow:var(--shadow); }
.panel { margin-bottom:18px; padding:24px; } .panel h2 { margin:2px 0 13px; font-size:19px; line-height:1.35; }
.panel-warning { border-color:#f4d8ad; background:#fffdf8; }
.section-heading,.card-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.section-heading { margin-bottom:17px; } .section-heading h2,.section-heading p { margin-bottom:0; }
.card-list { display:grid; gap:14px; } .card { padding:21px 23px; }
.card-link { display:block; color:inherit; transition:border-color .16s,transform .16s,box-shadow .16s; }
.card-link:hover { color:inherit; border-color:#abc9f6; transform:translateY(-1px); box-shadow:0 16px 40px rgba(31,64,119,.12); }
.card h2,.card h3 { margin:0; } .card p { margin:7px 0 0; } .muted,.helptext { color:var(--muted); }
.count-pill,.provider-tag,.status,.config-dot { display:inline-flex; align-items:center; width:max-content; border-radius:999px; font-size:12px; font-weight:700; white-space:nowrap; }
.count-pill { padding:4px 9px; color:var(--blue-800); background:var(--blue-50); }
.provider-tag { padding:3px 8px; color:#355e95; background:#eef4fd; }
.status { padding:4px 9px; color:#5c6678; background:#f0f2f5; }
.status-completed,.status-active,.status-confirmed,.status-succeeded { color:var(--success); background:#eaf8f3; }
.status-running { color:var(--blue-650); background:var(--blue-50); }
.status-completed_with_errors,.status-needs_configuration { color:var(--warning); background:#fff5e6; }
.status-failed { color:var(--danger); background:#fff0f2; }
.button { min-height:42px; display:inline-flex; align-items:center; justify-content:center; padding:9px 16px; border:1px solid transparent; border-radius:9px; font-weight:700; line-height:1.2; }
.button-primary { color:#fff; background:var(--blue-650); border-color:var(--blue-650); box-shadow:0 6px 14px rgba(25,103,210,.18); }
.button-primary:hover { color:#fff; background:#1557b0; }
.button-secondary { color:#294665; background:#fff; border-color:#d4dce8; }
.button-secondary:hover { color:var(--blue-650); border-color:#a8c7f4; background:#f9fbff; }
.form-shell { max-width:760px; } .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { margin-bottom:18px; } .field-wide { grid-column:1/-1; }
.field label,.field-label { display:block; margin-bottom:7px; font-weight:680; }
.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea { width:100%; padding:11px 12px; color:var(--ink); background:#fff; border:1px solid #ccd5e2; border-radius:9px; }
.field textarea { resize:vertical; } .field input:focus,.field select:focus,.field textarea:focus { border-color:var(--blue-500); box-shadow:0 0 0 3px rgba(59,130,246,.12); outline:none; }
.field small { display:block; margin-top:5px; color:var(--muted); }
.errorlist { margin:6px 0 0; padding:0; color:var(--danger); list-style:none; font-size:13px; }
.choice-grid,.status-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.choice,.status-card { display:flex; align-items:flex-start; justify-content:space-between; gap:10px; padding:13px; border:1px solid var(--line); border-radius:10px; background:#fbfcfe; }
.choice input { margin-top:5px; accent-color:var(--blue-650); } .choice small { display:block; color:var(--muted); font-weight:400; }
.status-card p { margin:2px 0 0; color:var(--muted); font-size:13px; }
.config-dot { padding:4px 9px; color:var(--warning); background:#fff5e6; } .config-dot.is-ready { color:var(--success); background:#eaf8f3; }
.form-actions { padding-top:16px; }
.stepper { display:flex; align-items:center; gap:8px; margin-bottom:24px; color:var(--muted); font-size:13px; }
.step { display:flex; align-items:center; gap:7px; white-space:nowrap; } .step-number { width:23px; height:23px; display:grid; place-items:center; border-radius:50%; color:#647187; background:#e8edf4; font-weight:750; }
.step.is-active { color:var(--blue-650); font-weight:700; } .step.is-active .step-number,.step.is-done .step-number { color:#fff; background:var(--blue-650); }
.step-line { width:27px; height:1px; background:#d5dce6; }
.metric-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:13px; margin-bottom:18px; }
.metric-card { min-height:145px; padding:19px; display:flex; flex-direction:column; } .metric-card span { color:var(--muted); font-size:13px; font-weight:650; }
.metric-card strong { margin:11px 0 7px; font-size:31px; line-height:1; letter-spacing:-.035em; } .metric-card small { margin-top:auto; color:var(--muted); line-height:1.45; }
.metric-primary { color:#fff; border-color:transparent; background:linear-gradient(145deg,#236ed2,#174f9a); } .metric-primary span,.metric-primary small { color:#dbeafe; }
.table-wrap { width:100%; overflow-x:auto; } table { width:100%; border-collapse:collapse; } th,td { padding:12px 13px; text-align:left; border-bottom:1px solid #edf0f5; vertical-align:top; }
th { color:var(--muted); background:#fafbfc; font-size:12px; letter-spacing:.04em; } tbody tr:last-child td { border-bottom:0; }
.clean-list,.source-list { margin:0; padding:0; list-style:none; } .clean-list li { display:grid; grid-template-columns:150px minmax(0,1fr); gap:8px; padding:11px 0; border-bottom:1px solid var(--line); } .clean-list li span { color:var(--muted); }
.answer-list { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; } .answer-card { padding:17px; border:1px solid var(--line); border-radius:11px; background:#fcfdff; }
.answer-card h3 { margin:12px 0 7px; font-size:15px; } .answer-preview { margin:0; color:#4e5b70; }
.source-list li,.manual-evidence { padding:14px 0; border-bottom:1px solid var(--line); } .source-list p { margin:4px 0 0; color:var(--muted); }
.prose { overflow-wrap:anywhere; } .prose p:first-child { margin-top:0; } .prose p:last-child { margin-bottom:0; }
.progress-track { height:9px; overflow:hidden; border-radius:99px; background:#e9eef6; } .progress-bar { height:100%; width:0; border-radius:inherit; background:linear-gradient(90deg,#3b82f6,#1761c1); transition:width .35s; }
.progress-meta { display:flex; justify-content:space-between; margin-top:9px; color:var(--muted); font-size:13px; }
.details-box { margin-bottom:18px; border:1px solid var(--line); border-radius:11px; background:#fbfcfe; } .details-box summary { padding:14px 16px; cursor:pointer; font-weight:680; } .details-content { padding:0 16px 16px; }
.empty-state { padding:50px 24px; text-align:center; border:1px dashed #cbd7e8; border-radius:15px; background:rgba(255,255,255,.64); }
.empty-state h2 { margin:0 0 7px; font-size:20px; } .empty-state p { margin:0 auto 19px; max-width:500px; color:var(--muted); }
.auth-page { min-height:100vh; display:grid; place-items:center; padding:24px; background:radial-gradient(circle at 18% 20%,#dcebff 0,transparent 30%),linear-gradient(145deg,#f7faff,#eef4fc); }
.auth-card { width:min(430px,100%); padding:38px; background:#fff; border:1px solid rgba(206,219,237,.9); border-radius:20px; box-shadow:0 24px 70px rgba(31,64,119,.15); }
.auth-card .brand { padding:0 0 30px; } .auth-card h1 { margin:0 0 7px; font-size:27px; letter-spacing:-.03em; } .auth-card>p { margin:0 0 25px; color:var(--muted); } .auth-card .button { width:100%; margin-top:5px; }
.auth-note { margin:21px 0 0; padding-top:18px; border-top:1px solid var(--line); color:var(--muted); font-size:13px; }
@media(max-width:1050px){.metric-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.mobile-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:13px 18px;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.mobile-header .brand{padding:0}.mobile-nav{display:flex;gap:13px;font-size:13px}.page{width:min(100% - 30px,680px);padding:29px 0 45px}.page-header{align-items:flex-start;flex-direction:column;margin-bottom:22px}.form-grid,.choice-grid,.status-grid,.answer-list{grid-template-columns:1fr}.metric-grid{grid-template-columns:repeat(2,1fr)}.stepper{overflow-x:auto;padding-bottom:5px}}
@media(max-width:480px){.mobile-nav{gap:10px;font-size:12px}.metric-grid{grid-template-columns:1fr}.panel,.card{padding:19px}.auth-card{padding:29px 24px}.clean-list li{grid-template-columns:1fr}}

/* Async delivery controls stay hidden until an owner-scoped report is available. */
[data-report-link][hidden]{display:none!important}
