:root{color-scheme:dark;--bg:#131019;--sidebar:#17151e;--panel:#1e1b26;--panel2:#25212e;--line:#34303f;--muted:#a7a3b2;--bright:#f6f5f9;--accent:#fb7f60;--cyan:#fab245;--yellow:#ffb27f;--danger:#f17a92;--font:system-ui,-apple-system,"Malgun Gothic","Noto Sans KR",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--bright);font-family:var(--font);font-size:14px}button,input,select{font:inherit}button{cursor:pointer}input,select{min-width:0;outline:none;color:var(--bright);background:#191721;border:1px solid #413d4d;border-radius:10px;padding:10px 12px;transition:.12s border}input:focus,select:focus{border-color:#fb7f60;box-shadow:0 0 0 3px #fb7f6022}input[type=checkbox]{width:17px;height:17px;accent-color:var(--cyan);box-shadow:none;vertical-align:middle;padding:0}input[type=number]{font-variant-numeric:tabular-nums}button:focus-visible,a:focus-visible{outline:2px solid #fad1c0;outline-offset:3px}a{color:inherit;text-decoration:none}.app-shell{display:flex;min-height:100vh}.sidebar{width:248px;flex:0 0 248px;background:var(--sidebar);border-right:1px solid var(--line);display:flex;flex-direction:column;padding:29px 15px;position:sticky;top:0;height:100vh}.brand{padding:5px 13px 28px}.brand-top{font-size:13px;letter-spacing:.28em;color:#fb7f60;font-weight:800}.brand-title{font-size:26px;letter-spacing:-.05em;font-weight:900;margin-top:5px}.brand-sub{color:var(--muted);font-size:11px;margin-top:8px}.nav-section{font-size:10px;font-weight:750;color:#746e86;letter-spacing:.14em;margin:13px 12px 11px}.nav-item{background:transparent;border:1px solid transparent;display:flex;align-items:center;gap:13px;padding:13px 15px;margin-bottom:5px;border-radius:11px;color:#b1adbd;width:100%;text-align:left;font-weight:700}.nav-item:hover{background:#2b2835}.nav-item.active{background:#363146;color:#edecf2;border-color:#655a84}.nav-icon{font-size:18px;width:24px;display:inline-flex;justify-content:center}.side-bottom{margin-top:auto;padding:14px 12px;border-top:1px solid var(--line)}.side-bottom small{display:block;color:#9b97a8;line-height:1.8}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#44d6af;margin-right:7px;box-shadow:0 0 0 4px #44d6af16}.main{flex:1;min-width:0;padding:31px clamp(18px,3vw,48px) 48px;max-width:1620px;margin:auto}.top{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:26px;flex-wrap:wrap}.eyebrow{font-weight:850;letter-spacing:.15em;font-size:11px;color:#fb7f60}.title{font-size:clamp(27px,2.4vw,35px);line-height:1.3;margin:7px 0 7px;letter-spacing:-.05em}.subtitle{color:var(--muted);margin:0;line-height:1.6}.actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.btn{border:1px solid #474254;background:#2a2733;color:#f2f1f5;padding:10px 15px;border-radius:10px;font-weight:800;white-space:nowrap}.btn:hover{background:#393544}.btn.primary{border-color:#fb7f60;background:#fb7f60;color:white}.btn.primary:hover{background:#fb7f60}.btn.ghost{background:transparent}.btn.danger{color:#ffb3c2;border-color:#754454;background:#2e2b36}.btn.sm{padding:7px 10px;font-size:12px}.btn:disabled{opacity:.5;cursor:not-allowed}.connection{font-size:12px;color:var(--muted);padding:8px 0}.connection .live-dot{width:6px;height:6px;box-shadow:none}.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.card{background:linear-gradient(140deg,#24212d,#1d1a25);border:1px solid #3a3645;border-radius:16px;padding:21px;box-shadow:0 10px 26px #05050824}.stat-label{font-size:12px;font-weight:700;color:var(--muted)}.stat-value{font-size:33px;font-weight:900;letter-spacing:-.055em;margin:12px 0 4px;font-variant-numeric:tabular-nums}.stat-bottom{font-size:11px;color:#888494}.stat-unit{font-size:15px;color:#b8b5c3;margin-left:5px}.hero{border-radius:18px;min-height:154px;background:radial-gradient(circle at 85% 50%,#fb725053,transparent 30%),linear-gradient(105deg,#322d42,#252231 68%);border:1px solid #6a637d;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 32px;margin:0 0 20px}.hero h2{font-size:25px;letter-spacing:-.045em;margin:8px 0}.hero p{margin:0;color:#bfbbca}.hero-tag{font-size:11px;letter-spacing:.14em;color:#f8bfa6;font-weight:850}.hero-goal{text-align:center;min-width:150px}.hero-goal strong{font-size:52px;letter-spacing:-.07em;color:var(--yellow)}.hero-goal span{display:block;color:#bbb7c6;font-size:12px;margin-top:-2px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:28px 0 14px}.section-head h2{font-size:19px;letter-spacing:-.04em;margin:0}.section-head span{color:var(--muted);font-size:12px}.table-wrap{overflow:auto;border-radius:14px;border:1px solid var(--line);background:var(--panel)}table{border-collapse:collapse;width:100%;font-size:13px;white-space:nowrap}th{text-align:left;background:#272430;color:#b8b5c3;font-size:11px;letter-spacing:.02em;font-weight:800;padding:15px 17px;border-bottom:1px solid var(--line)}td{padding:15px 17px;border-bottom:1px solid #33303e}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#312e3c55}.rank{font-size:17px;font-weight:900;color:#bfbcca}.rank.first{color:var(--yellow)}.teamname{font-weight:850;font-size:14px}.muted{color:var(--muted)}.score{font-size:19px;font-weight:900;font-variant-numeric:tabular-nums}.pill{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border-radius:99px;font-size:11px;font-weight:850;border:1px solid #474353;color:#bcb7c9;background:#312d3c}.pill.good{background:#17463f;color:#76e4c4;border-color:#286e5a}.pill.error{background:#36333f;color:#ff9bb1;border-color:#704358}.pill.award{background:#4b3526;color:#ffc082;border-color:#8b5c3c}.two-col{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.team-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.team-tile{padding:19px;border-radius:14px;border:1px solid #3e394a;background:#211e2b;cursor:pointer}.team-tile:hover{border-color:#fb7f60;background:#2e2a39}.team-tile-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}.team-tile strong{font-size:16px}.team-tile-foot{color:var(--muted);font-size:12px;margin-top:9px}.bar{height:6px;border-radius:99px;background:#363241;overflow:hidden;margin-top:13px}.bar>span{height:100%;display:block;background:linear-gradient(90deg,#fb7c5c,#fbb853);border-radius:99px}.form-panel{background:#1e1b26;border:1px solid var(--line);border-radius:15px;padding:24px;margin-bottom:18px}.form-panel h3{margin:0 0 20px;font-size:17px;letter-spacing:-.03em}.field-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.field{display:flex;flex-direction:column;gap:8px;min-width:0}.field label,.label{font-size:12px;font-weight:800;color:#c1becb}.field small{color:var(--muted);font-size:11px}.field input,.field select{width:100%}.field-value{display:flex;align-items:center;gap:8px}.field-value input{flex:1}.team-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 10px;margin-bottom:11px}.tab{color:#aca8b7;background:#24212d;border:1px solid #413d4c;border-radius:10px;font-weight:800;padding:11px 17px;white-space:nowrap}.tab.active{background:#4c455f;color:#ffffff;border-color:#fb7e5f}.entry-player-head{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:15px 0 20px}.player-card{background:#2a2635;border:1px solid #413d4e;border-radius:12px;padding:14px}.player-card b{display:block;font-size:14px;margin-bottom:4px}.player-card span{font-size:11px;color:#ada9b9}.round-card{border:1px solid #403c4c;background:#201e28;border-radius:14px;margin-bottom:12px;padding:14px 16px}.round-card-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px}.round-title{font-weight:900;letter-spacing:-.02em}.round-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.round-person{display:flex;align-items:center;gap:9px;background:#1a1722;border:1px solid #393644;border-radius:10px;padding:10px}.round-person span{font-size:11px;color:#ada9ba;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.round-person input[type=number]{width:56px;min-width:0;padding:7px;text-align:center}.round-person .death{display:flex;align-items:center;gap:3px;font-size:11px;white-space:nowrap;color:#b9b6c3;margin-left:auto}.round-footer{display:flex;gap:12px;justify-content:space-between;align-items:center;margin-top:12px;flex-wrap:wrap}.round-footer .score-preview{font-weight:900;font-size:15px;font-variant-numeric:tabular-nums}.round-footer .score-preview small{color:#a29db0;font-size:11px;font-weight:600;margin-right:6px}.small-hint{color:#a8a4b5;font-size:12px;line-height:1.7}.list-note{color:var(--muted);font-size:12px;margin:14px 0 0;line-height:1.7}.team-settings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.team-config{border:1px solid #413c4d;border-radius:14px;padding:20px;background:#221f2c}.team-config h3{margin:0 0 15px;font-size:16px}.team-config.inactive{opacity:.62}.player-setting-grid{display:grid;grid-template-columns:minmax(0,1fr) 100px;gap:9px;margin-top:10px}.player-setting-grid input,.player-setting-grid select{width:100%}.settings-actions{display:flex;justify-content:space-between;gap:10px;margin-top:14px;align-items:center;flex-wrap:wrap}.callout{color:#cdcad7;font-size:12px;line-height:1.8;border:1px solid #4d4959;background:#2f2c3a;padding:14px 16px;border-radius:12px;margin-bottom:19px}.obs-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.obs-option{border:1px solid #454052;border-radius:14px;padding:22px;background:#24212e}.obs-option h3{font-size:19px;margin:0 0 10px}.obs-option p{color:var(--muted);line-height:1.6;font-size:12px}.obs-preview{aspect-ratio:16/9;background:#16131e;border:1px solid #4b455b;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#9590a3;font-size:12px;margin:14px 0}.utility-row{display:flex;gap:9px;flex-wrap:wrap}.notif{position:fixed;bottom:22px;right:25px;border-radius:12px;padding:12px 18px;color:#e5fff6;background:#1a514a;box-shadow:0 12px 30px #00000066;z-index:100;font-weight:700;max-width:min(420px,90vw)}.notif.bad{background:#653348;color:#f7f7f8}.hidden{display:none!important}.empty{color:#b1adbc;text-align:center;padding:40px 20px}.tag{font-size:11px;font-weight:800;letter-spacing:.1em;color:#9792a5}.obs-body{background:transparent;overflow:hidden}.obs-stage{width:100vw;height:100vh;background:linear-gradient(125deg,#15121c,#211d2e 56%,#1c1926);padding:min(3vw,45px) min(3.5vw,65px);display:flex;flex-direction:column;gap:1.7vh;box-shadow:inset 0 0 0 2px #4f4863}.obs-header{display:flex;justify-content:space-between;align-items:center;border-bottom:2px solid #605976;padding-bottom:2vh;gap:20px}.obs-kicker{letter-spacing:.24em;color:#fb7f60;font-size:clamp(10px,1.2vw,22px);font-weight:900}.obs-title{font-size:clamp(26px,3.5vw,70px);font-weight:950;letter-spacing:-.06em;line-height:1.18;margin-top:.6vh}.obs-goal{font-size:clamp(14px,1.55vw,29px);color:#f3a36d;font-weight:850}.obs-winner{font-size:clamp(13px,1.4vw,26px);color:#fbbb5b;margin-top:.4vh}.obs-table{width:100%;border-spacing:0 7px;border-collapse:separate;table-layout:fixed}.obs-table th{font-size:clamp(10px,1vw,21px);background:transparent;border:0;padding:1vh 1.2vw;color:#a5a0b5}.obs-table td{font-size:clamp(13px,2vw,39px);border:0;background:#282435;padding:1.5vh 1.2vw;font-weight:800;overflow:hidden;text-overflow:ellipsis}.obs-table td:first-child{border-radius:13px 0 0 13px;color:#f29d65}.obs-table td:last-child{border-radius:0 13px 13px 0}.obs-table .large{font-weight:950;color:#f9f9f9}.obs-foot{margin-top:auto;display:flex;justify-content:space-between;color:#8d889e;font-size:clamp(10px,1.1vw,20px);font-weight:800;letter-spacing:.1em}.obs-team-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8vh 1.7vw;flex:1;min-height:0}.obs-mini{background:#292536;border:1px solid #4e485f;border-radius:14px;padding:1.4vh 1.5vw;min-height:0;display:flex;flex-direction:column;justify-content:center}.obs-mini h3{font-size:clamp(13px,1.7vw,35px);margin:0 0 1vh}.obs-mini p{font-size:clamp(10px,1.15vw,23px);color:#cac6d4;margin:.3vh 0}.obs-mini .big{font-size:clamp(20px,3.2vw,60px);font-weight:950;color:#fbc573}.obs-players{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1vh 1.1vw;flex:1;min-height:0}.obs-player{border-radius:14px;background:#2d283c;border:1px solid #554f68;padding:2.4vh 2vw;display:flex;flex-direction:column;justify-content:space-between}.obs-player b{font-size:clamp(15px,2.3vw,44px)}.obs-player small{font-size:clamp(12px,1.2vw,24px);color:#b2adc0}.obs-player strong{font-size:clamp(30px,4.5vw,86px);font-weight:950;color:#fbc26d}.obs-team-score{display:flex;gap:20px;align-items:baseline;font-size:clamp(16px,2.1vw,42px)}.obs-team-score strong{font-size:clamp(40px,5vw,90px);color:#ffc080}@media(max-width:1120px){.sidebar{width:205px;flex-basis:205px}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:1fr}.round-person{flex-wrap:wrap}.round-person .death{margin-left:0}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:780px){.sidebar{width:100%;height:auto;position:static;flex-basis:auto;flex-direction:row;overflow:auto;padding:9px;gap:8px;border-right:0;border-bottom:1px solid var(--line)}.app-shell{display:block}.brand{display:none}.nav-section,.side-bottom{display:none}.nav-item{width:auto;white-space:nowrap;margin:0;padding:10px 12px}.nav-icon{font-size:16px}.main{padding:21px 13px}.hero{padding:19px;gap:12px}.hero h2{font-size:20px}.hero-goal{min-width:75px}.hero-goal strong{font-size:34px}.team-settings,.obs-options{grid-template-columns:1fr}.round-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entry-player-head{grid-template-columns:repeat(2,minmax(0,1fr))}.team-tiles{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr 1fr}}@media(max-width:430px){.grid{gap:8px}.card{padding:15px}.stat-value{font-size:25px}.field-grid{grid-template-columns:1fr}.round-grid{grid-template-columns:1fr}.hero-goal strong{font-size:29px}.actions{width:100%}.actions .btn{flex:1}.stat-label{font-size:11px}}

/* OBS URL copy fallback: the preview host may forbid Clipboard API writes. */
.obs-warning{border-color:#705340;background:#352a22;color:#ffd9b3}
.copy-dialog-layer{position:fixed;inset:0;background:rgba(12,10,18,.82);display:flex;align-items:center;justify-content:center;padding:20px;z-index:999}
.copy-dialog{width:min(560px,100%);background:#25212e;border:1px solid #7b7789;border-radius:16px;box-shadow:0 25px 85px #00000099;padding:25px;max-height:90vh;overflow:auto}
.copy-dialog h3{margin:0 0 12px;font-size:21px}
.copy-dialog p{color:#c6c2d1;font-size:13px;line-height:1.7}
.copy-url-field{width:100%;margin:8px 0 16px;font-size:13px;user-select:text!important;-webkit-user-select:text!important}
.copy-note{color:#f4aa79!important}


/* Combined OBS layout v1.3: ranking and individual team stats on one 16:9 screen. */
.combined-control .combined-control-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:17px}
.combined-control .combined-control-head h3{margin:6px 0 7px;font-size:21px}
.combined-control .combined-control-head p{margin:0;max-width:640px}
.combined-control .combined-control-head .field{width:185px;flex:0 0 185px}
.combined-inline-preview{width:100%;aspect-ratio:16 / 9;max-height:800px;margin-bottom:16px;border-radius:12px;overflow:hidden;box-shadow:0 14px 35px #00000055;border:1px solid #69637c}
.obs-stage-combined{width:100%;height:100%;aspect-ratio:16/9;container-type:inline-size;gap:1.15cqw;padding:2.25cqw 2.6cqw;background:radial-gradient(ellipse at top right,#3c3551 0%,transparent 45%),linear-gradient(120deg,#13111b,#1b1825);box-shadow:inset 0 0 0 2px #555067}
.obs-stage-combined .combined-header{display:flex;align-items:center;justify-content:space-between;min-height:0;gap:2cqw;border-bottom:1px solid #6a637e;padding-bottom:1.05cqw;flex-shrink:0}
.obs-stage-combined .combined-kicker{font-size:1.12cqw;color:#fb7f60;font-weight:850;letter-spacing:.15em}
.obs-stage-combined .combined-title{font-size:3.05cqw;font-weight:950;letter-spacing:-.055em;line-height:1.23;margin:.18cqw 0}
.obs-stage-combined .combined-subtitle{font-size:1.17cqw;color:#fbc574;font-weight:700}
.obs-stage-combined .combined-header-right{text-align:right;min-width:12cqw}
.obs-stage-combined .combined-header-right span{display:block;font-size:1.03cqw;color:#c2bdcf;font-weight:800}
.obs-stage-combined .combined-header-right strong{font-size:3.0cqw;color:#ffc286;font-variant-numeric:tabular-nums;line-height:1.25}
.obs-stage-combined .combined-header-right em{font-style:normal;font-size:1.18cqw;color:#f3a36d}
.obs-stage-combined .combined-panels{display:grid;grid-template-columns:1.08fr .92fr;gap:1.22cqw;flex:1;min-height:0}
.obs-stage-combined .combined-panel{min-width:0;min-height:0;display:flex;flex-direction:column;padding:1.24cqw;border-radius:1.05cqw;border:1px solid #5f5874;background:#282436d9;overflow:hidden}
.obs-stage-combined .combined-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:.8cqw;margin-bottom:.85cqw;flex-shrink:0}
.obs-stage-combined .combined-panel-heading h2{font-size:2.1cqw;line-height:1.25;margin:.2cqw 0 0;font-weight:900;letter-spacing:-.05em}
.obs-stage-combined .combined-label{color:#fb7f60;font-weight:800;font-size:.86cqw;letter-spacing:.12em}
.obs-stage-combined .combined-panel-note,.obs-stage-combined .combined-team-position{border:1px solid #686279;color:#fad5c6;padding:.55cqw .85cqw;border-radius:99px;font-size:1.02cqw;font-weight:800;white-space:nowrap}
.obs-stage-combined .combined-team-position{background:#4c455f;color:#f6c28e}
.obs-stage-combined .combined-ranking-head,.obs-stage-combined .combined-rank-row{display:grid;grid-template-columns:.48fr 1.55fr .9fr 1.0fr;gap:.7cqw;align-items:center;min-width:0}
.obs-stage-combined .combined-ranking-head{font-size:.9cqw;color:#9e98b0;padding:0 .8cqw .6cqw;flex-shrink:0;font-weight:800}
.obs-stage-combined .combined-ranking-list{display:flex;flex:1;min-height:0;flex-direction:column;gap:.5cqw}
.obs-stage-combined .combined-rank-row{flex:1;min-height:0;border-radius:.57cqw;padding:.48cqw .85cqw;background:#353044;box-shadow:inset 0 0 0 1px #433e53}
.obs-stage-combined .combined-rank-row.is-selected{background:#4a445d;box-shadow:inset 0 0 0 2px #fbbe62}
.obs-stage-combined .combined-rank-num{font-size:1.95cqw;color:#f7c18b;font-weight:950;line-height:1}
.obs-stage-combined .combined-rank-name{font-size:1.34cqw;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.obs-stage-combined .combined-rank-name small{display:block;color:#f4ab7b;font-weight:750;font-size:.8cqw}
.obs-stage-combined .combined-rank-name small.warning{color:#ff9dad}
.obs-stage-combined .combined-rank-score{font-size:1.74cqw;font-weight:950;color:#fafafa;font-variant-numeric:tabular-nums;white-space:nowrap}
.obs-stage-combined .combined-rank-score small{font-size:.75cqw;color:#b2adc0;margin-left:.25cqw}
.obs-stage-combined .combined-rank-extra{text-align:right;font-size:1.05cqw;color:#d8d5e2}
.obs-stage-combined .combined-rank-extra b,.obs-stage-combined .combined-rank-extra small{display:block;line-height:1.35}
.obs-stage-combined .combined-rank-extra small{color:#fbbb5a;font-size:.85cqw}
.obs-stage-combined .combined-detail-summary{display:flex;gap:1.4cqw;justify-content:space-between;align-items:center;flex-shrink:0;background:linear-gradient(115deg,#48415b,#353043);border:1px solid #6f6787;border-radius:.75cqw;padding:1.1cqw;margin-bottom:.85cqw}
.obs-stage-combined .combined-detail-summary>div:first-child>span{display:block;font-size:1.02cqw;color:#c5c1d2;font-weight:700}
.obs-stage-combined .combined-detail-summary strong{font-size:3.35cqw;color:#fbc289;font-weight:950;line-height:1.2;font-variant-numeric:tabular-nums}
.obs-stage-combined .combined-detail-summary em{font-size:1.14cqw;color:#c0bec6;font-style:normal}
.obs-stage-combined .combined-detail-totals{display:flex;gap:.8cqw}
.obs-stage-combined .combined-detail-totals b{display:flex;flex-direction:column;align-items:center;font-size:1.6cqw;color:#fcc97d}
.obs-stage-combined .combined-detail-totals small{font-size:.83cqw;color:#d0ccdb}
.obs-stage-combined .combined-player-title{display:grid;grid-template-columns:1.2fr .66fr .75fr;align-items:center;gap:.4cqw;color:#a8a3b7;font-size:.88cqw;padding:0 .7cqw .48cqw;text-align:right;font-weight:750;flex-shrink:0}
.obs-stage-combined .combined-player-title span:first-child{text-align:left}
.obs-stage-combined .combined-player-list{display:flex;flex-direction:column;gap:.55cqw;flex:1;min-height:0}
.obs-stage-combined .combined-player-row{display:grid;grid-template-columns:1.2fr .66fr .75fr;align-items:center;gap:.4cqw;min-height:0;flex:1;padding:.65cqw .7cqw;border-radius:.58cqw;border:1px solid #524c66;background:#363145}
.obs-stage-combined .combined-player-name{display:flex;align-items:center;gap:.62cqw;min-width:0}
.obs-stage-combined .combined-avatar{flex:0 0 2.55cqw;width:2.55cqw;height:2.55cqw;border-radius:.55cqw;display:grid;place-items:center;background:#5a5370;color:#ffffff;font-weight:900;font-size:1.3cqw}
.obs-stage-combined .combined-player-name strong{display:block;font-size:1.31cqw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.obs-stage-combined .combined-player-name small{display:block;font-size:.81cqw;color:#bab6c7;margin-top:.17cqw}
.obs-stage-combined .combined-player-score{text-align:right;font-size:1.9cqw;font-weight:900;color:#f1eff5;font-variant-numeric:tabular-nums;white-space:nowrap}
.obs-stage-combined .combined-player-score small{font-size:.8cqw;color:#a9a5b7;margin-left:.3cqw}
.obs-stage-combined .combined-player-kd{text-align:right;font-variant-numeric:tabular-nums}
.obs-stage-combined .combined-player-kd strong{font-size:1.36cqw;color:#fbc575;white-space:nowrap}
.obs-stage-combined .combined-player-kd strong span{color:#7f7991}
.obs-stage-combined .combined-player-kd small{display:block;color:#a5a0b5;font-size:.68cqw;margin-top:.12cqw;white-space:nowrap}
.obs-stage-combined .combined-team-note{font-size:.83cqw;color:#aba7b9;text-align:right;margin-top:.7cqw;flex-shrink:0}
.obs-stage-combined .combined-footer{display:flex;align-items:center;justify-content:space-between;gap:1cqw;color:#9b95ac;font-size:.85cqw;font-weight:850;letter-spacing:.08em;flex-shrink:0}
.obs-stage-combined .combined-footer span:first-child{color:#fab64f}
@media(max-width:800px){.combined-control .combined-control-head{flex-direction:column;align-items:stretch}.combined-control .combined-control-head .field{width:100%;flex:auto}.combined-control{padding:14px}.combined-inline-preview{border-radius:7px}}

/* Alpha output: scoped to OBS only; checkerboard never appears in output. */
html.obs-transparent-root,body.obs-transparent{background:transparent!important;color-scheme:normal}
.obs-transparent .obs-stage,.transparent-board{background:transparent!important;box-shadow:none!important;border-color:transparent!important}
.obs-transparent .obs-stage,.transparent-board{text-shadow:0 1px 3px #00000088}
.obs-transparent .combined-panel,.transparent-board .combined-panel{background:#282436}

.alpha-preview{background-color:#3e3b48;background-image:conic-gradient(#5d5969 25%,transparent 0 50%,#5d5969 0 75%,transparent 0);background-size:24px 24px}

/* Keep the standalone combined board inside the viewport at a compact default size. */
.obs-body .obs-stage-combined{width:min(var(--combined-width,65vw),var(--combined-height-width,115.5556vh));height:auto;aspect-ratio:16/9;min-height:0;margin:0 auto;flex:none}

/* Legible at a 420–520px broadcast placement; full details remain available. */
.obs-stage-combined.broadcast-compact{padding:1.5cqw;gap:1.2cqw}
.obs-stage-combined.broadcast-compact .combined-header{padding-bottom:1cqw;gap:1cqw}
.obs-stage-combined.broadcast-compact .combined-title{font-size:4cqw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:65cqw;margin:0}
.obs-stage-combined.broadcast-compact .combined-header-right{display:flex;align-items:center;gap:1cqw;min-width:0;white-space:nowrap}
.obs-stage-combined.broadcast-compact .combined-header-right span,.obs-stage-combined.broadcast-compact .combined-header-right em{font-size:2.5cqw}
.obs-stage-combined.broadcast-compact .combined-header-right strong{font-size:4cqw}
.obs-stage-combined.broadcast-compact .combined-subtitle,.obs-stage-combined.broadcast-compact .combined-panel-note,.obs-stage-combined.broadcast-compact .combined-rank-extra,.obs-stage-combined.broadcast-compact .combined-team-note,.obs-stage-combined.broadcast-compact .combined-avatar,.obs-stage-combined.broadcast-compact .combined-player-name small,.obs-stage-combined.broadcast-compact .combined-player-kd small,.obs-stage-combined.broadcast-compact .combined-detail-totals,.obs-stage-combined.broadcast-compact .combined-detail-summary>div>span{display:none}
.obs-stage-combined.broadcast-compact .combined-panels{grid-template-columns:1fr 1.15fr;gap:1.2cqw}
.obs-stage-combined.broadcast-compact .combined-panel{padding:1.2cqw;border-radius:1.2cqw}
.obs-stage-combined.broadcast-compact .combined-panel-heading{margin-bottom:1cqw}
.obs-stage-combined.broadcast-compact .combined-panel-heading h2{font-size:3.4cqw;margin:0;max-width:35cqw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.obs-stage-combined.broadcast-compact .combined-team-position{font-size:2.3cqw;padding:.4cqw .6cqw}
.obs-stage-combined.broadcast-compact .combined-ranking-head,.obs-stage-combined.broadcast-compact .combined-rank-row{grid-template-columns:.38fr 1.2fr .85fr;gap:.7cqw}
.obs-stage-combined.broadcast-compact .combined-ranking-head{font-size:2.4cqw;padding:0 .5cqw .6cqw}
.obs-stage-combined.broadcast-compact .combined-ranking-head>span:last-child{display:none}
.obs-stage-combined.broadcast-compact .combined-rank-row{padding:.6cqw;min-height:0}
.obs-stage-combined.broadcast-compact .combined-rank-num{font-size:3.1cqw}
.obs-stage-combined.broadcast-compact .combined-rank-name{font-size:3.2cqw}
.obs-stage-combined.broadcast-compact .combined-rank-name small{font-size:1.9cqw}
.obs-stage-combined.broadcast-compact .combined-rank-score{font-size:4cqw;text-align:right}
.obs-stage-combined.broadcast-compact .combined-rank-score small,.obs-stage-combined.broadcast-compact .combined-player-score small{display:none}
.obs-stage-combined.broadcast-compact .combined-detail-summary{padding:.6cqw 1cqw;margin-bottom:.8cqw;justify-content:flex-end}
.obs-stage-combined.broadcast-compact .combined-detail-summary strong{font-size:4.5cqw}
.obs-stage-combined.broadcast-compact .combined-detail-summary em{font-size:2.4cqw}
.obs-stage-combined.broadcast-compact .combined-player-title,.obs-stage-combined.broadcast-compact .combined-player-row{grid-template-columns:1.1fr .65fr .8fr;gap:.6cqw}
.obs-stage-combined.broadcast-compact .combined-player-title{font-size:2.2cqw;padding:0 .6cqw .6cqw;white-space:nowrap}
.obs-stage-combined.broadcast-compact .combined-player-row{padding:.6cqw;min-height:0}
.obs-stage-combined.broadcast-compact .combined-player-name{display:block;min-width:0}
.obs-stage-combined.broadcast-compact .combined-player-name strong{font-size:3.1cqw}
.obs-stage-combined.broadcast-compact .combined-player-score{font-size:3.8cqw}
.obs-stage-combined.broadcast-compact .combined-player-kd strong{font-size:2.8cqw}
/* Shared column alignment for headers and values in both board modes. */
.obs-stage-combined .combined-ranking-head,.obs-stage-combined .combined-rank-row{padding-left:.85cqw;padding-right:.85cqw}
.obs-stage-combined .combined-ranking-head>span,.obs-stage-combined .combined-rank-num,.obs-stage-combined .combined-rank-score,.obs-stage-combined .combined-rank-extra{text-align:center}
.obs-stage-combined .combined-ranking-head>span:nth-child(2),.obs-stage-combined .combined-rank-name{text-align:left}
.obs-stage-combined .combined-player-title,.obs-stage-combined .combined-player-row{padding-left:.7cqw;padding-right:.7cqw}
.obs-stage-combined .combined-player-title>span,.obs-stage-combined .combined-player-score,.obs-stage-combined .combined-player-kd{text-align:center}
.obs-stage-combined .combined-player-title>span:first-child{text-align:left}
.obs-stage-combined .combined-panel-heading{min-height:3.3cqw;align-items:center}
.obs-stage-combined .combined-panel-heading h2{line-height:1.25}
.obs-stage-combined .combined-rank-row,.obs-stage-combined .combined-player-row{align-items:center}
.obs-stage-combined .combined-rank-score,.obs-stage-combined .combined-player-score{line-height:1.15}
.obs-stage-combined.broadcast-compact .combined-ranking-head,.obs-stage-combined.broadcast-compact .combined-rank-row{padding-left:.6cqw;padding-right:.6cqw}
.obs-stage-combined.broadcast-compact .combined-player-title,.obs-stage-combined.broadcast-compact .combined-player-row{padding-left:.6cqw;padding-right:.6cqw}
.obs-stage-combined.broadcast-compact .combined-rank-score,.obs-stage-combined.broadcast-compact .combined-player-score,.obs-stage-combined.broadcast-compact .combined-player-kd{text-align:center}
.obs-stage-combined.broadcast-compact .combined-panel-heading{min-height:4.5cqw}
.obs-stage-combined.broadcast-compact .combined-detail-summary{justify-content:center;text-align:center}
.obs-stage-combined.broadcast-compact .combined-detail-summary>div:first-child{display:flex;align-items:center;justify-content:center;gap:1.2cqw;width:100%}
.obs-stage-combined.broadcast-compact .combined-detail-summary>div:first-child>span{display:block;font-size:2.3cqw;line-height:1.2}
.obs-stage-combined.broadcast-compact .combined-detail-summary strong{line-height:1.2}
.obs-table th,.obs-table td{text-align:center;vertical-align:middle}
.obs-table th:nth-child(2),.obs-table td:nth-child(2){text-align:left}
.obs-player>div{text-align:center}


/* ===== 미타킬로그 · 미타스튜디오 테마 (오렌지 → 레드) =====
   위의 기존 규칙은 색만 미타 계열로 옮겼고, 아래 규칙이 대표색 그라데이션과 글꼴을 덮어씁니다. */
:root{--g1:#FFB547;--g2:#FF6A4D;--g3:#E8336E;--grad:linear-gradient(120deg,var(--g1),var(--g2) 55%,var(--g3));
  --bg:#15131c;--sidebar:#18161f;--panel:#1f1c29;--panel2:#272334;--line:#322e40;--muted:#a4a2b6;--bright:#ece9f4;--accent:#FF6A4D;--danger:#ff8a9e;
  --font:'Noto Sans KR',system-ui,-apple-system,'Malgun Gothic','Apple SD Gothic Neo',sans-serif}
body,button,input,select,textarea{font-family:var(--font)}
.sidebar{background:var(--sidebar)}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{flex:none;width:44px;height:44px;border-radius:22%;background:var(--grad);display:grid;place-items:center;box-shadow:0 6px 18px -8px var(--g2)}
.brand-mark svg{width:62%;height:62%}
.brand-title{margin-top:0;font-size:23px;line-height:1.15}
.brand-sub{margin-top:3px}
.nav-item.active{background:var(--panel2);border-color:transparent;color:#fff;box-shadow:inset 3px 0 0 var(--g2)}
.btn.primary,.btn.primary:hover{background:var(--grad);border-color:transparent;color:#fff;box-shadow:0 6px 18px -8px var(--g2)}
.btn.primary:hover{filter:brightness(1.07)}
.eyebrow,.hero-tag{letter-spacing:.04em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.notif{background:var(--panel2);color:var(--bright);border:1px solid transparent;background:linear-gradient(var(--panel2),var(--panel2)) padding-box,var(--grad) border-box}
.notif.bad{background:#4a2433;border-color:#ff8a9e;color:#fff}
.rank.first{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.bar span{background:var(--grad)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--g2)!important;box-shadow:0 0 0 3px #ff6a4d33}

/* 송출 화면 */
.obs-stage-combined{background:radial-gradient(120% 90% at 100% 0%,#e8336e2e,transparent 60%),linear-gradient(160deg,#1b1826,#121018);box-shadow:inset 0 0 0 2px #4a4360}
.obs-stage-combined .combined-panel{background:#ffffff09;border-color:#4a4360}
.obs-stage-combined .combined-header{border-bottom-color:#322e40}
.obs-stage-combined .combined-header-right strong{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.obs-stage-combined .combined-header-right strong em{-webkit-text-fill-color:#d4cfe2;color:#d4cfe2}
.obs-stage-combined .combined-rank-row{background:#272334;box-shadow:none}
.obs-stage-combined .combined-rank-num{color:#d4cfe2}
.obs-stage-combined .combined-rank-row.is-first .combined-rank-num{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.obs-stage-combined .combined-rank-row.is-selected{background:linear-gradient(#2f2a3f,#2f2a3f) padding-box,var(--grad) border-box;border:2px solid transparent;box-shadow:none}
.obs-stage-combined .combined-team-position{background:var(--grad);border-color:transparent;color:#fff}
.obs-stage-combined .combined-detail-summary{background:#2f2a3f;border-color:#4a4360}
.obs-stage-combined .combined-detail-summary strong{color:#fff}
.obs-stage-combined .combined-player-row{background:#272334;box-shadow:none}
.obs-stage-combined .combined-player-kd strong{color:#ece9f4}
.obs-stage-combined .combined-player-kd strong span{color:#8a84a0}
.obs-stage-combined .combined-player-kd .kd-d{font-weight:inherit;color:#ff8a9e}
.obs-stage-combined.broadcast-compact .tier-label{display:none}
.tier-label{font-style:normal}

/* 작은 화면(브라우저 소스를 작게 잡은 경우)에서 줄 높이 때문에 글자가 칸 밖으로 밀리는 문제 */
.obs-stage-combined .combined-rank-row,.obs-stage-combined .combined-player-row{font-size:1cqw;line-height:1.15}
.obs-stage-combined .combined-player-row>div,.obs-stage-combined .combined-player-name>div{line-height:1.15}

/* 관리 화면 정리 */
.top .actions{gap:8px}
.combined-control .combined-control-head h3{margin:0 0 4px}
.obs-option h3{margin-bottom:6px}
.obs-option p{margin:0 0 14px}
.callout b{color:var(--bright)}

.grid+.combined-control{margin-top:18px}

/* 경기 기록: 한 판을 작은 카드로 만들어 여러 판을 나란히 놓음 (가로로 길게 늘어지던 칸 정리) */
.round-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;align-items:start}
.round-list .round-card{margin:0;padding:12px 14px}
.round-list .round-card-head{margin-bottom:8px}
.round-list .round-grid{grid-template-columns:1fr;gap:6px}
.round-list .round-person{display:grid;grid-template-columns:minmax(0,1fr) 60px auto;align-items:center;gap:10px;padding:6px 8px 6px 10px;flex-wrap:nowrap}
.round-list .round-person span{font-size:13px;color:var(--bright);font-weight:600}
.round-list .round-person input[type=number]{width:60px}
.round-list .round-person .death{margin-left:0;font-size:12px}
.round-list .round-footer{margin-top:10px;gap:6px 12px}
.round-list .round-footer .score-preview small{font-size:11px}

/* 휴대폰: 표에서 덜 중요한 칸을 숨겨 옆으로 밀지 않게 */
@media(max-width:700px){
 .t-rank th:nth-child(4),.t-rank td:nth-child(4),.t-rank th:nth-child(5),.t-rank td:nth-child(5),.t-rank th:nth-child(6),.t-rank td:nth-child(6),.t-rank th:nth-child(8),.t-rank td:nth-child(8){display:none}
 .t-players th:nth-child(3),.t-players td:nth-child(3){display:none}
 .t-rank,.t-players{min-width:0!important;width:100%}
 .t-rank td,.t-rank th,.t-players td,.t-players th{padding:10px 6px;font-size:13px}
 .top .actions{width:100%}
 .top .actions .btn{flex:1}
}
.btn.new-round{border-color:#fb7f60;color:#ffc2a8;background:#2f2230}.btn.new-round:hover{background:#3d2a35}
@media(max-width:780px){.sidebar .brand{display:none}.sidebar{align-items:center}}
:root{--k-err:#ffa3b4;--k-sub:#c8c4d2}html[data-theme=light]{--k-err:#c4314f;--k-sub:#5d5870}
/* ==== 새 송출판 (구석 세로판 · 아래 띠 · 가운데 큰 판) ==== */
:root{--k-nb-bg:#17141fe6;--k-nb-card:#221e2c;--k-nb-row:#2a2536;--k-nb-line:#ffffff14;--k-nb-fg:#f6f4fa;--k-nb-mute:#b3adc2;--k-nb-plus:#ffd28a;--k-nb-minus:#ff7d98;--k-nb-on:#ff6a4d;--k-nb-track:#ffffff1a;--k-nb-sh:#00000077;--k-nb-oninv:#ffffff;--k-nb-glass:#ffffff40;--k-nb-glass2:#ffffff33;
 --k-m1a:#ffe08a;--k-m1b:#e2a521;--k-m1t:#5a3a00;--k-m2a:#f1f3f7;--k-m2b:#aeb5c2;--k-m2t:#3a4150;--k-m3a:#f3c39a;--k-m3b:#b9733f;--k-m3t:#4a2508;--k-game1:#6c8aa8;--k-game2:#7a6a52;--k-game3:#3d566d;--k-game4:#22303d;--k-game5:#2b2a24;
 --nb-num:'Barlow Condensed','Noto Sans KR',system-ui,sans-serif}
html[data-theme=light]{--k-nb-bg:#fbfafdf0;--k-nb-card:#ffffff;--k-nb-row:#f2eff6;--k-nb-line:#1b172414;--k-nb-fg:#1b1724;--k-nb-mute:#6b6579;--k-nb-plus:#d9480f;--k-nb-minus:#d6264f;--k-nb-on:#e8336e;--k-nb-track:#1b172414;--k-nb-sh:#00000044}
.nb-stage{position:relative;width:100%;aspect-ratio:16/9;container-type:inline-size;overflow:hidden;font-family:'Noto Sans KR',system-ui,sans-serif;color:var(--k-nb-fg)}
.obs-body .nb-stage{width:100vw;height:100vh;aspect-ratio:auto}
.nb-stage .num{font-family:var(--nb-num);font-variant-numeric:tabular-nums;letter-spacing:0}
.nb{position:absolute;background:var(--k-nb-bg);box-shadow:0 1.2cqw 3cqw var(--k-nb-sh);backdrop-filter:blur(6px);transform:scale(var(--nbs,1))}
.nb .plus{color:var(--k-nb-plus)}.nb .minus{color:var(--k-nb-minus)}
.nb .medal{display:grid;place-items:center;width:1.9cqw;height:1.9cqw;border-radius:50%;font-family:var(--nb-num);font-weight:800;font-size:1.15cqw;color:var(--k-nb-mute)}
.nb .m1{background:linear-gradient(140deg,var(--k-m1a),var(--k-m1b));color:var(--k-m1t)}.nb .m2{background:linear-gradient(140deg,var(--k-m2a),var(--k-m2b));color:var(--k-m2t)}.nb .m3{background:linear-gradient(140deg,var(--k-m3a),var(--k-m3b));color:var(--k-m3t)}
.nb .tr{height:.5cqw;border-radius:9cqw;background:var(--k-nb-track);overflow:hidden}.nb .tr i{display:block;height:100%;background:var(--grad)}
.nb .tn{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.nb .kd{color:var(--k-nb-mute);white-space:nowrap}
/* A 구석 세로판 */
.nb.A{right:1.6cqw;top:1.6cqw;width:27cqw;border-radius:1.2cqw;padding:1.1cqw;display:grid;gap:.8cqw;transform-origin:top right}
.nb.A .head{display:grid;gap:.5cqw;padding:1cqw 1.1cqw;border-radius:.9cqw;background:var(--grad);color:var(--k-nb-oninv)}
.nb.A .head .t{display:flex;justify-content:space-between;align-items:baseline;gap:1cqw;min-width:0}
.nb.A .head b{font-size:1.9cqw;font-weight:900;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb.A .head .score{font-size:3.2cqw;font-weight:800;line-height:.9}.nb.A .head .score small{font-size:1.2cqw;font-family:'Noto Sans KR',sans-serif;font-weight:700;margin-left:.2cqw}
.nb.A .prog{height:.7cqw;border-radius:9cqw;background:var(--k-nb-glass);overflow:hidden}.nb.A .prog i{display:block;height:100%;background:var(--k-nb-oninv);border-radius:inherit}
.nb.A .goal{display:flex;justify-content:space-between;font-size:1.05cqw;font-weight:700}
.nb.A .players{display:grid;gap:.35cqw}
.nb.A .p{display:grid;grid-template-columns:minmax(0,1fr) auto 7.6cqw;align-items:center;gap:.8cqw;padding:.55cqw .9cqw;border-radius:.7cqw;background:var(--k-nb-row)}
.nb.A .p .n{font-size:1.35cqw;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb.A .p .s{font-size:2.1cqw;font-weight:800;text-align:right}.nb.A .p .kd{font-size:1.1cqw;text-align:right}
.nb .stats{display:flex;gap:.5cqw}
.nb .stats span{flex:1;display:flex;justify-content:center;align-items:baseline;gap:.4cqw;font-size:1.05cqw;font-weight:700;color:var(--k-nb-mute);background:var(--k-nb-row);border-radius:.6cqw;padding:.45cqw}
.nb .stats b{font-size:1.6cqw;color:var(--k-nb-fg)}
.nb.A .rank{display:grid;gap:.25cqw;padding-top:.4cqw;border-top:1px solid var(--k-nb-line)}
.nb.A .r{display:grid;grid-template-columns:2cqw minmax(0,1fr) 5.6cqw 3.8cqw;align-items:center;gap:.6cqw;padding:.3cqw .5cqw;border-radius:.6cqw;font-size:1.2cqw;font-weight:700}
.nb.A .r.me,.nb.B .r.me,.nb.C .r.me{box-shadow:inset 0 0 0 .15cqw var(--k-nb-on)}
.nb.A .r.me{background:var(--k-nb-row)}
.nb.A .r .pc{font-size:1.45cqw;font-weight:700;text-align:right}
/* B 아래 띠 */
.nb.B{left:1.6cqw;right:1.6cqw;bottom:1.6cqw;display:grid;grid-template-columns:31cqw minmax(0,1fr);gap:1cqw;border-radius:1.2cqw;padding:1cqw;transform-origin:bottom center}
.nb.B .mine{display:grid;grid-template-rows:auto 1fr;gap:.7cqw;min-width:0}
.nb.B .top{display:flex;align-items:center;gap:1cqw;padding:.8cqw 1cqw;border-radius:.9cqw;background:var(--grad);color:var(--k-nb-oninv);min-width:0}
.nb.B .top b{font-size:1.9cqw;font-weight:900;letter-spacing:-.03em;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb.B .top .score{font-size:3cqw;font-weight:800;line-height:.9}.nb.B .top .score small{font-size:1.1cqw;font-family:'Noto Sans KR',sans-serif;font-weight:700;margin-left:.2cqw}
.nb .pct{font-size:1.1cqw;font-weight:700;background:var(--k-nb-glass2);border-radius:9cqw;padding:.25cqw .7cqw;white-space:nowrap}
.nb.B .ps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5cqw}
.nb.B .p{display:grid;gap:.15cqw;justify-items:center;padding:.6cqw .4cqw;border-radius:.7cqw;background:var(--k-nb-row);text-align:center;min-width:0}
.nb.B .p .n{font-size:1.15cqw;font-weight:700;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb.B .p .s{font-size:2.3cqw;font-weight:800;line-height:1}.nb.B .p .kd{font-size:.95cqw}
.nb.B .rk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:1fr;gap:.5cqw}
.nb.B .r{display:grid;grid-template-columns:2cqw minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:.6cqw;row-gap:.35cqw;align-items:center;padding:.6cqw .8cqw;border-radius:.8cqw;background:var(--k-nb-card);min-width:0}
.nb.B .r .tn{font-size:1.3cqw;font-weight:700}.nb.B .r .pc{font-size:1.7cqw;font-weight:700}.nb.B .r .tr{grid-column:1/-1;height:.45cqw}
/* C 가운데 큰 판 */
.nb.C{left:6cqw;right:6cqw;top:50%;display:grid;grid-template-columns:1.05fr 1fr;grid-template-rows:auto auto;align-items:start;gap:1.2cqw;border-radius:1.6cqw;padding:1.8cqw;transform-origin:center;transform:translateY(-50%) scale(var(--nbs,1))}
.nb.C .hd{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:2cqw;min-width:0}
.nb.C .hd b{font-size:3cqw;font-weight:900;letter-spacing:-.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb.C .hd span{font-size:1.5cqw;font-weight:700;color:var(--k-nb-mute);white-space:nowrap}.nb.C .hd span .num{font-size:2.6cqw;font-weight:800;color:var(--k-nb-plus);margin-left:.4cqw}
.nb.C .col{display:grid;align-content:start;gap:.55cqw;min-width:0}
.nb.C .cap{font-size:1.2cqw;font-weight:700;color:var(--k-nb-mute);padding:0 .4cqw}
.nb.C .r{display:grid;grid-template-columns:3cqw minmax(0,1fr) 9cqw 5.4cqw;align-items:center;gap:1cqw;padding:.75cqw 1cqw;border-radius:.9cqw;background:var(--k-nb-row)}
.nb.C .r .tn{font-size:1.75cqw;font-weight:800}.nb.C .r .pc{font-size:2.1cqw;font-weight:800;text-align:right}.nb.C .r .tr{height:.6cqw}
.nb.C .medal{width:2.7cqw;height:2.7cqw;font-size:1.6cqw}
.nb.C .team{display:flex;align-items:center;gap:1.2cqw;padding:1.2cqw 1.4cqw;border-radius:1cqw;background:var(--grad);color:var(--k-nb-oninv);min-width:0}
.nb.C .team b{flex:1;font-size:2.4cqw;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nb.C .team .score{font-size:4.4cqw;font-weight:800;line-height:.9}.nb.C .team .score small{font-size:1.4cqw;font-family:'Noto Sans KR',sans-serif;font-weight:700}
.nb.C .team .pct{font-size:1.4cqw;padding:.3cqw .9cqw}
.nb.C .p{display:grid;grid-template-columns:minmax(0,1fr) auto 11cqw;align-items:center;gap:1cqw;padding:1cqw 1.3cqw;border-radius:.9cqw;background:var(--k-nb-row)}
.nb.C .p .n{font-size:1.9cqw;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nb.C .p .s{font-size:3cqw;font-weight:800}.nb.C .p .kd{font-size:1.3cqw;text-align:right}
.nb.C .stats span{font-size:1.3cqw;padding:.6cqw}.nb.C .stats b{font-size:2cqw}
/* 관리 화면 미리보기 · 모양 고르기 */
.nb-preview{border-radius:14px;overflow:hidden;border:1px solid var(--line)}
.nb-preview.nb-game .nb-stage{background:radial-gradient(60% 70% at 30% 35%,var(--k-game1),transparent 70%),radial-gradient(50% 60% at 80% 80%,var(--k-game2),transparent 70%),linear-gradient(160deg,var(--k-game3),var(--k-game4) 60%,var(--k-game5))}
.look-pick{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 14px}
.look-opt{display:grid;gap:4px;justify-items:start;text-align:left;padding:12px;border-radius:12px;border:1px solid #474254;background:#211e2b;color:inherit;font:inherit;min-width:0}
.look-opt b{font-size:14px}.look-opt small{font-size:11px;color:var(--muted);line-height:1.5}
.look-opt:hover{border-color:#fb7f60}
.look-opt.on{border-color:#fb7f60;background:#2f2230;box-shadow:0 0 0 2px #fb7f6033}
.look-ico{width:64px;height:36px;border-radius:6px;background:#3a3550;position:relative;margin-bottom:4px}
.look-ico i{position:absolute;background:var(--grad);border-radius:3px}
.look-ico-corner i{right:4px;top:4px;width:18px;height:28px}
.look-ico-band i{left:4px;right:4px;bottom:4px;height:9px}
.look-ico-big i{left:8px;right:8px;top:5px;bottom:5px}
.look-ico-classic i{left:12px;right:12px;top:4px;bottom:4px;opacity:.55}
@media(max-width:780px){.look-pick{grid-template-columns:1fr 1fr}}
/* ==== LIGHT THEME (자동 생성: tools/lighten.py) ==== */
html[data-theme=light]{color-scheme:light;--bg:#f8f7fa;--sidebar:#f3f3f6;--panel:#edecf0;--panel2:#e7e5eb;--line:#d9d7df;--muted:#585464;--bright:#120f19;--accent:#d12e05;--cyan:#d18006;--yellow:#d65500;--danger:#c21437}
html[data-theme=light] input,html[data-theme=light] select{background:#f1f0f4;border:1px solid #cdcbd4}
html[data-theme=light] button:focus-visible,html[data-theme=light] a:focus-visible{outline:2px solid #38241b}
html[data-theme=light] .brand-top{color:#d12e05}
html[data-theme=light] .nav-section{color:#878198}
html[data-theme=light] .nav-item{color:#4d495a}
html[data-theme=light] .nav-item:hover{background:#e1dfe6}
html[data-theme=light] .nav-item.active{background:#d4d2dd;color:#15131c;border-color:#8e84ab}
html[data-theme=light] .side-bottom small{color:#625e70}
html[data-theme=light] .eyebrow{color:#d12e05}
html[data-theme=light] .btn{border:1px solid #c8c5cf;background:#e2e1e7;color:#131118}
html[data-theme=light] .btn:hover{background:#d5d2da}
html[data-theme=light] .btn.danger{color:#3e1e24;border-color:#c194a2;background:#dfdee3}
html[data-theme=light] .card{background:linear-gradient(140deg,#e7e6eb,#eeedf1);border:1px solid #d4d2da;box-shadow:0 10px 26px #0505080b}
html[data-theme=light] .stat-bottom{color:#767283}
html[data-theme=light] .stat-unit{color:#464352}
html[data-theme=light] .hero{background:radial-gradient(circle at 85% 50%,#fb725053,transparent 30%),linear-gradient(105deg,#d8d5e0,#e4e3ea 68%);border:1px solid #918ba3}
html[data-theme=light] .hero p{color:#403c4d}
html[data-theme=light] .hero-tag{color:#4b3024}
html[data-theme=light] .hero-goal span{color:#444051}
html[data-theme=light] th{background:#e5e3e9;color:#464352}
html[data-theme=light] td{border-bottom:1px solid #d9d7df}
html[data-theme=light] tbody tr:hover{background:#dbd9e055}
html[data-theme=light] .rank{color:#3f3c4c}
html[data-theme=light] .pill{border:1px solid #c8c6cf;color:#423d51;background:#dbd9e1}
html[data-theme=light] .pill.good{background:#d7eeea;color:#23b389;border-color:#b6ded3}
html[data-theme=light] .pill.error{background:#d8d6dd;color:#4e252e;border-color:#c299ac}
html[data-theme=light] .pill.award{background:#e4d8d0;color:#d66a00}
html[data-theme=light] .team-tile{border:1px solid #d0ced7;background:#e9e8ee}
html[data-theme=light] .team-tile:hover{background:#dedce4}
html[data-theme=light] .bar{background:#d7d5dd}
html[data-theme=light] .form-panel{background:#edecf0}
html[data-theme=light] .field label,html[data-theme=light] .label{color:#3e3b4a}
html[data-theme=light] .tab{color:#534f5f;background:#e7e6eb;border:1px solid #cecbd4}
html[data-theme=light] .tab.active{background:#c1bdcc;color:#141414}
html[data-theme=light] .player-card{background:#e1dfe7;border:1px solid #cccad3}
html[data-theme=light] .player-card span{color:#514d5e}
html[data-theme=light] .round-card{border:1px solid #ceccd4;background:#ebeaee}
html[data-theme=light] .round-person{background:#f1f0f4;border:1px solid #d4d2da}
html[data-theme=light] .round-person span{color:#504c5e}
html[data-theme=light] .round-person .death{color:#464351}
html[data-theme=light] .round-footer .score-preview small{color:#5b566a}
html[data-theme=light] .small-hint{color:#555163}
html[data-theme=light] .team-config{border:1px solid #cecbd4;background:#e8e7ed}
html[data-theme=light] .callout{color:#322f3e;border:1px solid #c3c0ca;background:#dcdbe2}
html[data-theme=light] .obs-option{border:1px solid #cac7d1;background:#e7e5eb}
html[data-theme=light] .obs-preview{background:#f4f3f7;border:1px solid #c3c0cc;color:#686377}
html[data-theme=light] .notif{color:#0d1c17;background:#ceebe7;box-shadow:0 12px 30px #0000001f}
html[data-theme=light] .notif.bad{background:#d7bbc7;color:#131316}
html[data-theme=light] .empty{color:#4e4a5a}
html[data-theme=light] .tag{color:#666175}
html[data-theme=light] .obs-stage{background:linear-gradient(125deg,#f6f5f8,#e8e6ee 56%,#eeecf2);box-shadow:inset 0 0 0 2px #4f48634c}
html[data-theme=light] .obs-header{border-bottom:2px solid #9892ad}
html[data-theme=light] .obs-kicker{color:#d12e05}
html[data-theme=light] .obs-goal{color:#c65910}
html[data-theme=light] .obs-winner{color:#d18005}
html[data-theme=light] .obs-table th{color:#565168}
html[data-theme=light] .obs-table td{background:#e2e0e8}
html[data-theme=light] .obs-table td:first-child{color:#c65911}
html[data-theme=light] .obs-table .large{color:#141414}
html[data-theme=light] .obs-foot{color:#6d687f}
html[data-theme=light] .obs-mini{background:#e1dfe7;border:1px solid #c0bcc9}
html[data-theme=light] .obs-mini p{color:#363242}
html[data-theme=light] .obs-mini .big{color:#d08006}
html[data-theme=light] .obs-player{background:#dddae4;border:1px solid #a5a0b7}
html[data-theme=light] .obs-player small{color:#4b465b}
html[data-theme=light] .obs-player strong{color:#d07f06}
html[data-theme=light] .obs-team-score strong{color:#d66c00}
html[data-theme=light] .obs-warning{border-color:#c5aa99;background:#e9e4e0;color:#3e2e1e}
html[data-theme=light] .copy-dialog-layer{background:#fcfcfdd1}
html[data-theme=light] .copy-dialog{background:#e7e5eb;border:1px solid #827e8f;box-shadow:0 25px 85px #0000002e}
html[data-theme=light] .copy-dialog p{color:#393546}
html[data-theme=light] .copy-note{color:#c65910!important}
html[data-theme=light] .combined-inline-preview{box-shadow:0 14px 35px #00000019;border:1px solid #918ca3}
html[data-theme=light] .obs-stage-combined{background:radial-gradient(ellipse at top right,#cdc9d9 0%,transparent 45%),linear-gradient(120deg,#f6f6f9,#efedf2)}
html[data-theme=light] .obs-stage-combined .combined-header{border-bottom:1px solid #908aa3}
html[data-theme=light] .obs-stage-combined .combined-kicker{color:#d12e05}
html[data-theme=light] .obs-stage-combined .combined-subtitle{color:#d07f06}
html[data-theme=light] .obs-stage-combined .combined-header-right span{color:#3c364b}
html[data-theme=light] .obs-stage-combined .combined-header-right strong{color:#d66a00}
html[data-theme=light] .obs-stage-combined .combined-header-right em{color:#c65910}
html[data-theme=light] .obs-stage-combined .combined-panel{border:1px solid #9a94ae;background:#e1dfe8d9}
html[data-theme=light] .obs-stage-combined .combined-label{color:#d12e05}
html[data-theme=light] .obs-stage-combined .combined-panel-note,html[data-theme=light] .obs-stage-combined .combined-team-position{border:1px solid #948ea4;color:#342119}
html[data-theme=light] .obs-stage-combined .combined-team-position{background:#c1bdcc;color:#c66b10}
html[data-theme=light] .obs-stage-combined .combined-ranking-head{color:#5c5670}
html[data-theme=light] .obs-stage-combined .combined-rank-row{background:#d6d3de;box-shadow:inset 0 0 0 1px #433e534c}
html[data-theme=light] .obs-stage-combined .combined-rank-row.is-selected{background:#c2becd}
html[data-theme=light] .obs-stage-combined .combined-rank-num{color:#c86b0e}
html[data-theme=light] .obs-stage-combined .combined-rank-name small{color:#c65810}
html[data-theme=light] .obs-stage-combined .combined-rank-name small.warning{color:#4c252b}
html[data-theme=light] .obs-stage-combined .combined-rank-score{color:#141414}
html[data-theme=light] .obs-stage-combined .combined-rank-score small{color:#4b465b}
html[data-theme=light] .obs-stage-combined .combined-rank-extra{color:#272333}
html[data-theme=light] .obs-stage-combined .combined-rank-extra small{color:#d18005}
html[data-theme=light] .obs-stage-combined .combined-detail-summary{background:linear-gradient(115deg,#c4c0cf,#d7d4de);border:1px solid #88819f}
html[data-theme=light] .obs-stage-combined .combined-detail-summary>div:first-child>span{color:#383347}
html[data-theme=light] .obs-stage-combined .combined-detail-summary strong{color:#cf6b07}
html[data-theme=light] .obs-stage-combined .combined-detail-summary em{color:#424049}
html[data-theme=light] .obs-stage-combined .combined-detail-totals b{color:#d17f05}
html[data-theme=light] .obs-stage-combined .combined-detail-totals small{color:#2f2a3c}
html[data-theme=light] .obs-stage-combined .combined-player-title{color:#544f65}
html[data-theme=light] .obs-stage-combined .combined-player-row{border:1px solid #a7a2ba;background:#d5d2dd}
html[data-theme=light] .obs-stage-combined .combined-avatar{background:#9e98b3;color:#141414}
html[data-theme=light] .obs-stage-combined .combined-player-name small{color:#433f52}
html[data-theme=light] .obs-stage-combined .combined-player-score{color:#131019}
html[data-theme=light] .obs-stage-combined .combined-player-score small{color:#534f62}
html[data-theme=light] .obs-stage-combined .combined-player-kd strong{color:#d07f06}
html[data-theme=light] .obs-stage-combined .combined-player-kd strong span{color:#7b758e}
html[data-theme=light] .obs-stage-combined .combined-player-kd small{color:#565168}
html[data-theme=light] .obs-stage-combined .combined-team-note{color:#514d61}
html[data-theme=light] .obs-stage-combined .combined-footer{color:#605a73}
html[data-theme=light] .obs-stage-combined .combined-footer span:first-child{color:#d08006}
html[data-theme=light] .obs-transparent .obs-stage,html[data-theme=light] .transparent-board{text-shadow:0 1px 3px #00000029}
html[data-theme=light] .obs-transparent .combined-panel,html[data-theme=light] .transparent-board .combined-panel{background:#e1dfe8}
html[data-theme=light] .alpha-preview{background-color:#d0cfd6;background-image:conic-gradient(#a29ead 25%,transparent 0 50%,#a29ead 0 75%,transparent 0)}
html[data-theme=light]{--g1:#ffb547;--g2:#ff6a4d;--g3:#e8336e;--bg:#f5f4f7;--sidebar:#f2f2f5;--panel:#ebeaef;--panel2:#e3e1e9;--line:#d8d6e0;--muted:#525066;--bright:#141020;--accent:#d62300;--danger:#d60025}
html[data-theme=light] .nav-item.active{color:#141414}
html[data-theme=light] .btn.primary,html[data-theme=light] .btn.primary:hover{color:#141414}
html[data-theme=light] .notif.bad{background:#e5d1d9;color:#141414}
html[data-theme=light] .obs-stage-combined{background:radial-gradient(120% 90% at 100% 0%,#e8336e2e,transparent 60%),linear-gradient(160deg,#eeedf2,#f8f8fa);box-shadow:inset 0 0 0 2px #4a43604c}
html[data-theme=light] .obs-stage-combined .combined-panel{background:#14141409;border-color:#c0bccd}
html[data-theme=light] .obs-stage-combined .combined-header{border-bottom-color:#d8d6e0}
html[data-theme=light] .obs-stage-combined .combined-header-right strong em{-webkit-text-fill-color:#29233a;color:#29233a}
html[data-theme=light] .obs-stage-combined .combined-rank-row{background:#e3e1e9}
html[data-theme=light] .obs-stage-combined .combined-rank-num{color:#29233a}
html[data-theme=light] .obs-stage-combined .combined-rank-row.is-selected{background:linear-gradient(#dad8e3,#dad8e3) padding-box,var(--grad) border-box}
html[data-theme=light] .obs-stage-combined .combined-team-position{color:#141414}
html[data-theme=light] .obs-stage-combined .combined-detail-summary{background:#dad8e3;border-color:#c0bccd}
html[data-theme=light] .obs-stage-combined .combined-detail-summary strong{color:#141414}
html[data-theme=light] .obs-stage-combined .combined-player-row{background:#e3e1e9}
html[data-theme=light] .obs-stage-combined .combined-player-kd strong{color:#141020}
html[data-theme=light] .obs-stage-combined .combined-player-kd strong span{color:#6c6684}
html[data-theme=light] .obs-stage-combined .combined-player-kd .kd-d{color:#d60025}
html[data-theme=light] .btn.new-round{color:#452c21;background:#eae4ea}
html[data-theme=light] .btn.new-round:hover{background:#e3d9df}
html[data-theme=light] .look-opt{border:1px solid #c8c5cf;background:#e9e8ee}
html[data-theme=light] .look-opt.on{background:#eae4ea}
html[data-theme=light] .look-ico{background:#cdcad9}
