:root {font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color-scheme:dark;--bg:#0e1118;--panel:#181e29;--line:#343c4d;--ink:#f6f8fc;--muted:#a1aec1;--aqua:#42e5c1;--red:#ff7185;--amber:#f7c26a}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 5% -10%,#173b40 0%,transparent 40%),var(--bg);color:var(--ink);min-height:100vh}main{max-width:1080px;margin:0 auto;padding:48px 22px 70px}.narrow{max-width:580px} .brand{display:flex;align-items:center;gap:12px;color:var(--aqua);letter-spacing:.15em;font-weight:800;text-transform:uppercase;font-size:12px}.mark{display:grid;place-items:center;height:38px;width:38px;border:1px solid var(--aqua);border-radius:12px;font-size:21px}.hero{padding:44px 0 20px}h1{font-size:clamp(38px,6vw,72px);line-height:1.03;letter-spacing:-.05em;margin:14px 0 18px}h2{font-size:22px;letter-spacing:-.025em;margin:0 0 18px}.lead{font-size:18px;color:var(--muted);line-height:1.55}.card{background:rgba(24,30,41,.96);border:1px solid var(--line);border-radius:24px;padding:26px;margin:18px 0;box-shadow:0 14px 45px #00000018}.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--aqua);font-weight:800}.seat{font-size:42px;font-weight:850;letter-spacing:-.04em;margin:9px 0}.muted{color:var(--muted)}.small{font-size:13px;line-height:1.65}.status{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:100px;padding:9px 14px;font-size:13px;color:var(--muted)}.dot{width:9px;height:9px;border-radius:50%;background:var(--amber)}.status.live .dot{background:var(--aqua)}.status.onair .dot{background:var(--red);box-shadow:0 0 0 5px #ff718522}.big-button,.button{background:var(--aqua);color:#061a1a;font:inherit;border:0;border-radius:15px;font-weight:800;cursor:pointer;padding:16px 22px;transition:filter .2s,transform .2s}.big-button{font-size:21px;width:100%;padding:22px}.button:hover,.big-button:hover{filter:brightness(1.1)}button:disabled{opacity:.45;cursor:not-allowed}.button.secondary{background:#293444;color:var(--ink)}.button.danger{background:var(--red);color:#200a11}.button.smallbtn{font-size:13px;padding:11px 14px}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{justify-content:space-between}.label{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}input{background:#10151f;color:var(--ink);border:1px solid #485467;border-radius:12px;min-height:50px;padding:11px 15px;font-size:16px;max-width:100%;width:100%}.two{display:grid;grid-template-columns:1.2fr 1fr;gap:22px}.queue-item{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding:14px 0}.queue-item:first-child{border-top:none}.queue-item strong{font-size:20px}.counter{font-size:38px;font-weight:850;letter-spacing:-.04em;margin:2px 0}.ticket{border:1px solid var(--line);background:#141b26;padding:16px;border-radius:18px;display:flex;align-items:center;gap:18px;margin:12px 0}.ticket img{width:100px;height:100px;background:white;border-radius:10px;padding:4px}.ticket a{color:var(--aqua);font-size:12px;overflow-wrap:anywhere}.error{color:var(--red)}.ok{color:var(--aqua)}.hide{display:none!important}.divider{height:1px;background:var(--line);margin:20px 0}.footnote{color:var(--muted);font-size:12px;padding-top:24px}a{color:var(--aqua)}#audio{width:100%;height:35px} @media(max-width:760px){main{padding-top:27px}.two{grid-template-columns:1fr}.hero{padding:28px 0 16px}.card{padding:21px}}
/* v0.3: componentes sencillos y adaptables */
.midtitle{font-size:clamp(32px,5vw,54px)}.full{width:100%;margin-top:10px}.inlinebutton{display:inline-block;text-decoration:none}label{display:block;color:var(--muted);font-size:13px;font-weight:600;margin:10px 0}label input,label select{margin-top:7px}select{background:#10151f;color:var(--ink);border:1px solid #485467;border-radius:12px;padding:11px 15px;font-size:16px;min-height:50px;width:100%}.checkline{display:flex;align-items:center;gap:12px;line-height:1.5}.checkline input{width:20px;height:20px;margin:0;min-height:0;accent-color:var(--aqua)}.compact{gap:12px}.activeTitle{font-size:clamp(28px,5vw,48px);margin-top:18px;overflow-wrap:anywhere}.stats{display:flex;justify-content:space-between;gap:9px}.stats>div{display:flex;flex-direction:column;flex:1}.stats strong{font-size:23px;overflow-wrap:anywhere}.stats span{font-size:12px;color:var(--muted)}.countsmall{font-size:16px;border-radius:12px;padding:4px 8px;background:#293444}.bigqr{width:min(230px,100%);aspect-ratio:1;object-fit:contain;background:#fff;border-radius:12px;padding:10px;margin:5px auto;display:block}.wordbreak{overflow-wrap:anywhere}.roomrow{padding:15px 0;border-top:1px solid var(--line)}.roomrow:first-child{border-top:none}.roomrow strong{display:block;margin-bottom:5px}.roomrow .row{margin-top:10px}.meta{font-size:12px;color:var(--muted)}

/* v0.3.5 */
.queue-offline{opacity:.65}.queue-offline strong::after{content:" · desconectado";color:var(--amber);font-size:12px;font-weight:500}.queue-online strong::after{content:" · en línea";color:var(--aqua);font-size:12px;font-weight:500}
.rabbit-greeting{font-size:28px;font-weight:800;text-align:center;color:var(--aqua);padding:15px;animation:earwiggle .28s ease-in-out 4}
@keyframes earwiggle{0%,100%{transform:rotate(-6deg)}50%{transform:rotate(6deg)}}

/* Cabina v0.3.6: temporizador en vivo, recuperación y listado localizable */
.turn-timing{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0;padding:14px 16px;background:#101822;border:1px solid var(--line);border-radius:15px}
.turn-clock{font-size:clamp(36px,5vw,54px);font-variant-numeric:tabular-nums;font-weight:850;letter-spacing:.02em}
.turn-buttons{align-items:stretch}.turn-buttons button{flex:1;min-width:170px}
#resume:not(:disabled){border:1px solid var(--aqua);color:var(--aqua)}
.venue-quick{flex-wrap:nowrap}.venue-quick select{min-width:0;flex:1}.roster-list{max-height:380px;overflow-y:auto;margin-top:12px}
.roster-item{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding:12px 0}
.roster-name{font-weight:750}.roster-meta{font-size:12px;color:var(--muted);margin-top:4px}
.roster-item .button{flex-shrink:0}.roster-online{color:var(--aqua)}.roster-offline{color:var(--amber)}
@media(max-width:520px){.roster-item{flex-wrap:wrap}.turn-buttons button{min-width:100%}.venue-quick{flex-wrap:wrap}.venue-quick button{width:100%}}

/* v0.3.7: consentimiento claro desde el QR */
#consentPanel{border-color:#42e5c177;background:linear-gradient(135deg,#16272b,#181e29 65%)}
#consentPanel p{line-height:1.62}#consentPanel .checkline{align-items:flex-start;padding:13px 0;border-top:1px solid var(--line);color:var(--ink)}
#consentPanel .checkline input{flex:none;margin:3px 0 0}#consentPanel .checkline span{flex:1}
.recording-notice{background:#101923;border:1px solid #4d6170;border-radius:14px;padding:16px;margin:16px 0}
.recording-notice h3{font-size:17px;margin:0 0 8px}.recording-notice div{margin-top:9px;overflow-wrap:anywhere}
.recording-config{border:1px solid var(--line);border-radius:15px;padding:14px;margin:15px 0}
.recording-config legend{padding:0 6px;color:var(--aqua);font-weight:750}

/* v0.3.8 text participation / private artist moderation */
textarea{display:block;width:100%;min-height:130px;background:#10151f;color:var(--ink);border:1px solid #485467;border-radius:12px;padding:12px 14px;font:inherit;resize:vertical}
.message-item{padding:16px 0;border-top:1px solid var(--line)}
.message-item strong{font-size:15px;display:block;color:var(--aqua)}
.message-body{font-size:16px;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere;margin:10px 0}
.message-item.is-featured{border-radius:12px;padding:15px;background:#1c3440;border:1px solid var(--aqua)}
.featured-text{margin:14px 0 20px;padding:17px;border:2px solid var(--aqua);border-radius:16px;background:#112b32}
.featured-text strong{display:block;margin:10px 0}.featured-text p{font-size:clamp(18px,3vw,26px);line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.text-mode-tabs{margin:12px 0}.text-mode-tabs button[aria-pressed="true"]{background:var(--aqua);color:#071818}
.messages-list{max-height:540px;overflow-y:auto}

/* v0.3.9.4 — afiche responsivo, sin recorte del material promocional. */
.event-poster{display:block;width:100%;height:auto;max-height:490px;object-fit:contain;margin:14px auto 18px;border-radius:12px;background:rgba(128,128,128,.08)}
.event-poster.hide{display:none}

/* v0.3.9.5: participant poll (no microphone interaction) */
.poll-public{background:var(--card,#152033);border:1px solid var(--line,#32435b);border-radius:16px;padding:22px;margin:18px 0}
.poll-public h2{margin:12px 0 15px;font-size:21px}
.poll-choice{display:flex;gap:10px;align-items:center;padding:14px 10px;border:1px solid var(--line,#32435b);border-radius:10px;margin-bottom:8px;cursor:pointer}
.poll-choice input{min-width:20px;min-height:20px}.poll-result{margin:12px 0;font-size:14px}
.poll-result-track{height:12px;background:#2a4050;border-radius:7px;overflow:hidden;margin-top:4px}
.poll-result-fill{height:100%;background:#20bfa5}

/* v0.3.9.6: audience and producer extensions, isolated from live voice */
.mic-guide{display:flex;gap:1rem;align-items:center;background:#123f42;border:1px solid #41b4a5;border-radius:14px;padding:1rem;margin:.75rem 0 1.25rem}
.mic-guide strong{font-size:1.08rem;color:#e5fff8}.mic-guide p{margin:.3rem 0;line-height:1.35}.mic-guide-icon{flex-shrink:0}
.experience-canvas{position:fixed;inset:0;z-index:9999;display:flex;justify-content:center;align-items:center;flex-direction:column;background:#fff;transition:background-color 2s ease-in-out;color:#182331}
.experience-canvas.hide{display:none}.experience-close{position:absolute;top:18px;right:16px;padding:13px;background:#181f29;color:white;border-radius:10px;border:0;font-weight:bold;font-size:15px}
.experience-caption{background:#fff9;padding:12px 20px;border-radius:16px;font-size:16px;color:#151515}
.audience-extras{margin-top:24px}.experience-op{margin-top:16px}.show-content{margin-top:20px;padding:14px;background:#172332;border-radius:14px}.show-content video{width:100%;max-height:280px;background:#070a11;border-radius:12px}
.polls-list{display:grid;gap:12px;margin-top:12px}.show-clip{border:1px solid #56677b66;border-radius:12px;padding:12px}.show-clip strong{display:block;overflow-wrap:anywhere}.show-actions{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.poll-kind-switch{display:flex;gap:8px;margin:8px 0}.poll-kind-switch button{flex:1}.poll-choice-edit{display:flex;gap:8px;margin:6px 0}.poll-choice-edit input{min-width:0;flex:1}.poll-choice-edit button{flex-shrink:0}.poll-result-track{height:7px;background:#314054;border-radius:8px;overflow:hidden}.poll-result-fill{height:100%;background:#39bea5}

/* v0.3.9.8: receiver device + recording affordances */
.receiver-heading{font-size:16px;letter-spacing:-.01em;margin:22px 0 6px}
#audioDevice{display:block;width:100%;background:#10151f;border:1px solid #576a7a;border-radius:12px;color:#f6f8fc;min-height:52px;font:inherit;padding:10px 14px;margin-top:7px}
#receiverRecording{border-color:#406a72}
#recordDownload{display:block;text-align:center;text-decoration:none;margin-top:15px;background:var(--aqua);color:#061a1a}
#recordDownload.unavailable{background:#283444;color:#a8b8c8;opacity:.68;pointer-events:none;cursor:not-allowed}
#recordDownload:not(.unavailable):focus-visible,#audioDevice:focus-visible{outline:3px solid var(--aqua);outline-offset:2px}

/* v0.4.0 — Visual notices, separate from the phone microphone and pre-show ads. */
.location-picker-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.location-picker-grid label{display:block}.location-picker{margin:8px 0 14px}
.location-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:12px 0}
.audience-bulletin{margin:14px 0;display:grid;gap:10px}.audience-bulletin h2{margin:2px 0;font-size:22px}.audience-bulletin-image,.audience-bulletin-video{width:100%;height:auto;max-height:420px;object-fit:contain;border-radius:12px;background:#0a111b}
.audience-bulletin a.button{text-align:center;text-decoration:none}

/* v0.4.1 — guía de orientación inmediata, sin bloquear el micrófono ni el control de finalizar. */
.mic-guide-icon img{display:block;width:155px;max-width:100%;height:auto;border-radius:10px}
.mic-coach{position:fixed;top:max(12px,env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:12000;width:min(calc(100vw - 24px),430px);max-height:min(82dvh,680px);overflow:auto;overscroll-behavior:contain;background:#13282f;border:2px solid #47ddbd;border-radius:20px;padding:16px 18px 18px;color:#f3fffa;box-shadow:0 8px 30px #000a,0 0 0 4px #47ddbd22}
.mic-coach.hide{display:none!important}.mic-coach-head{display:flex;justify-content:space-between;align-items:center;gap:10px}
.mic-coach-status{color:#52e8c5;font-size:13px;letter-spacing:.08em;font-weight:850}.mic-coach-close{font-size:18px;min-width:38px;min-height:38px;border-radius:10px;color:white;background:#304b54;border:0;cursor:pointer}
.mic-coach h2{font-size:clamp(24px,5vw,30px);margin:4px 0 9px}.mic-coach-image{display:block;width:100%;height:auto;max-height:210px;object-fit:contain;border-radius:12px}
.mic-coach-tip{font-size:15px;line-height:1.4;margin:10px 0 12px}.mic-coach-dismiss{width:100%;min-height:48px;background:#42e5c1;color:#07221b}
.mic-guide-shortcut{width:100%;min-height:44px;margin:8px 0 14px}
@media (max-width:430px){.mic-guide{flex-wrap:wrap}.mic-guide-icon img{width:118px}.mic-coach{padding:11px 14px 14px}.mic-coach-image{max-height:180px}.mic-coach-tip{font-size:14px}}
@media (prefers-reduced-motion:reduce){.mic-coach{scroll-behavior:auto}}

/* v0.4.4 production publication: short, full screen visual overlay. */
.audience-bulletin:not(.hide){position:fixed;inset:0;z-index:10500;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:12px;overflow:auto;margin:0;padding:calc(20px + env(safe-area-inset-top,0px)) 18px calc(20px + env(safe-area-inset-bottom,0px));background:#071017f7;text-align:center}
.audience-bulletin h2{font-size:clamp(24px,6vw,36px)}
.audience-bulletin .row{width:100%;max-width:520px}
.audience-bulletin-image,.audience-bulletin-video{width:min(100%,520px);max-height:65dvh;object-fit:contain}
.audience-bulletin a.button{width:min(100%,420px)}
/* The live microphone is owned by production; full-screen guide cannot be dismissed. */
.mic-coach:not(.hide){position:fixed;inset:0;z-index:15000;transform:none;width:100vw;max-width:none;max-height:none;height:100dvh;overflow:auto;border:0;border-radius:0;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:max(25px,env(safe-area-inset-top,0px)) 20px max(25px,env(safe-area-inset-bottom,0px))}
.mic-coach-image{max-width:520px;max-height:44dvh}.mic-coach-tip{max-width:470px;font-size:clamp(16px,4vw,21px)}
.mic-coach-close,.mic-coach-dismiss{display:none!important}
.mic-coach:focus{outline:none}
.technical-advanced{margin-top:12px}
.message-preview{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.message-collapsed-read{opacity:.65}
.message-actions-separated{margin-top:14px;padding-top:12px;border-top:1px solid #596e8155}

.mode-choice{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}.mode-choice button[aria-pressed="true"]{background:#30d4b3;color:#082a25;font-weight:800}.mode-choice button{min-height:60px;white-space:normal}.technical-lab.hide{display:none!important}

/* v0.4.5: controles del receptor y del público cómodos para uso táctil. */
.audio-route-details{margin:14px 0;border:1px solid #415368;border-radius:12px;padding:12px}
.audio-route-details summary{cursor:pointer;font-weight:750;min-height:46px;display:flex;align-items:center}
@media(pointer:coarse){
 .button,.big-button,button,select,input[type="file"]{min-height:48px}
 .row>.button{flex:1 1 180px}
 .checkline input[type="checkbox"]{width:24px;height:24px;flex-shrink:0}
 button:focus-visible,select:focus-visible,input:focus-visible,a.button:focus-visible{outline:3px solid var(--aqua);outline-offset:3px}
}
@media(pointer:coarse) and (max-width:520px){.row>.button{flex-basis:100%}main{padding-left:14px;padding-right:14px}}

/* MON01: solo visor, no cambia ni controla la ruta de audio. */
.mon-card{margin:18px 0;padding:18px;border:1px solid #36776e;border-radius:16px;background:#0e1c28}
.mon-head{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}
.mon-head strong{color:#9bf5d5;font-size:15px}.mon-label{font-size:10px;color:#a9c9ce;letter-spacing:.08em}
#monWave{width:100%;height:88px;display:block;border-radius:9px;margin:12px 0;background:#101924}
.mon-toggle{display:flex;align-items:center;gap:8px;font-size:13px;line-height:1.35;margin:12px 0;color:#e7f8fc}
.mon-toggle input{width:19px;height:19px;min-height:0;flex:none}
.mon-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}
.mon-grid>div{font-size:11px;color:#afc2cb;border:1px solid #2f4b59;padding:8px;border-radius:9px;min-width:0}
.mon-grid strong{display:block;overflow-wrap:anywhere;font-size:14px;color:#effbf7;margin-top:5px}
@media(max-width:520px){.mon-grid{grid-template-columns:1fr}}


/* UX-05: full vivid color; native screen brightness stays under user control. */
.experience-canvas{isolation:isolate;opacity:1;filter:none;min-height:100dvh}
.experience-caption{background:#ffffffed;color:#101820;max-width:calc(100vw - 32px);text-align:center}
@media(prefers-reduced-motion:reduce){.experience-canvas{transition:none}}

/* C02: local stop stays visible in the microphone guide. */
#coachFinish{position:sticky;top:0;z-index:1;flex-shrink:0;min-height:52px;max-width:520px}
