:root{--bg: #edf1f2;--card: #ffffff;--ink: #1c2b2f;--soft: #51666b;--line: #ccd9db;--line2: #e2eaeb;--brand: #0e7086;--brand-soft: #dcecef;--good: #256b45;--good-soft: #ddeee4;--warn: #8a5f00;--warn-soft: #f4e8cd;--bad: #a63a30;--bad-soft: #f6e2df;--what: #256b45;--what-soft: #ddeee4;--who: #6b4fa0;--who-soft: #e7e0f3;--when: #8a5f00;--when-soft: #f4e8cd}@media(prefers-color-scheme:dark){:root{--bg: #101819;--card: #182225;--ink: #e3ecec;--soft: #93a7aa;--line: #2b3b3e;--line2: #223033;--brand: #4db3c8;--brand-soft: #123a44;--good: #5fc78f;--good-soft: #143526;--warn: #e0b64e;--warn-soft: #3a2f10;--bad: #e77b6f;--bad-soft: #42201c;--what: #5fc78f;--what-soft: #143526;--who: #a98fd8;--who-soft: #2c2140;--when: #e0b64e;--when-soft: #3a2f10}}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.55 system-ui,Segoe UI,sans-serif}.wrap{max-width:1160px;margin:0 auto;padding:26px 20px 70px}h1{font-size:28px;margin:0 0 4px;letter-spacing:-.015em}.thesis{color:var(--soft);max-width:68ch;margin:0 0 18px;font-size:14px}button{font:inherit}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px}.card-pad{padding:16px}.btn{border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:9px;padding:7px 14px;font-size:13.5px;cursor:pointer}.btn:hover{border-color:var(--brand);color:var(--brand)}.btn:disabled{opacity:.45;cursor:default}.btn.primary{background:var(--brand);border-color:var(--brand);color:var(--card)}.btn.primary:hover{color:var(--card);opacity:.92}.mini{border:1px solid var(--line);background:none;color:var(--soft);border-radius:7px;padding:4px 9px;font-size:12.5px;cursor:pointer;white-space:nowrap}.mini:hover{color:var(--brand);border-color:var(--brand)}.mini:disabled{opacity:.35;cursor:default}.drop{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;border:1px dashed var(--line);border-radius:10px;padding:22px 16px;font-size:14px;color:var(--soft);margin:12px 16px 16px}.drop.over{border-color:var(--brand);background:var(--brand-soft)}.bar{display:flex;flex-wrap:wrap;align-items:center;gap:7px;padding:0 16px 12px}.filter{border:1px solid var(--line);background:var(--card);color:var(--soft);border-radius:999px;padding:4px 12px;font-size:12.5px;cursor:pointer}.filter.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.filter b{font-weight:600}.tblwrap{overflow-x:auto}table{width:100%;min-width:780px;border-collapse:collapse;font-size:13.5px}th{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--soft);text-align:left;padding:10px;border-bottom:1px solid var(--line);font-weight:600}td{padding:8px 10px;border-bottom:1px solid var(--line2);vertical-align:middle}tr.frow{cursor:pointer}tr.frow:hover td{background:var(--line2)}tr.frow.open td{background:var(--brand-soft)}.fname{font:12.5px ui-monospace,Consolas,monospace;font-weight:600;max-width:260px;overflow-wrap:anywhere}.chip{display:inline-block;font-size:12px;border-radius:999px;padding:2px 10px;white-space:nowrap}.chip.what{background:var(--what-soft);color:var(--what)}.chip.who{background:var(--who-soft);color:var(--who)}.chip.none{background:var(--warn-soft);color:var(--warn)}.chip.mail{background:var(--line2);color:var(--soft)}.chip.err{background:var(--bad-soft);color:var(--bad)}.newname{font:12.5px ui-monospace,Consolas,monospace;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:5px 8px;width:100%;min-width:140px;max-width:260px}.rowbtns{white-space:nowrap;text-align:right}.muted{color:var(--soft)}.mono{font-family:ui-monospace,Consolas,monospace}.empty{padding:44px 20px;text-align:center;color:var(--soft)}.inq td{background:var(--bg);padding:16px 18px;cursor:default}.inq-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:16px;align-items:start}@media(max-width:880px){.inq-grid{grid-template-columns:1fr}}.dtext{white-space:pre-wrap;font:12.5px/1.7 ui-monospace,Consolas,monospace;background:var(--card);border:1px solid var(--line2);border-radius:9px;padding:12px;max-height:380px;overflow:auto}mark{border-radius:3px;padding:0 2px;background:var(--line2);color:inherit}mark.what{background:var(--what-soft);color:var(--what);box-shadow:inset 0 -2px 0 var(--what)}mark.who{background:var(--who-soft);color:var(--who);box-shadow:inset 0 -2px 0 var(--who)}mark.when{background:var(--when-soft);color:var(--when);box-shadow:inset 0 -2px 0 var(--when)}.preview{width:100%;height:380px;border:1px solid var(--line2);border-radius:9px}.previmg{max-height:380px;width:100%;object-fit:contain;border:1px solid var(--line2);border-radius:9px}.steps{display:grid;gap:10px}.step{display:flex;gap:10px}.step-dot{flex:none;width:20px;height:20px;border-radius:50%;border:2px solid var(--line);color:var(--soft);font-size:10.5px;font-weight:700;display:flex;align-items:center;justify-content:center;background:var(--card);margin-top:1px}.step.c-what .step-dot{border-color:var(--what);color:var(--what)}.step.c-who .step-dot{border-color:var(--who);color:var(--who)}.step.c-when .step-dot{border-color:var(--when);color:var(--when)}.step h4{margin:0;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--soft)}.step .val{font-size:14px;margin-top:1px}.step .ev{font-size:12px;color:var(--soft);margin-top:2px}.evw{font:11.5px ui-monospace,Consolas,monospace;border-radius:5px;padding:1px 6px;white-space:nowrap}.evw.what{background:var(--what-soft);color:var(--what)}.evw.who{background:var(--who-soft);color:var(--who)}.evw.when{background:var(--when-soft);color:var(--when)}.fix{border:1px solid var(--line);border-radius:10px;padding:12px;background:var(--card)}.fix h4{margin:0 0 2px;font-size:14px}.fix .sub{font-size:12px;color:var(--soft);margin:0 0 10px}.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}@media(max-width:640px){.fgrid{grid-template-columns:1fr}}.fgrid label,.flabel{display:block;font-size:11.5px;color:var(--soft);font-weight:600}.fix input,.fix select,.field{width:100%;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:7px 9px;font-size:13px;margin-top:3px}.fix .row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}.code-inp{width:120px!important}.ok-note{background:var(--good-soft);color:var(--good);border-radius:8px;padding:8px 11px;font-size:12.5px;margin-top:8px}.err-note{color:var(--bad);font-size:12.5px;margin-top:8px}details.door{margin-top:16px}details.door>summary{cursor:pointer;list-style:none;padding:14px 16px;font-size:14px;font-weight:600}details.door>summary::-webkit-details-marker{display:none}details.door>summary .hint{font-weight:400;font-size:12px;color:var(--soft);margin-left:8px}.door-body{border-top:1px solid var(--line2);padding:16px;display:grid;gap:16px}.rules-h{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px}.rules-h h3{margin:0;font-size:14px}.rules-h .spacer{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.badge{font-size:11px;border-radius:999px;padding:2px 9px;background:var(--warn-soft);color:var(--warn);font-weight:600}.rrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--line2);border-radius:9px;padding:6px 8px;margin-bottom:6px}.rrow.winner{border-color:transparent;background:var(--what-soft)}.rrow.held{opacity:.6}.rrow .n{width:18px;text-align:right;color:var(--soft);font:11.5px ui-monospace,Consolas,monospace;flex:none}.rrow input.pat{flex:1;min-width:200px;font:12.5px ui-monospace,Consolas,monospace;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:5px 8px}.rrow input.pat.bad{border-color:var(--bad)}.rrow select{border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:5px 6px;font-size:12.5px;flex:none}.rrow input.lbl{width:180px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:5px 8px;font-size:12.5px;flex:none}.cnt{border:0;border-radius:999px;padding:3px 9px;font:11.5px ui-monospace,Consolas,monospace;background:var(--brand-soft);color:var(--brand);cursor:default;flex:none}.cnt.zero{background:var(--line2);color:var(--soft)}.rerr{width:100%;font-size:11.5px;color:var(--bad);padding-left:26px}.tmpl-prev{font:13px ui-monospace,Consolas,monospace;margin-top:8px}.hintline{font-size:12px;color:var(--soft);margin:4px 0 10px}.qtable{min-width:640px}.qhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.banner{border:1px solid var(--warn);background:var(--warn-soft);border-radius:12px;padding:14px 16px;margin-bottom:14px}.banner .bh{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.banner .bh b{font-size:14px}.banner p{margin:6px 0 0;font-size:13px}.banner pre{margin:8px 0 0;max-height:220px;overflow:auto;background:var(--card);border:1px solid var(--line2);border-radius:8px;padding:10px;font:11.5px/1.6 ui-monospace,Consolas,monospace;white-space:pre-wrap}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(8px);background:var(--ink);color:var(--bg);border-radius:999px;padding:8px 18px;font-size:13px;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;z-index:50}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}footer.pagefoot{margin-top:26px;color:var(--soft);font-size:12.5px}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.modalback{position:fixed;inset:0;background:#0a1214b8;display:flex;align-items:center;justify-content:center;padding:24px;z-index:100}.modalbox{background:var(--card);border:1px solid var(--line);border-radius:12px;width:min(1100px,96vw);height:min(88vh,900px);display:flex;flex-direction:column;overflow:hidden}.modalhead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line2);font-size:13px}.modalframe{flex:1;width:100%;border:0}.modalimg{flex:1;min-height:0;object-fit:contain;background:var(--bg)}.codes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px}.code-cell{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--soft);border:1px solid var(--line2);border-radius:8px;padding:6px 9px}.code-cell input{width:74px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:6px;padding:4px 7px;font:12px ui-monospace,Consolas,monospace;text-align:center}.owner-ask{display:inline-flex;align-items:center;gap:6px}.owner-ask .code-inp{width:130px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:4px 8px;font-size:12.5px}.review{padding:14px 16px;margin-bottom:14px;border-color:var(--brand)}.review-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin-bottom:6px}.review-head b{font-size:15px}.review-head .muted{font-size:12.5px;min-width:0}.review-nav{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:12.5px}.review-verdict{margin:0 0 12px;font-size:13.5px;border-radius:8px;padding:8px 11px;background:var(--line2);color:var(--soft)}.review-verdict.ok{background:var(--what-soft);color:var(--what)}.review-verdict.no{background:var(--warn-soft);color:var(--warn)}.cmp{display:grid;gap:6px;align-content:start}.cmp-row{display:grid;grid-template-columns:92px 1fr 1.2fr;gap:10px;font-size:13.5px;align-items:baseline;border-bottom:1px solid var(--line2);padding-bottom:6px}.cmp-row:last-child{border-bottom:0}.cmp-head{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--soft);font-weight:600;border-bottom:1px solid var(--line)}.cmp-l{font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--soft);font-weight:600}.cmp-wide{grid-column:2 / 4}.pagehead{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}.login{padding:10px 12px;font-size:13px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}.login .code-inp{width:140px;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:7px;padding:6px 8px;font-size:12.5px}.pubrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;margin-bottom:14px}.verlist{margin-bottom:14px}.verlist>summary{cursor:pointer;font-size:13.5px;color:var(--soft)}.verrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:6px 2px;border-bottom:1px solid var(--line2);font-size:13.5px}details.sect{border:1px solid var(--line2);border-radius:10px;background:var(--card)}details.sect>summary{cursor:pointer;list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:10px 12px;font-size:13.5px;font-weight:600}details.sect>summary::-webkit-details-marker{display:none}details.sect>summary:before{content:"▸";color:var(--soft);font-size:11px}details.sect[open]>summary:before{content:"▾"}.sect-body{padding:2px 12px 12px}@media(max-width:720px){.wrap{padding:14px 10px 48px}h1{font-size:22px}.thesis{font-size:13px}.login{width:100%}.login .code-inp{flex:1;min-width:110px;width:auto}.mini{padding:6px 10px}.drop{padding:16px 10px;margin:10px 10px 12px}.bar{padding:0 10px 10px}th,td{padding:8px}table{min-width:640px}.qtable{min-width:560px}.newname{min-width:120px}.fname{max-width:150px}.inq td{padding:12px 10px}.dtext{max-height:300px}.preview{height:300px}.previmg{max-height:300px}.review{padding:12px 10px}.review-nav{margin-left:0;width:100%;justify-content:flex-end}.cmp-row{grid-template-columns:70px 1fr 1.1fr;gap:6px;font-size:12.5px}.door-body{padding:12px 10px}.rrow input.lbl{width:130px}.step .val{font-size:13.5px}.modalback{padding:0}.modalbox{width:100vw;height:100dvh;border-radius:0;border:0}}.tabbar{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line);padding-bottom:8px}.tab{border:1px solid var(--line);background:var(--card);color:var(--soft);border-radius:8px;padding:6px 12px;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:6px}.tab.on{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);font-weight:600}.tabpane{min-width:0}.chip.soon{background:var(--warn-soft);color:var(--warn)}.langsw{display:flex;gap:4px}.langsw .mini.on,.mini.on{color:var(--brand);border-color:var(--brand);font-weight:600}td.mono{white-space:nowrap}.reviewbox{width:min(1200px,96vw);max-height:92vh;overflow:auto;border-radius:12px}.reviewbox .review{margin-bottom:0}
