/* Operator-only theme. Never loaded by overlay.html. */
.admin .result-warning{outline:2px solid #ff8680!important;outline-offset:2px}
.admin #result-warning{color:#ffd6d2;border-color:#c07873;font-size:12px;white-space:nowrap}
.admin .board-heading{flex-wrap:wrap;gap:8px}

@font-face{font-family:'Controller Pretendard';src:url('assets/PretendardVariable.ttf') format('truetype');font-weight:100 900;font-display:swap}
.admin{font-family:'Controller Pretendard','Malgun Gothic',sans-serif}
.admin button,.admin .button{font-family:inherit;font-weight:500}
.admin input,.admin select,.admin textarea{font-family:inherit;font-weight:400}
.admin h1,.admin h2,.admin strong,.admin #title{font-weight:700}



.admin{height:100dvh;overflow:hidden;background:#29282d;color:#edf2f9}
.admin header{border-color:#ffffff12}
.admin .brand .eyebrow{display:block;font-size:9px;letter-spacing:2.2px;color:#bfa9ec;margin-bottom:3px}
.admin .roster-panel,.admin .board-panel{background:#2c2b30;border-color:#ffffff18;border-radius:14px;box-shadow:8px 8px 22px #17161b80,-5px -5px 16px #ffffff05}
.admin .board-heading{border-color:#ffffff0e}
.admin .board-scroll{background:radial-gradient(ellipse at 50% 20%,#b7a1ee06,transparent 65%),#29282d;border-color:#ffffff0a}
.admin #stage{background:transparent;border:0}
.admin input,.admin select,.admin textarea{color:#f5f5f5}
.admin input::placeholder,.admin textarea::placeholder{color:#a3a5aa;opacity:1}
.admin button,.admin .button{background:#29282e;border-color:#ffffff12;color:#f0f0f2}
.admin button:hover,.admin .button:hover{background:#37343f;border-color:#b7a1ee60}
.admin button.accent,.admin .button.accent{background:#baa5f2;border-color:#baa5f2;color:#241b35}
.admin button.accent:hover,.admin .button.accent:hover{background:#d2bfff}
.admin .danger{color:#ffaaa3}
.admin :is(button,input,select,textarea,[role=button]):focus-visible{outline:2px solid #c4afff;outline-offset:2px}
.admin .roster-player{border:1px solid #ffffff06;min-height:32px;font-size:13px}
.admin .roster-player:hover{background:#ffffff0b;border-color:#ffffff20}
.admin .roster-player{height:34px;padding:0 6px;align-items:center;gap:6px}
.admin .roster-player>.name,.admin .roster-player>.race{line-height:20px;position:static;transform:none;translate:none;margin:0;padding:0}
.admin .roster-player>.race{font-size:12px;width:10px;flex:0 0 10px;text-align:center}
.admin .roster-player>.grip{font-size:0;width:8px;height:12px;flex:0 0 8px;background:radial-gradient(circle,currentColor 1px,transparent 1.3px) 0 0/4px 4px}
.admin .roster-player>.edit-player{position:relative;width:22px;height:24px;flex:0 0 22px;padding:0;display:block;font-size:0;line-height:1}
.admin .roster-player>.edit-player:before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:12px;height:4px;background:radial-gradient(circle,currentColor 1px,transparent 1.3px) 0 0/4px 4px}
.admin .grip{color:#a1a4ac}
.admin .roster-filters .selected{background:#b7a1ee25;color:#fff}
.admin .roster-filters{display:flex;align-items:center;gap:6px}
.admin .roster-filters button{display:inline-flex;align-items:center;justify-content:center;min-width:48px;height:30px;padding:0 12px;font-size:12px;font-weight:600;line-height:1;letter-spacing:0;white-space:nowrap}
.admin .unplace-zone{border-color:#686b72;color:#babdc5;background:transparent}
.admin #bulk-open{display:flex;align-items:center;justify-content:center;width:100%;height:36px;flex-shrink:0;padding:0 8px;margin-bottom:8px;font-size:12px;font-weight:600;line-height:1;white-space:nowrap;background:#29282e;border-color:#ffffff12;color:#f0f0f2}
.admin .muted,.admin small{color:#a9acb3}
.admin .match-card[data-status=waiting]{background:linear-gradient(145deg,#35333b,#2b2a30);border:1px solid #ffffff20;box-shadow:4px 4px 9px #17161b80,-3px -3px 7px #ffffff05}
.admin .match-card[data-status=done]{background:#202024;border:1px solid #ffffff24;box-shadow:inset 0 1px 0 #ffffff06}
.admin .match-card[data-status=ready]{background:linear-gradient(145deg,#4c425d,#3c3448);border:1px solid #eee3ff}
.admin #stage:not(.swiss-stage) .match-card{border-radius:9px}
.admin .slot{border-bottom-color:#ffffff0a}
.admin .slot{color:#f2f3f5}
.admin .slot.empty{color:#a4a7ae}
.admin .slot.win{background:#ffffff0b;color:#fff}
.admin .slot.lose{background:#1d1e20!important;color:#93969e}
.admin .slot.lose .name{color:#93969e}
.admin .slot.win .name:after{color:#cbd0d8}
.admin .slot.lose .name:after{color:#93969e}
.admin .score-value{background:#ffffff09;color:#f4f5f6!important;font-variant-numeric:tabular-nums}
.admin .ko-win,.admin .swiss-card .sw-win{background:#373a40;color:#fff;border:1px solid #6b7079;border-radius:4px}
.admin .round-label{color:#b2b5bc;opacity:1}
.admin .round-label.active-round,.admin .swiss-stage .active-round{color:#fff!important;text-shadow:none;font-weight:700}
.admin .round-label.active-round:after{background:#d8dce4;box-shadow:none}
.admin .wire{stroke:#66616f;opacity:.55}.admin .wire.won{stroke:#b8a9d3;opacity:.9}
.admin .champion{background:#25232b;border-color:#9caec44d;border-radius:12px}
.admin .slot.selected-player,.admin .roster-player.selected-player{background:#453459!important;outline:2px solid #c4afff!important;outline-offset:0;box-shadow:inset 3px 0 #c4afff!important}
.admin .slot.selected-player:after{content:none}
.admin .drop-allowed:not(.selected-player){background:#143a32!important;outline:2px dashed #67d6ae!important;outline-offset:-2px}
.admin .selection-tip{background:#30283f;color:#f0f6ff;border-color:#c4afff}
.admin dialog,.admin #confirm-dialog,.admin #score-popover{background:#242629;color:#f2f3f5;border-color:#767b85}
.admin #score-popover .inline-score{background:#151618;color:#fff;border-color:#686e78}
.admin #connection,.admin #save-status{color:#b0bbb5}

/* Entered subtitle text is content, not a placeholder. */
.admin #subtitle{color:#ecf0f7}
.admin #format-error,.admin .dialog-notice{color:#ffd6c4;font-size:12px;line-height:1.6;margin:10px 0;padding:8px 10px;background:#392c28;border:1px solid #795449;border-radius:5px}
.admin .format-presets button[aria-pressed=true]{background:#b7a1ee25;border-color:#b7a1ee;color:#e8dcff;box-shadow:none;font-weight:700}

/* Controller components share one charcoal/lavender palette. */
.admin .roster-panel{background:#343239f5;backdrop-filter:blur(20px);box-shadow:0 16px 48px #0005}
.admin .board-heading .title-field input{border-color:#ffffff10;border-radius:8px;color:#f3f0f7}
.admin .board-heading .title-field:first-child input{font-size:16px!important}
.admin .roster-player{border-radius:8px}
.admin .sg-group{background:linear-gradient(145deg,#35333b,#2b2a30);border-color:#ffffff20;border-radius:10px}
.admin #stage.swiss-stage .sg-match[data-status=ready]{background:#b7a1ee06;box-shadow:none}
.admin #stage:not(.swiss-stage) .match-card[data-status=ready],.admin .sg-group.sg-active{border-color:#eee3ff;outline:0;box-shadow:0 0 0 1px #ddcaff,0 0 5px #eee2ff66,0 0 13px #c9afff50,4px 4px 10px #17161b80,inset 0 1px #ffffff12}
.admin #stage:not(.swiss-stage) .match-card[data-status=done],.admin .sg-group:not(.sg-active):has(.sg-match[data-status=done]){border-color:#ffffff18;box-shadow:none}
.admin .match-card[data-status=done]:after{content:'✓';position:absolute;right:-5px;top:-8px;font-size:11px;line-height:15px;width:15px;text-align:center;border-radius:50%;background:#37303f;color:#d9c8f9;pointer-events:none}
.admin #stage .score-value[data-inline]{border:0;border-radius:4px;color:#eee8fa!important}
.admin #stage .score-value[data-inline]:hover{background:#b7a1ee35}
.admin #stage .ko-win,.admin #stage .sw-win{background:#544563;border-color:#b69bc9;color:#fff4ff;border-radius:4px}
.admin :is(.ko-win,.sw-win,[data-revoke],[data-result-cancel],[data-score-winner],[data-score-save],[data-score-cancel]){transition:background-color .15s,border-color .15s,box-shadow .15s,color .15s}
.admin #stage :is(.ko-win,.sw-win):is(:hover,:focus-visible),.admin [data-score-winner]:is(:hover,:focus-visible),.admin [data-score-save]:is(:hover,:focus-visible){background:#d2b9ff;color:#241633;border-color:#f5eaff;box-shadow:0 0 0 2px #cba7ff55,0 0 12px #be8cff88}
.admin :is([data-revoke],[data-result-cancel],[data-score-cancel]):not(:disabled){background:#49343e;border:1px solid #ae7a8e;color:#ffe0e8}
.admin :is([data-revoke],[data-result-cancel],[data-score-cancel]):not(:disabled):is(:hover,:focus-visible){background:#804557;color:#fff;border-color:#ffc6d5;box-shadow:0 0 0 2px #ffb5cc33,0 0 12px #ff91b455}
.admin .sg-group>h3,.admin .round-label,.admin .de-round{color:#d6cede;text-shadow:none}
.admin .sg-group>h3>span{color:#d6cede}
.admin #stage .sg-result-panel{border-radius:10px;background:#2d2b32;border-color:#ffffff16}
.admin #stage .sg-result-panel.qualified:has(.sg-result-player){background:#2a2533;border-color:#b7a1ee;box-shadow:inset 0 2px #b7a1ee}
.admin #stage .sg-result-panel.qualified:has(.sg-result-player)>h3{color:#d4bfff;text-shadow:none}
.admin #stage .champion.awarded{background:#2a2533;border-color:#b7a1ee;box-shadow:inset 0 2px #b7a1ee}
.admin #stage .match-card.editor-selected{outline:2px solid #e2d6ff!important;outline-offset:3px;box-shadow:none!important}

@font-face{font-family:Tossface;src:url('assets/TossFaceFontMac-09.woff2') format('woff2');font-display:swap}
.tossface{font-family:Tossface;font-weight:400;font-style:normal;line-height:1.2}
.workspace-rail .tossface{font-size:24px}
.admin .workspace-rail button{background:linear-gradient(145deg,#302e35,#28272c);box-shadow:4px 4px 9px #17161b80,-3px -3px 7px #ffffff05;border:1px solid #ffffff04}
.admin .workspace-rail button[aria-expanded=true]{background:#302b3b;box-shadow:inset 3px 3px 6px #18161f80,inset -2px -2px 5px #ffffff04;color:#ddceff}
.admin button,.admin .button{border-radius:8px;box-shadow:2px 2px 5px #17161b50,-1px -1px 3px #ffffff04}
.admin button:active{box-shadow:inset 2px 2px 5px #17161b70}
.admin input,.admin select,.admin textarea{background:#26252b;border-color:#ffffff12;box-shadow:inset 2px 2px 5px #17161b50;border-radius:8px}
.admin .board-heading .title-field input{background:#26252b;box-shadow:inset 2px 2px 5px #17161b50}
.admin .roster-player{background:linear-gradient(145deg,#39363f,#302e35);box-shadow:2px 2px 4px #17161b40,-1px -1px 3px #ffffff03}
.admin #stage .score-value[data-inline]{box-shadow:inset 1px 1px 3px #17161b70;background:#242129}
.admin .sg-group{box-shadow:4px 4px 10px #17161b70,-3px -3px 7px #ffffff05}
.admin .roster-player>.edit-player{box-shadow:none;background:transparent;border-color:transparent}

/* Brand header: status, editing and broadcast actions stay distinct. */
.admin header{height:62px;flex-wrap:nowrap;padding:0 22px;background:linear-gradient(110deg,#343039,#29282d 42%);box-shadow:0 3px 12px #16141b30;border-bottom:1px solid #ffffff0c}
.admin .brand{gap:12px;flex-shrink:0}.admin .site-logo{width:42px;height:42px;object-fit:contain}
.admin .brand h1{font-size:16px;letter-spacing:-.3px;line-height:1.15;margin:0}
.admin .header-status{display:flex;flex-direction:column;align-items:flex-end;gap:4px;margin-right:12px;padding-right:18px;border-right:1px solid #ffffff12;font-size:10px}
.admin #save-status{font-size:10px;margin:0;white-space:nowrap;color:#b7afc2}
.admin .actions .button.accent{background:linear-gradient(145deg,#cebbff,#ab90e7);border-color:#d9c8ff66;box-shadow:inset 0 1px #ffffff30,0 3px 9px #17131f40}
.admin .format-status{display:inline-flex;align-items:center;gap:8px;border-radius:20px;padding:7px 12px;background:#b7a1ee0e;border:1px solid #b7a1ee22;color:#d6c9eb;font-size:11px;white-space:nowrap}
.admin .format-status:before{content:'';width:5px;height:5px;border-radius:50%;background:#baa5ef}
@media(max-width:850px){.admin header{padding:0 10px}.admin .brand .eyebrow{display:none}.admin .brand h1{font-size:13px}.admin .header-status{padding-right:8px;margin-right:0}.admin .actions{gap:5px}.admin .actions button,.admin .actions a{font-size:10px;padding:7px}.admin .site-logo{width:32px;height:32px}}

/* Interface labels are not text/drag sources. Inputs and player dragging remain usable. */
.admin{user-select:none;-webkit-user-select:none}
.admin input,.admin textarea{user-select:text;-webkit-user-select:text}
.admin img,.admin a{-webkit-user-drag:none}
.admin .round-label.active-round,.admin .de-round.active-round,.admin .sg-active>h3>span{color:#f3eaff!important;text-shadow:0 0 8px #d8baff66}

.background-picker{margin-top:22px;padding-top:18px;border-top:1px solid #ffffff16}.background-picker h2{margin-bottom:12px;font-size:14px}.background-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}.admin .background-options button{padding:4px;overflow:hidden;line-height:1.3;font-size:11px}.background-options img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:5px;margin-bottom:6px}.background-options span{display:block;padding:0 0 4px}.admin .background-options button[aria-pressed=true]{border-color:#dec8ff;box-shadow:0 0 0 1px #cba7ff;background:#493b60}.background-media{display:flex;flex-direction:column;gap:8px;margin-top:14px;font-size:12px}.background-media select{width:100%;font-size:12px;padding:8px}
