:root{color-scheme:light;--bg:#f6f7f3;--ink:#172e28;--sub:#50645c;--line:#d6ded7;--accent:#12624e;--pale:#e3f1e8;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--bg);font-size:14px}.wrap{width:min(1540px,94%);margin:auto}.bar{background:#103c34;color:#f6faf7}.brandline{display:flex;align-items:center;height:60px;gap:12px}.brandline>b{font-size:17px;letter-spacing:.06em}.brandline>span:not(.brandmark){font-size:13px}.division{height:15px;width:1px;background:#729187}.brandmark{display:flex;align-items:end;gap:3px;padding:6px;width:30px;height:30px;border-radius:8px;background:#c7ec96}.brandmark i{width:4px;background:#1a493c;height:45%;border-radius:1px}.brandmark i:nth-child(2){height:75%}.brandmark i:last-child{height:100%}.local{margin-left:auto;color:#dae8de}.local i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#bee39a}.intro{padding:40px 0 24px}.overline{color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.12em}.intro h1{font-size:clamp(29px,4vw,43px);letter-spacing:-.045em;line-height:1.15;margin:10px 0}.intro p,.upload p,.guide p,.muted{color:var(--sub);line-height:1.6;margin:0}.upload,.panel,.guide,.summary{background:white;border:1px solid var(--line);border-radius:12px}.upload{display:flex;align-items:center;gap:15px;padding:24px;border-style:dashed;border-color:#91b3a2;background:#f0f6ef}.upload.drag{outline:3px solid #499773}.upload-icon{background:#dbead9;border-radius:10px;display:grid;place-items:center;font-size:29px;font-weight:700;color:var(--accent);width:44px;height:44px}.upload-copy{flex:1}h2,h3{margin:0}h2{font-size:19px}h3{font-size:16px}.upload h2{margin-bottom:4px}.upload p,.guide p,.muted,.scope,.pages{font-size:13px}button,select,input,textarea{font:inherit;color:inherit}button,select,input:not([type=checkbox]),textarea{border:1px solid #bacabf;border-radius:6px;background:white;min-height:34px;padding:6px 10px}button{cursor:pointer;white-space:nowrap;font-weight:550}button:hover:not(:disabled){background:#edf4ef;border-color:var(--accent)}button.primary{background:var(--accent);border-color:var(--accent);color:white}button.primary:hover:not(:disabled){background:#104c3c}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #569e97;outline-offset:2px}input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px;vertical-align:middle}.notice{margin:12px 0;color:var(--accent)}.notice.error{color:#97361e}.guide{padding:25px;margin-top:24px}.steps,.summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.steps{margin-top:19px}.steps>div+div,.summary>div+div{border-left:1px solid var(--line);padding-left:22px}.steps span{font-family:ui-monospace,monospace;color:var(--accent)}.steps h3{margin:9px 0 5px}.summary{grid-template-columns:repeat(4,1fr);padding:16px 22px;margin:17px 0}.summary small{color:var(--sub)}.summary strong{display:block;margin-top:3px;font-size:23px;font-variant-numeric:tabular-nums}.layout{display:grid;grid-template-columns:230px minmax(0,1fr);gap:16px;align-items:start}.panel{padding:18px}.heading,.pair,.actions,.pages,.pages>div{display:flex;align-items:center;gap:8px}.heading,.pages{justify-content:space-between}.pair,.actions{flex-wrap:wrap}.metric{display:grid;grid-template-columns:62px 1fr;gap:4px;margin:10px 0}.metric label{grid-column:1/-1}.metric input,.stack input,.stack textarea,.rules input{width:100%}.pair button{flex:1;font-size:12px}fieldset{margin:18px 0 0;padding:12px 0;border:0;border-top:1px solid var(--line)}legend,summary{font-weight:650}summary{cursor:pointer}.stack,.rules label{display:block;margin:7px 0 12px}.stack input,.stack textarea,.rules input{display:block;margin-top:4px}.rules{padding-top:4px}.results{overflow:hidden}.heading h2{font-size:21px}#views{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:12px 0}#views button{border:0;border-radius:0;border-bottom:3px solid transparent;background:none}#views button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.scope{display:flex;align-items:center;gap:8px;margin-bottom:8px}.scope select{max-width:75%}.actions{margin:14px 0;font-size:13px}#copy-status{color:var(--accent)}.grid{overflow:auto;border:1px solid var(--line);border-radius:6px;max-height:63vh}table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;font-variant-numeric:tabular-nums}th,td{text-align:right;white-space:nowrap;padding:8px 10px;border-bottom:1px solid #e6ebe6}th{background:#edf2ed;position:sticky;top:0;z-index:1;color:var(--sub);font-weight:600}th button,.term{border:0;border-radius:0;background:none;padding:0;min-height:0;font:inherit;color:inherit}.term{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.keycell,.suggestion{text-align:left;white-space:normal;min-width:120px;overflow-wrap:anywhere}.keycell button{white-space:normal;text-align:left;overflow-wrap:anywhere}.checked{background:#eff7ed}.pages{margin-top:12px;color:var(--sub);flex-wrap:wrap}.pages button{font-size:12px}#no-rows{text-align:center;color:var(--sub);padding:20px}footer{padding:32px 0;color:var(--sub);font-size:12px}footer span{margin:0 7px}dialog{color:var(--ink);border:1px solid var(--line);border-radius:12px;width:min(1100px,95vw);padding:24px}dialog::backdrop{background:#162f29a8}dialog .muted{margin:8px 0}dialog .grid{max-height:60vh}[hidden]{display:none!important}
@media(max-width:850px){.layout{grid-template-columns:1fr}#metric-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.metric{grid-template-columns:50px minmax(0,1fr)}.panel{padding:14px}}
@media(max-width:600px){.intro{padding:26px 0 16px}.upload{flex-wrap:wrap;padding:16px}.upload-copy{flex-basis:calc(100% - 70px)}.steps{grid-template-columns:1fr;gap:12px}.steps>div+div{padding:12px 0 0;border-left:0;border-top:1px solid var(--line)}.steps h3{display:inline;margin-left:10px}.summary{grid-template-columns:1fr 1fr;gap:10px}.summary>div+div{padding:0;border:0}#metric-filters{grid-template-columns:1fr 1fr}.local{font-size:11px!important}.notice{overflow-wrap:anywhere}}
