:root{--ink:#19304b;--muted:#687c91;--blue:#2355cd;--line:#dce5ef;--bg:#f3f6fa}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 "Segoe UI","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button{background:white;border:1px solid var(--line);padding:8px 12px;border-radius:7px;color:var(--ink);cursor:pointer;font-size:13px}button:hover{background:#edf3ff;border-color:#9bb5ea}button:disabled{opacity:.45;cursor:not-allowed}input,select,textarea{border:1px solid #ccd8e4;border-radius:6px;padding:7px 9px;background:white;width:100%;color:var(--ink)}textarea{font:14px/1.8 Consolas,"Microsoft YaHei",monospace;resize:vertical}input:focus,textarea:focus,select:focus{outline:2px solid #a9bffa}header{height:76px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4%;gap:10px}.brand{display:flex;align-items:center;gap:12px}.brand span{background:var(--blue);color:white;border-radius:10px;font-size:27px;width:39px;text-align:center}.brand strong{font-size:23px;letter-spacing:3px}.brand small{border-left:1px solid var(--line);padding-left:14px;color:var(--muted)}main{max-width:1600px;padding:30px 4% 50px;margin:auto}h1{margin:0;font-size:29px;letter-spacing:.4px}.heading p{color:var(--muted);margin:8px 0 25px}.workspace{display:grid;grid-template-columns:365px minmax(0,1fr);gap:26px;align-items:start}aside{background:white;border:1px solid var(--line);border-radius:12px;padding:22px}.section-title{display:flex;justify-content:space-between;gap:8px;border-bottom:1px solid var(--line);padding-bottom:10px;margin:25px 0 12px}.section-title:first-child{margin-top:0}.section-title b{font-size:15px}.section-title span{font-size:12px;color:var(--muted)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}label{font-size:12px;color:#536a81;display:block;margin:9px 0}label input,label select,label textarea{display:block;margin-top:5px;font-size:13px}p.help{font-size:12px;color:var(--muted);margin:12px 0;line-height:1.75}summary{cursor:pointer;font-size:13px;color:var(--blue);padding:8px 0}details{border-top:1px solid var(--line);margin-top:16px}.primary{background:var(--blue);color:white;border-color:var(--blue);font-weight:bold;width:100%;margin:12px 0}.primary:hover{background:#1945ae;color:white}.toolbar{display:flex;gap:10px;justify-content:space-between;align-items:center;margin:0 0 14px}.toolbar div{display:flex;gap:7px;flex-wrap:wrap}.paper{background:white;border:1px solid var(--line);border-radius:12px;padding:30px 35px;box-shadow:0 5px 18px #18334806;min-width:0}#metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:18px}.metric{border:1px solid var(--line);border-radius:9px;padding:13px 16px;background:white}.metric span{color:var(--muted);font-size:12px;display:block}.metric b{display:block;font-size:21px}.metric small{font-size:12px;font-weight:400}.paper h2{margin:32px 0 14px;font-size:21px;border-bottom:1px solid var(--line);padding-bottom:9px}.paper h2:first-child{margin-top:0}.paper h3{font-size:16px;margin:23px 0 9px}.paper p{margin:9px 0}.meta,.note{color:var(--muted);font-size:12px}.note{background:#f4f7fc;padding:10px 13px;border-radius:6px}.formula{padding:4px 0;overflow-x:auto;overflow-y:hidden;max-width:100%;font-size:14px}.katex-display{margin:.6em 0;text-align:left}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}th,td{border:1px solid #d5dfe9;padding:7px 8px;text-align:center}th{background:#f1f5fa;color:#324e6a}caption{text-align:left;margin:10px 0;font-weight:bold}figure{margin:20px 0 28px;break-inside:avoid}figure svg{width:100%;height:auto;display:block;border:1px solid #dce3e9}figure figcaption{text-align:center;color:var(--muted);font-size:12px;margin-top:6px}.result{padding:9px 15px;border-left:3px solid var(--blue);background:#f1f5ff;margin:15px 0}.warning{color:#925600;background:#fff5df;padding:10px;font-size:12px}#error,#stale{background:#fff0eb;color:#a33824;padding:12px;border-radius:7px;font-size:13px}#graphActions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#19304b;color:white;padding:10px 20px;border-radius:8px;z-index:5}[hidden]{display:none!important}@media(min-width:1450px){.workspace{grid-template-columns:390px minmax(0,1fr)}}@media(max-width:1050px){main{padding:25px 20px}.workspace{grid-template-columns:310px minmax(0,1fr);gap:16px}.paper{padding:24px 20px}.toolbar{align-items:flex-start;flex-direction:column}#metrics{grid-template-columns:1fr}.metric b{font-size:18px}}@media(max-width:740px){header{height:66px;padding:0 15px}.brand small{display:none}header button{font-size:11px}main{padding:22px 14px}h1{font-size:24px}.workspace{grid-template-columns:1fr}aside{padding:18px}.paper{padding:22px 15px}.heading p{font-size:13px}#metrics{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.metric{padding:9px}.metric b{font-size:16px}.metric small{display:block}.formula{font-size:12px}.paper h2{font-size:18px}}@media print{@page{size:A4;margin:14mm 12mm}body,main{background:white;margin:0;padding:0}header,.heading,aside,.toolbar,#metrics,#stale,#graphActions,#toast{display:none!important}.workspace{display:block}.paper{border:0;box-shadow:none;padding:0;border-radius:0}.paper h2{font-size:18px;break-after:avoid}.paper h2:not(:first-child){break-before:page}.paper h3{font-size:13px;break-after:avoid}.paper p{font-size:11px}.paper table{font-size:9px}.paper td,.paper th{padding:4px 5px}.formula{font-size:10px;overflow:visible;break-inside:avoid}.meta,.note{font-size:9px!important}figure{break-before:page;break-after:page}figure svg{border:0;max-height:230mm}tr{break-inside:avoid}.result{break-inside:avoid}.warning{font-size:9px}}
/* Allow wide tables and equations to scroll inside narrow output panels. */
.output{min-width:0}aside{min-width:0}
@media print{.calculation-block{break-inside:avoid}figure svg{max-height:218mm}figure{margin:0 0 12px}.tablewrap{overflow:visible}}
