:root{color-scheme:dark;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Helvetica Neue,Arial,sans-serif;font-synthesis:none;--canvas: #171715;--surface: #1f1f1c;--surface-subtle: #272723;--ink: #f3f2ed;--muted: #a5a49e;--muted-strong: #c7c5be;--border: #343430;--field-border: #4a4943;--header-bg: rgb(23 23 21 / 92%);--content-background-overlay: rgb(23 23 21 / 86%);--selection-bg: #344133;--focus-ring: #81977e;--field-hover: #62615a;--field-focus: #94a891;--button-bg: #efeee9;--button-text: #252523;--button-hover: #ffffff;--muted-button-bg: #33332f;--link-underline: #72716a;--meter-off: #3a3a35;--meter-green: #78a27a;--meter-lime: #9eae6c;--meter-yellow: #c4aa56;--meter-orange: #c08852;--meter-red: #bd6662;--meter-scale: #86857e;--green: #9abb9b;--green-soft: #28352a;--red: #e28f8c;--red-soft: #422827;--yellow: #d5b873;--yellow-soft: #3d3423;--danger-button: #a94947;--danger-button-hover: #bd5b58;--danger-button-text: #ffffff;--success-panel: #202720;--success-panel-border: #354535;--success-panel-divider: #303d30;--danger-border: #68403e;--danger-hover: #4d2b29}:root[data-theme=light]{color-scheme:light;--canvas: #f7f6f2;--surface: #ffffff;--surface-subtle: #f1f0eb;--ink: #242422;--muted: #6f6e69;--muted-strong: #555550;--border: #eaeaea;--field-border: #d8d7d1;--header-bg: rgb(247 246 242 / 92%);--content-background-overlay: rgb(247 246 242 / 82%);--selection-bg: #dfe8dc;--focus-ring: #bfd0bc;--field-hover: #bab9b3;--field-focus: #8fa38c;--button-bg: #242422;--button-text: #ffffff;--button-hover: #393936;--muted-button-bg: #d7d6d0;--link-underline: #aaa9a3;--meter-off: #e2e1dc;--meter-green: #6c956d;--meter-lime: #9aa967;--meter-yellow: #b9a24f;--meter-orange: #b77e49;--meter-red: #a95653;--meter-scale: #92918b;--green: #346538;--green-soft: #edf3ec;--red: #9f2f2d;--red-soft: #fdebec;--yellow: #956400;--yellow-soft: #fbf3db;--danger-button: #9f2f2d;--danger-button-hover: #842725;--danger-button-text: #ffffff;--success-panel: #f8faf7;--success-panel-border: #dbe7da;--success-panel-divider: #e2e9e0;--danger-border: #eccdcd;--danger-hover: #f9dcde}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;background:var(--canvas);color:var(--ink);line-height:1.5;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}a{color:inherit}::selection{background:var(--selection-bg);color:var(--ink)}:where(button,input,select,a):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}.app-shell{min-height:100dvh;display:grid;grid-template-rows:auto 1fr auto;background:var(--canvas)}.app-shell-no-footer{grid-template-rows:auto 1fr}.app-header{padding:0 clamp(20px,4vw,48px);border-bottom:1px solid var(--border);background-color:var(--header-bg)}.app-header-inner{width:min(100%,1120px);min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 auto}.brand{display:inline-flex;align-items:center;gap:5px;color:var(--ink);font-size:22px;font-weight:760;letter-spacing:-.035em;text-decoration:none}.brand-mark{flex:0 0 auto;color:inherit}.brand-disc{width:20px;height:20px;background:currentColor;-webkit-mask:url(/assets/discus-ring-DQWDAl4E.png) center / contain no-repeat;mask:url(/assets/discus-ring-DQWDAl4E.png) center / contain no-repeat}.theme-toggle{width:40px;min-width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:5px;background:transparent;color:var(--muted-strong);transition:transform .18s cubic-bezier(.16,1,.3,1),background-color .18s cubic-bezier(.16,1,.3,1),color .18s cubic-bezier(.16,1,.3,1)}.ant-btn.theme-toggle{display:inline-flex;align-items:center;justify-content:center;box-shadow:none}.theme-toggle:hover{background:var(--surface-subtle);color:var(--ink)}.theme-toggle:active{transform:scale(.97)}.app-content{width:100%;display:grid;place-items:center;padding:clamp(40px,8vh,84px) clamp(20px,4vw,48px);background-color:var(--canvas);background-image:linear-gradient(var(--content-background-overlay),var(--content-background-overlay)),url(/assets/main-discobolus-background-CEfbsray.jpg);background-position:center 38%;background-size:cover}.app-footer{min-height:72px;display:grid;place-items:center;padding:20px clamp(20px,4vw,48px);border-top:1px solid var(--border);color:var(--muted);font-size:14px;text-align:center}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--ink)}h1{max-width:16ch;margin-bottom:12px;font-size:clamp(34px,4.2vw,52px);line-height:1.04;font-weight:710;letter-spacing:-.045em}h2{letter-spacing:-.025em}.intro-copy{max-width:58ch;margin-bottom:34px;color:var(--muted);font-size:clamp(16px,1.5vw,18px);line-height:1.6}.ready-view,.permission-view,.message-view,.admin-login{width:min(100%,640px);align-self:center;animation:reveal .45s cubic-bezier(.16,1,.3,1) both}.permission-view,.message-view,.admin-login{margin-bottom:2vh}.permission-view .primary-button,.admin-login .primary-button{margin-top:8px}.form-field{display:grid;gap:8px;min-width:0}.field-label{display:block;margin:0;color:var(--muted-strong);font-size:14px;line-height:1.3;font-weight:680;text-align:left}.ant-input,.ant-input-affix-wrapper,.ant-select{width:100%;font-size:16px}.ant-input-affix-wrapper>input.ant-input{min-height:auto}.ant-select-dropdown{border:1px solid var(--border)}.stereo-meter{width:100%}.meter-row{display:grid;grid-template-columns:20px minmax(0,1fr);align-items:center;gap:10px;margin:7px 0}.channel-label{font-size:13px;font-weight:760}.meter-segments{height:14px;display:grid;grid-template-columns:repeat(32,minmax(2px,1fr));gap:2px}.meter-segment{background:var(--meter-off);border-radius:1px}.meter-segment.active{background:var(--meter-green)}.meter-segment-18.active,.meter-segment-19.active,.meter-segment-20.active,.meter-segment-21.active{background:var(--meter-lime)}.meter-segment-22.active,.meter-segment-23.active,.meter-segment-24.active,.meter-segment-25.active{background:var(--meter-yellow)}.meter-segment-26.active,.meter-segment-27.active,.meter-segment-28.active{background:var(--meter-orange)}.meter-segment-29.active,.meter-segment-30.active,.meter-segment-31.active{background:var(--meter-red)}.meter-scale{display:flex;justify-content:space-between;padding-left:30px;color:var(--meter-scale);font-family:SF Mono,Geist Mono,ui-monospace,monospace;font-size:10px}.meter-with-status{display:grid;grid-template-columns:minmax(0,1fr) 180px;align-items:center;gap:24px;margin-top:30px;padding:20px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.signal-good,.signal-waiting{width:100%;display:inline-flex;justify-content:center;margin-inline-end:0;font-size:13px;font-weight:680;white-space:nowrap}.signal-good{color:var(--green)}.signal-waiting{color:var(--muted)}.input-detail{margin:12px 0 24px;color:var(--muted);font-size:13px;line-height:1.5}.dj-help{margin-top:38px;padding-top:28px;border-top:1px solid var(--border)}.dj-help h2{margin-bottom:16px;font-size:20px;font-weight:690}.dj-help-steps{display:grid;gap:10px;margin:0;padding-left:22px;color:var(--muted-strong);font-size:14px;line-height:1.55}.dj-help-steps strong{color:var(--ink)}.dj-help-routing{margin-top:20px;border-bottom:1px solid var(--border)}.dj-help-routing summary{padding:14px 0;color:var(--ink);font-size:14px;font-weight:680;cursor:pointer}.dj-help-routing summary::marker{color:var(--muted)}.dj-help-routing-body{padding:0 0 18px;color:var(--muted);font-size:13px;line-height:1.55}.dj-help-routing-body p{margin-bottom:12px}.dj-help-routing-body ol{display:grid;gap:8px;margin:0 0 14px;padding-left:20px}.dj-help-routing-body strong{color:var(--muted-strong)}.dj-help-routing-body a{color:var(--ink);text-decoration-color:var(--link-underline);text-underline-offset:3px}.dj-help-routing-body a:hover{text-decoration-color:var(--ink)}.dj-help-link{font-weight:650}.ant-btn.primary-button{width:100%;min-height:54px;padding:14px 20px;border:1px solid transparent;border-radius:6px;color:var(--button-text);font-size:17px;line-height:1.2;font-weight:690;letter-spacing:-.012em;box-shadow:none;transition:transform .18s cubic-bezier(.16,1,.3,1),background-color .18s cubic-bezier(.16,1,.3,1),border-color .18s cubic-bezier(.16,1,.3,1)}.ant-btn.primary-button:not(:disabled):hover{background:var(--button-hover);color:var(--button-text)}.ant-btn.primary-button:not(:disabled):active{transform:scale(.985)}.ant-btn.primary-button.success-button{background:var(--button-bg);color:var(--button-text)}.ant-btn.primary-button.danger-button{background:var(--danger-button);color:var(--danger-button-text)}.ant-btn.primary-button.danger-button:not(:disabled):hover{background:var(--danger-button-hover);color:var(--danger-button-text)}.ant-btn.primary-button.muted-button{border-color:var(--field-border);background:var(--muted-button-bg);color:var(--muted-strong)}.ant-btn.link-button,a.link-button{display:block;width:max-content;margin:22px 0 0;padding:3px 0;border:0;background:transparent;color:var(--ink);font-size:15px;font-weight:680;text-decoration:underline;text-decoration-color:var(--link-underline);text-underline-offset:4px}.ant-btn.link-button:hover,a.link-button:hover{color:var(--ink);text-decoration-color:var(--ink)}.ant-btn.link-button:active,a.link-button:active{transform:translateY(1px)}.test-player,.listener-player{display:block;width:100%;margin-top:18px}.inline-notice{margin:18px 0 0;padding:11px 13px;border:1px solid transparent;border-radius:6px;font-size:14px;line-height:1.5;text-align:left}.inline-notice .ant-alert-message{color:inherit;font-size:inherit;line-height:inherit}.inline-notice-danger{border-color:var(--danger-border);background:var(--red-soft);color:var(--red)}.inline-notice-success{border-color:var(--success-panel-border);background:var(--green-soft);color:var(--green)}.inline-notice-neutral{border-color:var(--border);background:var(--surface-subtle);color:var(--muted-strong)}.live-view{width:min(100%,720px);align-self:center;animation:reveal .45s cubic-bezier(.16,1,.3,1) both}.live-heading{margin:0 0 8px;color:var(--red);font-size:clamp(42px,5vw,60px)}.session-name{margin:0 0 18px;color:var(--muted-strong);font-size:clamp(20px,2.4vw,28px);font-weight:620}.timer{margin-bottom:28px;color:var(--ink);font-family:SF Mono,Geist Mono,ui-monospace,monospace;font-variant-numeric:tabular-nums;font-size:clamp(34px,4vw,52px);font-weight:650;letter-spacing:-.04em}.live-view .stereo-meter{margin-bottom:22px;padding:20px;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.connection-state{width:max-content;margin:16px 0 8px;padding:5px 9px;border-radius:999px;font-size:12px;font-weight:720;letter-spacing:.035em;text-transform:uppercase}.ant-tag.connection-state{margin-inline-end:0;border:0}.connection-state.is-good{background:var(--green-soft);color:var(--green)}.connection-state.is-warn{background:var(--yellow-soft);color:var(--yellow)}.connection-detail{margin:0 0 8px;color:var(--muted);font-size:13px}.listener-count{display:flex;align-items:center;gap:9px;margin:18px 0 24px;color:var(--muted-strong);font-size:15px;font-weight:650}.listener-count.compact{margin-top:22px;color:var(--muted);font-size:13px}.listener-icon{width:7px;height:7px;display:inline-block;border-radius:999px;background:currentColor}.listener-view{width:min(100%,620px);align-self:center;animation:reveal .45s cubic-bezier(.16,1,.3,1) both}.listener-view .primary-button{margin-top:6px}.listener-live-label{width:max-content;display:inline-flex;align-items:center;gap:6px;margin-bottom:16px;padding:5px 9px;border-radius:999px;background:var(--surface-subtle);color:var(--muted-strong);font-size:11px;font-weight:720;letter-spacing:.06em;text-transform:uppercase}.ant-tag.listener-live-label{margin-inline-end:0;border:0}.waiting-activity{display:inline-flex;align-items:center;gap:2px}.waiting-activity>span{width:3px;height:3px;border-radius:999px;background:currentColor;opacity:.28;animation:waitingActivity 1.4s ease-in-out infinite}.waiting-activity>span:nth-child(2){animation-delay:.16s}.waiting-activity>span:nth-child(3){animation-delay:.32s}.listener-live-label.is-live{background:var(--red-soft);color:var(--red)}.listener-live-label.is-interrupted{background:var(--yellow-soft);color:var(--yellow)}.listener-player:not([src]){min-height:54px}.listener-player.is-pending{display:none}.listener-connection-status{min-height:70px;display:flex;align-items:center;gap:14px;padding:15px 17px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--muted-strong)}.listener-connection-status.is-interrupted{border-color:var(--field-border);background:var(--yellow-soft);color:var(--yellow)}.listener-connection-status strong{display:block;margin-bottom:2px;color:var(--ink);font-size:15px}.listener-connection-status span{display:block;color:var(--muted);font-size:13px;line-height:1.45}.listener-connection-status.is-interrupted strong,.listener-connection-status.is-interrupted span{color:var(--yellow)}.listener-connection-status time{font-family:SF Mono,Geist Mono,ui-monospace,monospace;font-weight:760}.listener-status-dot{width:10px;height:10px;flex:0 0 auto;border-radius:999px;background:var(--muted);animation:statusPulse 1.2s ease-in-out infinite}.listener-share{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;margin-top:24px;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.listener-share-copy{min-width:0}.listener-share-copy strong{display:block;margin-bottom:4px;color:var(--ink);font-size:14px}.listener-share-copy a{display:block;overflow:hidden;color:var(--muted-strong);font-family:SF Mono,Geist Mono,ui-monospace,monospace;font-size:11px;text-decoration-color:var(--link-underline);text-overflow:ellipsis;white-space:nowrap}.listener-share-copy a:hover{color:var(--ink);text-decoration-color:var(--ink)}.listener-share-copy span{display:block;margin-top:6px;color:var(--muted);font-size:12px}.ant-btn.listener-copy-button{min-height:40px;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:1px solid var(--field-border);border-radius:5px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:680;box-shadow:none}.ant-btn.listener-copy-button:hover{border-color:var(--field-border);background:var(--surface-subtle);color:var(--ink)}.ant-btn.listener-copy-button:active{transform:scale(.97)}.admin-view{width:min(100%,1040px);align-self:start;animation:reveal .45s cubic-bezier(.16,1,.3,1) both}.admin-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:24px;margin-bottom:28px}.admin-heading h1{margin-bottom:8px}.admin-heading .intro-copy{margin:0}.health-dot{margin-top:4px;padding:6px 10px;border-radius:999px;background:var(--green-soft);color:var(--green);font-size:11px;font-weight:720;letter-spacing:.045em;text-transform:uppercase;white-space:nowrap}.ant-tag.health-dot{margin-inline-end:0;border:0;background:var(--green-soft);color:var(--green)}.create-session-card{border-color:var(--border);background:var(--surface);box-shadow:none}.create-session-card .ant-card-body{padding:24px}.create-session{display:grid;grid-template-columns:minmax(280px,1fr) minmax(160px,220px) minmax(168px,auto);gap:16px;align-items:end}.create-session .ant-btn.primary-button{width:auto;min-height:50px;padding-inline:22px;font-size:15px;white-space:nowrap}.link-panel{margin-top:18px;border:1px solid var(--success-panel-border);border-radius:8px;background:var(--success-panel);box-shadow:none;animation:reveal .38s cubic-bezier(.16,1,.3,1) both}.link-panel .ant-card-body{padding:24px}.link-panel h2{margin-bottom:14px;font-size:23px}.link-panel>p{margin:14px 0 0;color:var(--muted);font-size:13px}.copy-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:13px 0;border-top:1px solid var(--success-panel-divider)}.copy-row strong{display:block;margin-bottom:3px;font-size:13px}.copy-row code{display:block;max-width:760px;overflow:hidden;color:var(--muted-strong);font-family:SF Mono,Geist Mono,ui-monospace,monospace;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.copy-row .copy-button,.ant-btn.small-danger-button{min-height:38px;padding:0 14px;border:1px solid var(--field-border);border-radius:5px;background:var(--surface);color:var(--ink);font-size:13px;font-weight:680;transition:transform .18s cubic-bezier(.16,1,.3,1),background-color .18s cubic-bezier(.16,1,.3,1)}.copy-row .copy-button:hover{border-color:var(--field-border);background:var(--surface-subtle);color:var(--ink)}.copy-row .copy-button:active,.small-danger-button:active{transform:scale(.97)}.session-list{margin-top:28px;border-top:1px solid var(--border)}.session-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:20px;padding:20px 0;border-bottom:1px solid var(--border)}.session-row.is-history{content-visibility:auto;contain-intrinsic-size:auto 86px}.session-row-link{min-width:0;border-radius:5px;color:inherit;text-decoration:none}.session-row-link:hover h3{text-decoration:underline;text-decoration-color:var(--link-underline);text-underline-offset:4px}.session-row-link:active{transform:translateY(1px)}.session-row h3{margin-bottom:5px;font-size:17px;letter-spacing:-.015em}.session-row p{margin:0;color:var(--muted);font-size:13px}.ant-btn.small-danger-button{border-color:var(--danger-border);background:var(--red-soft);color:var(--red);box-shadow:none}.ant-btn.small-danger-button:hover{border-color:var(--danger-border);background:var(--danger-hover);color:var(--red)}.history-lazy-loader{min-height:64px;display:grid;place-items:center;border-bottom:1px solid var(--border)}.history-lazy-loader .ant-btn{min-height:40px;color:var(--muted-strong);font-size:13px;font-weight:680}.history-lazy-loader .ant-btn:hover{background:var(--surface-subtle);color:var(--ink)}.empty-state{padding:32px 0 28px;color:var(--muted);font-size:14px}.empty-state .ant-empty-image{height:48px;margin-bottom:10px;opacity:.68}.empty-state .ant-empty-description>span{display:grid;gap:4px;color:var(--muted)}.empty-state strong{color:var(--ink);font-size:15px}.admin-login .ant-input-affix-wrapper{margin:8px 0 2px}@keyframes reveal{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes waitingActivity{0%,60%,to{opacity:.28;transform:translateY(0)}30%{opacity:.9;transform:translateY(-1px)}}@keyframes statusPulse{0%,to{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}@media(max-width:880px){.create-session{grid-template-columns:minmax(0,1fr) 180px}.create-session .ant-btn.primary-button{width:100%;grid-column:1 / -1}}@media(max-width:620px){.app-header{padding-inline:20px}.app-header-inner{min-height:64px}.brand{font-size:20px}.app-content{place-items:start stretch;padding:36px 20px 44px}.app-footer{min-height:64px;font-size:13px}h1{font-size:36px}.intro-copy{margin-bottom:28px;font-size:16px}.dj-help{margin-top:32px;padding-top:24px}.permission-view,.message-view,.admin-login,.ready-view,.listener-view,.live-view{align-self:center}.meter-with-status{grid-template-columns:minmax(0,1fr);gap:12px;padding:16px}.signal-good,.signal-waiting{width:180px;white-space:normal}.listener-share{grid-template-columns:minmax(0,1fr)}.ant-btn.listener-copy-button{width:100%;justify-content:center}.ant-btn.primary-button{min-height:52px;font-size:16px}.live-heading{font-size:42px}.timer{font-size:34px}.admin-heading{grid-template-columns:1fr;gap:14px;margin-bottom:24px}.health-dot{width:max-content;margin-top:0}.create-session{grid-template-columns:minmax(0,1fr)}.create-session-card .ant-card-body,.link-panel .ant-card-body{padding:20px}.create-session .ant-btn.primary-button{grid-column:auto}.copy-row{gap:12px}.session-row{align-items:start}.session-row-copy{display:contents}.session-row-link{grid-column:1;grid-row:1 / 3;padding-top:7px}.session-row h3{margin:0 0 5px}.session-row-copy h3{grid-column:1 / -1;grid-row:1;padding-top:7px}.session-row-copy p{grid-column:1 / -1;grid-row:2}.session-row .small-danger-button{grid-column:2;grid-row:1}.session-row p{line-height:1.55}}@media(max-width:390px){.app-content,.app-header{padding-inline:16px}.meter-segments{gap:1px}.create-session-card .ant-card-body,.link-panel .ant-card-body{padding:18px}.copy-row{grid-template-columns:minmax(0,1fr)}.copy-row .copy-button{width:100%}}@media(prefers-reduced-motion:reduce){.waiting-activity>span{animation:none;opacity:.55}*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
