.lab{gap:14px;min-width:0;display:grid}.lab-row{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.lab-row>*{flex:150px;min-width:0}.presets{flex-wrap:wrap;gap:6px;display:flex}.presets button{font:500 12px var(--mono);background:var(--bg);color:var(--text-muted);border:1px solid var(--wire-off);direction:ltr;border-radius:999px;padding:4px 10px;transition:color .2s,border-color .2s}.presets button:hover,.presets button.on{color:var(--text);border-color:var(--accent)}.fld{color:var(--text-muted);gap:6px;font-size:13px;display:grid}.fld b{color:var(--accent-text)}.inp{width:100%;font:500 16px var(--mono);font-variant-ligatures:none;border:1px solid var(--wire-off);background:var(--bg);color:var(--text);text-align:left;direction:ltr;border-radius:10px;padding:8px 12px;transition:border-color .2s}.inp:focus{border-color:var(--accent);outline:none}.inp.bad{border-color:var(--error)}.rng{width:100%;accent-color:var(--accent);height:28px}.ipb-row{gap:4px;min-width:0;display:grid}.ipb-label{color:var(--text-muted);font-size:12px}.ipb{direction:ltr;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.ipb .bits8{grid-template-columns:repeat(8,minmax(0,1fr));gap:2px;display:grid}.ipb .b{height:26px;font:500 12px var(--mono);background:var(--bg);color:#6f6f7b;border-radius:4px;place-items:center;padding:0;transition:background .3s,color .3s;display:grid}.ipb button.b:hover{outline:1px solid var(--accent)}.ipb .b.one{color:var(--text)}.ipb .b.net{background:#6e56cf61}.ipb .b.sub{background:#e2a03f59}.ipb .b.host{background:#3fcf8e24}.ipb .b.lead{background:var(--accent);color:var(--on-accent)}.ipb .b.on{background:#3fcf8e6b}.ipb .dec{text-align:center;margin-top:2px;font-size:15px;font-weight:600}@media (max-width:560px){.ipb{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}}.legend{color:var(--text-muted);flex-wrap:wrap;gap:6px 14px;font-size:12px;display:flex}.legend i{vertical-align:-1px;border-radius:3px;width:12px;height:12px;margin-inline-end:6px;display:inline-block}.legend .net{background:#6e56cfb3}.legend .sub{background:#e2a03fa6}.legend .host{background:#3fcf8e66}.kv{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;display:grid}.kv>div{background:var(--bg);border-radius:12px;min-width:0;padding:8px 12px}.kv dt{color:var(--text-muted);font-size:12px}.kv dd{overflow-wrap:anywhere;font-size:15px;font-weight:600}.kv .hl dd{color:var(--accent-text)}.kv .ok dd{color:var(--success)}.calc{color:var(--text-muted);gap:6px;font-size:15px;list-style:none;display:grid}.calc li{background:var(--bg);border-radius:10px;padding:8px 12px}.calc li b{color:var(--text)}.calc .m{font-family:var(--mono);font-variant-ligatures:none;color:var(--text);overflow-wrap:anywhere;direction:ltr;unicode-bidi:isolate;display:inline-block}.note{color:var(--text-muted);font-size:14px}.note.good{color:var(--success)}.note.bad{color:var(--error)}.byte{direction:ltr;grid-template-columns:repeat(8,minmax(0,1fr));gap:6px;display:grid}.byte .bit{background:var(--bg);border:1px solid var(--wire-off);border-radius:10px;justify-items:center;gap:2px;padding:8px 0;transition:background .25s,border-color .25s;display:grid}.byte .bit .w{color:var(--text-muted);font-size:11px}.byte .bit b{font:600 20px var(--mono);color:#6f6f7b}.byte .bit.on{border-color:var(--accent);background:#6e56cf4d}.byte .bit.on b{color:var(--text)}.sum-line{text-align:center;color:var(--text-muted);font-size:18px}.sum-line b{color:var(--accent-text);font-size:26px}.goal-line{color:var(--text-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;font-size:15px;display:flex}.goal-line b{color:var(--text)}.goal-line.hit{color:var(--success)}.classes{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;display:grid}.cls{background:var(--bg);color:var(--text-muted);border:2px solid #0000;border-radius:12px;justify-items:center;gap:2px;padding:8px 4px;font-size:11px;display:grid}.cls b{color:var(--text);font-size:18px}.cls.on{border-color:var(--accent)}@media (max-width:460px){.classes{grid-template-columns:repeat(3,minmax(0,1fr))}}.allowed{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:6px;font-size:13px;display:flex}.allowed .chip{padding:3px 10px}.allowed .chip.on{background:var(--accent);color:var(--on-accent)}.tbl-wrap:has(.net-tbl){direction:ltr}.net-tbl{font-family:var(--mono);font-variant-ligatures:none;direction:ltr;font-size:13px}.net-tbl th,.net-tbl td{text-align:left;padding:8px 10px}.net-tbl th{font-family:var(--font);direction:rtl}.net-tbl tr.mine td{color:var(--text);background:#6e56cf38}.net-tbl tr.gap td{text-align:center;color:var(--text-muted)}.problem{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.problem b{font-family:var(--mono);color:var(--accent-text);font-size:24px}
.lx{background:var(--bg-code);border:1px solid var(--border);border-radius:16px;min-width:0;overflow:hidden}.lx-head{border-bottom:1px solid var(--border);color:var(--text-muted);justify-content:space-between;align-items:center;padding:8px 14px;font-size:12px;display:flex}.lx-head .file{font-family:var(--mono)}.lx-code{max-height:46vh;padding:8px 0;overflow:auto}.lx-line,.sim-line{text-align:left;width:100%;font:13px/1.7 var(--mono);font-variant-ligatures:none;white-space:pre;color:var(--fog);border-inline-start:3px solid #0000;gap:12px;padding:1px 14px;display:flex}.lx-line[disabled]{cursor:default;opacity:.55}.lx-line.has:hover{background:#6e56cf1a}.lx-line.on,.sim-line.on{border-left-color:var(--accent);opacity:1;background:#6e56cf38}.ln{color:#55555f;text-align:right;-webkit-user-select:none;user-select:none;min-width:2ch}.lx-note{border-top:1px solid var(--border);color:var(--text-muted);min-height:4.5em;animation:sock-in .35s var(--ease);padding:12px 14px;font-size:15px}.lx-note b{color:var(--accent-text);margin-inline-end:6px}.sim{gap:12px;min-width:0;display:grid}.sim-bar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:10px 16px;display:flex}.sim-msg{flex:200px;max-width:320px}.sim-say{background:var(--bg-raised);color:var(--text-muted);min-height:3.2em;animation:sock-in .35s var(--ease);border-radius:12px;padding:10px 14px;font-size:15px}.sim-say .who{font-weight:700}.sim-say .who.s{color:var(--accent-text)}.sim-say .who.c{color:var(--success)}.sim-grid{grid-template-columns:minmax(0,1fr) minmax(0,.7fr) minmax(0,1fr);gap:10px;display:grid}@media (max-width:900px){.sim-grid{grid-template-columns:minmax(0,1fr)}}.sim-col,.sim-wire{align-content:start;gap:8px;min-width:0;display:grid}.sim-title{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;font-size:13px;display:flex}.sim-title b{font-family:var(--mono)}.sim-title .chip{direction:ltr;padding:3px 10px;font-size:11px}.sim-title .chip.ok{color:var(--success)}.sim-title .chip.off{color:var(--error)}.sim-code{background:var(--bg-code);border:1px solid var(--border);border-radius:12px;max-height:250px;padding:6px 0;transition:border-color .3s;position:relative;overflow:auto}.sim-code.active{border-color:var(--accent)}.sim-line{padding:0 10px;font-size:12px}.term{border:1px solid var(--border);font:12px/1.7 var(--mono);color:var(--fog);white-space:pre-wrap;word-break:break-word;background:#0b0b0e;border-radius:12px;min-height:70px;max-height:140px;padding:8px 12px;overflow:auto}.term>div{unicode-bidi:plaintext}.term.tall{min-height:180px;max-height:240px}.term.dead{opacity:.45}.term-title{font-family:var(--font);color:var(--text-muted);margin-bottom:2px;font-size:11px}.term .dim,.dim{color:#6f6f7b}.term .ok{color:#7fdcae}.term .err{color:var(--error)}.pkts{border:1px dashed var(--wire-off);border-radius:12px;align-content:start;gap:6px;min-height:120px;max-height:330px;padding:8px;list-style:none;display:grid;overflow:auto}.pkts li{background:var(--bg-raised);border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.pkts li.s2c{background:#6e56cf2e}.pkts li.c2s{background:#3fcf8e1f}.pkts li.ctl b{color:var(--warn)}.pkts li code{background:var(--bg);font-size:11px}.pkts li.new{animation:sock-pkt .5s var(--ease)}.pkts .arrow{font-weight:700}.send-row{gap:8px;display:flex}.send-row .inp{min-width:0;font-family:var(--font);flex:1}.chunks{gap:6px;display:grid}.chunk{flex-wrap:wrap;align-items:center;gap:10px;font-size:13px;display:flex}.flows{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.flow{gap:6px;margin-top:6px;list-style:none;display:grid}.flow li{background:var(--bg);text-align:left;border-radius:10px;padding:6px 10px;position:relative}.flow li+li:before{content:"↓";color:var(--text-muted);font-size:11px;position:absolute;top:-15px;left:14px}.flow code{background:0 0;padding:0}@keyframes sock-in{0%{opacity:0;transform:translateY(6px)}}@keyframes sock-pkt{0%{opacity:0;transform:scale(.9)}}
