:root{--ink:#1e2530;--ink-soft:#4a5568;--ink-faint:#8b96a5;--chamber:#1b3a5c;--chamber-deep:#12283f;--brass:#a67c1e;--brass-soft:#f3ead2;--panel:#fff;--wash:#eef1f5;--line:#dde3ea;--ok:#1e7a46;--ok-bg:#e5f3ea;--warn:#a05a00;--warn-bg:#fdf1dd;--bad:#b02a2a;--bad-bg:#fbe7e7;--radius:8px;--serif:Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--sans);color:var(--ink);background:var(--wash);font-size:14px;line-height:1.45}a{color:inherit}button{font-family:inherit;font-size:13px;cursor:pointer;border-radius:6px;border:1px solid var(--line);background:var(--panel);padding:7px 14px;color:var(--ink)}button.primary{background:var(--chamber);border-color:var(--chamber);color:#fff;font-weight:600}button.brass{background:var(--brass);border-color:var(--brass);color:#fff;font-weight:600}button.danger{background:var(--bad);border-color:var(--bad);color:#fff}button.ghost{background:transparent}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible{outline:2px solid var(--brass);outline-offset:2px}input,select,textarea{font-family:inherit;font-size:13px;padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink)}input:focus,select:focus{outline:2px solid var(--chamber);outline-offset:0}.frame{display:flex;min-height:100vh}nav.rail{width:250px;background:var(--chamber-deep);color:#cdd8e4;flex-shrink:0;padding:18px 0 40px;position:sticky;top:0;height:100vh;overflow-y:auto}.rail .brand{padding:0 18px 14px;border-bottom:1px solid hsla(0,0%,100%,.12);margin-bottom:10px}.rail .brand h1{font-family:var(--serif);font-size:19px;color:#fff}.rail .brand span{font-size:11px;color:#8fa3b8;text-transform:uppercase;letter-spacing:1.5px}.rail h2{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:#7e93a9;padding:14px 18px 5px}.rail a{display:block;padding:6px 18px;color:#cdd8e4;text-decoration:none;font-size:13px;border-left:3px solid transparent;cursor:pointer}.rail a:hover{background:hsla(0,0%,100%,.06)}.rail a.active{background:hsla(0,0%,100%,.1);color:#fff;border-left-color:var(--brass);font-weight:600}.rail a.soon{color:#5f748c;cursor:default}.rail a.soon:hover{background:transparent}.rail a .id{font-family:var(--mono);font-size:10px;color:#7e93a9;margin-right:7px}.rail a .soontag{font-size:9px;letter-spacing:1px;text-transform:uppercase;color:#5f748c;float:right;margin-top:2px}main{flex:1;min-width:0}.topbar{background:var(--panel);border-bottom:1px solid var(--line);padding:10px 26px;display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:5}.topbar .tourn{font-family:var(--serif);font-weight:700;color:var(--chamber);font-size:15px}.topbar .spacer{margin-left:auto}.phase{font-size:11px;background:var(--brass-soft);color:var(--brass);border:1px solid #e5d7ae;padding:2px 10px;border-radius:20px;font-weight:700}.viewas{display:flex;align-items:center;gap:6px}.viewas-label{font-size:10px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:1px;margin-right:2px}.screen{padding:24px 26px 80px;max-width:1180px}.crumb{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:4px}.screen>h2{font-family:var(--serif);font-size:24px;color:var(--chamber);padding-bottom:8px;margin-bottom:18px;border-bottom:3px double var(--brass)}.screen>h2 small{font-family:var(--sans);font-size:12px;color:var(--ink-faint);font-weight:400;margin-left:10px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;margin-bottom:16px}.card h3{font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-soft);margin-bottom:10px}.grid{display:grid;gap:14px}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:repeat(4,1fr)}.split{display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;display:block;text-decoration:none;color:inherit}a.stat:hover{border-color:var(--chamber)}.stat .n{font-family:var(--serif);font-size:24px;color:var(--chamber);font-weight:700}.stat .l{font-size:11px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:1px}.stat .sub{font-size:12px;color:var(--ink-soft);margin-top:3px}table{width:100%;border-collapse:collapse;background:var(--panel)}th{font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--ink-faint);text-align:left;border-bottom:2px solid var(--line);background:#f7f9fb}td,th{padding:8px 10px}td{border-bottom:1px solid var(--line);font-size:13px;vertical-align:middle}td.num,th.num{text-align:right;font-family:var(--mono);font-size:12px}.chip{display:inline-block;font-size:11px;font-weight:700;padding:2px 9px;border-radius:20px}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.bad{background:var(--bad-bg);color:var(--bad)}.chip.info{background:#e7eef6;color:var(--chamber)}.chip.dim{background:var(--wash);color:var(--ink-faint)}.banner{border-radius:var(--radius);padding:11px 14px;font-size:13px;margin-bottom:14px;border:1px solid}.banner.warn{background:var(--warn-bg);border-color:#ecd4a8;color:var(--warn)}.banner.bad{background:var(--bad-bg);border-color:#eec3c3;color:var(--bad)}.banner.ok{background:var(--ok-bg);border-color:#bfe0cc;color:var(--ok)}.banner.info{background:#e7eef6;border-color:#c9d8e8;color:var(--chamber)}.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:4px}.field label .req{color:var(--bad)}.field input,.field select{width:100%}.field input[type=checkbox],.field input[type=radio],input[type=checkbox],input[type=radio]{width:auto}.field input.invalid{border-color:var(--bad);outline-color:var(--bad)}.choicerow{display:flex;gap:22px;flex-wrap:wrap;align-items:center;margin-top:2px}.choice{display:inline-flex;align-items:center;gap:8px;font-weight:400;cursor:pointer;font-size:13px}.choice input{margin:0}.prefrow{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.prefrow:last-child{border-bottom:none}.prefrow .fam{flex:1;font-size:13px}.prefopts{display:flex;gap:6px;flex-wrap:wrap}.prefopt{padding:5px 11px;border:1px solid var(--line);border-radius:6px;background:#fff;cursor:pointer;font-size:12px;color:var(--ink-soft)}.prefopt.sel{background:var(--chamber);border-color:var(--chamber);color:#fff;font-weight:600}.prefopt:disabled{opacity:.4;cursor:not-allowed}.hint{font-size:11.5px;margin-top:3px}.hint,.note{color:var(--ink-faint)}.note{font-size:12px;font-style:italic;margin-top:8px}.billpaper{font-family:Times New Roman,Times,serif;background:#fff;border:1px solid var(--line);box-shadow:0 2px 8px rgba(20,35,55,.08);padding:26px 32px;font-size:13.5px;line-height:1.9;color:#111;white-space:pre-wrap}.billpaper .hdr{font-weight:700;margin-bottom:10px;white-space:pre-wrap}.billpaper .billtitle{text-align:center;font-size:14.5px;font-weight:700;margin:8px 0 12px}.diff{border:1px solid var(--line);border-radius:6px;padding:9px 12px;font-size:12.5px;margin-bottom:8px;background:#fcfcfa}.diff .from{color:var(--bad);text-decoration:line-through}.diff .to{color:var(--ok);font-weight:600}.checkrow{display:flex;align-items:flex-start;gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px}.checkrow:last-child{border-bottom:none}.checkrow .mk{font-weight:700;width:16px;flex:none}.checkrow .mk.ok{color:var(--ok)}.checkrow .mk.bad{color:var(--bad)}.mockflag{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#fff;background:var(--brass);display:inline-block;padding:2px 8px;border-radius:3px;margin-bottom:6px}.tabs{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}.tabs button.on{background:var(--chamber);border-color:var(--chamber);color:#fff;font-weight:600}.savedmsg{font-size:12px;color:var(--ok);margin-left:10px}.mergepalette{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px}.mergepalette button{font-family:var(--mono);font-size:11px;padding:3px 8px}.letterpaper{font-family:var(--serif);background:#fff;border:1px solid var(--line);box-shadow:0 2px 8px rgba(20,35,55,.08);padding:34px 40px;font-size:14px;line-height:1.7;color:#111;white-space:pre-wrap}.toggle{display:inline-flex;align-items:center;gap:10px;font-size:13px}.switch{width:46px;height:26px;border-radius:20px;border:1px solid var(--line);background:var(--wash);position:relative;cursor:pointer;transition:.15s}.switch.on{background:var(--ok)}.switch .knob{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:.15s}.switch.on .knob{left:22px}.steps{display:flex;gap:6px;margin-bottom:16px}.steps div{flex:1;text-align:center;font-size:11px;padding:7px 4px;border-radius:6px;background:var(--panel);border:1px solid var(--line);color:var(--ink-faint)}.steps div.on{background:var(--chamber);color:#fff;border-color:var(--chamber);font-weight:700}.steps div.done{background:var(--ok-bg);color:var(--ok);border-color:#bfe0cc}.prefgrid td{text-align:left}.prefgrid th{text-align:center}.prefbtn{height:30px;width:30px;border-radius:6px;border:1px solid var(--line);background:#fff;cursor:pointer}.prefbtn.sel{background:var(--chamber);border-color:var(--chamber);color:#fff;font-weight:700}@media(max-width:900px){.g2,.g3,.g4,.split{grid-template-columns:1fr}nav.rail{display:none}}