/* Signall Audio Rooms — immersive, phone-first. Always dark so it reads well with earbuds in, in a dim hall. */
.au-app,.au-sign-body{--au:#7c3aed;--au-ink:#fff;--bg:#0b0b14;--card:#14151f;--card2:#1b1d2a;--line:rgba(255,255,255,.09);--tx:#f2f3f9;--dim:#a0a4bd;--ok:#4ade80;--bad:#f87171;--amber:#fbbf24;}
*{box-sizing:border-box}
.au-app [hidden],.au-sheet[hidden]{display:none!important}
body{margin:0;background:#0b0b14;color:#f2f3f9;font-family:'Inter',system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
body.au-lock-scroll{overflow:hidden}
.au-app{position:relative;min-height:100vh;min-height:100dvh;color:var(--tx);isolation:isolate;overflow-x:hidden}
.au-bg{position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 520px at 50% -8%,color-mix(in srgb,var(--au) 42%,transparent),transparent 70%),radial-gradient(700px 500px at 100% 100%,color-mix(in srgb,var(--au) 16%,transparent),transparent 60%),var(--bg)}
.au-i{width:20px;height:20px;flex:none}
.au-top{display:flex;align-items:center;gap:10px;padding:max(14px,env(safe-area-inset-top)) 16px 6px;max-width:560px;margin:0 auto}
.au-top-t{flex:1;min-width:0;display:flex;flex-direction:column}
.au-brand{font-family:'Space Grotesk',sans-serif;font-weight:700;font-size:15px;letter-spacing:-.01em}
.au-ev{font-size:12.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-iconbtn{display:grid;place-items:center;width:42px;height:42px;border-radius:14px;border:1px solid var(--line);background:rgba(255,255,255,.05);color:var(--tx);cursor:pointer;text-decoration:none;backdrop-filter:blur(8px);transition:background .15s,transform .15s}
.au-iconbtn:hover{background:rgba(255,255,255,.1)}.au-iconbtn:active{transform:scale(.95)}.au-iconbtn.sm{width:36px;height:36px;border-radius:12px}
.au-main{max-width:560px;margin:0 auto;padding:6px 16px calc(40px + env(safe-area-inset-bottom))}
.au-hero{text-align:center;padding:14px 4px 6px}
.au-hero h1{font-family:'Space Grotesk',sans-serif;font-size:clamp(26px,7.5vw,34px);line-height:1.1;letter-spacing:-.02em;margin:12px 0 6px;text-wrap:balance}
.au-desc{color:var(--dim);font-size:15px;line-height:1.55;margin:0 auto 8px;max-width:440px}
.au-meta{color:var(--dim);font-size:12.5px;margin:0;letter-spacing:.01em}
.au-orb{position:relative;width:min(64vw,248px);aspect-ratio:1;margin:8px auto 4px;display:grid;place-items:center;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,color-mix(in srgb,var(--au) 85%,#fff 15%),var(--au) 55%,color-mix(in srgb,var(--au) 55%,#000) 100%);color:var(--au-ink);
  box-shadow:0 18px 60px color-mix(in srgb,var(--au) 45%,transparent),inset 0 -10px 30px rgba(0,0,0,.25)}
.au-orb canvas{position:absolute;inset:-18%;width:136%;height:136%;pointer-events:none}
.au-orb .au-i,.au-orb-ico .au-i{width:44px;height:44px;position:relative}
.au-orb-ico{display:grid;place-items:center;position:relative}
.au-hero-hub .au-orb{width:120px}.au-hero-hub .au-orb .au-i{width:40px;height:40px}.au-hero-hub p{color:var(--dim);margin:0 auto;max-width:360px;line-height:1.55}
[data-room-status=live] .au-orb::before,[data-state=live] .au-orb::before{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--au);opacity:.0;animation:auPulse 2.4s ease-out infinite}
[data-state=live] .au-orb::after{content:"";position:absolute;inset:-6px;border-radius:50%;border:2px solid var(--au);opacity:0;animation:auPulse 2.4s ease-out 1.2s infinite}
@keyframes auPulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(1.32);opacity:0}}
.au-chips{display:flex;justify-content:center;gap:8px;margin-top:6px;flex-wrap:wrap}
.au-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border-radius:999px;font-size:12.5px;font-weight:600;background:rgba(255,255,255,.07);border:1px solid var(--line);color:var(--tx)}
.au-chip .au-i{width:14px;height:14px}
.au-chip.s-live{background:color-mix(in srgb,var(--ok) 16%,transparent);border-color:color-mix(in srgb,var(--ok) 40%,transparent);color:#bbf7d0}
.au-chip.s-paused{background:color-mix(in srgb,var(--amber) 15%,transparent);border-color:color-mix(in srgb,var(--amber) 40%,transparent);color:#fde68a}
.au-dot{width:8px;height:8px;border-radius:50%;background:#6b7088;display:inline-block;flex:none}
.au-dot.s-live{background:var(--ok);box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:auBlip 1.8s infinite}.au-dot.s-paused{background:var(--amber)}
@keyframes auBlip{70%{box-shadow:0 0 0 7px rgba(74,222,128,0)}100%{box-shadow:0 0 0 0 rgba(74,222,128,0)}}
.au-panel{margin-top:18px}
.au-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 20px;border-radius:16px;border:1px solid transparent;background:var(--au);color:var(--au-ink);font:600 15px 'Inter',sans-serif;cursor:pointer;text-decoration:none;transition:transform .12s,filter .15s,opacity .15s;width:auto}
.au-btn:hover{filter:brightness(1.08)}.au-btn:active{transform:scale(.97)}.au-btn:disabled{opacity:.45;cursor:not-allowed;filter:none;transform:none}
.au-btn.big{width:100%;min-height:62px;font-size:17px;border-radius:20px;box-shadow:0 12px 34px color-mix(in srgb,var(--au) 40%,transparent)}.au-btn.big:disabled{box-shadow:none}
.au-btn.ghost{background:rgba(255,255,255,.06);border-color:var(--line);color:var(--tx)}.au-btn.ghost:hover{background:rgba(255,255,255,.1)}
.au-btn.danger{background:#dc2626;color:#fff}.au-btn.ghost.danger{background:rgba(248,113,113,.1);color:#fca5a5;border-color:rgba(248,113,113,.3)}
.au-btn.sm{min-height:36px;padding:0 13px;font-size:13px;border-radius:12px}.au-btn.on{background:var(--ok);color:#052e16}
.au-btn:focus-visible,.au-iconbtn:focus-visible,.au-card:focus-visible,.au-mic:focus-visible,.au-link:focus-visible{outline:3px solid #fff;outline-offset:3px}
.au-link{display:block;margin:14px auto 0;background:none;border:0;color:var(--dim);font:500 13.5px 'Inter',sans-serif;text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:8px}
.au-hint{text-align:center;color:var(--dim);font-size:13px;margin:12px 0 0}
.au-err{margin:12px 0 0;padding:11px 14px;border-radius:14px;background:rgba(248,113,113,.12);border:1px solid rgba(248,113,113,.35);color:#fecaca;font-size:14px;text-align:center}
.au-note{padding:16px;border-radius:16px;background:var(--card);border:1px solid var(--line);color:var(--dim);text-align:center;font-size:14.5px;line-height:1.55}
.au-banner{padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--amber) 14%,transparent);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);color:#fde68a;font-size:14px;text-align:center;margin-bottom:12px}
.au-tip{display:flex;gap:10px;align-items:flex-start;margin:26px auto 0;max-width:440px;color:var(--dim);font-size:12.5px;line-height:1.55}.au-tip .au-i{margin-top:1px;opacity:.8}
.au-deny{text-align:center;padding:22px 18px;border-radius:22px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:12px;align-items:center}
.au-deny h2{font-family:'Space Grotesk',sans-serif;margin:0;font-size:20px}.au-deny p{margin:0;color:var(--dim);line-height:1.55;font-size:14.5px;max-width:380px}
.au-deny-ico{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:rgba(255,255,255,.07)}.au-deny-ico .au-i{width:24px;height:24px}
/* live */
.au-now{text-align:center;font-family:'Space Grotesk',sans-serif;font-size:19px;font-weight:600;min-height:28px;margin-bottom:14px;text-wrap:balance}
.au-vol{display:flex;align-items:center;gap:12px;padding:10px 14px;border-radius:18px;background:var(--card);border:1px solid var(--line);margin-bottom:12px}
.au-vol input[type=range]{flex:1;accent-color:var(--au);height:32px}
.au-req{margin-bottom:12px}.au-req .au-btn{width:100%}
.au-foot{display:flex;justify-content:center;margin-top:18px}
.au-ended{text-align:center;padding:24px 16px;border-radius:22px;background:var(--card);border:1px solid var(--line);display:flex;flex-direction:column;gap:14px;align-items:center}.au-ended p{margin:0;font-size:16px;line-height:1.5}
/* stage */
.au-stage{display:flex;flex-direction:column;gap:12px;padding:16px;border-radius:22px;background:var(--card);border:1px solid var(--line);margin-bottom:12px}
.au-mic{display:flex;align-items:center;justify-content:center;gap:10px;min-height:68px;border-radius:20px;border:2px solid var(--line);background:rgba(255,255,255,.05);color:var(--tx);font:700 17px 'Space Grotesk',sans-serif;cursor:pointer;transition:all .15s}
.au-mic .au-i{width:24px;height:24px}.au-mic.on{background:#dc2626;border-color:#ef4444;color:#fff;box-shadow:0 0 0 6px rgba(220,38,38,.22)}
.au-meter{height:8px;border-radius:99px;background:rgba(255,255,255,.08);overflow:hidden}.au-meter i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ok),var(--amber) 70%,#ef4444);border-radius:99px;transition:width .08s}
.au-field{display:flex;flex-direction:column;gap:6px;font-size:12.5px;color:var(--dim)}
.au-field select{min-height:44px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--tx);padding:0 12px;font:500 14.5px 'Inter',sans-serif}
.au-check{display:flex;gap:10px;align-items:center;font-size:13.5px;color:var(--dim);cursor:pointer}.au-check input{width:20px;height:20px;accent-color:var(--au)}
/* console */
.au-console{margin-top:16px;padding:16px;border-radius:22px;background:var(--card);border:1px solid var(--line)}
.au-console-h{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-family:'Space Grotesk',sans-serif}
.au-ctl{display:flex;gap:8px;flex-wrap:wrap}.au-ctl .au-btn{flex:1;min-width:110px}
.au-console h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin:18px 0 8px;font-weight:600}
.au-row-i{display:flex;align-items:center;gap:8px;padding:9px 0;border-top:1px solid var(--line)}.au-row-i:first-of-type{border-top:0}
.au-row-i .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500}.au-row-i em{font-style:normal;font-size:11.5px;color:#bbf7d0;background:rgba(74,222,128,.14);padding:3px 8px;border-radius:99px}
/* room cards */
.au-list{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.au-card{display:flex;align-items:center;gap:14px;padding:14px;border-radius:20px;background:var(--card);border:1px solid var(--line);text-decoration:none;color:var(--tx);transition:transform .12s,border-color .15s,background .15s;position:relative;overflow:hidden}
.au-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--au)}
.au-card:hover{border-color:color-mix(in srgb,var(--au) 60%,transparent);background:var(--card2)}.au-card:active{transform:scale(.985)}
.au-card.is-locked{opacity:.72}.au-card.is-current{border-color:var(--au)}
.au-card-ico{width:46px;height:46px;border-radius:15px;background:var(--au);color:var(--au-ink);display:grid;place-items:center;flex:none}
.au-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}.au-card-name{font-weight:600;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.au-card-sub{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--dim)}
.au-go{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);flex:none}.au-go .au-i{width:15px;height:15px}
.au-lock{color:var(--dim);flex:none}.au-here{font-size:11.5px;font-weight:700;color:var(--au);text-transform:uppercase;letter-spacing:.06em}
/* sheet */
.au-sheet{position:fixed;inset:0;z-index:50}.au-sheet[hidden]{display:none}
.au-sheet-bg{position:absolute;inset:0;background:rgba(5,5,12,.66);backdrop-filter:blur(4px);animation:auFade .2s}
.au-sheet-box{position:absolute;left:0;right:0;bottom:0;max-width:560px;margin:0 auto;max-height:82vh;overflow:auto;background:#12131c;border:1px solid var(--line);border-bottom:0;border-radius:26px 26px 0 0;padding:8px 16px calc(24px + env(safe-area-inset-bottom));animation:auUp .26s cubic-bezier(.2,.8,.2,1)}
.au-grab{width:42px;height:4px;border-radius:9px;background:rgba(255,255,255,.2);margin:6px auto 10px}.au-sheet-h{display:flex;justify-content:space-between;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:18px}
@keyframes auUp{from{transform:translateY(40px);opacity:0}}@keyframes auFade{from{opacity:0}}
.au-toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translate(-50%,24px);max-width:calc(100vw - 32px);padding:12px 18px;border-radius:14px;background:#f2f3f9;color:#12131c;font-size:14px;font-weight:500;box-shadow:0 10px 40px rgba(0,0,0,.5);opacity:0;pointer-events:none;transition:all .22s;z-index:80;text-align:center}
.au-toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (min-width:700px){.au-orb{width:260px}.au-main{padding-top:20px}}
/* signage */
.au-sign-body{background:#e8e9ef;color:#111219;min-height:100vh;padding-bottom:40px}
.au-sign-bar{display:flex;align-items:center;gap:14px;padding:14px 20px;background:#fff;border-bottom:1px solid #d9dae3;position:sticky;top:0;z-index:5;font-family:'Inter',sans-serif;flex-wrap:wrap}.au-sign-bar span{flex:1;color:#5b5e73;font-size:14px}
.au-sign-bar .au-btn{min-height:40px}
.au-sign-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;padding:24px;max-width:1100px;margin:0 auto}
.au-sign{background:#fff;border-radius:26px;padding:28px 24px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;border-top:14px solid var(--au);box-shadow:0 10px 40px rgba(17,18,25,.12);page-break-inside:avoid;break-inside:avoid;font-family:'Inter',sans-serif}
.au-sign-top{display:flex;align-items:center;gap:8px;font:700 15px 'Space Grotesk',sans-serif;color:var(--au)}
.au-sign h2{font:700 30px/1.1 'Space Grotesk',sans-serif;margin:4px 0 0;letter-spacing:-.02em}.au-sign-desc{margin:0;color:#5b5e73;font-size:14px;max-width:300px}
.au-sign-qr{width:min(100%,260px);height:auto;aspect-ratio:1;border:1px solid #e3e4ec;border-radius:16px;padding:6px;background:#fff}
.au-sign-steps{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;font-size:12.5px;color:#3b3e52}.au-sign-steps span{display:inline-flex;align-items:center;gap:6px}
.au-sign-steps b{width:20px;height:20px;border-radius:50%;background:var(--au);color:var(--au-ink);display:inline-grid;place-items:center;font-size:11px}
.au-sign-foot{font-size:12px;color:#7a7d92}
@media print{.no-print{display:none!important}.au-sign-body{background:#fff;padding:0}.au-sign-grid{grid-template-columns:repeat(2,1fr);gap:14px;padding:10px;max-width:none}.au-sign{box-shadow:none;border:1px solid #ddd;border-top:14px solid var(--au);-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* language channels, recording notice */
.au-langs{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:14px 0 0}
.au-lang{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;border-radius:999px;font-size:13.5px;font-weight:600;color:var(--tx);text-decoration:none;background:rgba(255,255,255,.07);border:1px solid var(--line);transition:background .15s,border-color .15s}
.au-lang:hover{background:rgba(255,255,255,.12)}
.au-lang.on{background:var(--au);color:var(--au-ink);border-color:transparent}
.au-lang:focus-visible,.au-consent input:focus-visible{outline:3px solid color-mix(in srgb,var(--au) 70%,#fff);outline-offset:2px}
.au-chip.rec{background:color-mix(in srgb,#ef4444 16%,transparent);border-color:color-mix(in srgb,#ef4444 45%,transparent);color:#fecaca}
.au-rec{width:9px;height:9px;border-radius:50%;background:#ef4444;box-shadow:0 0 0 0 rgba(239,68,68,.6);animation:auRec 1.8s infinite}
@keyframes auRec{70%{box-shadow:0 0 0 7px rgba(239,68,68,0)}100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}}
.au-consent{display:flex;gap:12px;align-items:flex-start;text-align:left;padding:14px 16px;margin:0 0 14px;border-radius:16px;background:var(--card);border:1px solid color-mix(in srgb,#ef4444 35%,var(--line));font-size:13.5px;line-height:1.55;color:var(--dim);cursor:pointer}
.au-consent input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--au)}
.au-consent b{color:var(--tx)}
@media (prefers-reduced-motion:reduce){.au-rec{animation:none}}
