*{box-sizing:border-box}html,body{margin:0;background:#0b0d10;color:#f4f6f8;font-family:Inter,"Noto Sans JP",system-ui,sans-serif}button,input,select{font:inherit}.app{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.side{background:#101318;border-right:1px solid #242a31;padding:25px 16px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{padding:0 10px 28px}.brand b,.brand span{font-size:25px;letter-spacing:1px}.brand span{color:#e34848;margin-left:5px}.brand small{display:block;color:#68717d;font-size:9px;letter-spacing:2px;margin-top:5px}.side nav{display:grid;gap:6px}.nav{border:0;background:transparent;color:#8f98a4;text-align:left;padding:13px 14px;border-radius:9px;cursor:pointer;display:flex;gap:10px}.nav:hover,.nav.active{background:#191e24;color:#fff}.nav.active{box-shadow:inset 3px 0 #e34848}.save{margin-top:auto;color:#7c8590;font-size:12px;padding:10px;display:flex;gap:8px;align-items:center}.save i{width:7px;height:7px;border-radius:50%;background:#45c785}main{min-width:0;padding:0 34px 60px}header{height:88px;border-bottom:1px solid #242932;display:flex;align-items:center;justify-content:space-between;gap:20px}h1,h2,p{margin-top:0}h1{font-size:21px;margin-bottom:0}h2{font-size:18px;margin-bottom:6px}.eyebrow{font-size:9px;letter-spacing:2px;color:#707984;margin-bottom:5px}.header-actions,.section-title,.toolbar,.panel-head,.match-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.status,.badge{border:1px solid #363d47;padding:7px 10px;border-radius:999px;color:#aab1ba;font-size:11px}.primary,.ghost,.big-action,.mini,.danger-btn,.file-btn{border:0;border-radius:8px;padding:11px 15px;cursor:pointer}.primary,.big-action{background:#df4444;color:white;font-weight:800}.primary:hover,.big-action:hover{background:#ef5050}.ghost,.mini,.file-btn{background:#181c22;color:#c8cdd4;border:1px solid #313741}.ghost:disabled{opacity:.35;cursor:not-allowed}.danger{color:#e77979}.page{display:none;padding-top:26px}.page.active{display:block}.hero{border:1px solid #2a3038;background:linear-gradient(120deg,#15191f,#111419);padding:26px;border-radius:12px;display:flex;justify-content:space-between;align-items:center;gap:20px}.live-line{display:flex;align-items:center;gap:10px;font-size:21px}.live-line span{width:8px;height:8px;border-radius:50%;background:#737b86}.live-line span.live{background:#e44848;box-shadow:0 0 0 5px #e4484820}.hero p{color:#858e99;margin:8px 0 0}.big-action{padding:14px 20px}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0}.stats article,.panel{border:1px solid #292f37;background:#12161b;border-radius:11px}.stats article{padding:18px}.stats span,.stats small{color:#77808c;font-size:11px}.stats strong{font-size:28px;margin-top:9px;display:block}.stats .teamlead{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid2{display:grid;grid-template-columns:1.25fr .75fr;gap:14px}.panel{padding:19px}.panel-head{margin-bottom:15px}.panel-head h2{margin:0}.link{border:0;background:none;color:#e96a6a;cursor:pointer}.rank-row{display:grid;grid-template-columns:35px 1fr 65px;align-items:center;padding:11px 3px;border-bottom:1px solid #22272e}.rank-row:last-child{border:0}.rank-row b:last-child{text-align:right}.progress{height:6px;background:#252b32;border-radius:10px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:#e44848;transition:.25s}.match-progress{display:grid;gap:7px;margin-top:17px}.mp-row{display:flex;justify-content:space-between;background:#181d23;padding:9px 11px;border-radius:7px;color:#8e97a2;font-size:12px}.mp-row.done{color:#74d9a3}.guide{margin-top:14px}.steps{display:flex;align-items:center;justify-content:center;gap:20px;padding:12px}.steps div{text-align:center}.steps b{display:grid;place-items:center;width:30px;height:30px;margin:auto auto 7px;border:1px solid #3a424c;border-radius:50%}.steps span{font-size:11px;color:#8c95a0}.steps i{color:#424a54}.toolbar,.section-title{margin-bottom:18px}.toolbar h2,.section-title h2{font-size:25px;margin:0}.section-title p{color:#7f8893;margin:7px 0 0;font-size:12px}.match-switch{display:flex}.match-switch button,.match-switch select{background:#171b21;color:white;border:1px solid #343b45;padding:10px}.match-switch button:first-child{border-radius:8px 0 0 8px}.match-switch button:last-child{border-radius:0 8px 8px 0}.operator-strip{display:flex;justify-content:space-between;align-items:center;background:#161a20;border:1px solid #2c333c;border-radius:11px;padding:14px 17px;margin-bottom:14px}.operator-strip .tiny{font-size:9px;letter-spacing:1.5px;color:#7f8996;display:block}.operator-strip strong{font-size:24px;color:#f05d5d}.op-actions{display:flex;gap:8px}.match-shell{display:grid;grid-template-columns:minmax(360px,.8fr) minmax(650px,1.2fr);gap:14px}.searchbox{position:relative;min-width:210px}.searchbox input{width:100%;background:#171b20;border:1px solid #303741;color:#fff;padding:9px 34px 9px 11px;border-radius:8px}.searchbox span{position:absolute;right:12px;top:8px;color:#707984}.team-pick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.team-pick{position:relative;border:1px solid #303741;background:#181d23;color:#f3f5f7;border-radius:9px;padding:14px 10px;text-align:left;cursor:pointer;min-height:64px;transition:.15s}.team-pick:hover{transform:translateY(-1px);border-color:#d44e4e;background:#1b2027}.team-pick b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-pick span{display:block;color:#6f7883;font-size:10px;margin-top:5px}.team-pick.used{opacity:.35;background:#101318;cursor:default;transform:none}.team-pick.used::after{content:attr(data-rank);position:absolute;right:8px;top:8px;background:#343a43;color:#dfe3e8;padding:3px 6px;border-radius:999px;font-size:9px}.order-list{display:grid;gap:8px}.order-card{border:1px solid #2b323a;background:#171b20;border-radius:10px;overflow:hidden}.order-top{display:grid;grid-template-columns:50px minmax(150px,1fr) 88px 88px 95px 38px;align-items:center;gap:8px;padding:11px 12px}.order-top .rank{font-size:17px;font-weight:900;color:#e9ecef}.order-team b{display:block}.order-team small{color:#707984}.metric{text-align:center}.metric b{display:block;font-size:15px}.metric span{font-size:9px;color:#77818c}.remove-rank{border:0;background:#2a2022;color:#e98e8e;width:30px;height:30px;border-radius:7px;cursor:pointer}.player-kills{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:0 12px 12px}.player-kill{background:#11151a;border:1px solid #252b32;border-radius:8px;padding:9px}.player-kill label{display:flex;justify-content:space-between;gap:8px;align-items:center;color:#9da5ae;font-size:10px}.kill-stepper{display:grid;grid-template-columns:28px 1fr 28px;gap:5px;margin-top:6px}.kill-stepper button{background:#222831;border:1px solid #333b45;color:white;border-radius:6px;cursor:pointer}.kill-stepper input{width:100%;background:#171b20;color:#fff;border:1px solid #313842;border-radius:6px;padding:7px;text-align:center}.match-actions{margin-top:16px}.completion{text-align:center;margin-left:auto}.completion b{display:block}.completion span{font-size:10px;color:#747d88}.confirm{min-width:170px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:700px}th{color:#747d88;font-size:10px;letter-spacing:1px;text-align:left}th,td{padding:13px 10px;border-bottom:1px solid #23282f}td:last-child{font-weight:800}.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.team-card{border:1px solid #292f37;background:#12161b;border-radius:10px;padding:16px}.team-card-head{display:flex;gap:8px;align-items:center;margin-bottom:11px}.team-card-head input{font-size:16px;font-weight:700}.players{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.players input,.team-card-head input{background:#171b20;border:1px solid #303741;color:white;padding:9px;border-radius:7px;width:100%}.remove-team{margin-left:auto;background:none;border:0;color:#d96a6a;cursor:pointer}.rules-grid label{display:block;color:#9099a4;font-size:11px;margin-top:13px}.rules-grid input,.rules-grid select,.rule-row input{width:100%;background:#171b20;border:1px solid #303741;color:#f2f3f5;padding:10px;border-radius:7px;outline:none}.form2{display:grid;grid-template-columns:1fr 1fr;gap:9px}.check{display:flex!important;align-items:center;gap:8px}.check input{width:auto}.muted{color:#727b87;font-size:11px}.point-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}.point-box{font-size:10px;color:#7e8792}.point-box input{text-align:center;margin-top:4px}.rule-table{display:grid;gap:7px}.rule-row{display:grid;grid-template-columns:80px 1fr 1fr;gap:8px;align-items:center}.rule-row label{font-size:10px;color:#7d8691}.setting-toggle{display:flex;justify-content:space-between;align-items:center;gap:15px;background:#171b20;border:1px solid #2d343d;border-radius:9px;padding:13px;margin-top:14px}.setting-toggle b{display:block;font-size:12px}.setting-toggle span{display:block;color:#7c8590;font-size:10px;margin-top:4px}.switch input{display:none}.switch i{display:block;width:44px;height:24px;background:#323943;border-radius:20px;position:relative;cursor:pointer}.switch i:after{content:"";position:absolute;width:18px;height:18px;background:white;border-radius:50%;left:3px;top:3px;transition:.2s}.switch input:checked+i{background:#d94747}.switch input:checked+i:after{left:23px}.data-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.data-grid p{color:#7e8792;font-size:12px;min-height:38px}.file-btn{display:inline-block;margin-left:7px}.file-btn input{display:none}.danger-zone{border-color:#4b292b}.danger-btn{background:#351d20;color:#f18a8a}.modal{position:fixed;inset:0;background:#050608cc;display:none;align-items:center;justify-content:center;padding:20px;z-index:10}.modal.show{display:flex}.modal-card{width:min(540px,100%);background:#15191f;border:1px solid #343b44;border-radius:12px;padding:24px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:20px}.check-ok,.check-warn{padding:10px;border-radius:7px;font-size:11px;margin-top:7px}.check-ok{background:#153124;color:#83dbad}.check-warn{background:#382224;color:#e9a0a0}.toast{position:fixed;right:25px;bottom:25px;background:#222831;border:1px solid #3b444f;padding:12px 16px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;z-index:20}.toast.show{opacity:1}@media(max-width:1200px){.match-shell{grid-template-columns:1fr}.team-pick-grid{grid-template-columns:repeat(5,1fr)}}@media(max-width:950px){.app{grid-template-columns:74px 1fr}.brand span,.brand small,.nav span{display:none}.brand b{font-size:15px}.side{padding:20px 8px}.nav{justify-content:center}.stats{grid-template-columns:1fr 1fr}.grid2{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr}.data-grid{grid-template-columns:1fr}.team-pick-grid{grid-template-columns:repeat(4,1fr)}}@media(max-width:680px){.app{display:block}.side{position:static;height:auto;border:0;padding:12px}.brand{padding:5px 5px 12px}.brand span{display:inline;font-size:15px}.side nav{display:flex;overflow:auto}.nav{min-width:48px}.save{display:none}main{padding:0 12px 40px}header{height:auto;padding:14px 0;align-items:flex-start}.header-actions{flex-wrap:wrap;justify-content:flex-end}.hero{align-items:flex-start;flex-direction:column}.big-action{width:100%}.stats{grid-template-columns:1fr 1fr}.steps{overflow:auto;justify-content:flex-start}.toolbar,.section-title{align-items:flex-start;flex-direction:column}.operator-strip{align-items:flex-start;gap:10px}.team-pick-grid{grid-template-columns:repeat(2,1fr)}.panel-head{align-items:flex-start;flex-direction:column}.searchbox{width:100%}.order-top{grid-template-columns:40px 1fr 72px 72px 36px}.order-top .metric.points{display:none}.player-kills{grid-template-columns:1fr}.team-grid{grid-template-columns:1fr}.players{grid-template-columns:1fr}.point-grid{grid-template-columns:repeat(4,1fr)}.data-grid{grid-template-columns:1fr}}
/* v7 */
.operator-btn.active{background:#3a1f22;border-color:#8f383e;color:#ffb0b4}
body.operator-mode .side{display:none}
body.operator-mode .app{grid-template-columns:1fr}
body.operator-mode main{padding-left:26px;padding-right:26px}
body.operator-mode header{position:sticky;top:0;z-index:5;background:#0b0d10eF;backdrop-filter:blur(10px)}
body.operator-mode .page:not(#match){display:none!important}
body.operator-mode #match{display:block!important}
body.operator-mode .team-pick-panel,.operator-mode .order-panel{min-height:calc(100vh - 210px)}
.input-mode-hint{margin:-2px 0 14px;padding:10px 13px;border-radius:8px;border:1px solid #2c343d;background:#141920;color:#aeb6c0;font-size:11px}
.input-mode-hint strong{color:#fff}
.team-actions{display:flex;gap:8px;flex-wrap:wrap}
.csv-import-btn{margin-left:0}
.order-card[draggable="true"]{cursor:grab}
.order-card.dragging{opacity:.35}
.order-card.drag-over{outline:2px solid #df4444;outline-offset:2px}
.drag-handle{color:#68717c;font-size:16px;user-select:none}
.order-top{grid-template-columns:28px 50px minmax(150px,1fr) 88px 88px 95px 38px}
.team-kill-direct{padding:0 12px 12px}
.team-kill-direct label{display:grid;grid-template-columns:1fr 140px;gap:12px;align-items:center;background:#11151a;border:1px solid #252b32;border-radius:8px;padding:10px 12px;color:#9da5ae;font-size:11px}
.team-kill-direct input{background:#171b20;border:1px solid #313842;color:#fff;border-radius:7px;padding:9px;text-align:center;width:100%}
.warning-pill{display:inline-block;margin-left:7px;background:#3a2620;color:#f3b48f;border:1px solid #704330;padding:3px 6px;border-radius:999px;font-size:9px}
.history-list{display:grid;gap:7px;max-height:220px;overflow:auto}
.history-item{display:flex;justify-content:space-between;gap:10px;align-items:center;background:#171b20;border:1px solid #2a3038;border-radius:8px;padding:9px 10px;font-size:11px}
.history-item span{color:#8a939e}
.history-item button{background:#222831;color:#d8dde3;border:1px solid #343c46;border-radius:6px;padding:6px 8px;cursor:pointer}
.validation-list{display:grid;gap:7px}
.validation-list .check-info{padding:10px;border-radius:7px;background:#172331;color:#9cc8f5;font-size:11px}
@media(max-width:680px){
  .order-top{grid-template-columns:22px 38px 1fr 68px 68px 34px}
  .order-top .metric.points{display:none}
  .team-kill-direct label{grid-template-columns:1fr 100px}
  .operator-btn{font-size:11px;padding:9px}
}

/* v8 all-match reset */
.match-reset-zone{border-color:#5b4726}
.warning-btn{
  border:1px solid #7a5a2b;
  background:#3b2c18;
  color:#f2c879;
  border-radius:8px;
  padding:11px 15px;
  cursor:pointer;
  font-weight:800;
}
.warning-btn:hover{background:#49361c}
.reset-confirm-text{color:#858e99;font-size:11px;margin:14px 0 0}


/* v9 result screen */
.results-layout{display:grid;grid-template-columns:minmax(340px,.75fr) minmax(520px,1.25fr);gap:14px}
.result-form{grid-template-columns:1fr 1fr}
.result-form label{display:block;color:#9099a4;font-size:11px;margin-top:0}
.result-form input,.result-form select{width:100%;background:#171b20;border:1px solid #303741;color:#f2f3f5;padding:10px;border-radius:7px;outline:none}
.result-asset-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.team-assets{display:grid;grid-template-columns:110px 1fr;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #23282f}
.asset-box{background:#171b20;border:1px solid #2b323a;border-radius:9px;padding:10px}
.asset-box h4{margin:0 0 8px;font-size:12px}
.asset-preview{width:100%;aspect-ratio:1/1;border-radius:10px;background:#0f1318;border:1px dashed #39404a;display:grid;place-items:center;overflow:hidden}
.asset-preview img{width:100%;height:100%;object-fit:cover}
.members-assets{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.member-asset{background:#171b20;border:1px solid #2b323a;border-radius:9px;padding:8px}
.member-asset h5{margin:0 0 6px;font-size:11px;color:#aeb5be}
.member-thumb{width:100%;aspect-ratio:1/1;border-radius:10px;background:#0f1318;border:1px dashed #39404a;display:grid;place-items:center;overflow:hidden}
.member-thumb img{width:100%;height:100%;object-fit:cover}
.result-preview-card{position:relative;border-radius:24px;padding:22px;border:6px solid #1c2d69;background:#f7f8fc;overflow:hidden;min-height:700px;color:#12224f}
.result-preview-bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.16;filter:blur(1px);transform:scale(1.02)}
.result-preview-inner{position:relative;z-index:1}
.result-cloud{position:absolute;inset:12px;border:5px solid #1c2d69;border-radius:34px;pointer-events:none;opacity:.12}
.result-head{text-align:center;margin-bottom:18px}
.result-title{font-size:64px;line-height:1;letter-spacing:2px;color:#fff;text-shadow:-3px -3px 0 #15295f,3px -3px 0 #15295f,-3px 3px 0 #15295f,3px 3px 0 #15295f,0 6px 0 #15295f;font-weight:900;display:inline-block;padding:0 18px;position:relative}
.result-title.block{font-family:Impact, 'Arial Black', sans-serif;letter-spacing:1px}
.result-title.impact{font-family:Impact, 'Arial Black', sans-serif}
.result-title.rounded{font-family:'Arial Rounded MT Bold', 'Trebuchet MS', sans-serif}
.result-title::before,.result-title::after{content:'';position:absolute;top:50%;width:62px;height:8px;background:#1d2f6f;border-radius:999px;transform:translateY(-50%)}
.result-title::before{left:-72px}.result-title::after{right:-72px}
.result-title-ribbon{position:relative;display:inline-block;padding:10px 18px}
.result-title-ribbon:before,.result-title-ribbon:after{content:'';position:absolute;top:22px;width:78px;height:18px;background:#ef233c;z-index:-1;transform:skew(-18deg)}
.result-title-ribbon:before{left:-32px}.result-title-ribbon:after{right:-32px}
.result-suben{font-size:28px;font-weight:900;letter-spacing:1px;color:#1c2d69}
.result-subja{font-size:16px;color:#34457a;font-weight:700}
.result-columns{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.result-column{display:grid;gap:6px}
.result-header-row,.result-row{display:grid;grid-template-columns:54px minmax(0,1fr) 64px 58px 64px 76px;align-items:center;gap:0}
.result-header-row{font-size:13px;font-weight:900;color:#f5f8ff;background:#173070;border-radius:10px;padding:8px 0;text-align:center}
.result-header-row div:nth-child(2){text-align:left;padding-left:14px}
.result-row{background:#ffffff;border:2px solid #d3daeb;border-radius:10px;overflow:hidden;min-height:62px}
.result-row + .result-row{margin-top:6px}
.result-rank{background:#173070;color:#fff;height:100%;display:grid;place-items:center;font-size:26px;font-weight:900}
.result-team{display:flex;align-items:center;gap:10px;padding:8px 12px;min-width:0}
.result-team-name{font-size:18px;font-weight:900;color:#102252;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.result-team-visual{display:flex;align-items:center;gap:6px;min-width:0;flex-shrink:0}
.result-logo,.result-avatar{width:36px;height:36px;border-radius:9px;background:#dbe3fa;border:2px solid #22356f;overflow:hidden;display:grid;place-items:center;color:#22356f;font-size:12px;font-weight:900}
.result-avatar{width:30px;height:30px;border-radius:8px}
.result-logo img,.result-avatar img{width:100%;height:100%;object-fit:cover}
.result-num{text-align:center;font-size:17px;font-weight:900;color:#102252}
.result-total{background:#f31f36;color:#fff;font-size:20px;font-weight:900;height:100%;display:grid;place-items:center}
.result-footer-note{text-align:center;color:#20315e;font-size:11px;font-weight:700;margin-top:18px}
.result-badge-corner{position:absolute;right:20px;bottom:18px;font-size:48px;font-weight:900;color:#ffffff;text-shadow:-3px -3px 0 #15295f,3px -3px 0 #15295f,-3px 3px 0 #15295f,3px 3px 0 #15295f,0 6px 0 #e31c3d;transform:rotate(-7deg)}
.result-empty{padding:40px 20px;text-align:center;color:#6e7890}
@media(max-width:1200px){.results-layout{grid-template-columns:1fr}.result-preview-card{min-height:auto}.result-columns{grid-template-columns:1fr}.result-title{font-size:46px}.result-title::before,.result-title::after{display:none}}
@media(max-width:680px){.result-form{grid-template-columns:1fr}.result-header-row,.result-row{grid-template-columns:42px minmax(0,1fr) 46px 42px 48px 58px}.result-team-name{font-size:13px}.result-suben{font-size:18px}.result-title{font-size:34px}.result-badge-corner{font-size:32px;bottom:10px;right:12px}.result-logo{width:30px;height:30px}.result-avatar{width:24px;height:24px}.team-assets{grid-template-columns:1fr}.members-assets{grid-template-columns:repeat(3,1fr)}}


/* v11 — 16:9固定 + TOP20完全表示 */
#resultPreviewWrap{width:100%;background:#0f1318;border:1px solid #2b323a;border-radius:14px;padding:8px;overflow:hidden}
#resultPreviewWrap .result-preview-card{width:100%;aspect-ratio:16/9;min-height:0;height:auto;padding:11px 13px 9px;border-width:4px;border-radius:18px;overflow:hidden}
#resultPreviewWrap .result-preview-inner{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:5px}
#resultPreviewWrap .result-preview-bg{opacity:.18}
#resultPreviewWrap .result-cloud{inset:7px;border-width:3px;border-radius:22px}
#resultPreviewWrap .result-head{margin:0;text-align:center;line-height:1}
#resultPreviewWrap .result-title-ribbon{padding:1px 10px}
#resultPreviewWrap .result-title{font-size:29px;line-height:1;letter-spacing:1px;text-shadow:-2px -2px 0 #15295f,2px -2px 0 #15295f,-2px 2px 0 #15295f,2px 2px 0 #15295f,0 3px 0 #15295f}
#resultPreviewWrap .result-title-ribbon:before,#resultPreviewWrap .result-title-ribbon:after{top:11px;width:38px;height:8px}
#resultPreviewWrap .result-title-ribbon:before{left:-14px}#resultPreviewWrap .result-title-ribbon:after{right:-14px}
#resultPreviewWrap .result-title::before,#resultPreviewWrap .result-title::after{width:30px;height:4px}
#resultPreviewWrap .result-title::before{left:-35px}#resultPreviewWrap .result-title::after{right:-35px}
#resultPreviewWrap .result-suben{font-size:14px;line-height:1.05;margin-top:1px}
#resultPreviewWrap .result-subja{font-size:8px;line-height:1.05;margin-top:1px}
#resultPreviewWrap .result-columns{display:grid;grid-template-columns:1fr 1fr;gap:8px;min-height:0;overflow:hidden}
#resultPreviewWrap .result-column{min-height:0;display:grid;grid-template-rows:20px repeat(10,minmax(0,1fr));gap:2px;overflow:hidden}
#resultPreviewWrap .result-header-row,#resultPreviewWrap .result-row{grid-template-columns:34px minmax(0,1fr) 38px 34px 40px 50px;min-height:0;height:100%}
#resultPreviewWrap .result-header-row{font-size:8px;line-height:1;padding:0;border-radius:6px}
#resultPreviewWrap .result-header-row div{display:grid;place-items:center}
#resultPreviewWrap .result-header-row div:nth-child(2){justify-content:start;padding-left:7px}
#resultPreviewWrap .result-row{border-width:1px;border-radius:6px;margin:0!important;overflow:hidden}
#resultPreviewWrap .result-rank{font-size:14px;line-height:1}
#resultPreviewWrap .result-team{gap:4px;padding:2px 5px;min-height:0;overflow:hidden}
#resultPreviewWrap .result-team-name{font-size:9px;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#resultPreviewWrap .result-team-visual{gap:2px}
#resultPreviewWrap .result-logo{width:18px;height:18px;border-radius:4px;border-width:1px;font-size:7px;flex:0 0 auto}
#resultPreviewWrap .result-avatar{width:15px;height:15px;border-radius:4px;border-width:1px;font-size:6px;flex:0 0 auto}
#resultPreviewWrap .result-num{font-size:10px;line-height:1}
#resultPreviewWrap .result-total{font-size:12px;line-height:1}
#resultPreviewWrap .result-footer-note{margin:0;text-align:center;font-size:6px;line-height:1}
#resultPreviewWrap .result-badge-corner{right:8px;bottom:7px;font-size:17px;text-shadow:-1px -1px 0 #15295f,1px -1px 0 #15295f,-1px 1px 0 #15295f,1px 1px 0 #15295f,0 2px 0 #e31c3d}
@media(max-width:1200px){#resultPreviewWrap .result-preview-card{aspect-ratio:16/9!important;min-height:0!important}#resultPreviewWrap .result-columns{grid-template-columns:1fr 1fr!important}#resultPreviewWrap .result-title{font-size:26px}}
@media(max-width:760px){#resultPreviewWrap{overflow-x:auto}#resultPreviewWrap .result-preview-card{min-width:760px}}


/* v12: larger preview icons */
#resultPreviewWrap .result-team{gap:6px;padding:4px 6px}
#resultPreviewWrap .result-team-visual{gap:4px}
#resultPreviewWrap .result-logo{width:22px;height:22px;border-radius:6px;font-size:9px}
#resultPreviewWrap .result-avatar{width:18px;height:18px;border-radius:5px;font-size:8px}
#resultPreviewWrap .result-team-name{font-size:9.6px;letter-spacing:-0.1px}


/* v13: bigger member icons and taller rows */
#resultPreviewWrap .result-preview-card{
  padding:12px 14px 12px;
}
#resultPreviewWrap .result-head{margin-bottom:8px}
#resultPreviewWrap .result-suben{font-size:16px}
#resultPreviewWrap .result-subja{font-size:10px}
#resultPreviewWrap .result-columns{gap:10px}
#resultPreviewWrap .result-header-row,
#resultPreviewWrap .result-row{grid-template-columns:34px minmax(0,1fr) 38px 34px 40px 50px;padding:4px 0}
#resultPreviewWrap .result-row{min-height:35px}
#resultPreviewWrap .result-row + .result-row{margin-top:3px}
#resultPreviewWrap .result-team{gap:7px;padding:4px 7px}
#resultPreviewWrap .result-team-visual{gap:5px}
#resultPreviewWrap .result-team-name{font-size:10px;line-height:1.08}
#resultPreviewWrap .result-logo{width:24px;height:24px;border-radius:6px;font-size:9px}
#resultPreviewWrap .result-avatar{width:21px;height:21px;border-radius:6px;font-size:8px}
#resultPreviewWrap .result-rank{font-size:16px}
#resultPreviewWrap .result-num{font-size:11px}
#resultPreviewWrap .result-total{font-size:13px}
#resultPreviewWrap .result-footer-note{margin-top:6px;font-size:7px}


/* v14: member icons fill almost the full row height */
#resultPreviewWrap .result-row{
  min-height:36px;
}
#resultPreviewWrap .result-team{
  gap:6px;
  padding:2px 5px;
  height:100%;
}
#resultPreviewWrap .result-team-visual{
  gap:3px;
  height:100%;
  align-items:center;
}
#resultPreviewWrap .result-avatar{
  width:29px;
  height:29px;
  border-radius:6px;
  border-width:1px;
  font-size:9px;
  flex:0 0 29px;
}
#resultPreviewWrap .result-logo{
  width:30px;
  height:30px;
  border-radius:6px;
  border-width:1px;
  font-size:9px;
  flex:0 0 30px;
}
#resultPreviewWrap .result-avatar img,
#resultPreviewWrap .result-logo img{
  width:100%;
  height:100%;
  object-fit:cover;
}
#resultPreviewWrap .result-team-name{
  font-size:9.4px;
  line-height:1;
  min-width:0;
}
#resultPreviewWrap .result-columns{gap:8px}
#resultPreviewWrap .result-header-row,
#resultPreviewWrap .result-row{
  grid-template-columns:34px minmax(0,1fr) 38px 34px 40px 50px;
}


/* v16 final result state */
#resultPreviewWrap .result-provisional{
  display:inline-block;
  margin-top:4px;
  padding:3px 8px;
  border-radius:999px;
  background:#fff0bf;
  border:1px solid #d6ad38;
  color:#785b08;
  font-size:8px;
  font-weight:900;
  letter-spacing:.3px;
}


/* v17 OBS control */
.obs-statusbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:14px 18px}
.obs-live-state{display:flex;align-items:center;gap:11px;min-width:180px}.obs-live-state i{width:10px;height:10px;border-radius:50%;background:#59616c;box-shadow:0 0 0 5px #59616c18}.obs-live-state i.online{background:#42d18b;box-shadow:0 0 0 5px #42d18b22}.obs-live-state span{display:block;font-size:9px;letter-spacing:1.5px;color:#77808c}.obs-live-state b{font-size:13px}
.obs-urlbox{display:grid;grid-template-columns:auto minmax(260px,1fr) auto auto;align-items:center;gap:8px;flex:1}.obs-urlbox>span{font-size:10px;color:#7e8791}.obs-urlbox input,.obs-wide-label input,.obs-game-row select,.obs-timing-form input,.obs-transition-form input,.obs-transition-form select,.obs-game-row select{width:100%;background:#171b20;border:1px solid #303741;color:#f2f3f5;padding:10px;border-radius:7px}
.obs-layout{display:grid;grid-template-columns:minmax(520px,1fr) minmax(420px,.8fr);gap:14px}.obs-controls{display:grid;gap:14px}.obs-current{padding:7px 10px;border:1px solid #36404c;background:#171c22;border-radius:999px;font-size:11px;color:#e8ebef}.obs-quick-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.obs-scene-btn{border:1px solid #303741;background:#171c22;color:#e7eaee;border-radius:10px;padding:13px 9px;cursor:pointer;text-align:left;transition:.16s}.obs-scene-btn:hover{transform:translateY(-1px);border-color:#e24a4a;background:#1d2229}.obs-scene-btn b{display:block;font-size:16px;letter-spacing:.5px}.obs-scene-btn span{display:block;color:#828b96;font-size:10px;margin-top:4px}.obs-scene-btn.accent{border-color:#663237}.obs-scene-btn.bronze{border-color:#70503a}.obs-scene-btn.silver{border-color:#68707a}.obs-scene-btn.gold{border-color:#806a2d}.obs-game-row{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}.obs-game-row label,.obs-timing-form label,.obs-transition-form label,.obs-wide-label{display:block;color:#8f98a3;font-size:10px}.obs-game-row select,.obs-timing-form input,.obs-transition-form input,.obs-transition-form select,.obs-wide-label input{margin-top:5px}.final-sequence-flow{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:14px 0}.final-sequence-flow span{padding:8px 10px;background:#181d23;border:1px solid #303741;border-radius:8px;font-size:11px;font-weight:800}.final-sequence-flow i{color:#606976}.obs-sequence-actions,.obs-backup-actions{display:flex;gap:8px;flex-wrap:wrap}.obs-timing-form,.obs-transition-form{margin-top:12px}.obs-preview-panel{position:sticky;top:104px;height:max-content}.obs-preview-shell{width:100%;aspect-ratio:16/9;background:#050608;border:1px solid #303741;border-radius:11px;overflow:hidden}.obs-preview-shell iframe{width:100%;height:100%;border:0;background:transparent}.obs-advanced summary{cursor:pointer;font-weight:800}.obs-advanced[open] summary{margin-bottom:12px}#captureStage{position:fixed;left:-99999px;top:0;width:1920px;height:1080px;pointer-events:none}
@media(max-width:1150px){.obs-layout{grid-template-columns:1fr}.obs-preview-panel{position:static}.obs-statusbar{align-items:flex-start;flex-direction:column}.obs-urlbox{width:100%}}
@media(max-width:700px){.obs-quick-grid{grid-template-columns:repeat(2,1fr)}.obs-game-row{grid-template-columns:1fr}.obs-urlbox{grid-template-columns:1fr}.obs-urlbox>span{display:none}}

/* v19 OBS Direct WebSocket */
.obs-direct-actions{display:flex;gap:8px;flex-wrap:wrap}
.obs-connection-grid{display:grid;grid-template-columns:1fr 110px 1.2fr 1.2fr;gap:9px}
.obs-connection-grid label{display:block;color:#8f98a3;font-size:10px}
.obs-connection-grid input{width:100%;margin-top:5px;background:#171b20;border:1px solid #303741;color:#f2f3f5;padding:10px;border-radius:7px;outline:none}
.obs-note{margin-top:10px!important;margin-bottom:0!important}
#obsConnectBtn{min-width:118px}
@media(max-width:900px){.obs-connection-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.obs-connection-grid{grid-template-columns:1fr}}


/* v19 lottery / live draw */
.lottery-top-actions{display:flex;align-items:center;gap:8px}.lottery-obs-state{font-size:10px;letter-spacing:.08em;padding:8px 11px;border:1px solid #3a414b;border-radius:999px;color:#8f98a4;background:#15191e}.lottery-obs-state.online{color:#72e2a5;border-color:#276948;background:#10261c}.lottery-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.lottery-stats article{border:1px solid #292f37;background:linear-gradient(145deg,#151a20,#101319);border-radius:11px;padding:17px;position:relative;overflow:hidden}.lottery-stats article:after{content:"";position:absolute;right:-22px;bottom:-45px;width:105px;height:105px;border-radius:50%;background:radial-gradient(circle,#684dff22,transparent 70%)}.lottery-stats span,.lottery-stats small{display:block;color:#7f8995;font-size:10px;letter-spacing:.08em}.lottery-stats strong{display:block;font-size:28px;margin-top:8px}.lottery-stats .lottery-mode-now{font-size:15px;margin-top:13px}.lottery-main-grid{display:grid;grid-template-columns:minmax(0,1.24fr) minmax(360px,.76fr);gap:14px;align-items:start}.lottery-left{display:grid;gap:14px}.lottery-right{display:grid;gap:14px;position:sticky;top:105px}.lottery-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.lottery-mode-card{position:relative;overflow:hidden;text-align:left;min-height:190px;padding:18px;border:1px solid #303741;border-radius:13px;background:linear-gradient(145deg,#151a22,#101319);color:#f4f6f8;cursor:pointer;transition:.25s cubic-bezier(.2,.8,.2,1)}.lottery-mode-card:before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 30deg,transparent,#6b59ff14,transparent,#33bfff0d,transparent);opacity:0;transition:.25s}.lottery-mode-card:hover{transform:translateY(-2px);border-color:#596478}.lottery-mode-card.active{border-color:#7a68ff;box-shadow:0 0 0 1px #7a68ff55,0 16px 45px #4e3fff12}.lottery-mode-card.active:before{opacity:1;animation:lotteryModeSpin 9s linear infinite}.lottery-mode-card>b,.lottery-mode-card>strong,.lottery-mode-card>small{position:relative;z-index:2;display:block}.lottery-mode-card>b{font-size:9px;letter-spacing:.22em;color:#8f9cff;margin-top:13px}.lottery-mode-card>strong{font-size:17px;margin-top:5px}.lottery-mode-card>small{color:#7f8995;font-size:10px;line-height:1.6;margin-top:8px}@keyframes lotteryModeSpin{to{transform:rotate(360deg)}}.lottery-mode-icon{position:relative;z-index:2;display:flex;width:72px;height:62px;align-items:center;justify-content:center;gap:5px}.slot-icon{border:1px solid #3b4350;border-radius:10px;background:#0d1117;box-shadow:inset 0 0 18px #5e66ff15}.slot-icon i{display:block;width:15px;height:40px;border-radius:5px;background:linear-gradient(#171d28,#7985ff,#171d28);position:relative;overflow:hidden}.slot-icon i:after{content:"";position:absolute;left:0;right:0;top:48%;height:3px;background:white;box-shadow:0 0 8px #fff}.lottery-mode-card.active .slot-icon i:nth-child(1){animation:slotMini .55s linear infinite}.lottery-mode-card.active .slot-icon i:nth-child(2){animation:slotMini .45s linear infinite reverse}.lottery-mode-card.active .slot-icon i:nth-child(3){animation:slotMini .62s linear infinite}@keyframes slotMini{50%{filter:brightness(1.8);transform:translateY(2px)}}.gacha-icon{border-radius:50%;border:4px solid #2e3745;background:radial-gradient(circle at 35% 30%,#ffffff14,#10151d 55%);box-shadow:inset 0 0 20px #78b7ff16,0 0 20px #5f71ff0b}.gacha-icon i{width:23px;height:23px;border-radius:50%;background:linear-gradient(145deg,#f8d76d,#ff5e8e);box-shadow:-16px 13px 0 #66dbff,15px 15px 0 #9e7bff}.lottery-mode-card.active .gacha-icon{animation:gachaMini .85s cubic-bezier(.45,0,.55,1) infinite}@keyframes gachaMini{50%{transform:rotate(18deg) scale(1.04)}}.lottery-settings-grid label{display:block;color:#9099a4;font-size:11px}.lottery-settings-grid input{width:100%;margin-top:5px;background:#171b20;border:1px solid #303741;color:#fff;padding:10px;border-radius:7px}.lottery-live-actions{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin-top:15px}.lottery-draw-btn{font-size:15px;min-width:210px;background:linear-gradient(105deg,#6648ff,#df445f);box-shadow:0 12px 30px #7a43ff20}.lottery-draw-btn:hover{background:linear-gradient(105deg,#745cff,#ed536b)}.lottery-fair-note{margin:12px 0 0!important;line-height:1.55}.lottery-bulk-names{width:100%;resize:vertical;background:#101419;border:1px solid #303741;color:white;border-radius:9px;padding:12px;line-height:1.6;outline:none}.lottery-bulk-actions{display:flex;gap:8px;margin:9px 0 14px;flex-wrap:wrap}.lottery-participant-list{display:grid;gap:6px;max-height:660px;overflow:auto;padding-right:3px}.lottery-person{display:grid;grid-template-columns:34px 44px minmax(120px,1fr) 78px 50px 26px;gap:8px;align-items:center;border:1px solid #252c34;background:#151a20;border-radius:9px;padding:7px 9px}.lottery-person.won{opacity:.48;background:#111418}.lottery-index{color:#67717e;font-size:10px;font-weight:900}.lottery-avatar-upload{cursor:pointer}.lottery-avatar-upload input{display:none}.lottery-avatar,.lottery-history-avatar{display:grid;place-items:center;overflow:hidden;border-radius:9px;background:linear-gradient(135deg,#31394b,#1d2430);font-weight:900}.lottery-avatar{width:40px;height:40px}.lottery-history-avatar{width:38px;height:38px}.lottery-avatar img,.lottery-history-avatar img{width:100%;height:100%;object-fit:cover}.lottery-avatar-fallback{color:#cfd5ff}.lottery-name-input{width:100%;background:#101419;border:1px solid #2a313a;color:#fff;padding:9px;border-radius:7px}.lottery-person-state{font-size:9px;color:#7f8994}.lottery-person.won .lottery-person-state{color:#7ddaa4}.lottery-empty{padding:30px;text-align:center;color:#747d88;border:1px dashed #303741;border-radius:9px}.lottery-preview-panel{padding-bottom:15px}.lottery-preview-shell{aspect-ratio:16/9;background:#03050a;border:1px solid #303741;border-radius:11px;overflow:hidden;box-shadow:0 20px 60px #0004}.lottery-preview-shell iframe{width:100%;height:100%;border:0;background:#03050a}.lottery-winner-history{display:grid;gap:7px;max-height:420px;overflow:auto}.lottery-history-item{display:grid;grid-template-columns:38px 38px 1fr 48px auto;gap:8px;align-items:center;background:#151a20;border:1px solid #292f37;border-radius:9px;padding:8px}.lottery-history-no{font-size:11px;color:#77818e;font-weight:900}.lottery-history-item b{display:block;font-size:12px}.lottery-history-item small{display:block;color:#77818e;font-size:9px;margin-top:3px}.lottery-history-mode{font-size:8px;letter-spacing:.12em;color:#8c98ff}.lottery-history-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}@media(max-width:1150px){.lottery-main-grid{grid-template-columns:1fr}.lottery-right{position:static}.lottery-stats{grid-template-columns:1fr 1fr}}@media(max-width:700px){.lottery-mode-grid{grid-template-columns:1fr}.lottery-person{grid-template-columns:28px 40px 1fr 26px}.lottery-person-state,.lottery-person .mini{display:none}.lottery-stats{grid-template-columns:1fr 1fr}.lottery-live-actions>*{width:100%}}


/* v20 lottery roster auto-linked from team/player registration */
.lottery-roster-note{display:flex;gap:10px;align-items:flex-start;padding:11px 13px;margin-bottom:13px;border:1px solid #2b3440;border-radius:9px;background:linear-gradient(120deg,#141a22,#10151b);font-size:10px;color:#8e98a6;line-height:1.55}.lottery-roster-note b{flex:0 0 auto;color:#9d91ff;letter-spacing:.08em}.lottery-person{grid-template-columns:34px 44px minmax(150px,1fr) 78px 58px}.lottery-person-info{min-width:0}.lottery-person-info b{display:block;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lottery-person-info small{display:block;color:#707b89;font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lottery-person .mini:disabled{opacity:.35;cursor:not-allowed}@media(max-width:700px){.lottery-person{grid-template-columns:28px 40px 1fr 46px}.lottery-person-state{display:none}.lottery-person .mini{display:block;padding:6px;font-size:9px}}


/* v22 lottery preview / OBS split */
.lottery-preview-btn{border-color:#5d63a8;color:#c9ccff;background:#171a2a}
.lottery-obs-test-btn{border-color:#286d59;color:#88e8bd;background:#10241d}
.lottery-obs-test-btn:hover{background:#143126;border-color:#3b9277}
.lottery-preview-head-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}
.lottery-preview-status{display:flex;justify-content:space-between;align-items:center;margin:-2px 0 8px;padding:7px 9px;border:1px solid #252c38;border-radius:8px;background:#0f1319;font-size:9px;letter-spacing:.14em;color:#697486}
.lottery-preview-status b{color:#a9a3ff;letter-spacing:.18em}
.lottery-preview-bottom{display:flex;align-items:center;gap:10px;margin-top:10px}
.lottery-preview-bottom small{color:#69727e;font-size:9px;line-height:1.5}
.lottery-preview-shell{position:relative}
.lottery-preview-shell:before{content:"LIVE PREVIEW";position:absolute;z-index:2;left:8px;top:7px;padding:4px 7px;border-radius:999px;background:#080b10b8;border:1px solid #ffffff18;color:#9aa5b5;font-size:7px;letter-spacing:.18em;pointer-events:none}
@media(max-width:700px){.lottery-preview-bottom{align-items:stretch;flex-direction:column}.lottery-preview-head-actions{justify-content:flex-start}.lottery-preview-bottom .ghost{width:100%}}


/* v23 bright lottery refresh */
.lottery-mode-card[data-lottery-mode="gacha"]{
  background:linear-gradient(145deg,#fff8fc,#eef8ff 42%,#fdfdff);
  border-color:#b8d5ff;
  color:#203054;
  box-shadow:0 10px 34px rgba(122,168,255,.14), inset 0 1px 0 rgba(255,255,255,.9);
}
.lottery-mode-card[data-lottery-mode="gacha"] b{color:#4e7dff}
.lottery-mode-card[data-lottery-mode="gacha"] small{color:#61708b}
.lottery-mode-card[data-lottery-mode="gacha"].active{
  border-color:#73b6ff;
  box-shadow:0 0 0 1px rgba(115,182,255,.45),0 20px 50px rgba(104,171,255,.18);
}
.lottery-mode-card[data-lottery-mode="gacha"]:before{
  background:conic-gradient(from 40deg,transparent,rgba(255,130,190,.18),transparent,rgba(89,210,255,.16),transparent,rgba(255,225,109,.18),transparent);
}
.gacha-icon{
  border-color:#b7dbff;
  background:radial-gradient(circle at 35% 28%,#ffffff,#e7f5ff 42%,#f9fbff 78%);
  box-shadow:inset 0 0 26px rgba(123,200,255,.3),0 10px 20px rgba(82,140,255,.14);
}
.gacha-icon i{
  width:25px;height:25px;
  background:linear-gradient(145deg,#ffdb7b,#ff8ead);
  box-shadow:-17px 14px 0 #6fe5ff,16px 14px 0 #9c93ff;
}
.lottery-preview-shell{
  background:linear-gradient(180deg,#fbfdff,#eef7ff 85%);
  border-color:#cfdcf0;
}
.lottery-preview-shell:before{
  background:#ffffffd8;
  border-color:#b4c8e3;
  color:#55719a;
}
.lottery-preview-status{
  background:linear-gradient(180deg,#f8fbff,#eef5ff);
  border-color:#d1dced;
  color:#71809a;
}
.lottery-preview-status b{color:#5279ef}


/* v24 lottery card / preview polish */
.lottery-mode-card[data-lottery-mode="gacha"] strong{letter-spacing:.02em}
.lottery-mode-card[data-lottery-mode="gacha"]::after{
  content:"CUTE × LUXURY × ESPORTS";
  position:absolute;right:14px;bottom:12px;font-size:8px;font-weight:900;letter-spacing:.18em;color:#8aa5d0;opacity:.88;z-index:2;
}
.lottery-preview-shell{box-shadow:0 18px 45px rgba(109,145,205,.14), inset 0 1px 0 rgba(255,255,255,.85)}

/* v25 cinematic lottery admin polish */
.field-note{display:block;margin-top:5px;color:var(--muted);font-size:11px;font-weight:700;line-height:1.35}.lottery-settings-grid input:disabled{opacity:.5;cursor:not-allowed}.lottery-mode-card[data-lottery-mode="gacha"].active{box-shadow:0 0 0 1px rgba(225,180,73,.42),0 18px 42px rgba(36,21,4,.16)}

/* v26 gacha selector visual refresh */
.lottery-mode-card[data-lottery-mode="gacha"]{
  background:
    linear-gradient(180deg,rgba(5,10,20,.14) 0%,rgba(8,13,24,.10) 30%,rgba(8,12,19,.62) 68%,rgba(6,9,16,.92) 100%),
    url("assets/gacha-card-bg.jpg") center/cover no-repeat;
  border-color:rgba(237,205,132,.58);
  color:#f9fbff;
  box-shadow:0 16px 42px rgba(18,10,3,.24), inset 0 1px 0 rgba(255,255,255,.18);
}
.lottery-mode-card[data-lottery-mode="gacha"]:hover{border-color:rgba(255,223,149,.82);box-shadow:0 22px 50px rgba(18,10,3,.28), inset 0 1px 0 rgba(255,255,255,.24)}
.lottery-mode-card[data-lottery-mode="gacha"] b,
.lottery-mode-card[data-lottery-mode="gacha"] strong,
.lottery-mode-card[data-lottery-mode="gacha"] small,
.lottery-mode-card[data-lottery-mode="gacha"] .lottery-mode-icon{z-index:2;position:relative}
.lottery-mode-card[data-lottery-mode="gacha"] b{color:#ffd66e;text-shadow:0 1px 6px rgba(0,0,0,.35)}
.lottery-mode-card[data-lottery-mode="gacha"] strong{color:#ffffff;text-shadow:0 2px 8px rgba(0,0,0,.42)}
.lottery-mode-card[data-lottery-mode="gacha"] small{color:#e8edf8;max-width:88%;text-shadow:0 1px 6px rgba(0,0,0,.34)}
.lottery-mode-card[data-lottery-mode="gacha"]::before{opacity:1;background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 34%,rgba(255,211,122,.22) 70%,rgba(255,255,255,0) 100%);inset:0}
.lottery-mode-card[data-lottery-mode="gacha"]::after{content:"GARAGARA DRAW";position:absolute;right:14px;bottom:12px;font-size:8px;font-weight:900;letter-spacing:.18em;color:#ffe8aa;opacity:.96;text-shadow:0 1px 8px rgba(0,0,0,.45);z-index:2}
.lottery-mode-card[data-lottery-mode="gacha"] .gacha-icon{width:84px;height:84px;border-radius:18px;border:1px solid rgba(255,255,255,.46);background:rgba(255,255,255,.08);backdrop-filter:blur(4px);box-shadow:0 10px 24px rgba(0,0,0,.18), inset 0 1px 0 rgba(255,255,255,.22);overflow:hidden;justify-content:flex-start;align-items:flex-start;padding:8px}
.lottery-mode-card[data-lottery-mode="gacha"] .gacha-icon i{display:none}
.lottery-mode-card[data-lottery-mode="gacha"] .gacha-icon::before{content:"";display:block;width:100%;height:100%;border-radius:12px;background:url("assets/gacha-card-bg.jpg") center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(255,255,255,.16)}
.lottery-mode-card[data-lottery-mode="gacha"].active{border-color:rgba(255,214,110,.95);box-shadow:0 0 0 1px rgba(255,214,110,.42),0 24px 52px rgba(33,19,5,.32), inset 0 1px 0 rgba(255,255,255,.22)}


/* v28 tournament finish / cancel controls */
.tournament-stop-btn{background:linear-gradient(135deg,#7f2730,#b23a42)!important;box-shadow:0 8px 24px rgba(178,58,66,.18)}
.tournament-stop-btn:hover{background:linear-gradient(135deg,#93303a,#c74750)!important}
.tournament-end-card{width:min(620px,100%)}
.tournament-end-lead{color:#8f98a4;font-size:12px;margin:6px 0 16px}
.tournament-end-options{display:grid;gap:10px}
.tournament-end-option{width:100%;display:grid;grid-template-columns:46px 1fr;gap:12px;align-items:center;text-align:left;border:1px solid #303741;background:#12171d;color:#f5f7fa;border-radius:11px;padding:14px;cursor:pointer;transition:.18s}
.tournament-end-option:hover{transform:translateY(-1px);border-color:#4c5664;background:#171d24}
.tournament-end-option .end-option-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:20px;font-weight:900}
.tournament-end-option b{display:block;font-size:14px;margin-bottom:4px}
.tournament-end-option small{display:block;color:#8b95a1;font-size:10px;line-height:1.55}
.tournament-end-option.finish .end-option-icon{background:#143126;color:#7ce0aa;border:1px solid #285b43}
.tournament-end-option.cancel{border-color:#553538}
.tournament-end-option.cancel .end-option-icon{background:#381f22;color:#f29a9f;border:1px solid #69363c}
@media(max-width:680px){.tournament-end-option{grid-template-columns:40px 1fr;padding:12px}.tournament-end-option .end-option-icon{width:38px;height:38px}}


/* v30 — Preview viewport is always rendered at true 1920×1080, then scaled down visually. */
.obs-preview-shell,.lottery-preview-shell{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  background:#000;
}
.obs-preview-shell iframe,.lottery-preview-shell iframe{
  position:absolute;
  left:0;
  top:0;
  width:1920px !important;
  height:1080px !important;
  max-width:none !important;
  border:0;
  transform-origin:0 0;
  background:#000;
}


/* v31 — Sidebar navigation remains fully accessible on short viewports. */
.side{
  height:100vh;
  max-height:100vh;
  overflow:hidden;
}
@supports(height:100dvh){
  .side{height:100dvh;max-height:100dvh}
}
.side .brand{flex:0 0 auto}
.side nav{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
  padding-right:5px;
  padding-bottom:8px;
}
.side nav::-webkit-scrollbar{width:6px}
.side nav::-webkit-scrollbar-track{background:transparent}
.side nav::-webkit-scrollbar-thumb{background:#303741;border-radius:999px}
.side nav::-webkit-scrollbar-thumb:hover{background:#454f5d}
.side .save{
  flex:0 0 auto;
  margin-top:10px;
  padding-top:12px;
  border-top:1px solid #242a31;
  background:#101318;
}
@media(max-height:720px){
  .side{padding-top:14px;padding-bottom:12px}
  .brand{padding-bottom:14px}
  .nav{padding-top:10px;padding-bottom:10px}
}


/* v32 — Result screen playback preview works locally without OBS. */
.result-preview-head{align-items:flex-start}
.result-preview-head-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.result-preview-head .muted{margin:5px 0 0;line-height:1.5}
.result-preview-stage{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#050608;border:1px solid #2b323a;border-radius:14px}
.result-preview-stage #resultPreviewWrap{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:0;padding:8px;background:#0f1318;transition:opacity .16s ease}
.result-preview-stage .result-playback-frame{display:block;position:absolute;left:0;top:0;width:1920px!important;height:1080px!important;max-width:none!important;border:0;background:#000;transform-origin:0 0;opacity:0;pointer-events:none;transition:opacity .16s ease}
.result-preview-stage.playing #resultPreviewWrap{opacity:0;visibility:hidden}
.result-preview-stage.playing .result-playback-frame{opacity:1}
.result-preview-loading{position:absolute;inset:0;z-index:4;display:flex;align-items:center;justify-content:center;gap:10px;background:rgba(4,7,12,.72);color:#dce3ee;font-size:10px;font-weight:900;letter-spacing:.16em;opacity:0;visibility:hidden;transition:.15s;pointer-events:none}
.result-preview-loading.show{opacity:1;visibility:visible}
.result-preview-loading span{width:16px;height:16px;border-radius:50%;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;animation:resultPreviewSpin .7s linear infinite}
@keyframes resultPreviewSpin{to{transform:rotate(360deg)}}
@media(max-width:680px){.result-preview-head-actions{justify-content:flex-start;width:100%}.result-preview-head-actions .mini{flex:1 1 auto}}


/* v33 — Entire sidebar scrolls so every menu item stays reachable at any viewport height/zoom. */
.side{
  position:sticky;
  top:0;
  height:100vh;
  max-height:100vh;
  display:block;
  overflow-y:scroll;
  overflow-x:hidden;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  scrollbar-gutter:stable;
  padding-bottom:24px;
}
@supports(height:100dvh){
  .side{height:100dvh;max-height:100dvh}
}
.side nav{
  display:grid;
  gap:6px;
  overflow:visible;
  min-height:auto;
  padding-right:2px;
  padding-bottom:6px;
}
.side .save{
  margin-top:18px;
  position:static;
  background:#101318;
}
.side::-webkit-scrollbar{width:8px}
.side::-webkit-scrollbar-track{background:#0d1014}
.side::-webkit-scrollbar-thumb{background:#3a424d;border-radius:999px;border:2px solid #0d1014}
.side::-webkit-scrollbar-thumb:hover{background:#566170}
@media(max-height:720px){
  .side{padding-top:12px;padding-bottom:18px}
  .side .brand{padding-bottom:12px}
  .side .nav{padding-top:10px;padding-bottom:10px}
}


/* v34 — Compact sidebar: fit every navigation item even on short desktop windows. */
.side{
  padding:14px 11px 12px !important;
  display:flex !important;
  flex-direction:column !important;
  height:100vh !important;
  max-height:100vh !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
@supports(height:100dvh){
  .side{height:100dvh !important;max-height:100dvh !important}
}
.side .brand{
  flex:0 0 auto;
  padding:2px 8px 14px !important;
}
.side .brand b,.side .brand span{font-size:21px !important;line-height:1.05}
.side .brand small{font-size:8px !important;margin-top:4px !important;letter-spacing:1.6px !important}
.side nav{
  flex:0 0 auto !important;
  display:grid !important;
  gap:3px !important;
  overflow:visible !important;
  min-height:auto !important;
  padding:0 2px 2px 0 !important;
}
.side .nav{
  min-height:40px !important;
  padding:8px 11px !important;
  gap:9px !important;
  border-radius:8px !important;
  font-size:14px !important;
  line-height:1.15 !important;
  align-items:center !important;
}
.side .save{
  flex:0 0 auto !important;
  margin-top:8px !important;
  padding:8px !important;
  font-size:10px !important;
  border-top:1px solid #242a31;
}
@media(max-height:760px){
  .side{padding-top:8px !important;padding-bottom:8px !important}
  .side .brand{padding-bottom:8px !important}
  .side .brand b,.side .brand span{font-size:18px !important}
  .side .brand small{font-size:7px !important}
  .side nav{gap:1px !important}
  .side .nav{min-height:34px !important;padding:6px 9px !important;font-size:12px !important}
  .side .save{margin-top:4px !important;padding:6px !important;font-size:9px !important}
}
@media(max-height:620px){
  .side .brand{padding-bottom:5px !important}
  .side .brand small{display:none !important}
  .side .nav{min-height:30px !important;padding:4px 8px !important;font-size:11px !important}
  .side .save{display:none !important}
}


/* v35 — Edge-safe sidebar layout. The nav itself owns scrolling inside a fixed-height flex column. */
html,body{height:100%;min-height:0}
body{overflow:hidden}
.app{height:100vh;min-height:0;overflow:hidden}
.side{
  position:relative !important;
  top:auto !important;
  height:100% !important;
  max-height:none !important;
  min-height:0 !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  padding:10px 10px 8px !important;
}
.side .brand{flex:0 0 auto !important;padding:2px 7px 10px !important}
.side .brand b,.side .brand span{font-size:19px !important}
.side .brand small{font-size:7px !important;margin-top:3px !important}
.side nav{
  flex:1 1 0 !important;
  min-height:0 !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  display:flex !important;
  flex-direction:column !important;
  gap:2px !important;
  padding:0 4px 4px 0 !important;
  scrollbar-width:thin;
  scrollbar-color:#46505d #101318;
}
.side .nav{
  flex:0 0 auto !important;
  min-height:34px !important;
  padding:6px 9px !important;
  font-size:12px !important;
  line-height:1.1 !important;
  gap:8px !important;
}
.side .save{flex:0 0 auto !important;margin-top:5px !important;padding:6px 7px !important;font-size:9px !important}
.side nav::-webkit-scrollbar{width:8px}
.side nav::-webkit-scrollbar-track{background:#101318}
.side nav::-webkit-scrollbar-thumb{background:#46505d;border-radius:999px;border:2px solid #101318}
@media(max-height:700px){
  .side{padding-top:6px !important;padding-bottom:6px !important}
  .side .brand{padding-bottom:6px !important}
  .side .brand b,.side .brand span{font-size:17px !important}
  .side .brand small{display:none !important}
  .side .nav{min-height:30px !important;padding:4px 8px !important;font-size:11px !important}
  .side .save{display:none !important}
}
@media(max-height:560px){
  .side .brand{display:none !important}
  .side .nav{min-height:28px !important;padding:3px 7px !important;font-size:10px !important}
}


/* v36 — Robust independent scrolling for Edge/Chrome.
   Sidebar navigation and main workspace each own their vertical scroll area. */
html,body{
  height:100%;
  min-height:0;
  overflow:hidden !important;
}
body{min-width:0}
.app{
  display:grid !important;
  grid-template-columns:232px minmax(0,1fr) !important;
  width:100% !important;
  height:100vh !important;
  min-height:0 !important;
  overflow:hidden !important;
}
@supports(height:100dvh){
  .app{height:100dvh !important}
}
.side{
  position:relative !important;
  top:auto !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
  display:flex !important;
  flex-direction:column !important;
}
.side .brand{flex:0 0 auto !important}
.side nav{
  flex:1 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  overflow-y:scroll !important;
  overflow-x:hidden !important;
  overscroll-behavior-y:contain;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  scrollbar-gutter:stable;
  padding-bottom:14px !important;
}
.side nav::-webkit-scrollbar{width:9px !important}
.side nav::-webkit-scrollbar-track{background:#0d1014 !important}
.side nav::-webkit-scrollbar-thumb{background:#566170 !important;border-radius:999px !important;border:2px solid #0d1014 !important}
.side .save{flex:0 0 auto !important}
main{
  min-width:0 !important;
  min-height:0 !important;
  height:100% !important;
  max-height:100% !important;
  overflow-y:scroll !important;
  overflow-x:hidden !important;
  overscroll-behavior-y:auto;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  scrollbar-gutter:stable;
}
main::-webkit-scrollbar{width:10px}
main::-webkit-scrollbar-track{background:#0b0d10}
main::-webkit-scrollbar-thumb{background:#38414c;border-radius:999px;border:2px solid #0b0d10}
@media(max-width:760px){
  .app{grid-template-columns:190px minmax(0,1fr) !important}
}

/* v42 result editor */
.result-design-section{margin-top:16px;padding-top:16px;border-top:1px solid #2a313a}.result-design-section-head{margin-bottom:10px}.result-design-section-head b{display:block;font-size:13px;color:#edf2f8}.result-design-section-head small{display:block;margin-top:3px;font-size:10px;color:#7f8995}.result-bg-controls,.result-template-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:10px}.result-bg-controls label,.result-template-controls label{display:block;color:#9099a4;font-size:10px}.result-bg-controls select,.result-template-controls input[type=color]{width:100%;margin-top:5px;background:#171b20;border:1px solid #303741;color:#fff;padding:9px;border-radius:7px}.result-bg-controls input[type=range],.result-template-controls input[type=range]{width:100%;margin-top:7px;accent-color:#7c69ff}.result-bg-controls label b,.result-template-controls label b{float:right;color:#dce3ec}.result-template-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.result-template-card{min-width:0;text-align:left;padding:9px;border:1px solid #303741;border-radius:10px;background:#12171d;color:#f2f5f8;cursor:pointer;transition:.18s}.result-template-card.active{border-color:#8b79ff;box-shadow:0 0 0 1px #8b79ff44}.result-template-card>b{display:block;margin-top:7px;font-size:10px}.result-template-card>small{display:block;margin-top:3px;color:#7f8995;font-size:8px}.result-template-thumb{display:grid;gap:3px;width:100%;height:52px;padding:7px;border-radius:7px;overflow:hidden}.result-template-thumb span{display:block;border-radius:3px}.template-standard{background:linear-gradient(145deg,#182648,#0e1730)}.template-standard span{background:#f5f7fb;border-left:7px solid #1f3b78}.template-esports{background:#0b1420}.template-esports span{background:linear-gradient(90deg,#152236 0 75%,#7b6cff 75%);clip-path:polygon(0 0,96% 0,100% 50%,96% 100%,0 100%)}.template-premium{background:#17130b}.template-premium span{background:linear-gradient(90deg,#171511 0 78%,#d6a940 78%);border:1px solid #6e5922}.template-light{background:#eef2f6}.template-light span{background:#fff;border:1px solid #c9d2df;border-left:7px solid #394b69}.template-minimal{background:#0e141c}.template-minimal span{background:#ffffff12;border:1px solid #ffffff1f}.result-switch{display:flex!important;align-items:center;gap:8px;padding-top:16px}.result-switch input{width:16px;height:16px}.result-design-actions{justify-content:flex-end;margin-top:14px}@media(max-width:1100px){.result-template-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.result-template-grid{grid-template-columns:1fr 1fr}.result-bg-controls,.result-template-controls{grid-template-columns:1fr}}

.result-preview-card{--result-accent:#ef233c;--result-frame-alpha:.92;--result-bg-brightness:.82;--result-bg-blur:0px;--result-bg-overlay:.2;--result-bg-fit:cover;--result-bg-position:center;background:#0d1422!important;border-color:transparent!important}.result-preview-bg{opacity:1!important;filter:brightness(var(--result-bg-brightness)) blur(var(--result-bg-blur))!important;transform:scale(1.035)!important;background-size:var(--result-bg-fit)!important;background-position:var(--result-bg-position)!important;background-repeat:no-repeat!important;background-color:#0f1727;background-image:linear-gradient(135deg,#10192a,#1b2942 55%,#0d1421)}.result-bg-overlay{position:absolute;inset:0;z-index:0;background:rgba(3,7,14,var(--result-bg-overlay));pointer-events:none}.result-preview-inner{z-index:2!important}.result-cloud{z-index:1;border-color:var(--result-accent)!important;opacity:.18!important}.result-title-ribbon:before,.result-title-ribbon:after{background:var(--result-accent)!important}.result-template-standard .result-header-row{background:#173070f7}.result-template-standard .result-row{background:rgba(255,255,255,var(--result-frame-alpha));border-color:#cad6ec}.result-template-standard .result-rank{background:#173070f7}.result-template-standard .result-total{background:var(--result-accent)}.result-template-esports .result-header-row{background:#07101df5;border:1px solid #53627b;color:#f7fbff;border-radius:3px}.result-template-esports .result-row{background:rgba(12,22,36,var(--result-frame-alpha));border:1px solid #687e9a6b;border-radius:3px;clip-path:polygon(0 0,98.5% 0,100% 24%,100% 100%,1.5% 100%,0 76%)}.result-template-esports .result-rank{background:#152942;color:#fff;border-right:2px solid var(--result-accent)}.result-template-esports .result-team-name,.result-template-esports .result-num{color:#f2f6fb}.result-template-esports .result-logo,.result-template-esports .result-avatar{background:#101c2b;border-color:#586f8c;color:#e7eef8}.result-template-esports .result-total{background:var(--result-accent);color:#fff}.result-template-esports .result-suben,.result-template-esports .result-subja,.result-template-esports .result-footer-note{color:#e5ebf4}.result-template-premium .result-header-row{background:#14110cf5;border:1px solid #d6a9409e;color:#f6e8bd}.result-template-premium .result-row{background:rgba(20,18,15,var(--result-frame-alpha));border:1px solid #c89f4266}.result-template-premium .result-rank{background:linear-gradient(135deg,#201a10,#5f4819);color:#ffe7a2}.result-template-premium .result-team-name,.result-template-premium .result-num{color:#f7f0df}.result-template-premium .result-logo,.result-template-premium .result-avatar{background:#241f16;border-color:#a47c2d;color:#efd995}.result-template-premium .result-total{background:var(--result-accent);color:#fff8e5}.result-template-premium .result-suben,.result-template-premium .result-subja,.result-template-premium .result-footer-note{color:#f0dfb6}.result-template-light .result-header-row{background:#f2f6faf5;border:1px solid #b1c0d1;color:#243247}.result-template-light .result-row{background:rgba(255,255,255,var(--result-frame-alpha));border:1px solid #becad8}.result-template-light .result-rank{background:#e7edf4;color:#1d2a3d;border-right:3px solid var(--result-accent)}.result-template-light .result-team-name,.result-template-light .result-num{color:#1d2a3d}.result-template-light .result-total{background:var(--result-accent)}.result-template-light .result-suben,.result-template-light .result-subja,.result-template-light .result-footer-note{color:#f1f5fb;text-shadow:0 1px 4px #0008}.result-template-minimal .result-header-row{background:#060c1485;border:1px solid #ffffff1f;color:#ecf2f8}.result-template-minimal .result-row{background:rgba(10,17,26,var(--result-frame-alpha));border:1px solid #ffffff1f;border-radius:5px}.result-template-minimal .result-rank{background:#ffffff12;border-right:2px solid var(--result-accent);color:#fff}.result-template-minimal .result-team-name,.result-template-minimal .result-num{color:#f4f7fb}.result-template-minimal .result-logo,.result-template-minimal .result-avatar{background:#ffffff0f;border-color:#ffffff33;color:#fff}.result-template-minimal .result-total{background:var(--result-accent);color:#fff}.result-template-minimal .result-suben,.result-template-minimal .result-subja,.result-template-minimal .result-footer-note{color:#f1f5fb;text-shadow:0 1px 4px #0008}.result-top3-on .result-row[data-rank="1"]{box-shadow:inset 0 0 0 1px #ffd35685,0 0 14px #ffc83e1a}.result-top3-on .result-row[data-rank="2"]{box-shadow:inset 0 0 0 1px #dae3ee57}.result-top3-on .result-row[data-rank="3"]{box-shadow:inset 0 0 0 1px #cb8b535c}


/* v43 — operator-first command center & safer match input */
.command-hero{display:flex;align-items:stretch;justify-content:space-between;gap:18px;margin-bottom:14px;padding:22px 24px;border:1px solid #303741;border-radius:14px;background:linear-gradient(135deg,#161b22,#101419 70%);position:relative;overflow:hidden}
.command-hero:after{content:"";position:absolute;right:-80px;top:-110px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(231,72,72,.14),transparent 67%);pointer-events:none}
.command-hero-main{min-width:0}.command-state-line{display:flex;align-items:center;gap:8px;color:#89929e;font-size:9px;font-weight:900;letter-spacing:.16em}.command-state-dot{width:8px;height:8px;border-radius:50%;background:#626b76;box-shadow:0 0 0 4px rgba(98,107,118,.08)}.command-state-dot.live{background:#ef5555;box-shadow:0 0 0 4px rgba(239,85,85,.12),0 0 18px rgba(239,85,85,.32)}.command-hero h2{font-size:28px;margin:7px 0 5px}.command-hero p{margin:0;color:#89929d;font-size:12px;line-height:1.6}.command-hero-action{display:flex;flex-direction:column;justify-content:center;align-items:flex-end;min-width:290px;position:relative;z-index:1}.command-next-label{font-size:8px;letter-spacing:.18em;color:#747f8c;margin-bottom:7px;font-weight:900}.command-hero .big-action{min-width:280px}
.command-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}.command-metrics article{padding:15px 16px;border:1px solid #292f37;border-radius:11px;background:#13181e;min-width:0}.command-metrics span,.command-metrics small{display:block;color:#7f8995;font-size:9px;letter-spacing:.06em}.command-metrics strong{display:block;font-size:22px;margin:7px 0 3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.command-metrics .command-obs-value{font-size:15px;margin-top:11px}
.command-flow-panel{margin-bottom:14px}.command-flow{display:grid;grid-template-columns:1fr 22px 1fr 22px 1fr 22px 1fr 22px 1fr;align-items:center;gap:6px}.command-flow>div{padding:12px 10px;border:1px solid #2b323a;border-radius:10px;background:#13181e;min-width:0;transition:.2s}.command-flow>div b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#262d35;color:#89939f;font-size:11px;margin-bottom:8px}.command-flow>div span{display:block;font-size:12px;font-weight:800}.command-flow>div small{display:block;color:#717b87;font-size:9px;margin-top:3px}.command-flow>i{text-align:center;color:#454d57;font-style:normal}.command-flow>div.done{border-color:#285440;background:#12231c}.command-flow>div.done b{background:#286847;color:#baf3d2}.command-flow>div.active{border-color:#8d383d;background:linear-gradient(145deg,#2b171a,#19171a);box-shadow:0 0 0 1px rgba(229,74,83,.12),0 8px 24px rgba(118,34,39,.12)}.command-flow>div.active b{background:#d9484e;color:white}.command-flow>div.active span{color:#fff}.command-flow>div.active small{color:#bf8d91}
.command-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:14px;margin-bottom:14px}.command-alert-count{min-width:30px;height:30px;display:grid;place-items:center;border-radius:9px;background:#25191b;color:#f29b9f;font-weight:900}.command-alerts{display:grid;gap:7px}.command-alert{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) 20px;gap:9px;align-items:center;text-align:left;border:1px solid #2b323a;background:#151a20;color:#eef1f4;padding:10px 11px;border-radius:9px;cursor:pointer}.command-alert:hover{border-color:#46515e;background:#181e25}.command-alert-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#222a33;font-weight:900}.command-alert span b{display:block;font-size:11px}.command-alert span small{display:block;color:#7f8995;font-size:9px;margin-top:3px}.command-alert>i{font-style:normal;color:#687380}.command-alert.danger{border-color:#4d282b}.command-alert.danger .command-alert-icon{background:#351d20;color:#f0999e}.command-alert.warning{border-color:#554323}.command-alert.warning .command-alert-icon{background:#332919;color:#e9c16d}.command-alert.ok{border-color:#254b39}.command-alert.ok .command-alert-icon{background:#173226;color:#7fe0aa}.command-alert.info .command-alert-icon{background:#1b2836;color:#8dbff0}.command-no-alerts{padding:18px;border:1px dashed #2e3944;border-radius:9px;color:#81d6a7;font-size:11px;text-align:center}
.command-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.command-quick-actions button{border:1px solid #2d343d;background:#151a20;color:#eef2f5;padding:13px;border-radius:9px;text-align:left;cursor:pointer}.command-quick-actions button:hover{border-color:#4b5663;background:#192028}.command-quick-actions b{display:block;font-size:11px}.command-quick-actions span{display:block;color:#78828e;font-size:9px;margin-top:4px}.command-substats{margin-top:0}.command-lower-grid{margin-top:14px}.mp-row.current{color:#f1a1a5;border:1px solid #4c2d30;background:#211619}

.match-ops-status{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:14px}.match-ops-status>div{padding:11px 12px;border:1px solid #2b323a;background:#13181e;border-radius:9px}.match-ops-status span{display:block;color:#77818d;font-size:9px}.match-ops-status b{display:block;font-size:15px;margin-top:5px}.match-ops-status b.ok{color:#76d9a0}.match-ops-status b.warn{color:#ee9a9f}.game-head-actions{display:flex;align-items:center;gap:8px}.unlock-game-btn{font-size:10px;padding:7px 9px}.badge.confirmed{background:#173126;color:#7ddaa5;border-color:#275b42}.order-card.locked{opacity:.78;border-color:#293139}.order-card.locked .kill-stepper input,.order-card.locked .team-kill-input{opacity:.7}.team-pick.locked{cursor:not-allowed}.match-validation-inline{display:grid;gap:6px;margin-top:12px}.match-inline-head{display:flex;justify-content:space-between;align-items:center;font-size:10px;color:#8c96a1;margin-bottom:1px}.match-inline-issue,.match-inline-ready,.match-lock-notice,.match-inline-neutral{padding:10px 11px;border-radius:8px;font-size:10px}.match-inline-issue.blocking{background:#351e21;border:1px solid #5a2b30;color:#f0a1a6}.match-inline-issue.warning{background:#312718;border:1px solid #5a4725;color:#ebc36c}.match-inline-ready{background:#153024;border:1px solid #28553e;color:#84ddb0}.match-inline-ready b,.match-lock-notice b{display:block}.match-inline-ready span,.match-lock-notice span{display:block;margin-top:3px;opacity:.78}.match-lock-notice{background:#17241e;border:1px solid #2a4e3d;color:#92ddb5}.match-inline-neutral{background:#151a20;border:1px dashed #303842;color:#7e8894}.match-actions{display:flex;align-items:center;gap:12px}.match-actions .confirm:disabled{opacity:.58;cursor:not-allowed}

@media(max-width:1100px){.command-metrics{grid-template-columns:1fr 1fr}.command-grid{grid-template-columns:1fr}.command-flow{grid-template-columns:1fr}.command-flow>i{transform:rotate(90deg)}.match-ops-status{grid-template-columns:1fr 1fr}}
@media(max-width:700px){.command-hero{flex-direction:column}.command-hero-action{align-items:stretch;min-width:0}.command-hero .big-action{min-width:0;width:100%}.command-metrics{grid-template-columns:1fr 1fr}.command-quick-actions{grid-template-columns:1fr}.match-ops-status{grid-template-columns:1fr 1fr}.game-head-actions{align-items:flex-start;flex-direction:column}}


/* v46 — 運営向け: 試合タイムライン / 確定前チェック / OBS状態 */
.command-obs-main{display:flex;align-items:center;gap:8px;margin-top:7px;min-width:0}
.command-obs-main i{width:9px;height:9px;border-radius:50%;background:#626b76;box-shadow:0 0 0 4px rgba(98,107,118,.10);flex:0 0 auto}
.command-obs-main i.online{background:#45d18a;box-shadow:0 0 0 4px rgba(69,209,138,.12),0 0 14px rgba(69,209,138,.26)}
.command-obs-main i.offline{background:#e0555b;box-shadow:0 0 0 4px rgba(224,85,91,.10)}
.command-obs-card .command-obs-value{font-size:18px!important;margin:0!important}
.command-obs-card small{margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.command-timeline-panel .panel-head{align-items:flex-start}.command-timeline-panel .panel-head p{margin:4px 0 0}
.command-timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.command-timeline .timeline-game{width:100%;border:1px solid #2f3741;background:#171c22;color:#dfe4e9;text-align:left;cursor:pointer;align-items:center;transition:.16s;padding:10px 11px}
.command-timeline .timeline-game:hover{transform:translateY(-1px);border-color:#53606e;background:#1b222a}
.command-timeline .timeline-game span{display:block;min-width:0}.command-timeline .timeline-game span b{display:block;color:#f3f5f7;font-size:11px}.command-timeline .timeline-game span small{display:block;color:#77828e;font-size:9px;margin-top:3px}
.command-timeline .timeline-game strong{font-size:10px;white-space:nowrap}
.command-timeline .timeline-game.confirmed{border-color:#28543f;background:#12251c;color:#7fe0aa}
.command-timeline .timeline-game.ready{border-color:#355d49;background:#15261f;color:#82dda9}
.command-timeline .timeline-game.check{border-color:#64343a;background:#2c191c;color:#f0a0a5}
.command-timeline .timeline-game.warning{border-color:#675128;background:#2d2518;color:#e7c36e}
.command-timeline .timeline-game.input.current{border-color:#8d383d;background:#281719;color:#f2a0a4;box-shadow:0 0 0 1px rgba(229,74,83,.12)}
.command-timeline .timeline-game.waiting{color:#8b949f}

.confirm-check-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:13px 0}
.confirm-check-card{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;padding:10px 11px;border-radius:9px;border:1px solid #303741;background:#151a20}
.confirm-check-card>span{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#242b33;font-weight:900}
.confirm-check-card b{display:block;font-size:11px}.confirm-check-card small{display:block;font-size:9px;margin-top:3px;color:#7f8995}
.confirm-check-card.ok{border-color:#28543e;background:#14231c}.confirm-check-card.ok>span{background:#1c3b2b;color:#83dfaa}
.confirm-check-card.bad{border-color:#633136;background:#2d1a1d}.confirm-check-card.bad>span{background:#422126;color:#f1a0a5}
.confirm-check-card.warn{border-color:#665027;background:#2d2518}.confirm-check-card.warn>span{background:#3b301d;color:#e9c36c}
.confirm-check-card.info{border-color:#2e4864;background:#162230}.confirm-check-card.info>span{background:#1b3147;color:#96c8f4}
.confirm-detail-list{margin-top:10px}.warning-ack{display:flex;align-items:flex-start;gap:9px;margin-top:12px;padding:11px;border:1px solid #5c4826;background:#2c2418;border-radius:8px;color:#e7c77b;font-size:10px;cursor:pointer}.warning-ack input{margin-top:2px}.warning-ack span{line-height:1.5}
#confirmModal .modal-card{max-width:720px}
#confirmModal #doConfirm:disabled{opacity:.45;cursor:not-allowed}

@media(max-width:900px){.command-timeline{grid-template-columns:1fr}.confirm-check-summary{grid-template-columns:1fr}}


/* v47 チーム・選手登録 UX */
.team-manager{margin-bottom:14px}
.team-summary-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}
.team-summary-grid>div{background:#11161c;border:1px solid #29313a;border-radius:9px;padding:11px 12px}
.team-summary-grid span{display:block;color:#7f8995;font-size:9px;letter-spacing:.06em}
.team-summary-grid b{display:block;margin-top:5px;font-size:18px}
.team-manager-toolbar{display:grid;grid-template-columns:minmax(210px,1fr) 210px auto auto;gap:10px;align-items:end;margin-top:12px}
.team-search-field,.team-logo-mode-field{display:grid;gap:5px;color:#89939e;font-size:10px}
.team-search-field input,.team-logo-mode-field select{width:100%;background:#171b20;border:1px solid #303741;color:#fff;padding:10px;border-radius:8px}
.team-incomplete-filter{display:flex;align-items:center;gap:7px;min-height:42px;color:#d9dee5;font-size:11px;white-space:nowrap}
.team-manager-actions{display:flex;gap:7px;justify-content:flex-end;flex-wrap:wrap}
.team-registration-check{margin-top:12px;border-top:1px solid #292f37;padding-top:12px}
.team-check-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}
.team-check-head span{font-size:10px;color:#8d96a1}
.team-check-group{margin-top:10px}
.team-check-group h4{margin:0 0 6px;font-size:11px;color:#aab2bc}
.team-check-row{display:grid;grid-template-columns:minmax(130px,.35fr) 1fr;gap:10px;padding:8px 10px;border-radius:7px;margin-top:5px;font-size:10px}
.team-check-row.error{background:#382224;color:#f0abab}
.team-check-row.warning{background:#352e1b;color:#e8ce87}
.team-check-row b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-check-ok{display:flex;align-items:center;gap:10px;padding:11px 12px;background:#153124;color:#8de0b4;border-radius:8px}
.team-check-ok span{font-size:10px;color:#aadfc3}
.team-check-empty{padding:12px;background:#171b20;border-radius:8px;color:#8d96a1;font-size:11px}
.team-grid{align-items:start}
.team-card{padding:0;overflow:hidden;transition:border-color .18s,background .18s}
.team-card.complete{border-color:#2d5542}
.team-card.has-warning{border-color:#5c4c2a}
.team-card.has-error{border-color:#613338}
.team-card-head{margin:0;padding:12px 13px;background:#151a20}
.team-card-head input{min-width:0}
.team-collapse-btn{width:30px;height:30px;flex:0 0 auto;border:1px solid #303741;background:#101419;color:#c9d0d8;border-radius:7px;cursor:pointer}
.team-card-status{font-size:9px;font-weight:800;padding:5px 8px;border-radius:999px;background:#252c34;color:#aeb7c1;white-space:nowrap}
.team-card.complete .team-card-status{background:#173226;color:#87d8af}
.team-card.has-warning .team-card-status{background:#332b1a;color:#dfc47e}
.team-card.has-error .team-card-status{background:#382124;color:#eda3a7}
.team-card-body{padding:14px 15px 15px}
.team-card.collapsed .team-card-body{display:none}
.team-player-field{display:grid;gap:5px}
.team-player-field span{font-size:9px;color:#7f8995}
.team-logo-choice{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:12px;padding:11px 12px;background:#151a20;border:1px solid #29313a;border-radius:9px}
.team-logo-choice b{display:block;font-size:11px}
.team-logo-choice span{display:block;margin-top:3px;color:#78828d;font-size:9px}
.team-assets{margin-top:12px}
.asset-box h4 small,.member-asset h5 small{font-size:8px;color:#7e8894;font-weight:600;margin-left:5px}
.asset-actions{display:flex;align-items:center;gap:6px;margin-top:8px;flex-wrap:wrap}
.asset-actions .file-btn{margin:0}
.logo-off-box{display:flex;flex-direction:column;justify-content:center;min-height:150px}
.logo-off-label{display:inline-flex;width:max-content;padding:7px 10px;border-radius:999px;background:#252b33;color:#aab2bc;font-size:10px;font-weight:800;margin-top:8px}
.logo-off-box small{display:block;color:#747e89;font-size:9px;line-height:1.5;margin-top:8px}
.team-filter-empty{grid-column:1/-1;padding:40px;text-align:center;color:#7d8792;border:1px dashed #303741;border-radius:10px}
@media(max-width:1200px){.team-summary-grid{grid-template-columns:repeat(3,1fr)}.team-manager-toolbar{grid-template-columns:1fr 200px}.team-manager-actions{justify-content:flex-start}}
@media(max-width:720px){.team-summary-grid{grid-template-columns:1fr 1fr}.team-manager-toolbar{grid-template-columns:1fr}.team-card-head{flex-wrap:wrap}.team-card-head input{order:3;flex:1 0 100%}.team-card-status{margin-left:auto}.team-check-row{grid-template-columns:1fr}.team-assets{grid-template-columns:1fr}.members-assets{grid-template-columns:repeat(3,1fr)}}

/* v48 運営保護：大会開始前チェック / 自動バックアップ / 操作履歴 */
.start-check-card{width:min(720px,calc(100vw - 32px))}
.start-check-lead{margin:0 0 14px;color:#8e98a4;font-size:11px;line-height:1.6}
.start-check-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:14px 0}
.start-check-stat{border:1px solid #303741;background:#151a20;border-radius:9px;padding:11px 12px}
.start-check-stat span{display:block;color:#7d8793;font-size:9px;margin-bottom:5px}
.start-check-stat b{font-size:15px;color:#dce2e9}
.start-check-stat.ok{border-color:#2d5844;background:#14271e}
.start-check-stat.ok b{color:#8fe0b6}
.start-check-stat.warn{border-color:#5e4c29;background:#2c271a}
.start-check-stat.warn b{color:#e6c978}
.start-check-stat.bad{border-color:#65343a;background:#301e21}
.start-check-stat.bad b{color:#eea4aa}
.start-check-details{display:grid;gap:7px;max-height:330px;overflow:auto;padding-right:3px}
.start-check-row{display:grid;grid-template-columns:30px 1fr;gap:9px;align-items:center;border:1px solid #2d343d;background:#151a20;border-radius:8px;padding:9px 10px}
.start-check-row>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;font-weight:900;background:#252c34}
.start-check-row b,.start-check-row small{display:block}
.start-check-row b{font-size:10px}
.start-check-row small{font-size:9px;color:#8c96a1;margin-top:2px;line-height:1.45}
.start-check-row.error{border-color:#603238;background:#2c1c1f}.start-check-row.error>span{background:#4a252a;color:#ffadb5}
.start-check-row.warning{border-color:#554723;background:#292417}.start-check-row.warning>span{background:#44391c;color:#f0d17e}
.start-check-row.ok{border-color:#2c5641;background:#14251d}.start-check-row.ok>span{background:#1f4231;color:#8ee1b6}

.auto-backup-panel,.operation-log-panel{grid-column:span 2}
.auto-backup-list,.operation-log-list{display:grid;gap:7px;max-height:370px;overflow:auto;padding-right:3px}
.auto-backup-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 11px;border:1px solid #2b333c;background:#14191e;border-radius:8px}
.auto-backup-copy{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:4px 8px}
.auto-backup-copy b{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px}
.auto-backup-copy small{grid-column:1/-1;color:#7f8995;font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.auto-backup-kind,.operation-log-type{display:inline-flex;align-items:center;width:max-content;max-width:120px;padding:4px 7px;border-radius:999px;background:#242c35;color:#aeb8c3;font-size:8px;font-weight:800;white-space:nowrap}
.operation-log-item{display:grid;grid-template-columns:90px 1fr;gap:9px;align-items:center;padding:9px 10px;border-bottom:1px solid #272e36}
.operation-log-item:last-child{border-bottom:0}
.operation-log-item b,.operation-log-item small{display:block}
.operation-log-item b{font-size:10px;color:#dce2e8}
.operation-log-item small{font-size:9px;color:#7f8995;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:1000px){.auto-backup-panel,.operation-log-panel{grid-column:1/-1}.start-check-summary{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.start-check-summary{grid-template-columns:1fr 1fr}.auto-backup-item{align-items:flex-start;flex-direction:column}.operation-log-item{grid-template-columns:1fr}.start-check-card{width:calc(100vw - 20px)}}


/* v49 総合順位詳細・大会終了まとめ・過去大会 */
.standings-guide{display:flex;align-items:center;gap:7px;margin:-7px 0 12px;padding:10px 12px;border:1px solid #29313a;background:#11161b;border-radius:9px;color:#7f8994;font-size:10px}
.standings-guide b{color:#d7dde4;font-size:11px}
.standings-table{min-width:980px}
.standings-team-link{border:0;background:none;color:#f4f6f8;font-weight:800;padding:0;cursor:pointer;text-align:left}
.standings-team-link:hover{color:#f06a6a;text-decoration:underline}
.tie-reason{display:inline-flex;padding:5px 7px;border-radius:999px;background:#342d1d;color:#e3c77f;font-size:9px;font-weight:800;white-space:nowrap}
.tie-reason.none{background:#1b2026;color:#68727d;font-weight:600}

.team-detail-modal-card,.tournament-summary-modal-card{width:min(980px,96vw);max-height:92vh;overflow:auto}
.modal-detail-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}
.modal-detail-head h2{font-size:24px;margin-bottom:5px}
.team-detail-stats,.tournament-summary-stats{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin-bottom:14px}
.team-detail-stats>div,.tournament-summary-stats>div{background:#101419;border:1px solid #29313a;border-radius:9px;padding:12px}
.team-detail-stats span,.tournament-summary-stats span{display:block;color:#7e8893;font-size:9px}
.team-detail-stats b,.tournament-summary-stats b{display:block;margin-top:6px;font-size:19px}
.tournament-summary-stats{grid-template-columns:repeat(4,1fr)}
.tournament-summary-stats .summary-winner{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.team-detail-table-wrap{max-height:420px}
.unconfirmed-row{opacity:.55}
.game-state-chip{display:inline-flex;padding:4px 7px;border-radius:999px;font-size:9px;font-weight:800}
.game-state-chip.done{background:#173326;color:#82dab0}
.game-state-chip.pending{background:#392f1b;color:#e6c879}
.game-state-chip.empty{background:#222831;color:#858f9a}

.tournament-summary-top3{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-bottom:11px}
.summary-podium{background:#11161b;border:1px solid #303740;border-radius:10px;padding:13px;min-width:0}
.summary-podium.rank-1{border-color:#78632c}
.summary-podium span{display:block;color:#8e98a3;font-size:9px;font-weight:800}
.summary-podium b{display:block;margin-top:5px;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.summary-podium strong{display:block;margin-top:9px;font-size:20px}
.summary-podium small{display:block;margin-top:5px;color:#7e8792;font-size:9px}
.tournament-summary-kill-leader{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:11px 13px;background:#171d23;border:1px solid #29313a;border-radius:9px;margin-bottom:14px}
.tournament-summary-kill-leader span{color:#818b96;font-size:9px}
.tournament-summary-kill-leader b{font-size:13px}
.tournament-summary-kill-leader small{color:#939ca6;font-size:10px}
.summary-table-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0 8px}
.summary-table-head h3,.tournament-summary-games h3{margin:0;font-size:14px}
.tournament-summary-table-wrap{max-height:330px}
.tournament-summary-games{margin-top:16px}
.summary-game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:8px}
.summary-game-grid>div{display:flex;justify-content:space-between;gap:8px;padding:9px 10px;background:#101419;border:1px solid #282f37;border-radius:7px;font-size:10px}
.summary-game-grid span{color:#7e8792}
.summary-game-grid b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.tournament-archive-panel{grid-column:1/-1}
.archive-count{display:inline-flex;padding:6px 9px;border-radius:999px;background:#1b2128;color:#aab4be;font-size:9px;font-weight:800}
.tournament-archive-list{display:grid;gap:7px}
.tournament-archive-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 12px;background:#101419;border:1px solid #29313a;border-radius:8px}
.archive-main{min-width:0}
.archive-main .archive-date{color:#6f7984;font-size:8px;margin-bottom:4px}
.archive-main b{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.archive-main small{display:block;margin-top:4px;color:#858f99;font-size:9px}
.archive-actions{display:flex;gap:6px;flex:0 0 auto}
.archive-delete{color:#dd8585!important}

@media(max-width:760px){
  .team-detail-stats{grid-template-columns:1fr 1fr}
  .tournament-summary-stats{grid-template-columns:1fr 1fr}
  .tournament-summary-top3{grid-template-columns:1fr}
  .tournament-summary-kill-leader{grid-template-columns:1fr}
  .summary-game-grid{grid-template-columns:1fr 1fr}
  .tournament-archive-item{align-items:flex-start;flex-direction:column}
  .archive-actions{width:100%}
}


/* v50 結果画面：プレビューとOBSを同一レンダラーへ統一 */
.result-target-select{grid-column:span 2}
.result-target-select small{display:block;margin-top:6px;color:#8e98a3;font-size:9px;line-height:1.4}
.result-target-select small.empty{color:#d3a063}
.result-preview-stage.exact-preview{padding:0;background:#050608}
.result-preview-stage.exact-preview .result-playback-frame{opacity:1!important;visibility:visible!important;pointer-events:none;background:#050608}
.result-preview-stage.exact-preview.playing #resultPlaybackFrame{opacity:1!important}
@media(max-width:680px){.result-target-select{grid-column:auto}}


/* v51 OBS接続ガイド */
.obs-guide-panel{overflow:hidden}
.obs-guide-steps{display:grid;gap:8px}
.obs-guide-step{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:10px 11px;background:#101419;border:1px solid #29313a;border-radius:9px}
.obs-guide-num{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#252c34;color:#fff;font-size:12px;font-weight:900}
.obs-guide-step b{display:block;font-size:11px;color:#eef1f4}
.obs-guide-step p{margin:4px 0 0;color:#8a949f;font-size:9px;line-height:1.65}
.obs-guide-step strong{color:#d9dee4}
.obs-guide-ready{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;margin-top:10px;padding:11px 12px;border-radius:9px;border:1px solid #29513e;background:#14291f}
.obs-guide-ready b{color:#86ddb1;font-size:10px;white-space:nowrap}
.obs-guide-ready span{color:#afd7c3;font-size:9px;line-height:1.55}
.obs-trouble{margin-top:10px;border:1px solid #303740;border-radius:9px;background:#12171d;overflow:hidden}
.obs-trouble summary{cursor:pointer;padding:11px 12px;color:#d8dee5;font-size:10px;font-weight:800;list-style:none}
.obs-trouble summary::-webkit-details-marker{display:none}
.obs-trouble summary:after{content:"＋";float:right;color:#8d97a2}
.obs-trouble[open] summary:after{content:"−"}
.obs-trouble-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 10px 10px}
.obs-trouble-grid>div{padding:10px;background:#0d1116;border:1px solid #252c34;border-radius:8px}
.obs-trouble-grid b{display:block;color:#e2e7ec;font-size:10px}
.obs-trouble-grid p{margin:4px 0 0;color:#7f8994;font-size:9px;line-height:1.6}
@media(max-width:760px){
  .obs-trouble-grid{grid-template-columns:1fr}
  .obs-guide-ready{grid-template-columns:1fr}
}


/* v53 実キル / 得点対象キルを分離 */
.current-rule-note{margin:0 0 12px;padding:10px 12px;border:1px solid #36513f;background:#15231b;border-radius:9px;color:#a9cbb5;font-size:10px;line-height:1.6}
.current-rule-note b{color:#83d5a4}
.tournament-rule-preset{white-space:nowrap}
.rule-cap-help{display:block;margin-top:4px;color:#7f8994;font-size:8px;line-height:1.3}
.standings-table{min-width:1120px}
.team-detail-stats{grid-template-columns:repeat(7,1fr)}
.tournament-summary-stats{grid-template-columns:repeat(5,1fr)}
@media(max-width:1100px){
  .team-detail-stats{grid-template-columns:repeat(4,1fr)}
  .tournament-summary-stats{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:760px){
  .team-detail-stats,.tournament-summary-stats{grid-template-columns:1fr 1fr}
}

/* v57 — right-bottom result label removed. */
.result-badge-corner{display:none!important}


/* v59 — Remote OBS mode */
.obs-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 13px}.obs-mode-switch button{display:grid;gap:3px;text-align:left;padding:11px 12px;border:1px solid #303842;border-radius:9px;background:#11161c;color:#eef2f6;cursor:pointer}.obs-mode-switch button b{font-size:11px}.obs-mode-switch button span{font-size:9px;color:#7f8995}.obs-mode-switch button.active{border-color:#617cff;background:#192036;box-shadow:inset 0 0 0 1px #617cff33}.obs-mode-settings[hidden],.obs-remote-guide[hidden]{display:none!important}.remote-obs-intro{display:grid;gap:4px;margin-bottom:11px;padding:10px 12px;border-radius:9px;background:#151d30;border:1px solid #30446c}.remote-obs-intro b{font-size:11px;color:#aabaff}.remote-obs-intro span{font-size:9px;line-height:1.55;color:#9ca9be}.remote-obs-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.remote-status-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:11px}.remote-status-grid>div{padding:10px 11px;border-radius:8px;background:#101419;border:1px solid #29313a}.remote-status-grid span{display:block;color:#75808c;font-size:8px}.remote-status-grid b{display:block;margin-top:5px;font-size:11px;color:#d9dee4}.remote-status-grid b.online{color:#7fd9a9}.obs-remote-guide{border-color:#344367!important}@media(max-width:760px){.obs-mode-switch{grid-template-columns:1fr}.remote-status-grid{grid-template-columns:1fr}.remote-obs-actions>*{flex:1 1 auto}}


/* v66 — elimination-order input, pre-kill sheet, multi-PC sync */
.placement-mode-switch{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.placement-mode-switch .mini.active{background:#ef233c;color:#fff;border-color:#ef233c;box-shadow:0 0 0 2px #ef233c22}
.kill-preentry-panel{margin:14px 0 16px}
.kill-preentry-actions{display:flex;gap:8px}
.kill-pre-grid{overflow:auto;border:1px solid #ffffff12;border-radius:12px}
.kill-pre-head,.kill-pre-row{display:grid;grid-template-columns:minmax(220px,1.8fr) repeat(3,minmax(120px,1fr)) minmax(100px,.7fr);align-items:stretch;min-width:780px}
.kill-pre-head.team-only,.kill-pre-row.team-only{grid-template-columns:minmax(260px,2fr) minmax(180px,1fr);min-width:520px}
.kill-pre-head{position:sticky;top:0;z-index:1;background:#101826;color:#92a4c5;font-size:12px;font-weight:900;letter-spacing:.06em}
.kill-pre-head>div{padding:10px 12px;border-right:1px solid #ffffff0d}
.kill-pre-row{background:#0d1420;border-top:1px solid #ffffff0c}
.kill-pre-row:nth-child(odd){background:#0f1725}
.kill-pre-team{padding:10px 12px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid #ffffff0d}
.kill-pre-team b{font-size:14px}.kill-pre-team small{color:#7f8da7;margin-top:3px}
.kill-pre-row label{margin:0;padding:7px 9px;border-right:1px solid #ffffff0d;display:flex;align-items:center;gap:7px}
.kill-pre-row label span{font-size:10px;color:#8190aa;display:none}
.kill-pre-row input{width:100%;text-align:center;font-size:16px;font-weight:900;padding:10px 8px}
.kill-pre-total{display:flex;align-items:center;justify-content:center;gap:6px}.kill-pre-total b{font-size:22px}.kill-pre-total span{font-size:11px;color:#8290aa}
.shared-sync-panel{grid-column:1/-1}
.sync-state-badge{padding:7px 11px;border-radius:999px;background:#44202a;color:#ff9baa;font-weight:900;font-size:12px}.sync-state-badge.online{background:#123b31;color:#65e8bd}
.shared-sync-status{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0}
.shared-sync-status>div{background:#0c131e;border:1px solid #ffffff10;border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.shared-sync-status span{font-size:11px;color:#7f8da7}.shared-sync-status b{font-size:15px}.shared-sync-status b.online{color:#62e6bb}
.shared-sync-toggle{margin:12px 0}.shared-sync-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.shared-sync-note{margin-top:12px;padding:10px 12px;border-radius:10px;background:#0b121d;color:#8f9db6;font-size:12px}.shared-sync-note code{color:#c9d5e8}
@media(max-width:900px){.shared-sync-status{grid-template-columns:1fr}.placement-mode-switch{order:3;width:100%}}

/* v67 — multi-PC edit locks */
.shared-sync-status{grid-template-columns:repeat(4,1fr)}
.shared-edit-lock-list{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0 12px}
.shared-edit-lock-list span{padding:7px 9px;border:1px solid #ffffff10;background:#101722;border-radius:8px;color:#8e9bb0;font-size:11px}
.shared-edit-lock-list b{color:#ffc56a}
.remote-edit-locked{outline:2px solid #eaa64e!important;outline-offset:1px;cursor:not-allowed!important;background-image:linear-gradient(90deg,rgba(234,166,78,.08),rgba(234,166,78,.02))!important}
@media(max-width:1100px){.shared-sync-status{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.shared-sync-status{grid-template-columns:1fr}}

/* v73 Google Sheets active-game safety */
.sheets-game-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.sheet-active-game-badge{display:inline-flex;align-items:center;min-height:38px;padding:0 12px;border:1px solid rgba(148,163,184,.35);border-radius:10px;background:rgba(15,23,42,.5);color:#cbd5e1;font-size:12px;font-weight:700;white-space:nowrap}
.sheet-active-game-badge.active{border-color:rgba(34,197,94,.55);background:rgba(22,101,52,.2);color:#bbf7d0}
@media(max-width:900px){.sheets-game-actions{justify-content:flex-start}.sheet-active-game-badge{width:100%;justify-content:center}}

/* v77: Match screen manual refresh — unobtrusive next to game selector. */
.match-toolbar-tools{display:flex;align-items:center;justify-content:flex-end;gap:14px;flex-wrap:wrap}
.match-refresh-area{display:flex;align-items:center;gap:9px;min-width:0;flex-wrap:wrap}
.match-refresh-button{background:#13223a!important;border:1px solid #3867a0!important;color:#d7eaff!important;font-size:12px;font-weight:800;min-height:39px;white-space:nowrap;transition:background .15s,border-color .15s}
.match-refresh-button:hover:not(:disabled){background:#1b3355!important;border-color:#67a4e7!important}
.match-refresh-button:disabled{opacity:.6;cursor:progress}
.match-refresh-status{max-width:250px;overflow-wrap:anywhere;color:#8d9fb8;font-size:10px;line-height:1.35}
.match-refresh-status[data-status="success"]{color:#7edab4}
.match-refresh-status[data-status="error"]{color:#ff9b9b}
.match-refresh-status[data-status="loading"]{color:#b4caff}
@media(max-width:1100px){#match>.toolbar{align-items:flex-start;flex-wrap:wrap}.match-toolbar-tools{width:100%;justify-content:space-between}}
@media(max-width:600px){.match-toolbar-tools{align-items:stretch;flex-direction:column}.match-refresh-area{justify-content:space-between}.match-refresh-status{max-width:180px}.match-switch{justify-content:flex-start}}


/* v80: staff manual */
.side nav{overflow-y:auto;min-height:0;padding-right:2px;scrollbar-width:thin;scrollbar-color:#343b45 transparent}
.manual-hero{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:24px;align-items:center;padding:28px 30px;background:linear-gradient(115deg,#192330,#10161c 67%,#15202a);border:1px solid #334353;border-radius:16px}
.manual-hero h2{font-size:30px;letter-spacing:.2px;margin:3px 0 12px;color:#f4f7fc}.manual-hero p{color:#b4c1ce;font-size:13px;line-height:1.9;max-width:700px}.manual-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.manual-tags span{border:1px solid #40576c;border-radius:20px;background:#202d3a;color:#bad7ef;padding:6px 10px;font-size:11px}
.manual-hero-card{display:grid;gap:9px;padding:18px 20px;background:#0f1721;border:1px solid #2e4658;border-radius:12px;font-size:12px;color:#bac8d4}.manual-hero-card b{font-size:13px;color:#fff;padding-bottom:4px}
.manual-toc{display:flex;flex-wrap:wrap;gap:8px;position:sticky;top:0;z-index:3;background:#0b0d10f2;padding:14px 0;margin-bottom:12px;backdrop-filter:blur(7px)}.manual-toc a{font-size:12px;color:#c8d9ec;text-decoration:none;padding:10px 12px;border:1px solid #324152;border-radius:9px;background:#17202a}.manual-toc a:hover{background:#273b4e;color:white}
.manual-section{scroll-margin-top:82px;margin-top:18px;padding:24px;border:1px solid #2c333e;border-radius:14px;background:#11161d}.manual-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:19px}.manual-title>span{font-size:12px;font-weight:900;color:#9ac3e8;background:#1d2f41;border:1px solid #38536e;padding:9px 11px;border-radius:9px}.manual-title h3{font-size:20px;margin:1px 0 6px}.manual-title p{font-size:12px;color:#8997a5;margin:0;line-height:1.8}
.manual-five{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.manual-five article{background:#1b2430;border:1px solid #344256;border-radius:10px;padding:15px}.manual-five span{display:block;font-size:10px;font-weight:800;letter-spacing:1px;color:#82b7e9;margin-bottom:8px}.manual-five b{font-size:15px}.manual-five p{font-size:12px;line-height:1.8;color:#acb7c4;margin:9px 0 0}
.manual-callout{margin-top:17px;padding:15px 17px;border-radius:9px;border:1px solid #3b4960;background:#1a2431;color:#cbd7e4;font-size:12px;line-height:1.9}.manual-callout strong{color:#fff}
.manual-rows{display:grid;gap:10px}.manual-rows article{display:flex;align-items:flex-start;gap:15px;padding:16px 18px;background:#181e27;border:1px solid #2c3745;border-radius:10px}.manual-number{min-width:38px;height:38px;display:grid;place-items:center;background:#263b50;border-radius:9px;color:#a9d6fa;font-size:12px;padding:0 6px;white-space:nowrap}.manual-rows article>div{flex:1;min-width:0}.manual-rows h4{font-size:15px;color:#f5f8fc;margin:0 0 7px}.manual-rows p{font-size:12px;line-height:1.9;color:#b1beca;margin:0}.manual-rows button{display:inline-flex;margin-top:12px;padding:8px 12px;background:#28445c;color:#dcecfb;border:1px solid #3a6382;border-radius:7px;cursor:pointer;font-size:12px}.manual-rows button:hover{background:#376486}.manual-rows code,.manual-faq code{padding:2px 4px;background:#273442;border-radius:4px;color:#d1e9ff;overflow-wrap:anywhere}
.manual-faq{display:grid;gap:8px}.manual-faq details{background:#1a212b;border:1px solid #343f4b;border-radius:9px;padding:14px 17px}.manual-faq summary{cursor:pointer;font-size:14px;font-weight:700;color:#ecf2f9}.manual-faq details p{font-size:12px;color:#bdcbd8;line-height:2;margin:12px 0 0}.manual-footer{text-align:center;color:#788694;font-size:11px;padding:25px}
@media(max-width:1300px){.manual-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.manual-hero{grid-template-columns:1fr}.manual-five{grid-template-columns:repeat(2,minmax(0,1fr))}.manual-hero h2{font-size:24px}}
@media(max-width:580px){.manual-five{grid-template-columns:1fr}.manual-section{padding:16px}.manual-hero{padding:20px}.manual-toc{position:static}}

/* v80: independent text color controls for the result board (not the team table) */
.result-text-color-section .result-design-section-head{align-items:center;gap:14px;flex-wrap:wrap}
.result-text-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px}
.result-text-color-grid label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:#171e2b;border:1px solid #343e50;border-radius:9px;color:#d6deec;font-size:12px;font-weight:700}
.result-text-color-grid input[type=color]{width:57px;min-width:57px;height:38px;padding:3px;border:1px solid #65728c;background:#242d40;border-radius:7px;cursor:pointer}
@media(max-width:800px){.result-text-color-grid{grid-template-columns:1fr}}
