:root{--paper:#ede8da;--paper-raised:#f6f2e6;--paper-sunk:#e4dece;--ink:#1e2b36;--ink-soft:#5b6b76;--ink-faint:#8b978f;--line:#1e2b3629;--line-soft:#1e2b3617;--teal:#2e6b68;--teal-soft:#dce9e5;--on-teal:#f6f2e6;--amber:#a9720f;--amber-soft:#f1e2c4;--red:#943c3c;--red-soft:#f0dada;--green:#3f7a4c;--green-soft:#dbe9dd;--chart:#00897b;--wm-teal:#0b6e6e;--wm-ink:#12232b;--font-display:"Atkinson Hyperlegible Next", system-ui, sans-serif;--font-ui:"Atkinson Hyperlegible Next", system-ui, sans-serif;--font-mono:"Atkinson Hyperlegible Mono", "SF Mono", monospace;--radius:10px;--shadow:0 1px 2px #1e2b360f, 0 6px 24px #1e2b360f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#151c22;--paper-raised:#1d262e;--paper-sunk:#11171c;--ink:#e7e2d4;--ink-soft:#a4b0b6;--ink-faint:#75838a;--line:#e7e2d429;--line-soft:#e7e2d414;--teal:#6fb3ad;--wm-teal:#4fb0aa;--wm-ink:var(--ink);--teal-soft:#1f3836;--on-teal:#10201f;--amber:#e0a94a;--amber-soft:#3a2f1b;--red:#e08a8a;--red-soft:#3c2224;--green:#8cc49a;--green-soft:#1f3324;--chart:#2ba597;--shadow:0 1px 2px #0000004d, 0 6px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--paper);color:var(--ink);font:400 14px/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);margin:0;font-weight:500;line-height:1.2}h1{font-size:28px}h2{font-size:20px}h3{font-size:16px}a{color:var(--teal)}code,.mono{font-family:var(--font-mono);font-size:12.5px}p{margin:0}.topbar{z-index:20;background:var(--paper-raised);border-bottom:1px solid var(--line);align-items:center;gap:20px;padding:10px 24px;display:flex;position:sticky;top:0}.brand{color:var(--ink);white-space:nowrap;align-items:center;text-decoration:none;display:inline-flex}.brand .wordmark{height:22px}.brand small{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--teal);margin-left:8px;font-size:11px;font-weight:600}.nav{flex:1;gap:4px;display:flex;overflow-x:auto}.nav a{color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-weight:500;text-decoration:none;display:inline-flex}.nav a:hover{background:var(--line-soft);color:var(--ink)}.nav a.active{background:var(--teal-soft);color:var(--teal)}.who{color:var(--ink-soft);white-space:nowrap;align-items:center;gap:10px;font-size:13px;display:flex}.main{max-width:1120px;margin:0 auto;padding:28px 24px 120px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head .sub{color:var(--ink-soft);margin-top:4px}.crumb{color:var(--ink-soft);margin-bottom:6px;font-size:12.5px}.crumb a{color:inherit}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.spacer{flex:1}.muted{color:var(--ink-soft)}.faint{color:var(--ink-faint)}.small{font-size:12.5px}@media (width<=640px){.topbar{flex-wrap:wrap;gap:8px;padding:10px 16px}.nav{order:3;width:100%}.main{padding:20px 16px 120px}}.panel{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px}.panel.flush{padding:0;overflow:hidden}.panel-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:10px;padding:12px 16px;display:flex}a.panel{color:inherit;text-decoration:none;display:block}a.panel:hover{border-color:var(--teal)}.callout{border-radius:var(--radius);border:1px solid;padding:12px 14px}.callout.info{background:var(--teal-soft);border-color:color-mix(in srgb, var(--teal) 30%, transparent)}.callout.warn{background:var(--amber-soft);border-color:color-mix(in srgb, var(--amber) 35%, transparent)}.callout.error{background:var(--red-soft);border-color:color-mix(in srgb, var(--red) 35%, transparent);color:var(--ink)}.callout.ok{background:var(--green-soft);border-color:color-mix(in srgb, var(--green) 35%, transparent)}.empty{text-align:center;color:var(--ink-soft);padding:48px 16px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:middle;padding:9px 12px}th{letter-spacing:.05em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-sunk);font-size:11.5px;font-weight:600}tr:last-child td{border-bottom:none}tr.clickable{cursor:pointer}tr.clickable:hover td{background:var(--line-soft)}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.btn{border:1px solid var(--line);background:var(--paper-raised);min-height:34px;color:var(--ink);font:500 13.5px var(--font-ui);cursor:pointer;white-space:nowrap;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--ink-faint)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--teal);border-color:var(--teal);color:var(--on-teal)}.btn.primary:hover:not(:disabled){filter:brightness(1.08)}.btn.danger{color:var(--red)}.btn.danger.solid{background:var(--red);border-color:var(--red);color:var(--paper-raised)}.btn.ghost{color:var(--ink-soft);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--line-soft);color:var(--ink)}.btn.sm{min-height:28px;padding:3px 10px;font-size:12.5px}.icon-btn{width:28px;height:28px;color:var(--ink-faint);cursor:pointer;background:0 0;border:none;border-radius:6px;place-items:center;padding:0;font-size:15px;display:inline-grid}.icon-btn:hover:not(:disabled){background:var(--line-soft);color:var(--ink)}.icon-btn.danger:hover:not(:disabled){color:var(--red)}.icon-btn:disabled{opacity:.3;cursor:default}label.field{color:var(--ink-soft);flex-direction:column;gap:4px;font-size:12.5px;font-weight:500;display:flex}input,select,textarea{font:400 14px var(--font-ui);color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:7px;min-width:0;padding:7px 10px}textarea{resize:vertical;min-height:70px}input:focus,select:focus,textarea:focus,.btn:focus-visible,.icon-btn:focus-visible{outline:2px solid var(--teal);outline-offset:1px}input.cell{background:0 0;border-color:#0000;border-radius:5px;width:100%;padding:5px 7px}input.cell:hover{border-color:var(--line)}input.cell:focus{background:var(--paper)}input.cell.invalid,input.invalid{border-color:var(--red);background:var(--red-soft)}input.no{text-align:right;font-variant-numeric:tabular-nums;width:64px}input[type=file]{padding:6px}.grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;display:grid}.grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;display:grid}.badge{background:var(--line-soft);color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:1px 8px;font-size:11.5px;font-weight:600;display:inline-flex}.badge.teal{background:var(--teal-soft);color:var(--teal)}.badge.amber{background:var(--amber-soft);color:var(--amber)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.green{background:var(--green-soft);color:var(--green)}.count{background:var(--amber);min-width:18px;height:18px;color:var(--paper-raised);border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:600;display:inline-grid}.tabs{border-bottom:1px solid var(--line);gap:2px;margin-bottom:16px;display:flex;overflow-x:auto}.tabs button{font:500 14px var(--font-ui);color:var(--ink-soft);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;margin-bottom:-1px;padding:9px 14px;display:inline-flex}.tabs button.active{color:var(--ink);border-bottom-color:var(--teal)}.pills{flex-wrap:wrap;gap:6px;display:flex}.pills button{border:1px solid var(--line);background:var(--paper-raised);color:var(--ink-soft);font:500 13px var(--font-ui);cursor:pointer;border-radius:999px;padding:4px 12px}.pills button.active{background:var(--ink);border-color:var(--ink);color:var(--paper-raised)}.module{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius)}.module-head{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;display:flex}.module-head input.name{font:500 16px var(--font-display);flex:1;min-width:180px}.module table td{padding:2px 6px}.module table td.actions,table td.actions{white-space:nowrap;text-align:right;width:1%}.module-foot{border-top:1px solid var(--line-soft);padding:8px 12px}.savebar{z-index:30;background:var(--paper-raised);border-top:1px solid var(--line);box-shadow:var(--shadow);position:fixed;bottom:0;left:0;right:0}.savebar-inner{flex-wrap:wrap;align-items:center;gap:10px;max-width:1120px;margin:0 auto;padding:12px 24px;display:flex}.problems{max-height:180px;margin:6px 0 0;padding-left:18px;overflow:auto}.diff-list{flex-direction:column;gap:3px;margin:0;padding:0;list-style:none;display:flex}.diff-list li{border-radius:5px;padding:3px 8px;font-size:13px}.diff-list li.add{background:var(--green-soft)}.diff-list li.del{background:var(--red-soft);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in srgb, var(--red) 60%, transparent);text-decoration-color:color-mix(in srgb, var(--red) 60%, transparent)}.diff-list li.chg{background:var(--amber-soft)}.diff-list .where{color:var(--ink-soft);font-size:12px}dialog.modal{border:1px solid var(--line);background:var(--paper-raised);width:min(640px,100vw - 32px);color:var(--ink);box-shadow:var(--shadow);border-radius:14px;padding:0}dialog.modal::backdrop{background:#0f161c73}.modal-body{flex-direction:column;gap:14px;max-height:70vh;padding:20px 22px;display:flex;overflow:auto}.modal-foot{border-top:1px solid var(--line-soft);justify-content:flex-end;gap:8px;padding:12px 22px;display:flex}.toasts{z-index:50;flex-direction:column;gap:8px;width:min(520px,100vw - 32px);display:flex;position:fixed;bottom:84px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper-raised);box-shadow:var(--shadow);border-radius:9px;align-items:center;gap:10px;padding:10px 14px;font-size:13.5px;display:flex}.toast.error{background:var(--red)}.toast button{color:inherit;cursor:pointer;opacity:.7;background:0 0;border:none;margin-left:auto;font-size:16px}.signin{place-items:center;min-height:100vh;padding:16px;display:grid}.signin .panel{flex-direction:column;gap:14px;width:min(400px,100%);padding:28px;display:flex}.spinner{border:2.5px solid var(--line);border-top-color:var(--teal);border-radius:50%;width:22px;height:22px;margin:48px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}details>summary{cursor:pointer;color:var(--ink-soft)}.section-h{margin-bottom:12px;font-size:18px}.tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;display:grid}.tile{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.tile-value{font:500 26px/1.1 var(--font-display);font-variant-numeric:tabular-nums}.tile-label{color:var(--ink-soft);margin-top:4px;font-size:12px}.grid-2-wide{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;display:grid}.colchart{grid-template-rows:170px auto;grid-template-columns:auto 1fr;column-gap:8px;display:grid}.colchart-axis{color:var(--ink-faint);text-align:right;font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;font-size:11px;display:flex}.colchart-plot{border-bottom:1px solid var(--line);border-top:1px dashed var(--line-soft);align-items:flex-end;gap:2px;display:flex;position:relative}.colchart-col{cursor:default;outline:none;flex:1;justify-content:center;align-items:flex-end;height:100%;display:flex;position:relative}.colchart-col:focus-visible{outline:2px solid var(--teal);outline-offset:1px}.colchart-bar{background:var(--chart);border-radius:4px 4px 0 0;width:70%;max-width:28px;min-height:0}.colchart-col.hover .colchart-bar{filter:brightness(1.12)}.colchart-tip{z-index:2;background:var(--ink);color:var(--paper-raised);white-space:nowrap;pointer-events:none;border-radius:6px;padding:5px 8px;font-size:12px;position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%)}.colchart-col:first-child .colchart-tip{left:0;transform:none}.colchart-col:last-child .colchart-tip{left:auto;right:0;transform:none}.colchart-x{grid-column:2;gap:2px;margin-top:6px;display:flex}.colchart-x span{color:var(--ink-faint);white-space:nowrap;flex:1;font-size:11px;overflow:visible}.barlist{flex-direction:column;gap:8px;display:flex}.barlist-row{grid-template-columns:74px 1fr 36px;align-items:center;gap:10px;display:grid}.barlist-label{color:var(--ink-soft);font-size:13px}.barlist-track{height:10px}.barlist-bar{background:var(--chart);border-radius:0 4px 4px 0;height:100%;display:block}.barlist-value{text-align:right;font-variant-numeric:tabular-nums;font-size:13px}.wordmark{aspect-ratio:691/163;flex:none;height:28px;display:inline-block;position:relative}.wordmark span{background:var(--wm-teal);position:absolute;inset:0;-webkit-mask:url(/brand/wordmark-teal.png) 50%/contain no-repeat;mask:url(/brand/wordmark-teal.png) 50%/contain no-repeat}.wordmark span.ink{background:var(--wm-ink);-webkit-mask-image:url(/brand/wordmark-ink.png);mask-image:url(/brand/wordmark-ink.png)}.signin .tagline{color:var(--ink-soft);margin:6px 0 2px;font-size:13px}.signin .wordmark{height:34px}
