:root{--bg: #0b0d12;--card: #141821;--line: #232a37;--text: #e8ecf4;--muted: #8a94a8;--acc: #7c5cff;--good: #3ecf8e;--bad: #ff9f43;--err: #ff5d6c}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 system-ui,-apple-system,Segoe UI,sans-serif}.app{max-width:980px;margin:0 auto;padding:16px}header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.brand{font-size:22px;font-weight:700}.logo{color:var(--acc)}.tag{font-size:13px;color:var(--muted);font-weight:400;margin-left:8px}.right{display:flex;gap:8px;align-items:center}nav{display:flex;gap:6px;margin:16px 0;flex-wrap:wrap}nav button.on{background:var(--acc);border-color:var(--acc);color:#fff}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px}h2{margin:0 0 6px}h3{margin:18px 0 8px;font-size:16px}h4{margin:14px 0 6px}label{display:flex;flex-direction:column;gap:4px;margin:10px 0;color:var(--muted);font-size:13px;flex:1}label.check{flex-direction:row;align-items:center;gap:8px;color:var(--text)}input,select,textarea{background:#0f131a;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 10px;font:inherit;min-width:0}button{background:#1c2230;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:9px 14px;font:inherit;cursor:pointer;margin:4px 4px 4px 0}button.primary{background:var(--acc);border-color:var(--acc);color:#fff;font-weight:600}button:disabled{opacity:.5;cursor:default}.row{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}.muted{color:var(--muted)}.ok,.err,.warn{border-radius:8px;padding:10px 12px;margin:12px 0;word-break:break-all}.ok{background:#0f2a20;border:1px solid var(--good)}.err{background:#2a1015;border:1px solid var(--err)}.warn{background:#2a2010;border:1px solid var(--bad)}code{background:#0f131a;padding:1px 5px;border-radius:4px;font-size:13px}table{width:100%;border-collapse:collapse}td,th{padding:6px;border-bottom:1px solid var(--line);text-align:left}.detail{border-top:1px solid var(--line);margin-top:16px;padding-top:6px}.detail ul{padding-left:18px}li.good{color:var(--good)}li.bad{color:var(--bad)}.badge{font-size:12px;padding:3px 8px;border-radius:999px;margin-left:8px}.badge.good{background:#0f2a20;color:var(--good)}.badge.bad{background:#2a2010;color:var(--bad)}.acct{background:#1c2230;padding:8px 12px;border-radius:8px}footer{color:var(--muted);font-size:12px;text-align:center;margin:24px 0}@media (max-width: 600px){.row{flex-direction:column;align-items:stretch}.tag{display:none}}.home{display:flex;flex-direction:column;gap:20px}.hero{padding:36px 8px 8px}.hero h1{font-size:clamp(28px,6vw,46px);line-height:1.1;margin:0 0 14px}.acc{color:var(--acc)}.lead{font-size:17px;max-width:720px;color:#c9d1e2}.cta{margin:18px 0 8px}.small{font-size:13px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}.grid4{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}.feat,.chain{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}.feat h3,.chain h4{margin:0 0 6px}.feat p{margin:0;color:#c0c8d8}.rules li{margin:6px 0}:root{--s1: #3987e5;--s2: #d95926;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #9085e9;--s8: #e66767}.presets{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.preset{display:flex;flex-direction:column;gap:4px;text-align:left;margin:0;padding:12px 14px;background:#0f131a}.preset b{font-size:14px}.preset span{font-size:12.5px;color:var(--muted)}.preset.on{border-color:var(--acc);background:#1b1733;box-shadow:0 0 0 1px var(--acc) inset}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.chip{margin:0;padding:5px 11px;border-radius:999px;font-size:13px}.detected{color:var(--good);font-size:13.5px;margin:-2px 0 6px}button.link{background:none;border:none;color:var(--acc);padding:6px 0;display:block}.adv{border-left:2px solid var(--line);padding-left:12px;margin:4px 0 8px}button.big{width:100%;padding:13px;font-size:16px;margin-top:10px}label.narrow{flex:0 1 170px}label.pct{flex:0 0 80px}.row.end{justify-content:flex-end}.problems .err,.problems .warn{margin:6px 0;word-break:normal}.steps{margin:12px 0;color:var(--text);display:flex;align-items:center;gap:10px}.spin{width:16px;height:16px;border:2px solid var(--line);border-top-color:var(--acc);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.viz{margin:14px 0}.viz figcaption{font-size:13px;color:var(--text);font-weight:600;margin-bottom:6px}.viz-wrap{position:relative}.viz svg{width:100%;height:auto;display:block;touch-action:pan-y}.viz .grid{stroke:var(--line);stroke-width:1}.viz .axis{fill:var(--muted);font-size:11px}.viz .now{stroke:var(--muted);stroke-dasharray:3 3}.viz .ref{stroke:var(--s3);stroke-dasharray:4 3}.viz .cross{stroke:var(--text);stroke-opacity:.35}.tip{position:absolute;top:4px;transform:translate(-50%);background:#0b0d12;border:1px solid var(--line);border-radius:8px;padding:6px 9px;font-size:12px;pointer-events:none;display:flex;flex-direction:column;white-space:nowrap}.splitbar{display:flex;gap:2px;height:22px}.splitbar .seg{border-radius:4px;min-width:4px;transition:opacity .15s}.splitbar:hover .seg:not(.on){opacity:.45}.legend{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;color:var(--muted)}.legend li{display:flex;align-items:center;gap:6px}.legend li.on{color:var(--text)}.legend i{width:10px;height:10px;border-radius:3px;display:inline-block}.legend b{color:var(--text)}.timeline{margin:10px 0}.timeline .bar{height:10px;border-radius:6px;background:repeating-linear-gradient(90deg,#1a2030 0 2px,#0f131a 2px 12px);border:1px solid var(--line);overflow:hidden}.timeline .fill{height:100%;background:var(--s1);border-radius:6px}.timeline .bar.forever{background:repeating-linear-gradient(45deg,var(--s1) 0 6px,#1d3a66 6px 12px)}.tl-labels{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:4px;gap:8px}.tl-labels b{color:var(--text)}li.plain{list-style:none;margin-left:-18px}.modal{position:fixed;inset:0;background:#05070abf;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;max-width:560px;width:100%;max-height:90vh;overflow:auto}.summary{padding-left:18px}.summary li{margin:6px 0}label.ack{background:#2a2010;border:1px solid var(--bad);border-radius:8px;padding:10px}@media (max-width: 600px){label.narrow,label.pct{flex:1 1 auto}.viz svg{min-height:0}}
