@font-face{font-family:LABQ UD Digi Kyokasho NP-B;src:local(UD Digi Kyokasho NP-B),local(UD Digi Kyokasho NP),local(UD Digi Kyokasho N-B),local(UD Digi Kyokasho N);font-style:normal;font-weight:400 950;font-display:swap;unicode-range:U+0-24F,U+1E??,U+2000-206F,U+20A0-20CF,U+2100-214F,U+2190-21FF,U+22??,U+2460-24FF,U+25A0-27BF,U+FF00-FFEF}@font-face{font-family:LABQ CJK Only;src:local(Noto Sans TC),local(Noto Sans CJK TC),local(Microsoft JhengHei);font-style:normal;font-weight:400 950;font-display:swap;unicode-range:U+2E80-2FFF,U+3000-303F,U+3100-312F,U+31A0-31BF,U+3400-4DBF,U+4E00-9FFF,U+F900-FAFF}@font-face{font-family:LABQ Punctuation Only;src:local(Noto Sans TC),local(Noto Sans CJK TC),local(Microsoft JhengHei);font-style:normal;font-weight:400 950;font-display:swap;unicode-range:U+2?,U+3A-40,U+5B-60,U+7B-7E,U+A0-BF,U+2000-206F,U+2E00-2E7F,U+3000-303F,U+FE1?,U+FE30-FE4F,U+FE50-FE6F,U+FF01-FF0F,U+FF1A-FF20,U+FF3B-FF40,U+FF5B-FF65}:root{--color-primary:#182430;--color-accent:#486078;--color-outside:#0c1218;--color-button:#24303c;--color-button-border:#3c4854;--color-button-text:#e9fbff;--color-input:#303c48;--color-section-label:#a4f2ff;--color-muted-text:#b4c0cc;--color-inset:#131d27;--color-live:#d93a49;--color-draft:#c98a20;--color-ok:#74c8b0;--color-warn:#e8c477;--color-error:#ff6b76;--color-error-soft:#ff9da5;--font-punctuation:"LABQ Punctuation Only";--font-latin:"LABQ UD Digi Kyokasho NP-B";--font-cjk:"LABQ CJK Only";--font-fallback:"Noto Sans TC", "Microsoft JhengHei", Arial, sans-serif;--font-content:var(--font-punctuation), var(--font-latin), var(--font-cjk), var(--font-fallback);--bg:var(--color-outside);--surface:var(--color-primary);--line:var(--color-button-border);--line-bright:var(--color-accent);--cyan:var(--color-section-label);--cyan-soft:var(--color-section-label);--text:var(--color-button-text);--muted:var(--color-muted-text);--danger:var(--color-error);--success:var(--color-ok);--warning:var(--color-warn);color:var(--text);background:var(--bg);font-family:var(--font-content);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}body{background-color:var(--bg);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit}button{color:inherit}code{color:var(--cyan-soft);font-family:var(--font-content)}h1,h2,h3,p{margin-top:0}button:focus-visible,input:focus-visible,textarea:focus-visible,.checkbox-chip input:focus-visible+span{outline:2px solid var(--color-section-label);outline-offset:-2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.panel{border:1px solid var(--line);background:var(--surface)}.brand-mark{border:1px solid var(--cyan);width:58px;height:58px;color:var(--cyan);letter-spacing:-.04em;place-items:center;margin-bottom:20px;font-size:1.35rem;font-weight:800;display:grid}.eyebrow{color:var(--cyan);letter-spacing:.22em;margin-bottom:4px;font-size:.72rem;font-weight:800}.muted,.field-note,.section-description{color:var(--muted)}.danger-text{color:var(--danger)}.stack{gap:18px;margin-top:26px;display:grid}label>span,fieldset legend{color:var(--cyan);letter-spacing:.04em;margin-bottom:7px;font-size:.8rem;font-weight:700;display:block}input,textarea{border:1px solid var(--line);background:var(--color-input);width:100%;color:var(--text);border-radius:0;outline:none;padding:10px 12px}input:focus,textarea:focus{border-color:var(--cyan)}input:disabled,textarea:disabled{cursor:not-allowed;opacity:.55}input[readonly]{background:var(--color-button)}fieldset{border:0;min-width:0;margin:0;padding:0}.button{border:1px solid var(--line);background:var(--color-button);min-height:38px;color:var(--text);cursor:pointer;white-space:nowrap;border-radius:0;padding:9px 15px;font-weight:700}.button:disabled{cursor:not-allowed;opacity:.45}.button.primary{border-color:var(--color-section-label);background:var(--color-accent);color:#fff}.button.secondary,.button.ghost{border-color:var(--line);background:var(--color-button);color:var(--text)}.button:not(:disabled):hover{border-color:var(--color-section-label)}.button.danger{border-color:var(--color-error);background:var(--color-button);color:var(--color-error-soft)}.button.danger:not(:disabled):hover{border-color:var(--color-error-soft);background:#3a2630}.admin-canvas :is(.editable-list,.participant-list) .button.danger{border-color:var(--color-button-border)}.admin-canvas :is(.editable-list,.participant-list) .button.danger:not(:disabled):hover{border-color:var(--color-error)}.notice,.global-notice{border:1px solid;padding:11px 13px;font-size:.88rem}.notice.error,.global-notice.error{border-color:var(--color-error);color:var(--color-error-soft);background:#d93a491f}.global-notice.success{border-color:var(--color-ok);color:var(--color-ok)}.global-notice.info{border-color:var(--color-section-label);color:var(--text)}.spinner{border:2px solid #a4f2ff40;border-top-color:var(--cyan);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.center-screen{place-items:center;min-height:100vh;padding:24px;display:grid}.login-card,.setup-card,.status-card{border-top:3px solid var(--cyan);width:min(100%,460px);padding:34px}.login-card h1,.setup-card h1{margin-bottom:8px;font-size:clamp(1.7rem,5vw,2.3rem)}.status-card{align-items:center;gap:12px;display:flex}.status-card p{margin:0}.canvas-viewport{background:var(--color-outside);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.canvas-frame{position:relative;overflow:hidden}.canvas{background:var(--color-primary);width:960px;height:540px;color:var(--color-button-text);font:700 11px/1.35 var(--font-content);transform-origin:0 0;position:absolute;top:0;left:0;overflow:hidden}.admin-canvas h1,.admin-canvas h2,.admin-canvas h3,.admin-canvas p{margin:0}.admin-canvas .button{min-width:50px;height:20px;min-height:0;font:700 11px/1 var(--font-content);justify-content:center;align-items:center;padding:0 2px;display:inline-flex}.admin-canvas .button.wide{min-width:105px}.admin-canvas input{border-color:var(--color-button-border);height:20px;font:700 11px/18px var(--font-content);padding:0 5px}.admin-canvas input[type=number]{appearance:textfield}.admin-canvas input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.admin-canvas input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.admin-canvas .field-note{font-size:10px;font-weight:700}.admin-canvas .notice{padding:3px 5px;font-size:11px}.admin-canvas .spinner{width:12px;height:12px}.admin-canvas :is(.editable-list,.participant-list,.chip-scroll){scrollbar-color:var(--color-accent) transparent;scrollbar-gutter:stable;scrollbar-width:thin}.topbar{border-bottom:1px solid var(--color-accent);background:var(--color-outside);align-items:center;gap:10px;width:960px;height:30px;padding:0 5px;display:flex;position:absolute;top:0;left:0}.brand-row{flex:none;align-items:center;gap:5px;width:290px;display:flex}.admin-canvas .brand-mark.small{width:20px;height:20px;margin:0;font-size:10px}.admin-canvas .brand-row .eyebrow{letter-spacing:.18em;font-size:9px}.brand-row h1{color:var(--color-button-text);font-size:11px}.loading-strip{border:1px solid var(--color-accent);height:20px;color:var(--color-section-label);align-items:center;gap:5px;padding:0 5px;font-size:10px;display:inline-flex}.topbar-notice{flex:1;min-width:0}.admin-canvas .global-notice{align-items:center;gap:5px;max-width:100%;height:20px;padding:0 0 0 5px;font-size:11px;display:flex}.global-notice span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.global-notice button{width:20px;height:18px;color:inherit;cursor:pointer;background:0 0;border:0;flex:none;padding:0;font-size:14px;line-height:1}.account-row{flex:none;align-items:center;gap:5px;display:flex}.connection-pill,.status-badge,.count-badge{border:1px solid var(--color-button-border);height:20px;color:var(--color-muted-text);white-space:nowrap;flex:none;justify-content:center;align-items:center;padding:0 5px;font-size:10px;font-weight:700;display:inline-flex}.connection-pill{gap:5px}.connection-pill i{background:var(--color-muted-text);width:6px;height:6px}.connection-pill[data-state=live] i{background:var(--color-ok)}.connection-pill[data-state=connecting] i{background:var(--color-warn)}.connection-pill[data-state=error]{border-color:var(--color-error);color:var(--color-error-soft)}.connection-pill[data-state=error] i{background:var(--color-error)}.labq-pill[data-state=linked]{border-color:var(--color-ok);color:var(--color-ok)}.labq-pill[data-state=linked] i{background:var(--color-ok)}.labq-pill[data-state=waiting] i{background:var(--color-warn)}.labq-pill[data-state=lost]{border-color:var(--color-error);color:var(--color-error-soft)}.labq-pill[data-state=lost] i{background:var(--color-error)}.labq-pill[data-attention=true]{border-color:var(--color-warn);color:var(--color-warn)}.account-email{max-width:110px;color:var(--color-muted-text);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.dashboard-grid{grid-template-rows:210px 285px;grid-template-columns:270px 200px 470px;gap:5px;width:950px;height:500px;display:grid;position:absolute;top:35px;left:5px}.admin-canvas .panel{border-color:var(--color-button-border);background:var(--color-primary);flex-direction:column;gap:5px;min-width:0;min-height:0;padding:4px;display:flex;overflow:hidden}.session-panel{grid-area:1/1/2/2}.group-panel{grid-area:1/2/2/3}.participant-panel{grid-area:2/1/3/3}.voting-panel{grid-area:1/3/3/4}.section-heading{flex:none;justify-content:space-between;align-items:center;gap:5px;height:20px;display:flex}.section-heading h2{color:var(--color-section-label);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.section-actions{align-items:center;gap:5px;display:flex}.status-badge.join-status[data-state=open]{border-color:var(--color-ok);color:var(--color-ok)}.status-badge.join-status[data-state=paused]{border-color:var(--color-warn);color:var(--color-warn)}.status-badge.voting-status.draft{border-color:var(--color-draft);color:var(--color-warn)}.status-badge.voting-status.open{border-color:var(--color-live);background:var(--color-live);color:#fff}.status-badge.voting-status.closed{color:var(--color-muted-text)}.status-badge.voting-status.revealed{border-color:var(--color-ok);color:var(--color-ok)}.count-badge{color:var(--color-section-label)}.admin-canvas .empty-state{border:1px dashed var(--color-button-border);color:var(--color-muted-text);text-align:center;margin:0;padding:10px;font-size:11px}.admin-canvas .empty-state.large{flex:1;align-content:center;gap:5px;display:grid}.admin-canvas .empty-state strong{color:var(--color-button-text)}.field-row{flex:none;grid-template-columns:50px minmax(0,1fr);align-items:center;gap:5px;height:20px;display:grid}.admin-canvas .field-row>span,.row-label,.admin-canvas .voting-row>legend{height:20px;color:var(--color-section-label);letter-spacing:0;white-space:nowrap;align-items:center;margin:0;font-size:11px;font-weight:700;display:flex}.admin-canvas .session-form{grid-template-columns:minmax(0,1fr) 105px;gap:5px;display:grid}.session-form .field-row input{width:100%;min-width:0}.session-form .notice{grid-column:1/-1}.join-access-card{flex:none;grid-template-rows:125px 20px;grid-template-columns:125px minmax(0,1fr);gap:5px;display:grid}.qr-frame{color:#06111f;text-align:center;background:#fff;place-items:center;width:125px;height:125px;font-size:10px;display:grid;overflow:hidden}.qr-frame img{width:100%;height:100%;image-rendering:pixelated;display:block}.join-access-copy{flex-direction:column;gap:5px;min-width:0;display:flex}.join-access-copy .button-row{flex-direction:column;gap:5px;display:flex}.join-access-copy .button{width:100%}.admin-canvas .join-hint{margin-top:auto;line-height:1.4}.join-link-row{grid-column:1/-1}.join-link-row input{color:var(--color-muted-text);font-size:10px}.admin-canvas .join-access-empty{flex:1;place-items:center;display:grid}.add-row,.inline-edit{gap:5px;display:flex}.add-row{flex:none}.add-row input,.inline-edit input{flex:1;min-width:0}.editable-list{flex-direction:column;flex:1;gap:5px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.participant-list-head,.participant-list>li{grid-template-columns:15px 75px minmax(0,1fr) 50px;gap:5px;display:grid}.participant-list-head.with-labq,.participant-list>li.with-labq{grid-template-columns:15px 60px 30px minmax(0,1fr) 50px}.labq-bind{border:1px solid var(--color-button-border);background:var(--color-input);width:30px;height:20px;color:var(--color-muted-text);cursor:pointer;font:700 10px/18px var(--font-content);text-align:center;display:block;position:relative;overflow:hidden}.labq-bind[data-bound=true]{border-color:var(--color-section-label);color:var(--color-button-text)}.labq-bind select{cursor:pointer;opacity:0;width:100%;height:100%;position:absolute;inset:0}.labq-bind:focus-within{outline:2px solid var(--color-section-label);outline-offset:-2px}.labq-bind[data-disabled=true]{cursor:wait;opacity:.5}.participant-list-head{border-bottom:1px solid var(--color-button-border);height:15px;color:var(--color-muted-text);flex:none;align-items:end;padding-right:8px;font-size:10px}.participant-list{flex-direction:column;flex:1;gap:5px;min-height:0;margin:0;padding:0;list-style:none;display:flex;overflow-y:auto}.participant-list>li{flex:none;align-items:start;min-height:20px}.participant-identity{display:contents}.participant-number{height:20px;color:var(--color-muted-text);align-items:center;font-size:10px;display:flex}.participant-identity strong{text-overflow:ellipsis;white-space:nowrap;height:20px;font-size:11px;line-height:20px;display:block;overflow:hidden}.admin-canvas .participant-list .field-note{line-height:20px}.checkbox-grid{flex-wrap:wrap;gap:5px;display:flex}.checkbox-chip{cursor:pointer;position:relative}.checkbox-chip input{opacity:0;width:1px;height:1px;position:absolute}.checkbox-chip span{border:1px solid var(--color-button-border);background:var(--color-button);color:var(--color-muted-text);margin:0;padding:6px 9px;font-size:.75rem;display:block}.admin-canvas .checkbox-chip span{letter-spacing:0;height:20px;padding:0 3px;font-size:11px;line-height:18px}.checkbox-chip input:checked+span{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.checkbox-chip input:disabled+span{cursor:wait;opacity:.5}.voting-loading,.voting-empty{border:1px dashed var(--color-button-border);flex:1;justify-content:center;align-items:center;gap:10px;display:flex}.voting-empty{flex-direction:column}.voting-metrics{flex:none;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;height:30px;display:grid}.voting-metrics>div{border:1px solid var(--color-button-border);background:var(--color-button);justify-content:space-between;align-items:center;padding:0 5px;display:flex}.voting-metrics span{color:var(--color-muted-text);font-size:10px}.voting-metrics strong{color:var(--color-section-label);font-size:18px;line-height:1}.voting-settings{flex-direction:column;flex:1;gap:5px;min-height:0;display:flex}.voting-row-pair{flex:none;gap:10px;display:flex}.voting-row-pair>.voting-row{flex:none;width:160px}.voting-row-pair>.score-option-fieldset{width:215px}.voting-row{min-width:0;min-height:20px;padding-left:55px;position:relative}.admin-canvas .voting-row>legend,.voting-row>.row-label{width:50px;padding:0;position:absolute;top:0;left:0}.row-hint{width:50px;color:var(--color-muted-text);font-size:10px;position:absolute;top:25px;left:0}.segmented-row,.score-option-row,.option-chip-grid{flex-wrap:wrap;gap:5px;display:flex}.score-option-row input,.player-choice-score{text-align:center;width:50px}.round-player-row{flex:none;height:80px}.option-chip.candidate-chip{border-left:4px solid var(--group-color,var(--color-button-border));padding-left:3px}.option-chip.candidate-chip[aria-pressed=true]{border-left-color:var(--group-color,var(--color-accent))}.option-chip.candidate-chip[data-removed=true]{color:var(--color-warn);border-style:dashed}.chip-empty{white-space:normal;align-self:center;line-height:1.5}.threshold-row{flex:none;height:55px}.threshold-list{flex-wrap:wrap;align-items:center;gap:5px;height:100%;display:flex}.threshold-item{height:20px;color:var(--color-muted-text);align-items:center;gap:3px;font-size:11px;display:flex}.admin-canvas .threshold-item input{text-align:center;width:40px;padding:0 3px}.threshold-remove{border:1px solid var(--color-button-border);background:var(--color-button);width:20px;height:20px;color:var(--color-muted-text);cursor:pointer;font:700 12px/18px var(--font-content);border-radius:0;padding:0}.threshold-remove:not(:disabled):hover{border-color:var(--color-error);color:var(--color-error-soft)}fieldset:disabled .threshold-remove{display:none}.threshold-list .field-note{white-space:nowrap}.voting-results{border:1px solid var(--color-button-border);background:var(--color-inset);flex-direction:column;flex:1;gap:5px;min-height:0;padding:4px;display:flex}.voting-results.legacy{text-align:center;border-style:dashed;justify-content:center;line-height:1.5}.voting-results-head{flex:none;justify-content:space-between;align-items:center;gap:5px;height:20px;display:flex}.voting-results-head strong{color:var(--color-section-label);flex:none;font-size:11px}.voting-results-head .field-note{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.voting-results-table{flex-direction:column;flex:1;gap:5px;min-height:0;display:flex;overflow-y:auto}.voting-results-row{border:1px solid var(--color-button-border);border-left:4px solid var(--group-color,var(--color-button-border));background:var(--color-button);flex:none;grid-template-columns:minmax(0,1fr) 50px 50px 60px;align-items:center;gap:5px;min-height:25px;padding:0 5px;font-size:11px;display:grid}.voting-results-row>span:not(:first-child){text-align:right}.voting-score-breakdown{color:var(--color-muted-text);text-overflow:ellipsis;white-space:nowrap;flex:none;font-size:10px;overflow:hidden}.voting-results-row.head{min-height:15px;color:var(--color-muted-text);background:0 0;border:0;font-size:10px}.result-name{white-space:nowrap;flex-direction:column;min-width:0;line-height:1.2;display:flex;overflow:hidden}.result-name,.result-name small{text-overflow:ellipsis}.result-name small,.result-award small{color:var(--color-muted-text);font-size:9px;overflow:hidden}.result-award{color:var(--color-section-label);flex-direction:column;align-items:flex-end;font-size:13px;line-height:1.1;display:flex}.labq-apply-status{border:1px solid var(--color-button-border);min-height:20px;color:var(--color-muted-text);flex:none;align-items:center;gap:5px;padding:0 0 0 5px;font-size:11px;display:flex}.labq-apply-status>span{-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;flex:1;min-width:0;padding:2px 0;line-height:15px;display:-webkit-box;overflow:hidden}.labq-apply-status .button{height:18px}.labq-apply-status[data-state=applied]{border-color:var(--color-ok);color:var(--color-ok)}.labq-apply-status[data-state=pending]{border-color:var(--color-warn);color:var(--color-warn)}.labq-apply-status[data-state=stale],.labq-apply-status[data-state=error]{border-color:var(--color-error);color:var(--color-error-soft)}.round-player-row .chip-scroll{height:100%}.chip-scroll{border:1px solid var(--color-button-border);background:var(--color-inset);align-content:flex-start;padding:4px;overflow-y:auto}.voter-access-fieldset{flex-direction:column;flex:1;gap:5px;min-height:0;display:flex}.voter-scope{align-items:center;gap:5px;min-width:0;display:flex}.voter-scope .field-note{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.individual-row{flex:1;min-height:0;display:flex}.individual-row .chip-scroll{flex:1}.segment-button,.option-chip{border:1px solid var(--color-button-border);background:var(--color-button);min-width:50px;max-width:160px;height:20px;color:var(--color-button-text);cursor:pointer;font:700 11px/18px var(--font-content);text-overflow:ellipsis;white-space:nowrap;border-radius:0;padding:0 4px;overflow:hidden}.segment-button{text-overflow:clip;width:50px;padding:0}.option-chip.wide{min-width:105px}.segment-button[aria-pressed=true],.option-chip[aria-pressed=true]{border-color:var(--color-accent);background:var(--color-accent);color:#fff}.segment-button:disabled,.option-chip:disabled{cursor:not-allowed;opacity:.35}.segment-button:disabled[aria-pressed=true],.option-chip:disabled[aria-pressed=true]{opacity:1}.voting-actions{flex:none;justify-content:flex-end;align-items:center;gap:5px;height:20px;display:flex}.voting-actions .field-note{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.admin-canvas .field-note:not(.chip-empty){display:none}.round-flow{flex:none;grid-template-columns:repeat(4,1fr);gap:5px;height:20px;margin:0;padding:0;list-style:none;display:grid}.round-flow li{border:1px solid var(--color-button-border);color:var(--color-muted-text);text-align:center;font-size:11px}.round-flow li[aria-current=step]{background:var(--color-button);border-color:var(--color-accent);color:var(--color-section-label)}.round-flow li[data-complete=true]{color:var(--color-ok)}.round-readiness{min-height:20px;color:var(--color-warn);flex:none;font-size:11px}.round-readiness[data-ready=true]{color:var(--color-section-label)}.voting-panel:not([data-phase=draft]) .voting-metrics{height:55px}.voting-panel:not([data-phase=draft]) .voting-metrics strong{font-size:28px}.voting-panel:not([data-phase=draft]) .voting-settings{overflow:auto}.voting-panel:not([data-phase=draft]) .voting-results{flex:1;min-height:0}.voting-panel:not([data-phase=draft]) .voting-results-row{min-height:30px}.voter-access-fieldset{flex:none}.voting-panel .round-player-row,.voting-panel .threshold-row{height:80px}.programme-lobby-count{color:var(--color-section-label);margin-top:15px;font-size:22px}.programme-screen{grid-template-rows:40px minmax(0,1fr);grid-template-columns:minmax(0,1fr) 155px;gap:20px;padding:30px;display:grid;position:absolute;inset:0}.programme-screen>header{color:var(--color-section-label);grid-column:1/-1;justify-content:space-between;align-items:center;font-size:20px;display:flex}.programme-main{flex-direction:column;justify-content:center;align-items:stretch;gap:20px;min-width:0;display:flex}.programme-main h1{color:var(--color-section-label);margin:0;font-size:44px;line-height:1.2}.programme-candidates{flex-wrap:wrap;gap:10px;font-size:24px;display:flex}.programme-candidates span{text-overflow:ellipsis;border-left:3px solid var(--color-accent);max-width:100%;padding-left:10px;overflow:hidden}.programme-progress{align-items:baseline;gap:10px;font-size:24px;display:flex}.programme-progress strong{color:var(--color-section-label);font-size:80px;line-height:1}.programme-main progress{appearance:none;border:1px solid var(--color-button-border);background:var(--color-primary);width:100%;height:15px}.programme-main progress::-webkit-progress-bar{background:var(--color-primary)}.programme-main progress::-webkit-progress-value{background:var(--color-accent)}.programme-main progress::-moz-progress-bar{background:var(--color-accent)}.programme-join{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:10px;font-size:18px;display:flex}.programme-join img{background:#fff;border:5px solid #fff;width:155px;height:155px}.programme-join strong{color:var(--color-section-label);font-size:24px}.programme-results{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.programme-results li{border-bottom:1px solid var(--color-button-border);align-items:center;gap:10px;min-height:40px;padding:5px 0;font-size:24px;animation:.35s ease-out result-appear;display:flex}.programme-results .programme-rank{width:35px;color:var(--color-section-label);font-weight:800}.programme-results .programme-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.programme-name small{margin-left:10px;font-size:14px}.programme-results strong{color:var(--color-section-label);text-align:right;min-width:85px}.programme-results .programme-page{border:none;justify-content:end;font-size:16px}.programme-error{color:var(--color-warn);margin:0;font-size:14px;position:absolute;bottom:5px;left:30px}@keyframes result-appear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.programme-results li{animation:none}}.join-display-canvas{background:var(--color-outside)}.join-display-screen{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr) 420px;column-gap:30px;padding:60px 50px;display:grid;position:absolute;inset:0}.join-display-content{display:contents}.join-display-heading{grid-area:1/1/2/2;align-self:center}.join-display-heading .brand-mark{width:40px;height:40px;margin-bottom:15px;font-size:16px}.join-display-heading .eyebrow{font-size:12px}.join-display-heading h1{margin:10px 0 15px;font-size:50px;line-height:1.12}.join-display-heading h1 span{white-space:nowrap;display:block}.join-display-session{color:var(--color-section-label);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:20px;font-weight:700;overflow:hidden}.join-display-qr{color:#06111f;background:#fff;border:10px solid #fff;grid-area:1/2/3/3;align-self:center;place-items:center;width:420px;height:420px;display:grid}.join-display-qr img{width:100%;height:100%;image-rendering:pixelated;display:block}.join-display-footer{grid-area:2/1/3/2;justify-items:start;gap:10px;font-size:18px;display:grid}.join-display-footer p{margin:0}.join-display-status{border:2px solid var(--color-warn);color:var(--color-warn);padding:5px 15px;font-weight:800}.join-display-status.open{border-color:var(--color-ok);color:var(--color-ok)}.join-screen{background:var(--bg)}.join-card{border-top:3px solid var(--cyan);width:min(100%,460px);padding:30px}.join-card h1{margin-bottom:8px;font-size:clamp(1.65rem,7vw,2.25rem)}.join-waiting-state{border:1px dashed var(--line-bright);text-align:center;gap:7px;margin-top:20px;padding:20px;display:grid}.join-waiting-state span{color:var(--muted);margin-bottom:10px;font-size:.8rem}.joined-card{text-align:center}.join-participant-name{color:var(--cyan-soft);margin:20px 0;font-size:1.45rem;font-weight:800}.join-details{text-align:left;gap:8px;margin:0 0 20px;display:grid}.join-details>div{border-bottom:1px solid var(--line);grid-template-columns:55px 1fr;gap:8px;padding:8px 0;display:grid}.join-details dt{color:var(--muted);font-size:.75rem}.join-details dd{margin:0;font-size:.82rem}.participant-voting-card{text-align:left;width:min(100%,540px)}.participant-voting-card>h1,.participant-voting-card>.eyebrow,.participant-voting-card>.join-participant-name{text-align:center}.participant-vote-state{border:1px solid var(--line-bright);background:var(--color-inset);text-align:center;align-content:center;justify-items:center;gap:10px;min-height:110px;margin-top:20px;padding:20px;display:grid}.participant-vote-state.blocked{border-color:var(--color-warn);color:var(--warning)}.participant-ballot{border:1px solid var(--line-bright);background:var(--color-inset);gap:15px;margin-top:20px;padding:20px;display:grid}.participant-round-heading{justify-content:space-between;align-items:center;gap:10px;display:flex}.participant-round-heading span{border:1px solid var(--line-bright);color:var(--cyan-soft);padding:5px 10px;font-size:.78rem;font-weight:700}.participant-ballot h2{text-align:center;margin:0;font-size:1.35rem}.participant-ballot h2 small,.vote-option-button small,.participant-result-name small{color:var(--muted);margin-top:2px;font-size:.72em;font-weight:700;display:block}.vote-option-button[aria-pressed=true] small{color:#fff}.participant-results{gap:6px;width:100%;margin:4px 0 0;padding:0;list-style:none;display:grid}.participant-results li{border:1px solid var(--line);background:var(--color-button);text-align:left;grid-template-columns:minmax(0,1fr) auto 64px;align-items:center;gap:10px;padding:8px 10px;display:grid}.participant-results strong{color:var(--cyan-soft);text-align:right;font-size:1.2rem}.participant-ballot-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.participant-ballot-options.score-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}.vote-option-button{border:1px solid var(--line);background:var(--color-button);min-height:58px;color:var(--text);cursor:pointer;border-radius:0;padding:10px;font-size:1rem;font-weight:800}.vote-option-button.score{min-height:74px;color:var(--cyan-soft);font-size:1.6rem}.vote-option-button[aria-pressed=true]{border-color:var(--color-section-label);background:var(--color-accent);color:#fff}.vote-option-button:disabled{cursor:wait;opacity:.55}.vote-submission-state{border:1px solid var(--line);text-align:center;padding:10px;font-size:.85rem;font-weight:700}.vote-submission-state.saved{border-color:var(--success);color:var(--success)}@media (width<=560px){.join-card{padding:24px 20px}.participant-ballot-options{grid-template-columns:1fr}.participant-ballot-options.score-buttons{grid-template-columns:repeat(3,minmax(0,1fr))}}
