:root{font-family:Inter,Segoe UI,-apple-system,BlinkMacSystemFont,Helvetica Neue,Arial,sans-serif;line-height:1.6;font-weight:400;color:#0f172a;background-color:#e2e8f0;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-height:100vh;background:radial-gradient(circle at 20% 20%,rgba(99,102,241,.22),transparent 45%),radial-gradient(circle at 80% 0%,rgba(14,165,233,.2),transparent 50%),#e2e8f0}#root{min-height:100vh}a{color:inherit}.app{display:flex;flex-direction:column;gap:2.5rem;max-width:980px;margin:0 auto;padding:3rem 1.5rem 4rem;color:#0f172a}header{display:flex;flex-direction:column;gap:.5rem}header h1{margin:0;font-size:clamp(2rem,5vw,2.75rem);font-weight:700}header p{margin:0;color:#475569}.session-gate{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.session-gate .banner{grid-column:1 / -1}.card{background-color:#ffffffd9;border:1px solid rgba(15,23,42,.08);border-radius:16px;padding:1.75rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:0 18px 34px -24px #1e293b73;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.card h2{margin:0;font-size:1.35rem}.card p{margin:0;color:#475569}form{display:flex;flex-direction:column;gap:1rem}label{display:flex;flex-direction:column;font-weight:600;gap:.45rem;color:#0f172a;font-size:.95rem}fieldset{border:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.75rem}fieldset legend{font-weight:600;color:#0f172a;font-size:.95rem;margin-bottom:.25rem}fieldset label{flex-direction:row;align-items:center;gap:.65rem;font-weight:500;cursor:pointer}fieldset input[type=radio]{width:auto;margin:0;cursor:pointer}input{border-radius:10px;border:1px solid rgba(15,23,42,.2);padding:.65rem .8rem;font-size:1rem;font-family:inherit;background:#fffc;transition:border-color .2s,box-shadow .2s}input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb40}.mono{font-family:JetBrains Mono,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.1em;text-transform:uppercase}button{border-radius:999px;border:none;padding:.65rem 1.4rem;font-size:1rem;font-weight:600;font-family:inherit;background:linear-gradient(120deg,#2563eb,#6366f1);color:#fff;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 18px -8px #4f46e573}button:disabled{opacity:.45;cursor:not-allowed}.session-meta{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));background:#ffffffd9;border-radius:14px;padding:1.25rem 1.5rem;border:1px solid rgba(100,116,139,.15);box-shadow:0 16px 32px -26px #0f172a66}.session-meta strong{display:block;margin-top:.3rem;font-size:1.1rem}.muted{color:#64748b}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem;justify-content:space-between;background:#ffffffc7;border:1px solid rgba(100,116,139,.12);border-radius:16px;padding:1.5rem;box-shadow:0 18px 34px -28px #1e293b66}.controls h2{margin:0}.control-buttons{display:flex;gap:.75rem;flex-wrap:wrap}.control-buttons button:nth-of-type(2){background:linear-gradient(120deg,#0ea5e9,#38bdf8)}.exit-button{background:linear-gradient(120deg,#dc2626,#ef4444)!important}.exit-button:hover:not(:disabled){box-shadow:0 10px 18px -8px #dc262673!important}.card-choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));gap:.75rem}.estimate{aspect-ratio:3 / 2;border-radius:20px;font-size:1.3rem;font-weight:700;background:#ffffffd9;color:#1e293b;border:2px solid transparent}.estimate.selected{border-color:#4f46e5bf;box-shadow:0 12px 22px -18px #4f46e599}.estimate:disabled{background:#e2e8f0b3;color:#475569}.participants{background:#ffffffd9;border-radius:16px;border:1px solid rgba(148,163,184,.24);box-shadow:0 18px 34px -32px #1e293b73;padding:1.5rem}.participants header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1rem}.participants ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.65rem}.participants li{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:#f1f5f9d9;border-radius:12px;padding:.85rem 1rem;transition:transform .18s ease}.participants li.self{transform:translate(6px);border:1px solid rgba(59,130,246,.2)}.name{font-weight:600}.badge{margin-left:.5rem;font-size:.75rem;text-transform:uppercase;font-weight:700;letter-spacing:.05em;background:#3b82f626;border-radius:999px;padding:.15rem .55rem;color:#1d4ed8}.vote{min-width:90px;text-align:right;text-transform:uppercase;font-weight:700;letter-spacing:.05em}.vote.pending{color:#64748b}.vote.locked-in{color:#16a34a}.results{background:#ffffffd9;border-radius:16px;padding:1.5rem;border:1px solid rgba(148,163,184,.24);box-shadow:0 18px 34px -30px #1e293b6b}.results h2{margin-top:0}.results-grid{margin-top:1rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:1rem}.results-grid article{background:#e2e8f0a6;border-radius:12px;padding:1rem;text-align:center}.average-display{display:flex;flex-direction:column;align-items:center;justify-content:center;background:#e2e8f0a6;border-radius:16px;padding:2.5rem;text-align:center;margin-top:1rem}.average-label{font-weight:600;font-size:1.1rem;letter-spacing:.06em;color:#64748b;text-transform:uppercase;margin-bottom:.75rem}.average-value{font-size:3.5rem;font-weight:700;color:#3730a3;line-height:1}.dolphin-count{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-top:1.5rem;padding:1rem 1.5rem;background:#f1f5f9b3;border-radius:12px}.dolphin-emoji{font-size:2rem}.dolphin-votes{font-size:1.1rem;font-weight:600;color:#475569}.label{display:block;font-weight:600;font-size:1.1rem;letter-spacing:.06em}.count{display:block;font-size:1.5rem;font-weight:700;color:#3730a3;margin-top:.35rem}.banner{border-radius:12px;padding:.85rem 1rem;font-weight:600;text-align:center}.banner.info{background:#60a5fa2e;border:1px solid rgba(59,130,246,.35);color:#1d4ed8}.banner.warning{background:#fbbf242e;border:1px solid rgba(217,119,6,.35);color:#b45309}.banner.error{background:#ef444429;border:1px solid rgba(239,68,68,.35);color:#b91c1c}footer{text-align:center;color:#64748b;font-size:.85rem}@media(max-width:640px){.controls{align-items:flex-start}.control-buttons{width:100%;justify-content:stretch}.control-buttons button{flex:1 1 auto}}
