:root{--bg:#0f172a;--bg-soft:#16213d;--card:#fff;--ink:#0f172a;--muted:#64748b;--border:#e2e8f0;--accent:#4f46e5;--accent-soft:#eef2ff;--danger:#dc2626;--bit-net:#dbeafe;--bit-net-ink:#1e3a8a;--bit-host:#f1f5f9;--bit-host-ink:#475569;--bit-class:#d1fae5;--bit-class-ink:#065f46;--bit-subnet:#ede9fe;--bit-subnet-ink:#5b21b6;--bit-mask:#fecaca;--bit-mask-ink:#991b1b;--shadow:0 10px 30px #02061726;--radius:14px;--glow-1:#1e3a8a55;--glow-2:#5b21b655}:root[data-season=spring]{--bg:#0d1f1a;--bg-soft:#122b24;--accent:#059669;--accent-soft:#ecfdf5;--glow-1:#05966955;--glow-2:#4ade8055}:root[data-season=spring][data-theme=dark]{--accent:#10b981;--accent-soft:#10b98140}:root[data-season=summer]{--bg:#1b1310;--bg-soft:#2b1e17;--accent:#ea580c;--accent-soft:#fff7ed;--glow-1:#ea580c55;--glow-2:#f59e0b55}:root[data-season=summer][data-theme=dark]{--accent:#f97316;--accent-soft:#f9731640}:root[data-season=autumn]{--bg:#221712;--bg-soft:#33261c;--accent:#d97706;--accent-soft:#fffbeb;--glow-1:#d9770655;--glow-2:#dc262655}:root[data-season=autumn][data-theme=dark]{--accent:#f59e0b;--accent-soft:#f59e0b40}:root[data-season=winter]{--bg:#0b1a2b;--bg-soft:#132a3f;--accent:#0284c7;--accent-soft:#e0f2fe;--glow-1:#0ea5e955;--glow-2:#818cf855}:root[data-season=winter][data-theme=dark]{--accent:#0ea5e9;--accent-soft:#0ea5e940}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(1200px 600px at 20% -10%, var(--glow-1), transparent 60%), radial-gradient(1000px 500px at 100% 0%, var(--glow-2), transparent 55%), var(--bg);color:var(--ink);min-height:100vh;font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif}.app{max-width:1080px;margin:0 auto;padding:2rem 1.25rem 3rem}.hero{color:#e2e8f0;text-align:center;flex-direction:column;align-items:center;margin-bottom:1.75rem;display:flex}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.hero h1{letter-spacing:.4px;margin:0 0 .4rem;font-size:clamp(1.5rem,4vw,2.25rem)}.hero p{color:#94a3b8;margin:0;font-size:.95rem}.hero code,.footer code{color:#93c5fd;background:#1e293b;border-radius:5px;padding:.1rem .35rem;font-size:.9em}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.form-card{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;padding:1.25rem;display:flex}.field{flex-direction:column;flex:200px;gap:.4rem;display:flex}.field label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.field input{border:1px solid var(--border);background:#f8fafc;border-radius:10px;width:100%;padding:.65rem .8rem;font-family:inherit;font-size:1rem;transition:border-color .15s,box-shadow .15s,background .15s}.field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);background:#fff;outline:none}.errors{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-bottom:1rem;padding:.8rem 1rem}.error-item{margin:.15rem 0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9rem}.results{flex-direction:column;gap:1.25rem;display:flex}.main-section,.section-card{padding:1.1rem 1.25rem}.lines{flex-direction:column;display:flex}.line{border-bottom:1px dashed var(--border);grid-template-columns:100px 190px 1fr;align-items:center;gap:.9rem;padding:.55rem 0;display:grid}.line:last-child{border-bottom:none}.line-label{color:var(--muted);text-align:right;font-size:.85rem;font-weight:600}.line-address{white-space:nowrap;align-items:baseline;gap:.4rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;display:flex}.line-dotted{color:var(--ink);font-size:1.02rem;font-weight:700}.line-extra{color:var(--accent);font-size:.85rem;font-weight:600}.line-binary{overflow-x:auto}.binary{white-space:nowrap;align-items:center;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.92rem;line-height:1.9;display:inline-flex}.bit{text-align:center;border-radius:4px;min-width:1.15ch;margin:0 1px;padding:0 1px;display:inline-block}.bit-net{background:var(--bit-net);color:var(--bit-net-ink)}.bit-host{background:var(--bit-host);color:var(--bit-host-ink)}.bit-class{background:var(--bit-class);color:var(--bit-class-ink)}.bit-subnet{background:var(--bit-subnet);color:var(--bit-subnet-ink)}.bit-mask{background:var(--bit-mask);color:var(--bit-mask-ink)}.bit-divider{width:.55rem;display:inline-block}.bit-dot{color:#94a3b8;margin:0 1px}.arrow{color:var(--accent);padding:.35rem 0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:1rem;font-weight:700}.net-card{border-top:1px solid var(--border);margin-top:.35rem;padding-top:.2rem}.net-footer{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-top:.5rem;padding-top:.7rem;display:flex}.footer-hosts{align-items:baseline;gap:.5rem;display:flex}.footer-label,.total-label{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.footer-value,.total-value{color:var(--accent);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:1.15rem;font-weight:700}.tags{flex-wrap:wrap;gap:.45rem;display:flex}.tag{border:1px solid #0000;border-radius:999px;padding:.22rem .6rem;font-size:.78rem;font-weight:600;text-decoration:none}.tag-class{color:#065f46;background:#d1fae5}.tag-rfc1918{color:#1e3a8a;background:#dbeafe;border-color:#93c5fd}.tag-special{color:#475569;background:#f1f5f9}.tag-ptp{color:#5b21b6;background:#ede9fe}.section-title{margin:0 0 .6rem;font-size:1.05rem}.subnets-heading{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1rem 0 .5rem;font-size:.85rem}.subnet-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:.9rem;display:grid}.subnet-entry{border:1px solid var(--border);background:#f8fafc;border-radius:12px;padding:.7rem .9rem}.subnet-entry-header{align-items:baseline;gap:.4rem;margin-bottom:.35rem;display:flex}.subnet-number{color:var(--muted);font-size:.9rem;font-weight:700}.subnet-network{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.95rem;font-weight:700}.subnet-rows .line{grid-template-columns:76px 140px 1fr;gap:.6rem;padding:.35rem 0;font-size:.9rem}.subnet-rows .line-label{font-size:.78rem}.subnet-rows .line-dotted{font-size:.9rem}.subnet-rows .binary{font-size:.78rem}.subnet-entry-footer{border-top:1px dashed var(--border);flex-wrap:wrap;align-items:center;gap:.6rem;margin-top:.4rem;padding-top:.45rem;display:flex}.section-totals{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:1.25rem;margin-top:1rem;padding-top:.8rem;display:flex}.total-box{flex-direction:column;display:flex}.truncated-note{color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:0;padding:.4rem .7rem;font-size:.85rem}.footer{text-align:center;color:#64748b;margin-top:2rem;font-size:.85rem}@media (width<=640px){.app{padding:1.25rem .9rem 2rem}.main-section,.section-card{padding:.9rem}.line{grid-template-columns:1fr;gap:.25rem;padding:.6rem 0}.line-label{text-align:left}.line-address{font-size:1.05rem}.subnet-rows .line{grid-template-columns:1fr}.hero{padding-top:.5rem}.ipv6-line{grid-template-columns:1fr}.ipv6-line .line-label{text-align:left}}.lang-switch{background:var(--bg-soft);border:1px solid #334155;border-radius:999px;display:inline-flex;overflow:hidden}.lang-switch button{color:#94a3b8;cursor:pointer;background:0 0;border:none;padding:.4rem .8rem;font-size:.8rem;font-weight:700;transition:background .15s,color .15s}.lang-switch button:hover{color:#e2e8f0}.lang-switch button.is-active{background:var(--accent);color:#fff}.theme-toggle{background:var(--bg-soft);color:#e2e8f0;cursor:pointer;border:1px solid #334155;border-radius:999px;padding:.4rem .95rem;font-size:.8rem;font-weight:600;transition:background .15s,color .15s}.theme-toggle:hover{background:#1e293b}.season-label{background:var(--bg-soft);border:1px solid #334155;border-radius:999px;align-items:center;gap:.35rem;padding:.2rem .6rem;display:inline-flex}.season-select{color:#e2e8f0;cursor:pointer;background:0 0;border:none;outline:none;padding:.15rem .1rem;font-family:inherit;font-size:.78rem;font-weight:600}.season-select option{color:#e2e8f0;background:#0f172a}.season-select:hover{color:#fff}.field-hint{color:var(--muted);font-size:.78rem}.field-hint code,.legend code{background:#e2e8f0;border-radius:4px;padding:0 .3rem;font-size:.85em}.presets{flex-wrap:wrap;align-items:center;gap:.4rem;margin:0 0 .9rem;display:flex}.presets-label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin-right:.2rem;font-size:.78rem;font-weight:600}.preset-btn{border:1px solid var(--border);background:var(--card);color:var(--ink);cursor:pointer;border-radius:999px;padding:.3rem .8rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85rem;transition:border-color .15s,background .15s,color .15s}.preset-btn:hover{border-color:var(--accent);color:var(--accent)}.preset-btn.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.toolbar{align-items:center;gap:.6rem;margin-bottom:.9rem;display:flex}.mode-badge{letter-spacing:.05em;border-radius:6px;padding:.25rem .65rem;font-size:.75rem;font-weight:700}.mode-badge.ipv4{background:var(--accent-soft);color:var(--accent)}.mode-badge.ipv6{color:#065f46;background:#d1fae5}.tool-btn{border:1px solid var(--border);background:var(--card);color:var(--ink);cursor:pointer;border-radius:10px;margin-left:auto;padding:.4rem .95rem;font-size:.85rem;font-weight:600;transition:border-color .15s,background .15s,color .15s}.tool-btn:hover{border-color:var(--accent);color:var(--accent)}.tool-btn.copied{background:var(--accent);border-color:var(--accent);color:#fff}.ipv6-line{grid-template-columns:110px minmax(0,1fr);align-items:baseline}.ipv6-line .line-address{white-space:normal}.ipv6-line .line-dotted{overflow-wrap:anywhere;font-size:.95rem}.legend{margin-top:1.25rem;padding:.9rem 1.1rem}.legend summary{cursor:pointer;color:var(--ink);font-weight:600}.legend ul{color:var(--muted);gap:.35rem;margin:.6rem 0 0;padding-left:1.1rem;font-size:.88rem;display:grid}.legend strong{color:var(--ink)}.footer-link{color:var(--accent);font-weight:600;text-decoration:none}.footer-link:hover{text-decoration:underline}:root[data-theme=dark]{--card:#16213d;--ink:#e2e8f0;--muted:#94a3b8;--border:#2b3a5e;--accent-soft:#4f46e540;--bit-net:#3b82f62e;--bit-net-ink:#93c5fd;--bit-host:#94a3b824;--bit-host-ink:#cbd5e1;--bit-class:#34d3992e;--bit-class-ink:#6ee7b7;--bit-subnet:#a78bfa2e;--bit-subnet-ink:#c4b5fd;--bit-mask:#f871712e;--bit-mask-ink:#fca5a5;--shadow:0 10px 30px #00000073}:root[data-theme=dark] .field input{color:var(--ink);background:#0f172a}:root[data-theme=dark] .field input:focus{background:#0f172a}:root[data-theme=dark] .errors{color:#fca5a5;background:#2a1518;border-color:#7f1d1d}:root[data-theme=dark] .subnet-entry{background:#0f172a}:root[data-theme=dark] .truncated-note{color:#fbbf24;background:#33271a;border-color:#78350f}:root[data-theme=dark] .field-hint code,:root[data-theme=dark] .legend code{color:#93c5fd;background:#1e293b}:root[data-theme=dark] .mode-badge.ipv6{color:#6ee7b7;background:#34d39926}:root[data-theme=dark] .tag-special{color:#cbd5e1;background:#1e293b}:root[data-theme=dark] .tag-class{color:#6ee7b7;background:#34d39926}:root[data-theme=dark] .tag-rfc1918{color:#93c5fd;background:#3b82f626;border-color:#334155}:root[data-theme=dark] .tag-ptp{color:#c4b5fd;background:#a78bfa26}:root[data-theme=dark] .theme-toggle{color:#e2e8f0;background:#16213d;border-color:#334155}:root[data-theme=dark] .theme-toggle:hover{background:#1e293b}.calc-tabs{border:1px solid var(--border);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow);gap:.35rem;margin-bottom:1.25rem;padding:.3rem;display:flex}.calc-tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:.6rem .8rem;font-family:inherit;font-size:.88rem;font-weight:600;transition:background .15s,color .15s,box-shadow .15s}.calc-tab:hover{color:var(--ink);background:var(--accent-soft)}.calc-tab.is-active{background:var(--accent);color:#fff;box-shadow:0 2px 8px #4f46e54d}.base-converter{flex-direction:column;gap:1rem;display:flex}.base-converter .calc-card{padding:1.25rem}.base-fields{flex-direction:column;gap:.5rem;display:flex}.base-fields>.field{flex:none}.base-tag{background:var(--accent-soft);color:var(--accent);vertical-align:middle;border-radius:4px;margin-left:.4rem;padding:.1rem .4rem;font-size:.7rem;font-weight:700;display:inline-block}.mono-input{font-family:ui-monospace,Cascadia Code,Consolas,monospace}.base-error{color:#991b1b;background:#fef2f2;border:1px solid #fecaca;border-radius:10px;margin-top:.75rem;padding:.6rem .8rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.88rem}.base-custom-field label{align-items:center;gap:.5rem;display:flex}.base-select{border:1px solid var(--border);background:var(--card);color:var(--ink);cursor:pointer;border-radius:6px;padding:.2rem .4rem;font-family:inherit;font-size:.78rem}.simple-calculator{flex-direction:column;gap:1rem;display:flex}.simple-calculator .calc-card{width:100%;max-width:380px;margin:0 auto;padding:1.25rem}.simple-layout{justify-content:center;align-items:flex-start;gap:1rem;display:flex}.func-panel{background:var(--card);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.4rem;min-width:64px;padding:.5rem;display:flex}.func-cat{color:var(--muted);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:8px;padding:.5rem .75rem;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .15s,color .15s}.func-cat:hover,.func-cat.is-active{background:var(--accent-soft);color:var(--accent)}@media (width<=480px){.simple-layout{flex-direction:column;align-items:center}.func-panel{flex-flow:wrap;justify-content:center}}.simple-display{border:1px solid var(--border);text-align:right;width:100%;color:var(--ink);background:#f8fafc;border-radius:10px;margin-bottom:.35rem;padding:.9rem 1rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:2rem}.simple-subdisplay{text-align:right;color:var(--muted);min-height:1.1rem;margin-bottom:.75rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.9rem}.simple-logrow{grid-template-columns:repeat(5,minmax(0,1fr));gap:.4rem;margin:.35rem 0 .6rem;display:grid}.simple-btn-log{white-space:nowrap;text-overflow:ellipsis;background:var(--accent-soft);width:100%;color:var(--accent);border:1px solid #94a3b866;justify-content:center;align-items:center;padding:0;font-size:.85rem;line-height:1;display:inline-flex;overflow:hidden}.simple-btn-log:hover{filter:brightness(.97)}.simple-btn-log.is-active{outline:2px solid var(--accent)}.simple-logcustom{align-items:flex-end;gap:.5rem;margin-bottom:.6rem;display:flex}.simple-logcustom label{color:var(--muted);flex-direction:column;gap:.25rem;font-size:.78rem;font-weight:600;display:flex}.simple-logbase-input{border:1px solid var(--border);background:var(--card);width:7rem;color:var(--ink);border-radius:8px;padding:.4rem .6rem;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.95rem}.simple-btn-loggo{min-height:2.4rem;padding:.4rem 1rem;font-size:.9rem}@media (width<=420px){.simple-btn-log{font-size:.75rem}}.simple-keypad{grid-template-columns:repeat(4,1fr);gap:.55rem;display:grid}.simple-btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:100%;min-height:3.2rem;padding:0;font-family:inherit;font-size:1.2rem;font-weight:600;line-height:1;transition:filter .15s,transform 50ms;display:inline-flex}.simple-btn:active{transform:scale(.96)}.simple-btn-num{background:var(--card);border:1px solid var(--border);color:var(--ink)}.simple-btn-num:hover{filter:brightness(.97)}.simple-btn-fn{border:1px solid var(--border);color:var(--ink);background:#f1f5f9}.simple-btn-fn:hover{filter:brightness(.97)}.simple-btn-op{background:var(--accent-soft);color:var(--accent);border:1px solid #94a3b866}.simple-btn-op:hover{filter:brightness(.97)}.simple-btn-eq{color:#15803d;background:#dcfce7;border:1px solid #86efac;grid-column:span 1}.simple-btn-eq:hover{filter:brightness(.97)}.simple-history{border-top:1px solid var(--border);margin-top:1.25rem;padding-top:.75rem}.simple-history-title{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.8rem;font-weight:700}.simple-history-head{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.simple-history-clear{border:1px solid var(--border);background:var(--card);cursor:pointer;color:var(--muted);border-radius:6px;padding:.15rem .45rem;font-size:.85rem;line-height:1;transition:background .15s,color .15s}.simple-history-clear:hover{background:var(--accent-soft);color:var(--accent)}.simple-history-entry{cursor:pointer;text-align:left;background:0 0;border:none;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:.35rem 0;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.88rem;display:flex}.simple-history-entry:hover{background:var(--card);border-radius:6px;padding-left:.35rem;padding-right:.35rem}.simple-btn-ac{color:#b91c1c;background:#fee2e2;border:1px solid #fca5a5}.simple-btn-ac:hover{filter:brightness(.97)}.simple-btn-del{color:#b45309;background:#fef3c7;border:1px solid #fcd34d}.simple-btn-del:hover{filter:brightness(.97)}.simple-history-expr{color:var(--muted)}.simple-history-val{color:var(--ink)}:root[data-theme=dark] .simple-display{background:#0f172a}:root[data-theme=dark] .simple-btn-fn{background:#1e293b}@media (width<=640px){.simple-btn{min-height:2.9rem;font-size:1.05rem}}
