/* Third entry ticket follows the same shapes and palette as the two roles. */
.entry-role-spectator .entry-role-icon{color:var(--theme-primary)}
.entry-role-copy .spectator-online-summary{display:block;margin-top:8px;color:var(--theme-text);font-size:11px;line-height:1.4}
.spectator-online-summary>small{font-size:8px;letter-spacing:.06em;color:var(--theme-muted)}
.spectator-online-summary>span{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.spectator-online-summary b{font:800 12px/1.4 Inter,sans-serif}
.spectator-led{display:inline-block;width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:var(--theme-muted)}
.spectator-led.is-online{background:#1BD66B;box-shadow:0 0 5px rgba(27,214,107,.65)}
.spectator-visibility-toggle{display:flex;align-items:center;gap:12px;min-height:44px;color:var(--theme-text)}
.spectator-public-heading{margin:12px 0 8px;font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--theme-muted)}
.spectator-public-rooms{display:grid;gap:6px;max-height:180px;overflow-y:auto;overscroll-behavior:contain}
html[data-live-theme] .spectator-public-room{display:flex;flex-direction:column;align-items:flex-start;text-align:left;width:100%;min-height:48px;margin:0!important;padding:10px 12px!important;border:1px solid var(--theme-border)!important;border-radius:5px!important;background:var(--theme-panel)!important;color:var(--theme-text)!important;box-shadow:none!important}
.spectator-public-room strong{font-size:18px;overflow-wrap:anywhere}
.spectator-public-room span{font:400 12px/1.4 Inter,sans-serif;color:var(--theme-muted)}
#screen-spectator-setup [hidden]{display:none!important}
@media(max-height:480px){#screen-entry-role .entry-role-copy .spectator-online-summary{display:block;margin-top:4px}.spectator-online-summary>small{display:none}}
/* The spectator access panel inherits the shared entry form component. */
.spectator-access-actions{display:grid}
/* Spectators have local audio controls and rosters, never host management. */
body #screen-auctioneer-board.spectator-mode > .session-nav > button[onclick="openRoomControl(true)"],
body #screen-auctioneer-board.spectator-mode :is(.auction-quick-reset,#hybrid-view-to-player,#view-list,#btn-next){display:none!important}
body #screen-auctioneer-board.spectator-mode #auctioneer-session-title{display:block!important;max-width:100%!important;white-space:normal!important;overflow-wrap:normal!important;text-wrap:balance;line-height:1.1!important}
@media(max-width:760px){body #screen-auctioneer-board.spectator-mode #auctioneer-session-title{font-size:clamp(11px,3.1vw,14px)!important;letter-spacing:0!important}}
body #screen-auctioneer-board.spectator-mode .auction-session-center{justify-content:center!important}
body #screen-auctioneer-board.spectator-mode .auction-quick-actions{display:flex!important}
body #screen-auctioneer-board.spectator-mode .auction-quick-rosters{display:flex!important}
.auction-spectator-audio{display:none!important}
body #screen-auctioneer-board.spectator-mode .auction-spectator-audio{display:flex!important;align-items:center!important;justify-content:center!important;grid-area:manage!important}
.spectator-audio-setting{display:none!important}
.spectator-audio .spectator-audio-setting{display:flex!important}
.spectator-audio .audio-routing-section{display:none!important}
/* Shared host/spectator desktop layout: the offer, title and team name stay inside the third column. */
body #screen-auctioneer-board #auction-dashboard.mode-pc #view-auction .col-info{min-width:0!important;align-items:center!important;text-align:center!important}
body #screen-auctioneer-board #auction-dashboard.mode-pc #view-auction .mobile-offer-block{display:flex!important;flex-direction:column!important;align-items:center!important;width:100%!important;min-width:0!important;max-width:100%!important}
body #screen-auctioneer-board #auction-dashboard.mode-pc #view-auction .auction-title{max-width:100%!important;font-size:clamp(15px,1.6vw,28px)!important;letter-spacing:.035em!important;white-space:normal!important;overflow-wrap:break-word!important;line-height:1.1!important}
body #screen-auctioneer-board #auction-dashboard.mode-pc #view-auction #winner-display{max-width:100%!important;width:100%!important;min-height:0!important;box-sizing:border-box!important;white-space:normal!important;overflow-wrap:anywhere!important;line-height:1.05!important}
body #screen-auctioneer-board #auction-dashboard.mode-pc #view-auction .bid-box{align-self:center!important;margin:0 auto!important;width:min(100%,470px)!important;max-width:100%!important}
body #screen-auctioneer-board #auction-dashboard.mode-pc #view-auction #current-value-display{font-size:clamp(76px,10vw,180px)!important;line-height:1!important;white-space:nowrap!important;overflow:hidden!important}
/* Fit every navigation label within a narrow hybrid player screen. */
body #screen-player-buzzer #hybrid-view-to-board:not([hidden]){font-size:clamp(11px,3.3vw,15px)!important;letter-spacing:0!important;white-space:nowrap!important;overflow:hidden!important}
body #screen-auctioneer-board #hybrid-view-to-player:not([hidden]){font-size:clamp(11px,3.3vw,14px)!important;overflow:hidden!important}
@media(max-width:760px){
  body #screen-player-buzzer.hybrid-auctioneer-player .player-session-nav{grid-template-columns:minmax(76px,88px) minmax(0,1fr) minmax(58px,64px) minmax(66px,74px)!important;gap:3px!important}
  body #screen-player-buzzer.hybrid-auctioneer-player .player-session-nav :is(.session-back,.session-title){min-width:0!important}
  body #screen-player-buzzer.hybrid-auctioneer-player #player-session-title{overflow:hidden!important;overflow-wrap:normal!important;font-size:clamp(10px,3vw,12px)!important;line-height:1.05!important}
  body #screen-player-buzzer.hybrid-auctioneer-player .player-session-nav :is(#player-listone-btn,#player-roster-btn){font-size:clamp(10px,3vw,12px)!important;padding-left:2px!important;padding-right:2px!important;overflow:hidden!important}
}

/* Room roster selector shares the application input tokens. */
.rosters-team-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;color:var(--theme-muted);font-size:13px;font-weight:700}
.rosters-team-picker .minimal-input{width:auto;min-width:180px;max-width:100%;margin:0}
@media(max-width:760px){.rosters-team-picker{width:100%}.rosters-team-picker .minimal-input{flex:1;min-width:0}}
/* State visibility must share the presentation layer's precedence. */
@layer matchday {
  #screen-auctioneer-board.spectator-mode .auction-quick-reset{display:none!important}
}
.spectator-public-room .spectator-room-presence{display:flex;align-items:center;gap:6px;margin-top:4px;color:var(--theme-text);font-size:11px}
.spectator-room-presence b{color:var(--match-success-ink,var(--theme-success));font-weight:800}
#admin-automated-rooms[hidden]{display:none!important}
.automatic-room-card{border:1px solid var(--theme-border);background:var(--theme-panel);border-radius:8px;padding:16px;margin:12px 0}
.automatic-room-card h3{margin:0 0 12px;color:var(--theme-text)}
.automatic-room-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.automatic-room-fields label{min-width:0;display:flex;flex-direction:column;gap:5px;color:var(--theme-muted);font:700 12px/1.3 Inter,sans-serif}
.automatic-room-fields .minimal-input{margin:0;min-width:0;width:100%;height:42px!important;padding:8px!important;font-size:15px!important;box-sizing:border-box}
.automatic-room-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.automatic-room-actions .btn{width:auto!important;margin:0!important}
@media(max-width:760px){.automatic-room-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.automatic-room-fields label:first-child{grid-column:1/-1}.automatic-room-actions .btn{flex:1 1 40%}}

#admin-automated-toggle[hidden]{display:none!important}
#admin-automated-dialog{box-sizing:border-box;width:min(960px,calc(100% - 24px));max-height:calc(100dvh - 32px);overflow-y:auto;margin:auto;padding:20px;border:1px solid var(--theme-border);border-radius:12px;background:var(--theme-bg,var(--theme-panel));color:var(--theme-text)}
#admin-automated-dialog::backdrop{background:rgba(0,0,0,.7)}
#admin-automated-dialog .automatic-room-close{display:block;width:auto!important;margin:0 0 12px auto!important}
#admin-automated-dialog h2{margin-top:0}
@media(max-width:760px){#admin-automated-dialog{padding:12px;max-height:calc(100dvh - 24px)}}
