*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0f0f14;--surface:#16161f;--surface2:#1e1e2e;--surface3:#232336;--border:#2a2a3d;--purple:#a78bfa;--purple-dim:#7c5cbf;--purple-glow:#a78bfa26;--text:#e2e2f0;--muted:#7b7b9a;--green:#22c55e;--yellow:#fbbf24;--red:#ef4444;--blue:#60a5fa;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5}#root{width:100%;min-height:100svh}body{background:var(--bg);margin:0}button{cursor:pointer;font-family:inherit}input,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--muted)}.btn-primary{background:var(--purple);color:#0f0f14;cursor:pointer;border:none;border-radius:8px;font-weight:600;transition:opacity .2s,transform .1s}.btn-primary:hover{opacity:.88;transform:translateY(-1px)}.btn-ghost{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;transition:border-color .2s,color .2s}.btn-ghost:hover{border-color:var(--purple);color:var(--text)}.avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:.7rem;font-weight:700;display:flex}.entry-shell{--entry-bg:#f4f7f1;--entry-ink:#18221f;--entry-muted:#64706a;--entry-panel:#fff;--entry-panel-soft:#edf3ef;--entry-border:#d8e2db;--entry-primary:#8b5cf6;--entry-primary-hover:#7c3aed;--entry-secondary:#243b37;--entry-accent:#c2410c;--entry-yellow:#b45309;--entry-red:#dc2626;background:radial-gradient(circle at 12% 8%, #8b5cf62b, transparent 28rem), radial-gradient(circle at 85% 5%, #c2410c1f, transparent 24rem), linear-gradient(180deg, #f9fbf7 0%, var(--entry-bg) 44%, #e8f0eb 100%);min-height:100svh;color:var(--entry-ink);padding:32px}.entry-hero,.entry-rooms{width:min(1120px,100%);margin:0 auto}.entry-brand{margin-bottom:56px;font-size:1.2rem;font-weight:800}.entry-brand span{color:var(--entry-primary)}.entry-grid{grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:56px;min-height:calc(100svh - 180px);display:grid}.entry-copy h1{letter-spacing:0;max-width:720px;margin:10px 0 24px;font-size:clamp(3rem,7vw,6.4rem);line-height:.95}.entry-subtitle{max-width:620px;color:var(--entry-muted);font-size:1.12rem}.entry-kicker{color:var(--entry-accent);letter-spacing:.12em;text-transform:uppercase;font-size:.78rem;font-weight:800}.entry-panel{background:color-mix(in srgb, var(--entry-panel) 92%, transparent);border:1px solid var(--entry-border);border-radius:8px;padding:22px;box-shadow:0 22px 70px #18221f21}.entry-panel-section{gap:12px;display:grid}.entry-panel label{color:var(--entry-muted);text-transform:uppercase;font-size:.78rem;font-weight:700}.entry-panel select,.entry-panel input{border:1px solid var(--entry-border);width:100%;height:44px;color:var(--entry-ink);background:#fbfdfb;border-radius:8px;outline:none;padding:0 12px}.entry-panel select:focus,.entry-panel input:focus{border-color:var(--entry-primary);box-shadow:0 0 0 3px #8b5cf624}.entry-primary-button,.entry-secondary-button{white-space:nowrap;border:1px solid #0000;border-radius:8px;height:44px;font-weight:800}.entry-primary-button{background:var(--entry-primary);color:#fff}.entry-primary-button:hover{background:var(--entry-primary-hover)}.entry-secondary-button{background:var(--entry-secondary);color:#fff;border-color:var(--entry-secondary);min-width:88px;padding:0 18px}.entry-secondary-button:hover:not(:disabled){background:#152925}.entry-secondary-button:disabled{cursor:not-allowed;color:var(--entry-muted);background:var(--entry-panel-soft);border-color:var(--entry-border);opacity:.65}.entry-divider{background:var(--entry-border);height:1px;margin:22px 0}.entry-join-row{grid-template-columns:minmax(0,1fr) 96px;gap:10px;display:grid}.entry-error{color:var(--entry-red);font-size:.85rem}.entry-rooms{padding:36px 0 60px}.entry-section-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:18px;display:flex}.entry-section-heading h2{letter-spacing:0;font-size:1.8rem}.entry-section-heading span{color:var(--entry-muted);font-size:.9rem}.entry-room-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;display:grid}.entry-room-card{background:var(--entry-panel);border:1px solid var(--entry-border);border-radius:8px;flex-direction:column;min-height:280px;padding:18px;display:flex;box-shadow:0 12px 40px #18221f14}.entry-room-top,.entry-room-meta,.entry-room-footer,.entry-avatars{align-items:center;display:flex}.entry-room-top,.entry-room-footer{justify-content:space-between;gap:12px}.entry-room-code{color:var(--entry-muted);font-size:.78rem;font-weight:800}.entry-room-state{background:var(--entry-panel-soft);border-radius:999px;padding:4px 8px;font-size:.72rem;font-weight:800}.entry-room-state.live{color:var(--entry-primary)}.entry-room-state.urgent{color:var(--entry-red)}.entry-room-state.waiting{color:var(--entry-yellow)}.entry-room-state.finished{color:var(--entry-muted)}.entry-room-card h3{margin-top:18px;font-size:1.25rem;line-height:1.2}.entry-room-card p{color:var(--entry-muted);margin-top:10px;font-size:.92rem}.entry-room-meta{flex-wrap:wrap;gap:8px;margin-top:18px}.entry-room-meta span{background:var(--entry-panel-soft);border:1px solid var(--entry-border);color:var(--entry-muted);border-radius:999px;padding:5px 8px;font-size:.75rem}.entry-room-footer{margin-top:auto;padding-top:22px}.entry-avatars{min-height:34px;padding-left:8px}.entry-avatar{border:2px solid var(--entry-panel);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;margin-left:-8px;font-size:.68rem;font-weight:800;display:inline-flex}.entry-room-footer .entry-secondary-button{flex:none}@media (width<=900px){.entry-shell{padding:22px}.entry-brand{margin-bottom:32px}.entry-grid{grid-template-columns:1fr;gap:32px;min-height:auto}.entry-copy h1{font-size:clamp(2.6rem,12vw,4.4rem)}.entry-room-list{grid-template-columns:1fr}}@media (width<=540px){.entry-shell{padding:18px}.entry-panel{padding:16px}.entry-section-heading{flex-direction:column;align-items:start;gap:4px}}.game-room{--bg:#f4f7f1;--surface:#fff;--surface2:#edf3ef;--surface3:#dfe9e3;--border:#d8e2db;--purple:#8b5cf6;--purple-dim:#7c3aed;--text:#18221f;--muted:#64706a;--green:#22c55e;--yellow:#b45309;--red:#dc2626;--blue:#2563eb;--entry-accent:#c2410c;height:100svh;color:var(--text);background:radial-gradient(circle at 8% 0%, #8b5cf629, transparent 24rem), radial-gradient(circle at 88% 4%, #c2410c1a, transparent 22rem), linear-gradient(180deg, #f9fbf7 0%, var(--bg) 48%, #e8f0eb 100%);flex-direction:column;display:flex;overflow:hidden}.gr-topbar{border-bottom:1px solid var(--border);z-index:2;background:#ffffffeb;flex-shrink:0;align-items:center;gap:14px;height:58px;padding:0 18px;display:flex;box-shadow:0 8px 32px #18221f12}.gr-logo{font-size:1.05rem;font-weight:800}.gr-logo span{color:var(--purple)}.gr-sep{background:var(--border);flex-shrink:0;width:1px;height:20px}.room-label{font-size:.875rem;font-weight:600}.problem-chip{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:5px 11px;font-size:.75rem}.problem-chip strong{color:var(--text)}.topbar-spacer{flex:1}.timer-display{flex-shrink:0;align-items:center;gap:10px;display:flex}.timer-time{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:800;line-height:1}.timer-label{color:var(--muted);font-size:.68rem}.timer-avatars{padding-left:5px;display:flex}.timer-avatar{border:2px solid var(--surface);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:26px;height:26px;margin-left:-5px;font-size:.55rem;font-weight:700;display:flex}.gr-actions{gap:8px;display:flex}.btn-sm{cursor:pointer;white-space:nowrap;border:none;border-radius:8px;min-height:34px;padding:6px 13px;font-size:.8rem;font-weight:800;transition:background .2s,border-color .2s,color .2s}.btn-sm-ghost{border:1px solid var(--border);color:var(--muted);background:0 0}.btn-sm-ghost:hover{border-color:var(--purple);color:var(--text);background:#8b5cf614}.btn-sm-primary{background:var(--purple);color:#fff}.btn-sm-primary:hover{background:var(--purple-dim)}.btn-sm-danger{color:var(--red);background:#fff1f2;border:1px solid #fecdd3}.btn-sm-danger:hover{background:#ffe4e6}.gr-main{flex:1;gap:12px;min-height:0;padding:12px;display:flex;overflow:hidden}.gr-left{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;flex-shrink:0;width:280px;display:flex;overflow:hidden;box-shadow:0 12px 40px #18221f14}.panel-tabs{border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.panel-tab{text-align:center;color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:11px 0;font-size:.78rem;font-weight:800;transition:color .15s,background .15s}.panel-tab.active{color:var(--purple);border-bottom-color:var(--purple);background:#8b5cf614}.panel-body{flex:1;padding:14px;overflow-y:auto}.prob-header{justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:10px;display:flex}.prob-title{font-size:.95rem;font-weight:800;line-height:1.3}.diff-badge{text-transform:uppercase;border-radius:999px;flex-shrink:0;padding:3px 8px;font-size:.68rem;font-weight:800}.diff-badge.hard{color:var(--red);background:#fee2e2}.diff-badge.medium{color:var(--yellow);background:#ffedd5}.diff-badge.easy{color:var(--purple);background:#ede9fe}.prob-desc{color:var(--muted);font-size:.82rem;line-height:1.65}.prob-section{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:12px 0 5px;font-size:.68rem;font-weight:800}.req-list{flex-direction:column;gap:5px;list-style:none;display:flex}.req-list li{color:var(--muted);align-items:flex-start;gap:6px;font-size:.8rem;display:flex}.req-list li:before{content:">";color:var(--entry-accent);flex-shrink:0;margin-top:1px;font-weight:800}.chips{flex-wrap:wrap;gap:5px;margin-top:4px;display:flex}.chip{background:var(--surface2);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:4px 8px;font-size:.7rem}.peer-list{flex-direction:column;gap:10px;display:flex}.peer-card{border:1px solid var(--border);background:#fbfdfb;border-radius:8px;padding:12px}.peer-header{align-items:center;gap:8px;margin-bottom:10px;display:flex}.peer-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:.62rem;font-weight:700;display:flex}.peer-name{flex:1;font-size:.85rem;font-weight:700}.peer-status{color:var(--muted);font-size:.68rem}.online-dot{background:var(--green);border-radius:50%;width:7px;height:7px;margin-left:auto}.peer-preview{background:var(--surface2);border:1px solid var(--border);border-radius:8px;height:80px;position:relative;overflow:hidden}.peer-preview-inner{flex-wrap:wrap;align-items:flex-start;gap:4px;width:100%;height:100%;padding:8px;display:flex}.peer-preview-node{background:var(--surface);border:1px solid var(--border);color:var(--muted);white-space:nowrap;border-radius:5px;padding:2px 6px;font-size:.55rem}.blur-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#f4f7f17a;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.blur-label{color:var(--muted);border:1px solid var(--border);background:#ffffffd1;border-radius:999px;padding:2px 7px;font-size:.62rem}.peer-progress{align-items:center;gap:8px;margin-top:8px;display:flex}.progress-bg{background:var(--surface3);border-radius:3px;flex:1;height:5px;overflow:hidden}.progress-fill{background:var(--purple);border-radius:3px;height:5px}.progress-pct{color:var(--muted);text-align:right;width:30px;font-size:.7rem}.you-card{background:#f3efff;border:1px solid #8b5cf647;border-radius:8px;padding:12px}.you-label{color:var(--purple);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px;font-size:.65rem;font-weight:800}.gr-center{border:1px solid var(--border);border-radius:8px;flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden;box-shadow:0 12px 40px #18221f14}.wb-loading{color:var(--muted);flex:1;justify-content:center;align-items:center;font-size:.875rem;display:flex}.gr-right{background:var(--surface);border:1px solid var(--border);border-radius:8px;flex-direction:column;flex-shrink:0;width:340px;display:flex;overflow:hidden;box-shadow:0 12px 40px #18221f14}.gr-chat-header{border-bottom:1px solid var(--border);align-items:center;gap:6px;padding:12px 16px;font-size:.82rem;font-weight:800;display:flex}.gr-chat-dot{background:var(--green);border-radius:50%;width:7px;height:7px}.gr-chat-feed{flex-direction:column;flex:1;gap:9px;padding:12px 14px;display:flex;overflow-y:auto}.gr-msg{flex-direction:column;gap:2px;display:flex}.gr-msg-meta{align-items:baseline;gap:6px;display:flex}.gr-msg-name{font-size:.75rem;font-weight:800}.gr-msg-time{color:var(--muted);font-size:.62rem}.gr-msg-text{color:var(--muted);font-size:.8rem;line-height:1.5}.gr-msg-text code{background:var(--surface2);border:1px solid var(--border);color:var(--purple);border-radius:4px;padding:1px 4px;font-family:monospace;font-size:.75rem}.gr-sys-msg{text-align:center;color:var(--muted);background:var(--surface2);border-radius:999px;padding:4px 8px;font-size:.68rem}.gr-chat-input{border-top:1px solid var(--border);padding:10px 12px}.gr-input{border:1px solid var(--border);width:100%;color:var(--text);resize:none;background:#fbfdfb;border-radius:8px;outline:none;height:54px;padding:7px 10px;font-family:inherit;font-size:.8rem;line-height:1.4;transition:border-color .2s,box-shadow .2s}.gr-input:focus{border-color:var(--purple);box-shadow:0 0 0 3px #8b5cf624}.gr-input::placeholder{color:var(--muted)}.gr-chat-footer{justify-content:flex-end;padding:6px 12px 10px;display:flex}.gr-statusbar{border-top:1px solid var(--border);height:30px;color:var(--muted);background:#ffffffeb;flex-shrink:0;align-items:center;gap:16px;padding:0 16px;font-size:.68rem;display:flex}.status-item{align-items:center;gap:5px;display:flex}.status-led{border-radius:50%;width:6px;height:6px}.led-green{background:var(--green)}.statusbar-right{gap:12px;margin-left:auto;display:flex}@media (width<=1100px){.gr-main{gap:8px;padding:8px}.gr-left{width:248px}.gr-right{width:300px}.problem-chip{display:none}}@media (width<=820px){.game-room{overflow:auto}.gr-topbar{flex-wrap:wrap;height:auto;min-height:58px;padding:10px 12px}.gr-main{flex-direction:column;min-height:900px;overflow:visible}.gr-left,.gr-right{width:100%;max-height:260px}.gr-center{min-height:520px}.gr-statusbar{display:none}}
