:root{font-family:"Microsoft YaHei","PingFang SC",system-ui,sans-serif;color:#233549;background:#f3f5f8;font-size:14px;line-height:1.65;--blue:#2358a0;--line:#dce3ed;--muted:#64748b}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,textarea{outline-offset:3px}button{cursor:pointer;border:1px solid transparent;background:var(--blue);color:white;border-radius:6px;padding:9px 16px}button:disabled{opacity:.5;cursor:default}button.secondary{background:white;border-color:var(--line);color:#334155}button.danger{background:#a73333}a{color:var(--blue);text-decoration:none}input,select,textarea{border:1px solid #bdc9da;border-radius:5px;padding:9px 11px;background:white;color:#233549;width:100%}textarea{min-height:125px;resize:vertical}label{display:block;font-weight:600;margin-bottom:6px}h1,h2,h3,p{margin-top:0}h1{font-size:25px;line-height:1.4;margin-bottom:10px}h2{font-size:18px;margin-bottom:16px}h3{font-size:15px}small,.muted{color:var(--muted)}header{background:white;border-bottom:1px solid var(--line);padding:18px 30px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{font-size:17px;font-weight:700}.brand small{display:block;font-size:12px;font-weight:400;letter-spacing:1px}.user{display:flex;align-items:center;gap:14px}.layout{display:grid;grid-template-columns:220px minmax(0,1fr);min-height:calc(100vh - 92px)}aside{background:#eef2f7;border-right:1px solid var(--line);padding:26px 15px}nav{display:flex;flex-direction:column;gap:8px}nav button{text-align:left;background:transparent;color:#45556a;border-radius:5px}nav button.active{background:#dfe9f7;color:#154781;font-weight:700}aside .note{font-size:12px;margin:30px 12px;color:#64748b}main{padding:30px;max-width:1450px;width:100%}.eyebrow{font-size:12px;color:var(--blue);letter-spacing:1px;margin-bottom:8px}.heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:24px}.actions{display:flex;gap:10px;flex-wrap:wrap}.panel{background:white;border:1px solid var(--line);border-radius:8px;padding:22px;margin-bottom:20px}.banner{padding:12px 16px;background:#fff8e8;border:1px solid #eed9a6;border-radius:5px;color:#755918;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat{padding:20px;background:white;border:1px solid var(--line);border-radius:7px}.stat strong{display:block;font-size:30px;margin:6px 0;font-weight:650}.stat small{display:block}.columns{display:grid;grid-template-columns:1fr 1fr;gap:20px}.filters{display:flex;gap:16px;align-items:end;margin-bottom:20px}.filters>div{flex:1}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:13px}th,td{border-bottom:1px solid var(--line);padding:11px 12px;text-align:left;white-space:nowrap}th{color:#53657c;background:#f7f9fc;font-weight:600}tr:last-child td{border-bottom:0}.pill{display:inline-block;padding:2px 9px;border-radius:4px;background:#edf2f9;color:#536780;font-size:12px}.pill.good{background:#e9f4ed;color:#276142}.pill.pending{background:#fff4de;color:#8a631d}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.field{margin-bottom:16px}.field small{display:block;margin-top:4px}.check{display:flex;align-items:center;gap:8px;font-weight:400}.check input{width:auto}.login{max-width:1050px;margin:70px auto;padding:30px;display:grid;grid-template-columns:1fr 430px;gap:65px;align-items:center}.login .intro{padding:25px 0}.login .intro h1{font-size:34px;max-width:390px;line-height:1.5}.login .intro p{max-width:420px;color:#617086}.login .panel{padding:32px}.tabs{display:flex;gap:10px;margin-bottom:24px}.tabs button{flex:1}.login footer{font-size:12px;color:#728096}.question{padding:20px 0;border-bottom:1px solid var(--line)}.question:last-child{border:0}.question h3{font-weight:600;margin-bottom:14px}.option{display:flex;align-items:flex-start;gap:10px;border:1px solid var(--line);padding:10px 14px;margin:8px 0;border-radius:5px;font-weight:400;cursor:pointer}.option input{width:auto;margin-top:6px}.fill-footer{position:sticky;bottom:0;display:flex;justify-content:space-between;gap:20px;padding:16px 20px;background:white;border:1px solid var(--line);border-radius:6px}.empty{padding:32px;text-align:center;color:#64748b}.chart{width:100%;height:270px;display:block}.chart text{font-family:inherit;font-size:11px;fill:#617086}.legend{display:flex;gap:20px;justify-content:center;color:#64748b;font-size:12px}.chart-caption{font-size:12px;color:#64748b;margin-top:10px}.dot{display:inline-block;width:9px;height:9px;background:#2358a0;margin-right:5px}.loading{padding:70px;text-align:center}.details{max-width:600px;margin:60px auto}.mono{font-family:Consolas,monospace;font-size:12px}.spaced{margin-top:18px}.list-item{display:flex;justify-content:space-between;gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}#toast{position:fixed;bottom:26px;right:26px;background:#233549;color:white;padding:12px 20px;border-radius:6px;max-width:420px;z-index:100;display:none}dialog{border:1px solid var(--line);border-radius:8px;padding:25px;max-width:750px;width:90%}dialog::backdrop{background:#15253688}pre{white-space:pre-wrap;word-break:break-word;background:#f3f5f8;padding:15px;max-height:60vh;overflow:auto}.required{color:#a73333}details summary{cursor:pointer;color:var(--blue);padding:8px 0}@media(max-width:900px){.login{grid-template-columns:1fr;margin:10px auto;gap:10px;max-width:500px}.login .intro h1{font-size:27px}.layout{grid-template-columns:1fr}aside{padding:10px 15px;border-right:0;border-bottom:1px solid var(--line)}nav{flex-direction:row;flex-wrap:wrap}aside .note{display:none}.columns{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}main{padding:20px}.heading{flex-direction:column}header{padding:15px}.brand{font-size:14px}.user{font-size:12px;gap:6px}.form-grid{grid-template-columns:1fr}.filters{flex-wrap:wrap}.chart{height:240px}}@media print{header,aside,.actions,.filters,#toast{display:none}.layout{display:block}main{padding:0}.panel{break-inside:avoid}.stats{grid-template-columns:repeat(4,1fr)}}
:root .login{max-width:540px;display:block;margin:60px auto;padding:24px}:root .login .intro{padding:0;text-align:center}:root .login .intro h1{font-size:25px;max-width:none;line-height:1.5;margin-bottom:26px}:root .login .panel{padding:28px}@media(max-width:600px){:root .login{margin:20px auto;padding:20px}:root .login .intro h1{font-size:23px}}
