:root{--paper:#f1f0ea;--paper-dim:#e6e4da;--ink:#20241f;--ink-soft:#5b5f56;--line:#c9c6b8;--walnut:#3b2a20;--copper:#b8752b;--copper-soft:#ead3af;--sage:#3f6b4b;--sage-soft:#dce7dd;--rust:#8c3b2e;--rust-soft:#f1dad4;--radius:2px}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);background-image:linear-gradient(var(--paper-dim) 1px, transparent 1px), linear-gradient(90deg, var(--paper-dim) 1px, transparent 1px);background-size:28px 28px;margin:0;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif}.mono{font-family:Courier New,Courier,monospace}.display{font-family:Arial Black,Impact,sans-serif}#shell{z-index:1;min-height:100vh;display:flex;position:relative}#watermark-layer{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}#watermark-layer span{white-space:nowrap;color:var(--walnut);opacity:.045;letter-spacing:.08em;font-family:Arial Black,Impact,sans-serif;font-size:13px;position:absolute;transform:rotate(-30deg)}nav{background:var(--walnut);color:#efe6da;flex-direction:column;flex-shrink:0;gap:2px;width:210px;padding:22px 0;display:flex}nav .brand{border-bottom:1px solid #ffffff26;margin-bottom:14px;padding:0 20px 20px}nav .brand .t1{letter-spacing:.5px;font-family:Arial Black,Impact,sans-serif;font-size:18px;line-height:1.15}nav .brand .t2{color:#c9b79a;letter-spacing:.5px;margin-top:6px;font-family:Courier New,Courier,monospace;font-size:10.5px}nav button.tab{text-align:left;color:#d8ccba;cursor:pointer;background:0 0;border:none;border-left:3px solid #0000;align-items:center;gap:10px;padding:11px 20px;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:13.5px;font-weight:500;display:flex}nav button.tab .idx{color:#9c8c74;font-family:Courier New,Courier,monospace;font-size:11px}nav button.tab:hover{color:#fff;background:#ffffff0f}nav button.tab.active{color:#fff;border-left-color:var(--copper);background:#ffffff1a}nav .footnote{color:#8a7c68;border-top:1px solid #ffffff1a;margin-top:auto;padding:16px 20px 0;font-family:Courier New,Courier,monospace;font-size:10.5px}main{flex:1;max-width:1180px;padding:30px 40px 60px}h1.page{margin:0 0 4px;font-family:Arial Black,Impact,sans-serif;font-size:22px}p.sub{color:var(--ink-soft);max-width:640px;margin:0 0 26px;font-size:13.5px;line-height:1.5}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fbfaf6;margin-bottom:20px;padding:20px 22px}.card h2{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin:0 0 16px;font-size:13px;font-weight:600}.row{flex-wrap:wrap;align-items:flex-end;gap:14px;display:flex}.field{flex-direction:column;gap:5px;display:flex}.field label{text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);font-size:11px;font-weight:600}.field input,.field select{border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);background:#fff;min-width:110px;padding:8px 10px;font-family:Courier New,Courier,monospace;font-size:13px}.field input:focus,.field select:focus{outline:2px solid var(--copper);outline-offset:1px}button.btn{border-radius:var(--radius);border:1px solid var(--walnut);background:var(--walnut);color:#fff;cursor:pointer;padding:9px 18px;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:13px;font-weight:600}button.btn:hover{background:#4e382a}button.btn.secondary{color:var(--walnut);border:1px solid var(--line);background:#fff}button.btn.secondary:hover{border-color:var(--walnut)}button.btn.copper{background:var(--copper);border-color:var(--copper)}button.btn.copper:hover{background:#a2661f}button.btn:focus-visible{outline:2px solid var(--copper);outline-offset:2px}button.btn:disabled{opacity:.4;cursor:not-allowed}input[type=file]{font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:12.5px}table{border-collapse:collapse;width:100%;font-size:12.5px}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft);border-bottom:1.5px solid var(--ink);white-space:nowrap;padding:7px 8px;font-family:Courier New,Courier,monospace;font-size:10.5px}td{border-bottom:1px solid var(--line);white-space:nowrap;padding:7px 8px;font-family:Courier New,Courier,monospace}tr:hover td{background:var(--paper-dim)}.tablewrap{border:1px solid var(--line);max-height:420px;overflow:auto}.pill{border-radius:20px;padding:2px 8px;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:10.5px;font-weight:600;display:inline-block}.pill.match{background:var(--sage-soft);color:var(--sage)}.pill.miss{background:var(--rust-soft);color:var(--rust)}.pill.rot{background:var(--copper-soft);color:var(--copper)}.stat{flex-wrap:wrap;gap:18px;margin-bottom:20px;display:flex}.stat .box{border:1px solid var(--line);background:#fbfaf6;min-width:120px;padding:14px 20px}.stat .box .n{font-family:Arial Black,Impact,sans-serif;font-size:26px;line-height:1}.stat .box .l{text-transform:uppercase;color:var(--ink-soft);letter-spacing:.05em;margin-top:6px;font-size:10.5px}.stat .box.copper .n{color:var(--copper)}.stat .box.sage .n{color:var(--sage)}.stat .box.rust .n{color:var(--rust)}.icon-del{cursor:pointer;color:var(--rust);background:0 0;border:none;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:14px;font-weight:700}.empty{text-align:center;color:var(--ink-soft);border:1px dashed var(--line);padding:30px;font-size:13px}.diagram-cell svg{display:block}.toast{background:var(--walnut);color:#fff;border-radius:var(--radius);opacity:0;pointer-events:none;z-index:99;padding:10px 18px;font-family:-apple-system,Segoe UI,Roboto,Arial,sans-serif;font-size:12.5px;transition:opacity .25s;position:fixed;bottom:22px;right:22px}.toast.show{opacity:1}.hint{color:var(--ink-soft);margin-top:8px;font-size:11.5px;line-height:1.5}a.link{color:var(--copper);font-weight:600;text-decoration:none}a.link:hover{text-decoration:underline}
