*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{--primary:#F97316;--primary-light:#FB923C;--accent:#06B6D4;--bg:#1A0F0A;--bg-card:rgba(26,15,10,0.75);--border:rgba(249,115,22,0.15);--border-hover:rgba(249,115,22,0.3);--text:#F5E8DA;--text-muted:#B8A08A;--text-dim:#7A6550;--radius:12px;--radius-sm:8px;--transition:250ms ease;--font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
html{font-size:16px;-webkit-font-smoothing:antialiased}
body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.6}
body::before{content:'';position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 50% 40% at 20% 10%,rgba(249,115,22,0.05),transparent 70%),radial-gradient(ellipse 40% 50% at 80% 90%,rgba(6,182,212,0.04),transparent 70%)}
.app{position:relative;z-index:1;max-width:720px;margin:0 auto;padding:0 20px}
.hidden{display:none!important}

.header{padding:32px 0 16px;text-align:center}
.logo{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:6px}
.logo h1{font-size:1.5rem;font-weight:700;background:linear-gradient(135deg,var(--primary),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.subtitle{color:var(--text-muted);font-size:0.9rem}

.main{display:flex;flex-direction:column;gap:20px;padding-bottom:40px}
section{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;backdrop-filter:blur(12px)}
.section-header{margin-bottom:12px}
.section-header h2{font-size:1rem;font-weight:600}

.input-row{display:flex;align-items:center;gap:8px}
.input-row input[type="text"]{flex:1;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;font-family:'SF Mono','Fira Code',monospace;font-size:1rem;color:var(--text)}
.input-row input[type="number"]{width:64px;background:rgba(0,0,0,0.3);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px;font-family:'SF Mono','Fira Code',monospace;font-size:1rem;color:var(--text);text-align:center}
.input-row input:focus{outline:none;border-color:var(--primary)}
.slash{font-size:1.2rem;color:var(--text-dim);font-weight:700}

.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.result-card{background:rgba(0,0,0,0.2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px}
.result-label{font-size:0.75rem;font-weight:500;color:var(--text-dim);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:4px}
.result-value{font-size:0.95rem;font-weight:600;font-family:'SF Mono','Fira Code',monospace;color:var(--primary-light);word-break:break-all}

.binary-grid{display:flex;flex-direction:column;gap:8px}
.binary-row{display:flex;align-items:center;gap:10px}
.binary-label{font-size:0.8rem;font-weight:500;color:var(--text-muted);min-width:90px}
.binary-val{font-family:'SF Mono','Fira Code',monospace;font-size:0.82rem;color:var(--accent);letter-spacing:1px}
.binary-val .net-bit{color:var(--primary-light)}
.binary-val .host-bit{color:var(--text-dim)}

.subnet-map{display:flex;flex-wrap:wrap;gap:3px}
.map-block{width:14px;height:14px;border-radius:3px;transition:all var(--transition);cursor:default}
.map-block.network{background:var(--primary)}
.map-block.host{background:rgba(6,182,212,0.3)}
.map-block.broadcast{background:var(--accent)}

.btn{display:inline-flex;align-items:center;font-family:var(--font);font-size:0.85rem;font-weight:500;padding:10px 18px;border-radius:var(--radius-sm);border:none;cursor:pointer;transition:all var(--transition)}
.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-light));color:#fff;box-shadow:0 4px 14px rgba(249,115,22,0.3)}
.btn-primary:hover{box-shadow:0 6px 20px rgba(249,115,22,0.45);transform:translateY(-1px)}
.btn:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

.footer{text-align:center;padding:16px 0 32px;color:var(--text-dim);font-size:0.75rem}
@media(max-width:600px){.input-row{flex-wrap:wrap}.results-grid{grid-template-columns:1fr}.header{padding:24px 0 12px}.logo h1{font-size:1.3rem}}
