*{margin:0;padding:0;box-sizing:border-box;font-family:Segoe UI,system-ui,sans-serif}body{background:linear-gradient(135deg,#0f172a,#1e293b,#0f172a);color:#e2e8f0;min-height:100vh;overflow-x:hidden}.container{max-width:1200px;margin:0 auto;padding:20px}h1{font-size:2.5rem;background:linear-gradient(90deg,#60a5fa,#a78bfa,#f472b6);-webkit-background-clip:text;background-clip:text;color:transparent;text-align:center;margin-bottom:10px;font-weight:900;letter-spacing:-1px}h2{color:#60a5fa;margin-bottom:15px;font-size:1.4rem}h3{color:#a78bfa;margin-bottom:10px;font-size:1.1rem}.subtitle{text-align:center;color:#94a3b8;margin-bottom:30px;font-size:1rem}.card{background:#1e293bb3;border:1px solid rgba(96,165,250,.2);border-radius:16px;padding:25px;margin-bottom:20px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0000004d}button{background:linear-gradient(135deg,#3b82f6,#8b5cf6);color:#fff;border:none;padding:12px 24px;border-radius:10px;font-size:1rem;cursor:pointer;transition:all .2s;font-weight:600;margin:5px}button:hover{transform:translateY(-2px);box-shadow:0 8px 20px #3b82f666}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.secondary{background:linear-gradient(135deg,#64748b,#475569)}button.success{background:linear-gradient(135deg,#10b981,#059669)}button.danger{background:linear-gradient(135deg,#ef4444,#dc2626)}input,select{background:#0f172acc;color:#e2e8f0;border:1px solid rgba(96,165,250,.3);padding:12px 16px;border-radius:10px;font-size:1rem;width:100%;margin:5px 0}input:focus,select:focus{outline:none;border-color:#60a5fa}label{display:block;margin-top:10px;color:#cbd5e1;font-size:.9rem}.hidden{display:none!important}.flex{display:flex;gap:15px}.flex-between{display:flex;justify-content:space-between;align-items:center}.center{text-align:center}#lobby{max-width:600px;margin:60px auto}.lobby-buttons{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:20px}.mode-btn{padding:30px 20px;font-size:1.1rem;display:flex;flex-direction:column;align-items:center;gap:10px}.mode-btn .icon{font-size:2.5rem}.player-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.player-chip{background:#3b82f626;border:2px solid #3b82f6;border-radius:20px;padding:8px 16px;font-weight:600;display:flex;align-items:center;gap:8px}.player-dot{width:12px;height:12px;border-radius:50%}.room-code{background:#8b5cf633;border:2px dashed #a78bfa;padding:20px;border-radius:12px;text-align:center;margin:15px 0}.room-code-value{font-size:1.8rem;font-family:Courier New,monospace;letter-spacing:2px;color:#f472b6;font-weight:700;word-break:break-all}.game-view{display:grid;grid-template-columns:1fr 300px;gap:20px}@media (max-width: 900px){.game-view{grid-template-columns:1fr}}.topology-svg{background:#0f172a99;border-radius:12px;width:100%;height:320px}.node{cursor:default}.node-circle{transition:all .3s}.node.ingress .node-circle{fill:#10b981;stroke:#34d399}.node.egress .node-circle{fill:#ef4444;stroke:#f87171}.node.lsr .node-circle{fill:#3b82f6;stroke:#60a5fa}.node.customer .node-circle{fill:#334155;stroke:#94a3b8;stroke-dasharray:5,3}.node.highlight .node-circle{fill:#f59e0b;stroke:#fbbf24;filter:drop-shadow(0 0 10px #f59e0b)}.node-label{fill:#fff;font-size:13px;font-weight:700;text-anchor:middle;pointer-events:none}.node-role{fill:#cbd5e1;font-size:10px;text-anchor:middle;pointer-events:none}.link{stroke:#475569;stroke-width:3}.link.active{stroke:#fbbf24;stroke-width:4;stroke-dasharray:6,3;animation:dash 1s linear infinite}@keyframes dash{to{stroke-dashoffset:-18}}.link-label{fill:#fbbf24;font-size:11px;font-weight:700;text-anchor:middle}.link-label-bg{fill:#0f172a;stroke:#334155;stroke-width:1}.challenge-area{background:#0f172a99;padding:20px;border-radius:12px;margin-top:15px}.challenge-question{font-size:1.15rem;margin-bottom:15px;color:#f1f5f9;line-height:1.5}.challenge-question code{background:#fbbf2433;color:#fbbf24;padding:2px 8px;border-radius:4px;font-family:Courier New,monospace}.options-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:15px}.option-btn{background:#3b82f626;border:2px solid #3b82f6;padding:15px;border-radius:10px;cursor:pointer;font-size:1rem;font-weight:600;transition:all .2s;color:#fff}.option-btn:hover:not(:disabled){background:#3b82f64d;transform:translateY(-2px)}.option-btn.selected{background:#f59e0b;border-color:#fbbf24}.option-btn.correct{background:#10b981;border-color:#34d399}.option-btn.wrong{background:#ef4444;border-color:#f87171}.option-btn:disabled{cursor:not-allowed}.timer-bar{height:8px;background:#1e293bcc;border-radius:4px;overflow:hidden;margin:10px 0}.timer-fill{height:100%;background:linear-gradient(90deg,#10b981,#f59e0b,#ef4444);transition:width .1s linear;width:100%}.leaderboard{background:#1e293b99;padding:15px;border-radius:12px}.lb-row{display:grid;grid-template-columns:30px 1fr 60px;gap:10px;padding:8px 10px;border-radius:8px;margin-bottom:5px;align-items:center;background:#3b82f61a;transition:all .3s}.lb-row.me{background:#f59e0b26;border:1px solid #f59e0b}.lb-rank{font-weight:700;color:#fbbf24}.lb-name{display:flex;align-items:center;gap:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lb-score{font-weight:700;text-align:right;color:#34d399}.info-panel{background:#8b5cf61a;border:1px solid #a78bfa;padding:15px;border-radius:10px;margin-top:15px;font-size:.9rem;line-height:1.5}.info-panel h4{color:#c084fc;margin-bottom:8px}.info-panel code{background:#fbbf2426;color:#fbbf24;padding:1px 6px;border-radius:3px;font-family:monospace}.round-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.round-badge{background:linear-gradient(135deg,#8b5cf6,#ec4899);padding:8px 16px;border-radius:20px;font-weight:700;font-size:.9rem}.final-podium{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;align-items:end;margin:30px 0}.podium-slot{text-align:center;padding:20px;border-radius:12px}.podium-slot.gold{background:linear-gradient(135deg,#fbbf24,#f59e0b);height:200px;order:2}.podium-slot.silver{background:linear-gradient(135deg,#d1d5db,#9ca3af);height:160px;order:1}.podium-slot.bronze{background:linear-gradient(135deg,#d97706,#92400e);height:130px;order:3}.podium-medal{font-size:2.5rem;margin-bottom:8px}.podium-name{font-weight:700;font-size:1.1rem;color:#fff}.podium-score{color:#ffffffe6;font-size:.9rem}.chat-log{max-height:150px;overflow-y:auto;padding:10px;background:#0f172a99;border-radius:8px;font-size:.85rem}.log-entry{padding:3px 0;color:#94a3b8}.log-entry.success{color:#34d399}.log-entry.warn{color:#fbbf24}.log-entry.error{color:#f87171}.status-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:700;margin-left:8px}.status-host{background:#f59e0b;color:#0f172a}.status-connected{background:#10b981;color:#fff}.status-answered{background:#a78bfa;color:#fff}table{width:100%;border-collapse:collapse;margin:10px 0}th,td{padding:8px 12px;text-align:left;border-bottom:1px solid #334155}th{background:#3b82f633;color:#60a5fa;font-size:.85rem}td{font-family:Courier New,monospace;font-size:.9rem}.color-swatch{width:30px;height:30px;border-radius:50%;cursor:pointer;transition:all .2s;border:3px solid transparent}.color-swatch.active{border-color:#fff}.chat{display:flex;flex-direction:column;gap:8px}.chat-list{max-height:220px;overflow-y:auto;padding:10px 12px;background:#0f172a99;border:1px solid rgba(96,165,250,.15);border-radius:8px;font-size:.85rem;line-height:1.5}.chat-list::-webkit-scrollbar{width:6px}.chat-list::-webkit-scrollbar-thumb{background:#60a5fa4d;border-radius:3px}.chat-msg{padding:3px 0;word-break:break-word;color:#cbd5e1}.chat-msg.me{color:#f1f5f9}.chat-msg .chat-ts{color:#64748b;font-size:.75rem;margin-right:6px;font-family:Courier New,monospace}.chat-msg .chat-nick{font-weight:700;margin-right:4px}.chat-msg .chat-text{color:inherit}.chat-empty{color:#64748b;font-style:italic;padding:4px 0}.chat-input-row{display:flex;gap:6px;align-items:center}.chat-input-row input{flex:1;margin:0;padding:10px 12px;font-size:.9rem}.chat-input-row button{margin:0;padding:10px 16px;font-size:.9rem}.qr-wrap.svelte-zwcosd{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:12px;padding:16px;background:#fff;border-radius:12px}.qr-wrap.svelte-zwcosd canvas:where(.svelte-zwcosd){display:block;border-radius:6px}.qr-url.svelte-zwcosd{font-size:.78rem;color:#334155;word-break:break-all;text-align:center;max-width:260px}
