:root{font-family:SF Pro Display,SF Pro Text,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#101828;background:linear-gradient(180deg,#f9fafb,#eef2f7);line-height:1.4;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#f9fafb,#eef2f7)}#root{min-height:100vh}button,input,select{font:inherit;letter-spacing:-.01em}button{border:1px solid rgba(15,23,42,.12);background:linear-gradient(180deg,#fff,#f2f4f8);color:#0f172a;padding:10px 14px;border-radius:12px;cursor:pointer;transition:all .14s ease}button:hover{transform:translateY(-1px);border-color:#0f172a38;box-shadow:0 6px 20px #0f172a14}button:disabled{cursor:not-allowed;opacity:.45;transform:none;box-shadow:none}.join-page{min-height:100vh;display:grid;place-items:center;padding:24px}.join-card{width:100%;max-width:440px;background:#ffffffc7;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.8);border-radius:20px;box-shadow:0 24px 60px #091e4224;padding:22px;display:grid;gap:11px}.join-card h1{margin:0 0 2px;font-size:30px;letter-spacing:-.03em}.join-card p{margin:0 0 6px;color:#475569}.join-card label{font-size:13px;color:#334155;font-weight:600}.join-card input,.join-card select{border:1px solid rgba(15,23,42,.12);border-radius:12px;padding:10px 12px;background:#fff}.join-card button{margin-top:4px;font-weight:600}.room-page{max-width:1120px;margin:0 auto;padding:18px 20px 28px;color:#0f172a}.room-header{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px}.room-header h1{margin:0;font-size:48px;line-height:.96;font-weight:700;letter-spacing:-.04em}.room-header p{margin:8px 0 0 2px;color:#475569;font-size:27px;line-height:1.02;letter-spacing:-.03em}.header-actions{display:flex;gap:8px}.header-actions button{border-radius:14px;min-height:44px}.error-banner{margin-bottom:14px;border:1px solid rgba(239,68,68,.3);color:#b91c1c;background:#ffededcc;padding:10px 12px;border-radius:12px}.topic-panel{margin-bottom:14px;background:#ffffffb8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border:1px solid rgba(15,23,42,.1);border-radius:18px;padding:12px}.topic-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.topic-badge{display:inline-flex;align-items:center;height:24px;border-radius:999px;padding:0 10px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:#0b4f96;background:#e6f2ff;border:1px solid #bfdbfe}.topic-admin{color:#64748b;font-size:12px}.topic-edit{display:grid;grid-template-columns:1fr auto auto;gap:8px}.topic-edit input,.topic-edit select{min-height:42px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fff;padding:0 12px}.topic-readonly{min-height:42px;display:flex;align-items:center;padding:0 12px;border-radius:12px;border:1px solid rgba(15,23,42,.1);background:#fff;color:#1e293b;font-weight:500}.table-layout{display:grid;gap:14px}.table-stage{background:#ffffff94;-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.8);border-radius:28px;box-shadow:0 22px 60px #0f172a17;padding:18px}.participants-strip{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:12px;margin-bottom:14px}.seat-card{flex:0 0 210px;width:210px;max-width:100%;border:1px solid var(--seat-border, rgba(15, 23, 42, .09));border-radius:20px;background:#fffc;box-shadow:0 8px 24px #0f172a0f;padding:12px}.seat-card.me{background:#eff6ffd1}.seat-card.disconnected{opacity:.5}.seat-top-row{display:flex;align-items:center;gap:8px}.seat-avatar{width:38px;height:38px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fff;display:grid;place-items:center;font-size:22px}.seat-ident{min-width:0}.seat-name{font-size:16px;font-weight:700;line-height:1.2;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.seat-meta{color:#64748b;font-size:12px}.seat-vote{margin-top:9px;width:74px;border:1px solid rgba(15,23,42,.12);border-radius:12px;height:52px;display:grid;place-items:center;font-size:24px;font-weight:700;color:#0f172a;background:#fff;margin-left:auto;margin-right:auto}.seat-vote.voted{border-color:#007aff59;color:#005fcc}.table-center{border-radius:26px;min-height:280px;background:radial-gradient(ellipse at center,#1f5f46,#164e38 48%,#0f3f2e);border:1px solid rgba(22,78,56,.42);display:grid;place-items:center;gap:12px;padding:20px;box-shadow:inset 0 0 0 10px #ffffff0f}.center-caption{color:#ffffff9e;font-size:14px;letter-spacing:.04em;text-transform:uppercase}.center-action button{min-width:250px;height:66px;border-radius:18px;border-color:transparent;background:linear-gradient(180deg,#2f3c4c,#202c3a);color:#fff;font-size:40px;font-weight:700;letter-spacing:-.02em;line-height:.94;box-shadow:0 12px 28px #17212f4d}.center-action button:disabled{background:linear-gradient(180deg,#495a70,#3d4d61);opacity:1}.results-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.results-card{border-left:4px solid rgba(0,122,255,.8);background:#fffc;border:1px solid rgba(15,23,42,.08);border-radius:14px;padding:10px 13px}.avg{font-weight:700}.metrics{display:flex;gap:16px;color:#1e293b;font-size:20px;letter-spacing:-.02em}.action-buttons{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.action-buttons select{height:42px;padding:0 12px;border-radius:12px;border:1px solid rgba(15,23,42,.12);background:#fff}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:10px}.vote-card{height:110px;font-size:42px;border:2px solid rgba(15,23,42,.12);border-radius:16px;background:linear-gradient(180deg,#fff,#f2f5f9);font-weight:700;color:#0f172a;box-shadow:0 10px 24px #0f172a14}.vote-card.selected{border-color:#007affd9;color:#005fcc;background:linear-gradient(180deg,#f7fbff,#e8f2ff);box-shadow:0 0 0 3px #007aff2b}@media(max-width:900px){.room-page{padding-inline:12px}.room-header{flex-direction:column;align-items:flex-start}.room-header h1{font-size:36px}.room-header p{font-size:22px}.participants-strip{justify-content:stretch}.seat-card{flex:1 1 calc(50% - 8px);width:auto;min-width:0}.table-center{min-height:230px}.center-action button{min-width:200px;font-size:32px}.results-row{flex-direction:column;align-items:stretch}.action-buttons{justify-content:flex-start}.topic-edit{grid-template-columns:1fr}}
