*{box-sizing:border-box}body{--bg:#f1f4f6;--panel:#fff;--ink:#243845;--muted:#788790;--border:#e0e7eb;--blue:#277fa5;--soft:#edf5f8;margin:0;background:var(--bg);color:var(--ink);font:14px/1.7 "PingFang SC","Microsoft YaHei",Arial,sans-serif}body.dark{--bg:#111920;--panel:#1c2730;--ink:#e3edf2;--muted:#9baeb9;--border:#35444f;--soft:#233843}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--border);color:var(--ink);background:var(--panel);border-radius:5px;padding:8px 13px;font-size:12px}button:hover{border-color:var(--blue);color:var(--blue)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #e3a968;outline-offset:3px}header{min-height:83px;display:flex;align-items:center;justify-content:space-between;padding:12px 3%;gap:20px;background:var(--panel);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.logo{display:flex;align-items:center;gap:12px;font-size:30px;color:var(--blue);font-weight:650}.logo span{font-size:16px;color:var(--ink)}.logo small{display:block;font-size:10px;font-weight:400;color:var(--muted);letter-spacing:2px}.tabs{display:flex;background:var(--bg);padding:4px;border:1px solid var(--border);border-radius:7px}.tabs button{border:0;background:transparent;padding:10px 20px}.tabs button[aria-selected=true]{background:#274b60;color:white;box-shadow:0 2px 4px #0002}.top-actions{display:flex;gap:8px;align-items:center}.top-actions a{font-size:11px;margin-left:8px}.top-actions #count{background:var(--soft);padding:1px 6px;border-radius:20px}main{width:min(1430px,94%);margin:24px auto}.demo{display:flex;align-items:center;gap:15px;padding:10px 16px;background:#fff3d9;border:1px solid #e6d2a5;border-radius:7px;color:#75603a}.demo>span{font-size:11px;border:1px solid #c5ab75;border-radius:4px;padding:2px 7px;white-space:nowrap}.demo p{font-size:11px;margin:0}.demo button{margin-left:auto;color:#75603a;background:transparent;border:0;white-space:nowrap}.filters{display:flex;gap:25px;align-items:end;background:var(--panel);border:1px solid var(--border);padding:20px;border-radius:8px;margin:18px 0 28px}label{display:flex;flex-direction:column;gap:6px;font-size:11px;color:var(--muted)}select,input{padding:9px 12px;border:1px solid var(--border);border-radius:4px;color:var(--ink);background:var(--panel);min-width:180px;font-size:13px}input[type=range]{padding:0;accent-color:#277fa5;min-width:0;width:220px}.replay{margin-left:auto}.replay label{flex-direction:row;justify-content:space-between}.replay>div{display:flex;gap:15px}.section-title{display:flex;align-items:center;justify-content:space-between;margin:18px 0}h1{font-size:20px;font-weight:550;margin:0}h2{font-size:15px;font-weight:550;margin:0}h3{font-size:14px;font-weight:550}.section-title p,.sub{font-size:11px;color:var(--muted);margin:4px 0}.pill{font-size:10px;color:var(--blue);padding:3px 9px;background:var(--soft);border-radius:20px}.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin-bottom:18px}.kpi{background:var(--panel);padding:19px 20px;border:1px solid var(--border);border-radius:7px}.kpi:nth-child(-n+4){border-top:3px solid #4c889f}.kpi>span{font-size:11px;color:var(--muted)}.kpi strong{display:block;font-size:29px;font-weight:550;line-height:1.5}.kpi small{font-size:10px;color:var(--muted)}.positive{color:#328d78}.negative{color:#c26765}.panel{background:var(--panel);border:1px solid var(--border);padding:22px;border-radius:8px;margin-bottom:18px}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.forecast{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--border);border-radius:5px;margin:16px 0}.forecast>div{padding:15px;border-right:1px solid var(--border)}.forecast>div:last-child{border:0}.forecast small{font-size:10px;color:var(--muted);display:block}.forecast strong{font-size:25px;font-weight:550;display:block}summary{color:var(--blue);cursor:pointer;font-size:11px}details p{color:var(--muted);font-size:12px;max-width:1000px}.dashboard-grid{display:grid;grid-template-columns:2.2fr 1fr;gap:18px}.legend{display:flex;gap:15px;font-size:10px;color:var(--blue)}.legend span:last-child{color:#8d9ba6}#chart svg{width:100%;display:block;min-height:220px}.chart-note{padding:10px;background:var(--soft);font-size:11px;border-left:3px solid #9ab5bd}.group{border-left:3px solid #cf9180;background:var(--bg);padding:12px 15px;margin-top:13px}.group p{font-size:11px;color:var(--muted);margin:4px 0}.group strong{font-size:13px}.group button{padding:3px 8px;font-size:10px;margin-top:5px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:18px}.steps span{font-size:10px;color:var(--blue)}.steps h3{margin:8px 0}.steps p,.ai-note p{font-size:12px;color:var(--muted)}.ai-note h2{margin:13px 0}.report-tools{display:flex;align-items:end;gap:15px;margin-bottom:18px}.report-tools p{font-size:11px;color:var(--muted);flex:1}.primary{background:#277fa5;color:white;border-color:#277fa5}.primary:hover{color:white;background:#216a8b}.report-paper{min-height:420px}.empty{text-align:center;padding:95px 0;color:var(--muted)}.empty>span{font-size:44px}.empty p{font-size:12px}.report-paper h2{font-size:24px;margin:10px 0}.report-paper h3{font-size:16px;margin:30px 0 12px}.report-paper p{font-size:13px}.report-paper .summary{padding:20px;border-left:4px solid #277fa5;background:var(--soft);margin:25px 0}.report-paper table{width:100%;border-collapse:collapse;font-size:12px}.report-paper td,.report-paper th{text-align:left;border-bottom:1px solid var(--border);padding:12px}footer{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin:25px 0}dialog{background:var(--panel);color:var(--ink);border:1px solid var(--border);padding:26px;width:min(580px,95vw);max-height:90vh;border-radius:12px;box-shadow:0 15px 70px #0003}dialog::backdrop{background:#0b182c88;backdrop-filter:blur(3px)}.drawer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.drawer-head h2{font-size:21px}.close{font-size:22px;line-height:1.2}#actionForm{display:grid;gap:13px;padding:20px;background:var(--bg);border-radius:7px;margin:20px 0}input{min-width:0;width:100%}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.action-row{border:1px solid var(--border);border-radius:5px;padding:14px;margin:12px 0}.action-row h3{margin:0}.action-row p{font-size:11px;color:var(--muted)}.action-row select{min-width:100px;padding:5px;font-size:11px}.action-row input{margin:8px 0;font-size:12px}#toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#243d42;color:white;padding:12px 22px;border-radius:6px;z-index:50;display:none;font-size:12px}#detailBody p{font-size:13px;color:var(--muted)}.rank{display:flex;align-items:center;gap:10px;margin:20px 0;font-size:12px}.rank .bar{flex:1;background:var(--bg);height:14px}.rank i{background:#277fa5;display:block;height:100%} [hidden]{display:none!important}@media(max-width:1000px){header{flex-wrap:wrap}.logo{font-size:24px}.logo span{font-size:14px}.top-actions{margin-left:auto}.dashboard-grid{grid-template-columns:1.6fr 1fr}.kpi strong{font-size:24px}}@media(max-width:650px){header{gap:10px;padding:10px 4%}.logo{font-size:23px}.logo span{font-size:12px}.logo small{font-size:8px}.tabs{order:3;width:100%}.tabs button{flex:1}.top-actions{gap:4px}.top-actions a{display:none}.top-actions button{padding:6px 9px;font-size:10px}.demo{flex-wrap:wrap;gap:8px}.demo p{order:3}.demo button{padding:0}.filters{flex-wrap:wrap;gap:12px;padding:14px}.filters>label{flex:1}.filters select{min-width:0;width:100%;font-size:11px}.replay{width:100%}input[type=range]{width:100%}.replay>div{width:100%}.section-title h1{font-size:17px}.pill{font-size:9px}.kpis{grid-template-columns:1fr 1fr;gap:9px}.kpi{padding:12px}.kpi strong{font-size:23px}.kpi small{font-size:9px}.forecast{grid-template-columns:1fr 1fr}.forecast>div{padding:12px;border-bottom:1px solid var(--border)}.forecast strong{font-size:21px}.forecast>div:nth-child(2){border-right:0}.panel{padding:16px}.panel-title{align-items:start;flex-direction:column;gap:3px}.dashboard-grid{grid-template-columns:1fr;gap:0}.steps{grid-template-columns:1fr;gap:8px}.steps h3{margin:4px 0}.report-tools{flex-wrap:wrap}.report-tools p{flex-basis:50%}.report-tools select{min-width:120px}.report-paper h2{font-size:21px}.report-paper table{font-size:10px}.report-paper td,.report-paper th{padding:9px 4px}footer{flex-direction:column;gap:7px}.form-grid{grid-template-columns:1fr}.report-paper{overflow:auto}dialog{padding:20px}}
/* Keyboard, dialog, readable mobile charts and robust text wrapping. */
.skip{position:fixed;left:12px;top:-100px;padding:10px 16px;background:#243845;color:white;z-index:100}.skip:focus{top:8px}
body{--muted:#627480}body.dark{--muted:#aebfca}textarea{font:inherit;background:var(--panel);color:var(--ink);border:1px solid var(--border);border-radius:4px;width:100%;padding:10px;resize:vertical}
textarea:focus-visible{outline:3px solid #e3a968;outline-offset:3px}
body.dark{--blue:#79bddf}.dark .positive{color:#79cbb7}.dark .negative{color:#eea19e}#toast{width:max-content;max-width:calc(100vw - 32px);overflow-wrap:anywhere}
@media(max-width:650px){.section-title>.pill{flex-shrink:0;max-width:90px}.sub,.section-title p,.group p,.steps p,.ai-note p{font-size:12px}}
.kpi:first-child strong{font-size:23px}.kpi small{display:block}
.action-row h3,.action-row p{overflow-wrap:anywhere}.action-row textarea{margin:10px 0}.action-row button{margin-left:10px}
.table-scroll{overflow-x:auto}.chart-data{margin-top:15px}.chart-data table{width:100%;border-collapse:collapse;font-size:12px}.chart-data th,.chart-data td{text-align:left;border-bottom:1px solid var(--border);padding:8px}
#chart{overflow-x:auto}#chart svg{min-height:0;min-width:530px}
html{scroll-padding-top:145px}.tabs button{min-height:44px}.dark .demo{background:#3b3324;color:#f0d4a0;border-color:#6b5834}.dark .demo button{color:#f0d4a0}
@media(max-width:650px){.kpi:first-child strong{font-size:20px}.replay button{min-height:44px;min-width:44px}.group button,summary{min-height:32px}.demo button{white-space:normal}header{align-items:center}.logo{gap:6px}.logo span{font-size:11px}.top-actions button{font-size:10px}.panel{min-width:0}.report-tools{align-items:center}dialog{max-height:85dvh}.top-actions a{display:inline-block;font-size:9px;margin-left:0}.kpi strong{overflow-wrap:anywhere}}
