.packet-simulation{display:flex;flex-direction:column;gap:2rem}.osi-section h3,.network-path h3,.packet-visualization h3{font-size:1rem;color:var(--text-muted);margin-bottom:1rem;font-weight:600}.osi-layers{display:flex;flex-direction:column;gap:.5rem}.osi-layer{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:8px;border-left:4px solid var(--layer-color);transition:all .3s ease}.osi-layer.active{background:color-mix(in srgb,var(--layer-color) 15%,var(--bg-tertiary));box-shadow:0 0 15px color-mix(in srgb,var(--layer-color) 30%,transparent)}.layer-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--layer-color);color:var(--bg-primary);border-radius:50%;font-size:.8rem;font-weight:700}.layer-emoji{font-size:1.25rem}.layer-name{font-weight:500;color:var(--text-white);min-width:100px}.layer-data{margin-left:auto;font-size:.85rem;color:var(--layer-color);font-family:Fira Code,monospace}.network-path{padding:1.5rem;background:var(--bg-tertiary);border-radius:12px}.path-container{position:relative;height:120px;margin-top:1rem}.path-lines{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.path-line{stroke:var(--border-color);stroke-width:2;stroke-dasharray:5 5;transition:stroke .3s ease}.path-line.active{stroke:var(--accent-primary);stroke-dasharray:none}.path-node{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;z-index:2}.node-icon{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.75rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:50%;transition:all .3s ease}.path-node.current .node-icon{border-color:var(--accent-primary);box-shadow:0 0 20px var(--glow-color);transform:scale(1.1)}.path-node.visited .node-icon{border-color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--bg-card))}.node-label{font-size:.8rem;color:var(--text-muted);white-space:nowrap}.packet{position:absolute;top:30%;transform:translate(-50%,-50%);font-size:2rem;z-index:3;filter:drop-shadow(0 0 10px var(--accent-primary))}.packet-visualization{padding:1.5rem;background:var(--bg-tertiary);border-radius:12px}.packet-layers{display:flex;flex-direction:column;gap:.25rem;border:2px solid var(--border-color);border-radius:8px;overflow:hidden}.packet-layer{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:color-mix(in srgb,var(--layer-color) 20%,var(--bg-primary));border-left:3px solid var(--layer-color)}.packet-layer-name{font-weight:500;color:var(--text-white);font-size:.85rem}.packet-layer-data{font-size:.75rem;color:var(--layer-color);font-family:Fira Code,monospace}.packet-empty{padding:2rem;text-align:center;color:var(--text-muted)}.simulation-status{text-align:center;padding:1rem;background:var(--bg-tertiary);border-radius:8px}.simulation-status p{color:var(--text-white);font-size:1rem}.simulation-controls{display:flex;justify-content:center;gap:1rem}.simulation-controls .btn{min-width:120px}.simulation-controls .btn:disabled{opacity:.5;cursor:not-allowed}.dns-simulation{display:flex;flex-direction:column;gap:2rem}.dns-input-section{text-align:center}.dns-input-wrapper{display:inline-flex;align-items:center;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:8px;overflow:hidden;margin-bottom:.5rem}.dns-prefix{padding:.75rem 1rem;background:var(--bg-tertiary);color:var(--text-muted);font-family:Fira Code,monospace;font-size:.9rem}.dns-input{padding:.75rem 1rem;background:transparent;border:none;color:var(--accent-primary);font-family:Fira Code,monospace;font-size:1.1rem;min-width:200px}.dns-input:focus{outline:none}.dns-hint{font-size:.85rem;color:var(--text-muted)}.dns-servers{background:var(--bg-tertiary);border-radius:12px;padding:1.5rem}.dns-servers h3,.dns-history h3{font-size:1rem;color:var(--text-muted);margin-bottom:1rem}.servers-container{position:relative;height:120px;margin-top:1rem}.server-lines{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}.server-line{stroke:var(--border-color);stroke-width:2;stroke-dasharray:5 5}.dns-server{position:absolute;top:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:.5rem;z-index:2;transition:all .3s ease}.server-icon{width:45px;height:45px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:10px;transition:all .3s ease}.dns-server.active .server-icon{border-color:var(--accent-primary);box-shadow:0 0 20px var(--glow-color)}.dns-server.visited .server-icon{border-color:var(--success);background:color-mix(in srgb,var(--success) 10%,var(--bg-card))}.server-label{font-size:.7rem;color:var(--text-muted);white-space:nowrap}.dns-query{position:absolute;top:30%;transform:translate(-50%,-50%);font-size:1.5rem;z-index:3}.dns-current-step{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem}.step-card{text-align:center}.step-header{display:flex;justify-content:center;align-items:center;gap:1rem;margin-bottom:1rem}.step-emoji{font-size:2rem}.step-number{font-size:.85rem;color:var(--text-muted);padding:.25rem .75rem;background:var(--bg-tertiary);border-radius:20px}.step-card h4{font-size:1.25rem;color:var(--text-white);margin-bottom:.5rem}.step-card p{color:var(--text-muted);margin-bottom:1rem}.step-answer{padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:8px;font-family:Fira Code,monospace;font-size:.9rem;color:var(--accent-primary)}.dns-history{background:var(--bg-tertiary);border-radius:12px;padding:1.5rem}.history-list{display:flex;flex-direction:column;gap:.5rem}.history-item{display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;background:var(--bg-card);border-radius:6px;font-size:.8rem}.history-emoji{font-size:1rem;flex-shrink:0}.history-title{color:var(--text-white);font-weight:500;white-space:nowrap;flex-shrink:0}.history-answer{margin-left:auto;color:var(--accent-primary);font-family:Fira Code,monospace;font-size:.7rem;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.servers-container{overflow-x:auto;padding-bottom:1rem}.dns-server{position:relative;transform:none;left:auto!important}.servers-container{display:flex;gap:1rem;height:auto;justify-content:flex-start}.server-lines{display:none}}.network-builder{display:flex;flex-direction:column;gap:1rem}.builder-toolbar{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;background:var(--bg-tertiary);border-radius:8px}.toolbar-info{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted);margin-right:auto}.info-icon{font-size:1rem}.toolbar-btn{padding:.5rem 1rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:6px;color:var(--text-white);font-size:.9rem;display:flex;align-items:center;gap:.5rem}.toolbar-btn:hover{border-color:var(--accent-primary)}.builder-container{display:grid;grid-template-columns:150px 1fr 220px;gap:1rem;min-height:500px}.device-palette{background:var(--bg-tertiary);border-radius:12px;padding:1rem}.device-palette h3{font-size:.9rem;color:var(--text-white);margin-bottom:.25rem}.palette-hint{font-size:.75rem;color:var(--text-muted);margin-bottom:1rem}.palette-devices{display:flex;flex-direction:column;gap:.5rem}.palette-device{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:8px;cursor:grab;transition:all .2s ease;-webkit-user-drag:element;-webkit-user-select:none;user-select:none}.palette-device:hover{border-color:var(--device-color);transform:translate(4px);box-shadow:0 0 15px color-mix(in srgb,var(--device-color) 30%,transparent)}.palette-device:active{cursor:grabbing}.palette-emoji{font-size:1.25rem}.palette-name{font-size:.8rem;color:var(--text-white)}.builder-canvas{position:relative;background:var(--bg-card);border:2px solid var(--border-color);border-radius:12px;overflow:hidden;min-height:500px}.builder-canvas.drawing-connection{cursor:crosshair;border-color:var(--accent-secondary)}.canvas-grid{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,var(--border-color) 1px,transparent 0);background-size:30px 30px;opacity:.4}.canvas-empty{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);text-align:center;color:var(--text-muted)}.canvas-empty span{font-size:3rem;display:block;margin-bottom:1rem}.connections-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.connection-drawing{stroke:var(--accent-secondary);stroke-width:3;stroke-dasharray:8 4;stroke-linecap:round;animation:dashFlow .5s linear infinite}@keyframes dashFlow{0%{stroke-dashoffset:0}to{stroke-dashoffset:-12}}.connection-group{pointer-events:all}.connection-glow{stroke:var(--accent-primary);stroke-width:6;stroke-linecap:round;opacity:.3;filter:blur(3px)}.connection-line{stroke:url(#builderLineGradient);stroke-width:3;stroke-linecap:round}.connection-delete-btn{cursor:pointer;opacity:0;transition:opacity .2s ease}.connection-group:hover .connection-delete-btn{opacity:1}.delete-circle{fill:var(--bg-card);stroke:var(--error);stroke-width:2;transition:all .2s ease}.delete-text{fill:var(--error);font-size:14px;font-weight:700;text-anchor:middle;pointer-events:none}.connection-delete-btn:hover .delete-circle{fill:var(--error)}.connection-delete-btn:hover .delete-text{fill:#fff}.canvas-device{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:10px;cursor:grab;z-index:2;min-width:70px;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-user-drag:none}.canvas-device:active{cursor:grabbing}.canvas-device.selected{border-color:var(--device-color);box-shadow:0 0 20px color-mix(in srgb,var(--device-color) 40%,transparent)}.canvas-device.connecting{border-color:var(--accent-secondary);box-shadow:0 0 25px #22d3ee80}.canvas-device .device-emoji{font-size:1.75rem}.canvas-device .device-name{font-size:.7rem;color:var(--text-white);text-align:center;max-width:70px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.connection-handle{position:absolute;right:-10px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:crosshair;z-index:10}.handle-dot{width:14px;height:14px;background:var(--bg-card);border:3px solid var(--device-color);border-radius:50%;transition:all .2s ease}.connection-handle:hover .handle-dot{background:var(--device-color);transform:scale(1.2);box-shadow:0 0 12px var(--device-color)}.properties-panel{background:var(--bg-tertiary);border-radius:12px;padding:1rem;display:flex;flex-direction:column;gap:1rem}.properties-panel h3{font-size:.9rem;color:var(--text-white);margin-bottom:.5rem}.device-properties{display:flex;flex-direction:column;gap:1rem}.property-header{display:flex;align-items:center;gap:.75rem}.property-emoji{font-size:2rem}.property-name-input{flex:1;padding:.5rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:4px;color:var(--text-white);font-size:.9rem}.property-name-input:focus{outline:none;border-color:var(--accent-primary)}.property-type,.property-connections{font-size:.85rem;color:var(--text-muted)}.property-connections strong{display:block;margin-bottom:.5rem;color:var(--text-white)}.connection-item{padding:.4rem .6rem;background:var(--bg-card);border-radius:4px;margin-bottom:.25rem;font-size:.8rem;color:var(--text-white)}.no-connections{font-style:italic;opacity:.7}.btn-danger{background:var(--error);color:#fff;padding:.6rem 1rem;border:none;border-radius:6px;font-weight:500;margin-top:auto}.btn-danger:hover{background:#dc2626}.no-selection{text-align:center;padding:2rem 1rem;color:var(--text-muted);font-size:.85rem}.network-stats{margin-top:auto;padding-top:1rem;border-top:1px solid var(--border-color)}.network-stats h4{font-size:.85rem;color:var(--text-muted);margin-bottom:.75rem}.stat-item{display:flex;justify-content:space-between;font-size:.85rem;color:var(--text-white);margin-bottom:.25rem}.stat-item strong{color:var(--accent-primary)}.drag-overlay-device{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:var(--bg-card);border:2px solid var(--device-color);border-radius:8px;box-shadow:0 10px 40px #00000080,0 0 20px color-mix(in srgb,var(--device-color) 40%,transparent);cursor:grabbing;pointer-events:none}.drag-overlay-device.canvas-style{flex-direction:column;padding:.75rem;border-radius:10px;min-width:70px}.drag-overlay-device.canvas-style .device-emoji{font-size:1.75rem}.drag-overlay-device.canvas-style .device-name{font-size:.7rem;color:var(--text-white)}.device-drag-handle{display:flex;flex-direction:column;align-items:center;gap:.25rem;cursor:grab;width:100%}.device-drag-handle:active{cursor:grabbing}.canvas-device.dragging{opacity:.5}.builder-canvas.drag-over{border-color:var(--accent-primary);box-shadow:inset 0 0 30px #00ff881a}.palette-device.mobile-selected{border-color:var(--accent-primary);background:color-mix(in srgb,var(--device-color) 20%,var(--bg-card));box-shadow:0 0 15px color-mix(in srgb,var(--device-color) 40%,transparent)}.mobile-selected-badge{position:absolute;top:-6px;right:-6px;width:18px;height:18px;background:var(--accent-primary);color:var(--bg-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.65rem;font-weight:700}.builder-canvas.tap-to-place{cursor:crosshair;border-color:var(--accent-primary)}.builder-canvas.tap-to-place:after{content:"📍 Tap to place";position:absolute;bottom:10px;left:50%;transform:translate(-50%);padding:.5rem 1rem;background:#0f83;border:1px dashed var(--accent-primary);border-radius:8px;color:var(--accent-primary);font-size:.8rem;pointer-events:none;z-index:100}.builder-canvas.pending-connection{border-color:#22d3ee}.builder-canvas.pending-connection:after{content:"🔗 Tap target device";position:absolute;bottom:10px;left:50%;transform:translate(-50%);padding:.5rem 1rem;background:#22d3ee33;border:1px dashed #22d3ee;border-radius:8px;color:#22d3ee;font-size:.8rem;pointer-events:none;z-index:100}.canvas-device.can-connect{animation:pulse-connect 1s ease-in-out infinite}@keyframes pulse-connect{0%,to{box-shadow:0 0 #22d3ee66}50%{box-shadow:0 0 0 10px #22d3ee00}}@media(max-width:900px){.builder-container{grid-template-columns:1fr}.device-palette{order:1}.device-palette .palette-devices{flex-direction:row;flex-wrap:wrap}.builder-canvas{order:2;min-height:400px;touch-action:none}.properties-panel{order:3}.connection-handle{width:26px;height:26px}.handle-dot{width:12px;height:12px}}@media(max-width:600px){.palette-devices{display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}.palette-device{flex-direction:column;padding:.4rem;gap:.2rem}.palette-name{font-size:.6rem}.builder-canvas{min-height:300px}.toolbar-info span:last-child{font-size:.75rem;max-width:200px}}.terminal-simulator{background:#1a1a2e;border-radius:12px;overflow:hidden;font-family:Fira Code,JetBrains Mono,monospace;border:1px solid #2d2d44}.terminal-header{display:flex;align-items:center;padding:.75rem 1rem;background:#16162a;border-bottom:1px solid #2d2d44}.terminal-buttons{display:flex;gap:.5rem}.terminal-btn{width:12px;height:12px;border-radius:50%}.terminal-btn.red{background:#ff5f56}.terminal-btn.yellow{background:#ffbd2e}.terminal-btn.green{background:#27c93f}.terminal-title{margin-left:auto;font-size:.8rem;color:#6b7280}.terminal-body{padding:1rem;min-height:400px;max-height:500px;overflow-y:auto;cursor:text}.terminal-line{margin-bottom:.25rem}.terminal-line pre{white-space:pre-wrap;word-wrap:break-word;margin:0;font-size:.85rem;line-height:1.5}.terminal-line.system pre{color:#6b7280}.terminal-line.command pre{color:#0f8}.terminal-line.success pre{color:#e5e7eb}.terminal-line.info pre{color:#22d3ee}.terminal-line.error pre{color:#ef4444}.terminal-input-line{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.terminal-prompt{color:#0f8;font-weight:700}.terminal-input{flex:1;background:transparent;border:none;color:#e5e7eb;font-family:inherit;font-size:.85rem;caret-color:#0f8}.terminal-input:focus{outline:none}.terminal-hints{display:flex;flex-wrap:wrap;gap:.5rem;padding:.75rem 1rem;background:#16162a;border-top:1px solid #2d2d44;align-items:center}.terminal-hints span{font-size:.75rem;color:#6b7280}.terminal-hints button{padding:.25rem .5rem;background:#2d2d44;border:1px solid #3d3d54;border-radius:4px;color:#a5b4fc;font-family:inherit;font-size:.7rem;cursor:pointer;transition:all .2s ease}.terminal-hints button:hover{background:#3d3d54;border-color:#0f8;color:#0f8}[data-theme=fun] .terminal-simulator{background:#1e1e2e;border-color:#313244}[data-theme=fun] .terminal-header{background:#181825;border-color:#313244}[data-theme=fun] .terminal-line.command pre,[data-theme=fun] .terminal-prompt{color:#f97316}[data-theme=fun] .terminal-input{caret-color:#f97316}[data-theme=fun] .terminal-hints button:hover{border-color:#f97316;color:#f97316}.terminal-body::-webkit-scrollbar{width:6px}.terminal-body::-webkit-scrollbar-track{background:#16162a}.terminal-body::-webkit-scrollbar-thumb{background:#3d3d54;border-radius:3px}.terminal-body::-webkit-scrollbar-thumb:hover{background:#4d4d64}.subnet-calculator{padding:1.5rem}.calc-input-section{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:2rem;padding:1.5rem;background:var(--bg-tertiary);border-radius:16px;border:1px solid var(--border-color)}.input-group{flex:1;min-width:200px}.input-group label{display:block;font-size:.85rem;font-weight:600;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.input-group input[type=text]{width:100%;padding:.875rem 1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:10px;color:var(--text-white);font-size:1.1rem;font-family:Monaco,Consolas,monospace;transition:all .2s ease}.input-group input[type=text]:focus{outline:none;border-color:var(--accent-primary);box-shadow:0 0 0 3px #00ff8826}.input-group input[type=text].valid{border-color:var(--success)}.input-group input[type=text].invalid{border-color:var(--error)}.error-text{display:block;font-size:.8rem;color:var(--error);margin-top:.5rem}.cidr-selector{display:flex;flex-direction:column;gap:.75rem}.cidr-selector input[type=range]{width:100%;height:8px;-webkit-appearance:none;background:linear-gradient(90deg,var(--accent-primary),var(--accent-secondary));border-radius:4px;cursor:pointer}.cidr-selector input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;background:var(--text-white);border-radius:50%;cursor:pointer;box-shadow:0 2px 8px #0000004d;transition:transform .2s ease}.cidr-selector input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.1)}.cidr-display{display:flex;justify-content:space-between;align-items:center}.cidr-value{font-size:1.5rem;font-weight:700;color:var(--accent-primary);font-family:Monaco,Consolas,monospace}.mask-value{font-size:.9rem;color:var(--text-muted);font-family:Monaco,Consolas,monospace}.toggle-group{display:flex;align-items:center;min-width:150px}.toggle{display:flex;align-items:center;gap:.75rem;cursor:pointer}.toggle input{display:none}.toggle-slider{width:48px;height:26px;background:var(--bg-card);border:2px solid var(--border-color);border-radius:13px;position:relative;transition:all .3s ease}.toggle-slider:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--text-muted);border-radius:50%;transition:all .3s ease}.toggle input:checked+.toggle-slider{background:var(--accent-primary);border-color:var(--accent-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(22px);background:var(--bg-primary)}.toggle-label{font-size:.9rem;color:var(--text-white)}.calc-results{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem}.result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.result-header h3{font-size:1.25rem;font-weight:700;color:var(--text-white)}.ip-badges{display:flex;gap:.5rem}.badge{padding:.35rem .75rem;border-radius:20px;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.class-badge{background:#6366f133;color:#6366f1}.private-badge{background:#22c55e33;color:#22c55e}.public-badge{background:#f59e0b33;color:#f59e0b}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.5rem}.result-card{display:flex;gap:1rem;padding:1rem;background:var(--bg-tertiary);border-radius:12px;border:1px solid var(--border-color);transition:all .2s ease}.result-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.result-card.wide{grid-column:span 2}.subnet-result-icon{font-size:1.25rem;flex-shrink:0}.result-content{display:flex;flex-direction:column;gap:.25rem;overflow:hidden}.result-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.result-value{font-size:1rem;font-weight:600;color:var(--text-white);font-family:Monaco,Consolas,monospace}.result-value.highlight{font-size:1.5rem;color:var(--accent-primary)}.result-detail{font-size:.8rem;color:var(--text-muted)}.result-binary{font-size:.7rem;color:var(--accent-secondary);font-family:Monaco,Consolas,monospace;word-break:break-all}.binary-breakdown{background:var(--bg-tertiary);border-radius:12px;padding:1.25rem;margin-bottom:1.5rem}.binary-breakdown h4{font-size:.9rem;font-weight:600;color:var(--text-white);margin-bottom:1rem}.binary-row{display:flex;gap:1rem;margin-bottom:.5rem;font-family:Monaco,Consolas,monospace;font-size:.85rem}.binary-label{width:100px;color:var(--text-muted);flex-shrink:0}.binary-value{color:var(--text-white);letter-spacing:.05em}.binary-value.mask{color:var(--accent-secondary)}.binary-value.network{color:var(--accent-primary)}.binary-legend{display:flex;gap:1.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-color)}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem;color:var(--text-muted)}.legend-color{width:12px;height:12px;border-radius:3px}.legend-color.network-bit{background:var(--accent-primary)}.legend-color.host-bit{background:var(--accent-secondary)}.quick-reference{background:var(--bg-tertiary);border-radius:12px;padding:1.25rem}.quick-reference h4{font-size:.9rem;font-weight:600;color:var(--text-white);margin-bottom:1rem}.reference-table{font-family:Monaco,Consolas,monospace;font-size:.85rem}.ref-header{display:grid;grid-template-columns:60px 1fr 80px;gap:1rem;padding:.5rem .75rem;color:var(--text-muted);font-weight:600;text-transform:uppercase;font-size:.7rem;letter-spacing:.05em;border-bottom:1px solid var(--border-color)}.ref-row{display:grid;grid-template-columns:60px 1fr 80px;gap:1rem;padding:.6rem .75rem;color:var(--text-white);cursor:pointer;border-radius:6px;transition:all .2s ease}.ref-row:hover{background:var(--bg-card)}.ref-row.active{background:#00ff881a;color:var(--accent-primary)}@media(max-width:768px){.subnet-calculator{padding:1rem}.calc-input-section{flex-direction:column;padding:1rem}.result-card.wide{grid-column:span 1}.binary-row{flex-direction:column;gap:.25rem}.binary-label{width:auto}.binary-value{font-size:.75rem}.binary-legend{flex-direction:column;gap:.5rem}}.ping-trace-visualizer{padding:1.5rem}.viz-controls{display:flex;flex-wrap:wrap;gap:1.5rem;margin-bottom:1.5rem;padding:1.25rem;background:var(--bg-tertiary);border-radius:12px;border:1px solid var(--border-color)}.control-group{display:flex;flex-direction:column;gap:.5rem}.control-group label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.control-group select{padding:.75rem 1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:8px;color:var(--text-white);font-size:.95rem;min-width:180px;cursor:pointer;transition:all .2s ease}.control-group select:hover:not(:disabled){border-color:var(--accent-primary)}.control-group select:disabled{opacity:.5;cursor:not-allowed}.mode-toggle{display:flex;gap:.5rem}.mode-btn{padding:.75rem 1.25rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:8px;color:var(--text-muted);font-size:.9rem;cursor:pointer;transition:all .2s ease}.mode-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--text-white)}.mode-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary);font-weight:600}.mode-btn:disabled{opacity:.5;cursor:not-allowed}.run-btn{padding:.75rem 2rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;border-radius:8px;color:var(--bg-primary);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.run-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #00ff884d}.run-btn.running{background:linear-gradient(135deg,#ef4444,#f59e0b)}.viz-content{display:flex;flex-direction:column;gap:1.5rem}.route-visualization{background:var(--bg-card);border:1px solid var(--border-color);border-radius:12px;padding:1.5rem;position:relative;overflow:hidden}.route-map{display:flex;align-items:center;gap:0;padding:1rem 0;overflow-x:auto}.route-node{display:flex;flex-direction:column;align-items:center;gap:.5rem;min-width:80px;text-align:center;z-index:2}.route-node .node-icon{font-size:1.5rem;width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:50%;transition:all .3s ease}.route-node.source .node-icon{background:var(--accent-primary);border-color:var(--accent-primary)}.route-node.hop.active .node-icon{background:var(--hop-color);border-color:var(--hop-color)}.route-node.hop.current .node-icon{transform:scale(1.2);box-shadow:0 0 20px var(--hop-color)}.route-path,.hop-wrapper{display:flex;align-items:center;flex:1}.route-line{height:4px;flex:1;min-width:40px;background:var(--border-color);transform-origin:left;border-radius:2px}.hop-num{font-size:.7rem;font-weight:700;color:var(--text-muted);background:var(--bg-tertiary);padding:.15rem .4rem;border-radius:4px}.route-node.hop.active .hop-num{background:var(--hop-color);color:var(--bg-primary)}.hop-location{font-size:.7rem;color:var(--text-muted);max-width:80px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hop-time{font-size:.75rem;font-weight:600;color:var(--accent-primary)}.packet-animation{position:absolute;top:50%;transform:translateY(-50%);font-size:1.5rem;z-index:10;filter:drop-shadow(0 0 10px rgba(0,255,136,.5))}.ping-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:1rem}.stat-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:1rem;text-align:center;transition:all .2s ease}.stat-card:hover{border-color:var(--accent-primary);transform:translateY(-2px)}.stat-card.success{border-color:var(--success)}.stat-card.error{border-color:var(--error)}.stat-value{display:block;font-size:1.5rem;font-weight:700;color:var(--text-white);font-family:Monaco,Consolas,monospace}.stat-card.success .stat-value{color:var(--success)}.stat-card.error .stat-value{color:var(--error)}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.terminal-output{background:#0d0d0d;border:1px solid var(--border-color);border-radius:12px;overflow:hidden;height:300px;min-height:300px;display:flex;flex-direction:column}.terminal-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#1a1a1a;border-bottom:1px solid var(--border-color)}.terminal-dot{width:12px;height:12px;border-radius:50%}.terminal-dot.red{background:#ff5f56}.terminal-dot.yellow{background:#ffbd2e}.terminal-dot.green{background:#27ca40}.terminal-title{margin-left:auto;font-size:.8rem;color:var(--text-muted)}.terminal-body{padding:1rem;font-family:Monaco,Consolas,Courier New,monospace;font-size:.85rem;line-height:1.6;overflow-y:auto;flex:1;min-height:0}.terminal-placeholder{color:var(--text-muted);text-align:center;padding:2rem}.terminal-line{margin-bottom:.25rem;color:var(--text-white)}.terminal-line.info{color:var(--text-muted)}.terminal-line.success{color:var(--success)}.terminal-line.error{color:var(--error)}.terminal-line.stats{color:var(--accent-secondary)}.terminal-line.hop{display:flex;gap:.75rem;align-items:baseline}.hop-number{color:var(--accent-primary);font-weight:700;min-width:20px}.hop-host{color:var(--text-white)}.hop-ip{color:var(--text-muted)}.hop-times{display:flex;gap:.5rem}.hop-time-value{color:var(--success)}.cursor{color:var(--accent-primary)}.viz-info{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:10px;padding:1rem 1.25rem}.viz-info h4{font-size:.9rem;font-weight:600;color:var(--text-white);margin-bottom:.5rem}.viz-info p{font-size:.85rem;color:var(--text-muted);line-height:1.5;margin:0}.viz-info strong{color:var(--accent-primary)}@media(max-width:768px){.ping-trace-visualizer{padding:1rem}.viz-controls{flex-direction:column;gap:1rem}.control-group select,.mode-toggle{width:100%}.mode-btn{flex:1}.run-btn{width:100%}.route-map{flex-wrap:nowrap;overflow-x:auto;padding-bottom:1rem}.ping-stats{grid-template-columns:repeat(3,1fr)}.terminal-line.hop{flex-wrap:wrap;gap:.25rem}}.dhcp-simulation{padding:1.5rem}.dhcp-controls{display:flex;flex-wrap:wrap;gap:1.5rem;align-items:flex-end;margin-bottom:1.5rem;padding:1.25rem;background:var(--bg-tertiary);border-radius:12px;border:1px solid var(--border-color)}.dhcp-controls .control-group{display:flex;flex-direction:column;gap:.5rem}.dhcp-controls .control-group label{font-size:.75rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.speed-buttons{display:flex;gap:.5rem}.speed-btn{padding:.5rem 1rem;background:var(--bg-card);border:2px solid var(--border-color);border-radius:8px;color:var(--text-muted);font-size:.85rem;cursor:pointer;transition:all .2s ease}.speed-btn:hover:not(:disabled){border-color:var(--accent-primary);color:var(--text-white)}.speed-btn.active{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary);font-weight:600}.speed-btn:disabled{opacity:.5;cursor:not-allowed}.dhcp-controls .run-btn{padding:.75rem 2rem;background:linear-gradient(135deg,var(--accent-primary),var(--accent-secondary));border:none;border-radius:8px;color:var(--bg-primary);font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;margin-left:auto}.dhcp-controls .run-btn:hover{transform:translateY(-2px);box-shadow:0 5px 20px #00ff884d}.dhcp-controls .run-btn.running{background:linear-gradient(135deg,#ef4444,#f59e0b)}.dora-progress{display:flex;justify-content:center;gap:2rem;margin-bottom:2rem}.dora-step{display:flex;flex-direction:column;align-items:center;gap:.5rem;opacity:.4;transition:all .3s ease}.dora-step.completed,.dora-step.active{opacity:1}.step-letter{width:50px;height:50px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:700;background:var(--bg-tertiary);border:3px solid var(--border-color);border-radius:50%;color:var(--text-muted);transition:all .3s ease}.dora-step.active .step-letter{background:var(--accent-primary);border-color:var(--accent-primary);color:var(--bg-primary);transform:scale(1.1);box-shadow:0 0 20px #0f86}.dora-step.completed .step-letter{background:var(--success);border-color:var(--success);color:var(--bg-primary)}.step-name{font-size:.8rem;font-weight:600;color:var(--text-muted)}.dora-step.active .step-name,.dora-step.completed .step-name{color:var(--text-white)}.dhcp-visualization{display:flex;align-items:center;justify-content:space-between;padding:2rem;background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;margin-bottom:1.5rem;position:relative;min-height:200px}.device{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:1.5rem;background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:16px;min-width:140px;z-index:2}.device-icon{font-size:3rem}.device-label{font-size:.9rem;font-weight:700;color:var(--text-white)}.device-ip{font-size:1rem;font-weight:600;color:var(--accent-primary);font-family:Monaco,Consolas,monospace}.device-mac{font-size:.7rem;color:var(--text-muted);font-family:Monaco,Consolas,monospace}.ip-pool{display:flex;flex-direction:column;align-items:center;font-size:.75rem;color:var(--text-muted)}.pool-range{color:var(--accent-secondary);font-family:Monaco,Consolas,monospace}.network-area{flex:1;position:relative;height:100px;display:flex;align-items:center;justify-content:center}.network-line{position:absolute;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--border-color),var(--accent-primary),var(--border-color));border-radius:2px}.broadcast-indicator{position:absolute;top:-30px;font-size:.75rem;color:var(--text-muted);background:var(--bg-tertiary);padding:.25rem .75rem;border-radius:20px;border:1px solid var(--border-color)}.dhcp-packet{position:absolute;display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.75rem 1.25rem;background:var(--bg-primary);border:2px solid var(--accent-primary);border-radius:12px;z-index:10;box-shadow:0 5px 20px #00ff884d}.dhcp-packet.discover{border-color:#f59e0b;box-shadow:0 5px 20px #f59e0b4d}.dhcp-packet.offer{border-color:#22d3ee;box-shadow:0 5px 20px #22d3ee4d}.dhcp-packet.request{border-color:#a855f7;box-shadow:0 5px 20px #a855f74d}.dhcp-packet.ack{border-color:#22c55e;box-shadow:0 5px 20px #22c55e4d}.packet-type{font-size:.8rem;font-weight:700;color:var(--text-white);white-space:nowrap}.packet-arrow{font-size:1.25rem;color:var(--accent-primary)}.packet-details{background:var(--bg-card);border:1px solid var(--border-color);border-radius:16px;padding:1.5rem;margin-bottom:1.5rem;min-height:200px}.packet-details h4{font-size:1rem;font-weight:600;color:var(--text-white);margin-bottom:1rem}.packet-info{display:flex;flex-direction:column;gap:1rem}.packet-header{display:flex;align-items:center;gap:1rem}.packet-badge{padding:.5rem 1rem;border-radius:8px;font-size:.85rem;font-weight:700;text-transform:uppercase}.packet-badge.discover{background:#f59e0b33;color:#f59e0b}.packet-badge.offer{background:#22d3ee33;color:#22d3ee}.packet-badge.request{background:#a855f733;color:#a855f7}.packet-badge.ack{background:#22c55e33;color:#22c55e}.packet-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.75rem}.field{display:flex;gap:.5rem;padding:.5rem .75rem;background:var(--bg-tertiary);border-radius:8px}.field.highlight{background:#00ff881a;border:1px solid rgba(0,255,136,.3)}.field-label{font-size:.8rem;color:var(--text-muted)}.field-value{font-size:.85rem;font-weight:600;color:var(--text-white);font-family:Monaco,Consolas,monospace}.packet-message{padding:1rem;background:var(--bg-tertiary);border-radius:10px;font-size:.9rem;color:var(--text-white);font-style:italic}.packet-placeholder{display:flex;align-items:center;justify-content:center;min-height:120px;color:var(--text-muted);text-align:center}.complete-message{display:flex;flex-direction:column;align-items:center;gap:.5rem}.complete-icon{font-size:2rem}.complete-detail{font-size:.85rem;color:var(--accent-primary)}.dhcp-info{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:12px;padding:1.25rem}.dhcp-info h4{font-size:.9rem;font-weight:600;color:var(--text-white);margin-bottom:1rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem}.info-item{display:flex;gap:1rem;padding:1rem;background:var(--bg-card);border-radius:10px}.info-letter{width:36px;height:36px;display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:700;border-radius:50%;flex-shrink:0}.info-letter.discover{background:#f59e0b33;color:#f59e0b}.info-letter.offer{background:#22d3ee33;color:#22d3ee}.info-letter.request{background:#a855f733;color:#a855f7}.info-letter.ack{background:#22c55e33;color:#22c55e}.info-content strong{display:block;font-size:.9rem;color:var(--text-white);margin-bottom:.25rem}.info-content p{font-size:.8rem;color:var(--text-muted);margin:0;line-height:1.4}@media(max-width:768px){.dhcp-simulation{padding:1rem}.dhcp-controls{flex-direction:column;align-items:stretch}.dhcp-controls .run-btn{margin-left:0;width:100%}.dora-progress{gap:1rem}.step-letter{width:40px;height:40px;font-size:1.2rem}.dhcp-visualization{flex-direction:column;gap:2rem;padding:1.5rem}.network-area{width:100%;height:80px;transform:rotate(90deg)}.device{min-width:120px;padding:1rem}.device-icon{font-size:2rem}.packet-fields,.info-grid{grid-template-columns:1fr}}
