@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700;800&family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#f4f6fb;--white:#fff;--surface:#eef1f8;--border:#d9e0f2;--border2:#bcc7e8;--accent:#2563eb;--accent2:#1d4ed8;--light:#eaf1ff;--green:#059669;--amber:#b45309;--red:#dc2626;--text:#16213e;--muted:#687089;--dim:#9aa4b8;--mono:'JetBrains Mono',monospace;--sans:'Inter',sans-serif}
*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100%;overflow-x:hidden}body{font-family:var(--sans);background:var(--bg);color:var(--text)}
.hero{background:linear-gradient(135deg,#1d4ed8,#60a5fa);padding:36px 20px 30px;text-align:center;color:#fff}.hero h1{font-size:clamp(26px,4vw,42px);font-weight:800}.hero p{margin-top:8px;opacity:.85}.wrap{max-width:1240px;margin:auto;padding:28px 18px 64px}.card{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:26px;margin-bottom:20px;box-shadow:0 8px 24px rgba(37,99,235,.06)}.section-label{text-transform:uppercase;font-size:12px;letter-spacing:2px;color:var(--accent);font-weight:800;margin-bottom:18px}
.format-panel{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f8fbff;border:1px solid var(--border);border-radius:14px;padding:16px;margin-bottom:18px}.format-note{font-size:12px;color:var(--dim);margin-top:4px}.mode-title{font-size:13px;font-weight:800;color:var(--muted);margin-bottom:10px}.mode-title.left{margin-bottom:0}.format-toggle,.mode-toggle{display:inline-grid;grid-template-columns:1fr 1fr;gap:4px;background:#f0f3fb;border:1.5px solid var(--border);padding:4px;border-radius:12px;min-width:320px}.format-toggle button,.mode-toggle button{border:none;background:transparent;border-radius:9px;padding:11px 18px;font-weight:800;color:var(--muted);cursor:pointer}.format-toggle button.active,.mode-toggle button.active{background:var(--accent);color:#fff;box-shadow:0 4px 14px rgba(37,99,235,.18)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.field label{display:block;font-weight:800;color:var(--muted);font-size:13px}.label-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.counter{font:800 12px var(--mono);border-radius:999px;padding:4px 8px;background:#fff1f2;color:var(--red);border:1px solid #fecdd3}.counter.ok{background:#ecfdf5;color:var(--green);border-color:#bbf7d0}.counter.bad{background:#fff1f2;color:var(--red);border-color:#fecdd3}.field input{width:100%;border:1.5px solid var(--border);background:#f3f6ff;border-radius:10px;padding:14px 16px;font:700 18px var(--mono);letter-spacing:2px;color:#172554;outline:none}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(37,99,235,.10)}.field input.valid{border-color:#86efac;background:#f0fdf4}.field input.invalid{border-color:#fca5a5;background:#fff7f7}.field small{display:block;margin-top:7px;color:var(--dim);font-size:12px}.validation{font-size:12px;font-weight:800;margin-top:6px}.validation.ok{color:var(--green)}.validation.bad{color:var(--red)}
.control-center{text-align:center;margin-top:24px}.actions{display:flex;justify-content:center;gap:12px;margin-top:18px}.actions button{border:none;border-radius:11px;padding:13px 28px;font-weight:800;cursor:pointer;font-size:15px}.actions button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--accent);color:white}.secondary{background:#eef2ff;color:var(--muted);border:1px solid var(--border)!important}.hidden{display:none!important}
.result-box{background:linear-gradient(135deg,#eaf1ff,#dbeafe);border:1.5px solid #bfdbfe;border-radius:14px;text-align:center;padding:24px}.result-title{text-transform:uppercase;letter-spacing:1px;color:var(--accent);font-weight:800;font-size:12px}.result-primary{margin:14px auto 12px;display:inline-flex;align-items:center;gap:12px;background:white;border:1px solid #bfdbfe;border-radius:12px;padding:12px 20px}.result-primary span{color:var(--muted);font-weight:800}.result-primary strong{font:800 clamp(24px,4vw,36px) var(--mono);color:var(--accent2);letter-spacing:3px}.result-secondary{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;align-items:center;text-align:left;background:#fff;border:1px solid #c7d2fe;border-radius:10px;padding:12px;max-width:900px;margin:0 auto}.result-secondary span{font-size:12px;font-weight:800;color:var(--muted)}.result-secondary code{font:700 13px var(--mono);color:#334155;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.toggle{width:100%;margin-top:16px;padding:13px;border:1.5px dashed var(--border2);background:#f5f7fc;color:var(--muted);border-radius:10px;font-weight:800;cursor:pointer}.solution{margin-top:18px}
.sec,.round-card{background:#f2f5fb;border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:16px}.title{display:flex;align-items:center;gap:10px;color:var(--accent);font-weight:800;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:14px}.num{background:var(--accent);color:#fff;width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0}.pill{display:inline-block;background:#eaf1ff;border:1px solid #bfdbfe;border-radius:8px;color:var(--accent);padding:6px 12px;font:700 13px var(--mono);margin-bottom:12px}.table-wrap{overflow-x:auto;margin:12px 0;max-width:100%}.tbl{width:100%;border-collapse:collapse;background:#fff;font:600 13px var(--mono)}.tbl th,.tbl td{border:1px solid var(--border2);padding:9px 10px;text-align:center;vertical-align:top}.tbl th{background:#f8fbff;color:var(--dim);white-space:nowrap}.tbl td:first-child{text-align:left;background:#eef2fa;font-family:var(--sans);font-weight:800;color:var(--muted);white-space:nowrap}.mono{font-family:var(--mono);font-weight:800;letter-spacing:1px}.blue{color:var(--accent)}.green{color:var(--green)}.amber{color:var(--amber)}.breakable{white-space:normal!important;overflow-wrap:anywhere;word-break:break-word}.data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info{background:#fff;border:1px solid var(--border);border-radius:9px;padding:11px 14px;color:var(--muted);font-weight:700;min-width:0}.info span{display:block;font-size:12px;margin-bottom:5px}.info b{display:block;font-family:var(--mono);color:var(--accent);overflow-wrap:anywhere;word-break:break-word;white-space:normal}.info.span-2{grid-column:1/-1}.wrap-code b{font-size:13px;line-height:1.55}.round-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.sbox-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:12px 0}.sbox-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:11px}.sbox-card h4{color:var(--accent);font-size:13px;margin-bottom:7px}.sbox-card p{font-size:12px;color:var(--muted);line-height:1.6}.round-card{padding:0;overflow:hidden}.round-card summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;cursor:pointer;padding:16px 20px;color:var(--accent);font-weight:800}.round-card summary::-webkit-details-marker{display:none}.round-card summary span:first-child{display:flex;align-items:center;gap:10px}.summary-right{font:700 12px var(--mono);color:var(--muted);text-align:right;overflow-wrap:anywhere;word-break:break-word}.round-body{padding:0 20px 20px;border-top:1px solid var(--border)}.final{background:linear-gradient(135deg,#eaf1ff,#dbeafe);border:1.5px solid #bfdbfe;border-radius:12px;padding:18px;margin-top:12px}.final-row{display:flex;gap:12px;margin:8px 0;align-items:flex-start}.final-row span:first-child{min-width:130px;color:var(--muted);font-weight:800}.final-row b{font-family:var(--mono);background:#fff;border:1px solid #bfdbfe;border-radius:7px;padding:6px 12px;color:var(--accent);overflow-wrap:anywhere;word-break:break-word}footer{text-align:center;color:var(--dim);padding:22px}
@media(max-width:1000px){.sbox-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:760px){.grid,.data-grid,.round-grid{grid-template-columns:1fr}.info.span-2{grid-column:auto}.format-panel{flex-direction:column;align-items:stretch}.format-toggle,.mode-toggle{min-width:auto;width:100%}.result-secondary{grid-template-columns:1fr}.actions{flex-direction:column}.round-card summary{flex-direction:column;align-items:flex-start}.summary-right{text-align:left}.sbox-grid{grid-template-columns:1fr}}
