:root{color-scheme:dark;--bg:#0b1220;--bg2:#111a2a;--panel:#172235;--panel2:#1d2a40;--panel3:#22314a;--line:#31435f;--line-soft:#253650;--text:#f5f8ff;--muted:#9fb0c8;--accent:#a98cff;--accent2:#7c5cff;--cyan:#51c8ff;--green:#55dfa8;--red:#ff6f7f;--gold:#f6c85f;--blue:#4fa2ff;--purple:#a98cff;font-family:Inter,system-ui,-apple-system,'Segoe UI','Malgun Gothic',sans-serif;font-size:13px}
*{box-sizing:border-box}html,body,#app{min-height:100%}body{margin:0;background:linear-gradient(145deg,#0a111d 0%,#101928 55%,#0a111a 100%);color:var(--text)}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:linear-gradient(180deg,#23314a,#1a263a);color:var(--text);border-radius:9px;padding:6px 11px;cursor:pointer;line-height:1.15;transition:.14s ease}button:hover:not(:disabled){border-color:#6681a9;transform:translateY(-1px)}button:disabled{opacity:.45}.primary{background:linear-gradient(180deg,#b8a5ff,#8f76ff);border-color:#c8bdff;color:#171227;font-weight:850}input,select,textarea{border:1px solid var(--line);background:#101a2a;color:var(--text);border-radius:8px;padding:5px 8px;outline:none}input:focus,select:focus,textarea:focus{border-color:#8f7cff;box-shadow:0 0 0 2px rgba(143,124,255,.18)}textarea{width:100%;resize:vertical}h1,h2,p{margin-top:0}
.app-shell{min-height:100vh;display:grid;grid-template-columns:280px minmax(0,1fr)}.side-nav{position:sticky;top:0;height:100vh;border-right:1px solid #344965;background:linear-gradient(180deg,#101827 0%,#0d1522 100%);padding:18px 16px;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:12px;padding:2px 4px 18px;border-bottom:1px solid var(--line)}.brand-mark{display:grid;place-items:center;width:48px;height:48px;flex:0 0 48px;font-weight:950;color:#ffd46e;border:1px solid #8c6d2f;background:linear-gradient(180deg,#201b0d,#151107);border-radius:12px;font-size:1.25rem;box-shadow:0 0 22px rgba(246,200,95,.08)}.brand>div{min-width:0}.brand strong,.brand small{display:block}.brand strong{font-size:1rem;line-height:1.35;letter-spacing:-.03em;color:#fff}.brand small{font-size:.98rem;color:#9fc3ff;margin-top:4px;font-weight:750}.boss-nav{display:grid;gap:7px;padding-top:16px}.boss-nav button{width:100%;min-height:44px;background:transparent;color:#c2cde0;text-align:left;padding:10px 14px;border-color:transparent;border-radius:10px;font-weight:760;font-size:1rem}.boss-nav button:hover{background:#18263a;color:#fff}.boss-nav button.active{background:linear-gradient(90deg,#3a2d5a,#2b2545);color:#fff;border-color:#66558f;box-shadow:inset 4px 0 0 #9f83ff}.boss-nav .nav-admin{margin-top:8px;border-top:1px solid var(--line);border-radius:0;padding-top:16px;min-height:58px}.boss-nav .nav-admin span{display:block;border:1px solid #544574;background:#1d1a2f;border-radius:9px;padding:9px 11px;margin:-7px -4px;color:#e4dbff}.side-card{margin-top:auto;background:linear-gradient(180deg,#162337,#121d2d);border:1px solid #314966;border-radius:12px;padding:12px;box-shadow:0 8px 24px rgba(0,0,0,.2)}.side-card-title{font-size:.75rem;font-weight:850;color:#bcaeff;margin-bottom:8px}.side-card>div:not(.side-card-title){display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:5px 0;border-bottom:1px dashed #2c405c}.side-card>div:last-child{border-bottom:0}.side-card span{font-size:.7rem;color:#93a7c0}.side-card strong{font-size:.76rem;color:#f5f8ff;font-variant-numeric:tabular-nums}.side-card small{display:block;color:#8fa3bd;margin-top:4px}
.main-panel{min-width:0;padding:16px 18px 18px}.boss-top{display:grid;grid-template-columns:1fr auto;align-items:end;gap:14px;margin-bottom:9px}.eyebrow{font-size:.72rem;color:#ffd46e;letter-spacing:.06em;margin-bottom:3px;font-weight:850}.boss-top h1{font-size:1.45rem;margin:0;line-height:1.1;letter-spacing:-.03em}.meta-line{display:flex;gap:14px;flex-wrap:wrap;color:#a9b9cf;font-size:.75rem;margin-top:5px}.boss-actions{display:grid;grid-template-columns:minmax(210px,1fr) auto;gap:7px;align-items:center}.boss-actions select{height:34px;font-size:.76rem}.info-line{display:flex;gap:8px;align-items:stretch;margin-bottom:9px}.release-banner,.target-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;border-radius:9px;padding:7px 10px;font-size:.72rem;min-height:34px}.release-banner{background:linear-gradient(180deg,#302717,#251e12);border:1px solid #72572d}.release-banner strong{color:#ffd36a}.release-banner span{color:#dbc89b}.target-summary{flex:1;background:linear-gradient(180deg,#17243a,#142035);border:1px solid #354c6a}.target-summary strong{color:#bfaeff}.target-summary span{color:#d7e1ef}.target-summary.muted{color:var(--muted)}
.raid-table-wrap{overflow:auto;border:1px solid #334964;border-radius:10px;background:#142033;box-shadow:0 10px 30px rgba(0,0,0,.18);max-height:calc(100vh - 155px)}table{width:100%;border-collapse:collapse;white-space:nowrap;table-layout:auto}th,td{padding:6px 9px;border-bottom:1px solid #273a54;text-align:left;font-size:.75rem;height:28px;line-height:1.05}th{position:sticky;top:0;background:#20304a;color:#c7d4e7;font-weight:800;font-size:.68rem;z-index:2;height:30px;box-shadow:0 1px 0 #38506d}tr:last-child td{border-bottom:0}.num{text-align:right;font-variant-numeric:tabular-nums}.muted{color:#93a6bf}.current{background:rgba(93,165,255,.025)}.raid-table tbody tr:hover{background:#1d2d45}.raid-table tr.hit{background:rgba(55,185,132,.055)}.raid-table tr.miss{background:rgba(214,75,92,.06)}.rank-col{width:44px;text-align:center;color:#edf4ff;font-weight:800}.delta-col{width:72px;text-align:center}.rank-delta{font-size:.72rem;font-weight:850}.rank-delta.up{color:var(--blue)}.rank-delta.down{color:var(--red)}.rank-delta.flat{color:#71849c}.member-link{border:0;background:transparent;padding:0;color:#cfc4ff;font-weight:850;font-size:.76rem}.member-link:hover{background:transparent;color:#fff;transform:none}.cohort-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 5px;border-radius:999px;font-size:.58rem;font-weight:800}.cohort-badge.upper{background:#263d5d;color:#8dccff;border:1px solid #3d5d84}.cohort-badge.lower{background:#493126;color:#ffc57b;border:1px solid #6a4734}.target-cell strong{font-weight:820}.target-cell small,.raid-table td:last-child small{display:inline;color:#90a4bd;font-size:.61rem;line-height:1;margin-left:5px}.score-input{width:118px;height:23px;padding:2px 7px;text-align:right;font-variant-numeric:tabular-nums;font-size:.72rem}.score-input.saved{border-color:var(--green);box-shadow:0 0 0 1px var(--green) inset}.positive{color:var(--green);font-weight:780}.negative{color:var(--red);font-weight:780}.result{font-weight:900}.hit-text{color:var(--green)}.miss-text{color:var(--red)}.gap-positive{color:#8fe8bd!important}.gap-negative{color:#ff9aa5!important}.mini-edit{font-size:.58rem;padding:1px 4px;margin-left:4px;color:#a7b7cb;vertical-align:middle}.input-help{font-size:.65rem;color:#9aacc3;margin:6px 2px 0}.avg-divider td{padding:4px 9px!important;height:22px!important;background:linear-gradient(90deg,rgba(246,200,95,.14),rgba(246,200,95,.03));border-top:1px solid #806a3d;border-bottom:1px solid #5d4d2e;color:#f5d77f;font-size:.63rem}.avg-divider span{font-weight:900;margin-right:7px}.avg-divider strong{margin-right:7px}.avg-divider small{color:#bbaa7d}.empty,.fatal{min-height:50vh;display:grid;place-items:center;text-align:center;color:var(--muted)}
dialog{border:1px solid #52698b;border-radius:13px;background:#172235;color:var(--text);padding:20px;max-width:620px;width:calc(100% - 28px);max-height:85vh;overflow:auto;box-shadow:0 30px 80px rgba(0,0,0,.5)}dialog::backdrop{background:#000b}.form-stack{display:grid;gap:11px}.form-stack label{display:grid;gap:5px;color:var(--muted);font-size:.8rem}.check-label{display:flex!important;align-items:center;gap:8px}.actions{display:flex;justify-content:flex-end;gap:7px;margin-top:8px}.modal-error{color:var(--red);min-height:1em}.admin-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px}.audit-list,.history-grid{display:grid;gap:7px}.audit-list>div,.history-grid>div{background:#1b273a;border:1px solid var(--line);padding:8px 10px;border-radius:8px;display:grid;gap:2px}.audit-list span,.audit-list small,.history-grid span{color:var(--muted);font-size:.7rem}.history-grid>div{grid-template-columns:1fr auto;align-items:center}#toast{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);display:none;background:#313d55;border:1px solid #667c9f;border-radius:9px;padding:9px 13px;z-index:30}.members-page .boss-top{margin-bottom:8px}@media(max-width:1200px){.app-shell{grid-template-columns:235px minmax(0,1fr)}.side-nav{padding:14px 11px}.main-panel{padding:12px}.brand strong{font-size:.86rem}.brand small{font-size:.8rem}.score-input{width:105px}th,td{padding-left:6px;padding-right:6px}}

/* v8: fixed 16:9 desktop canvas + denser information rail */
html,body{height:100%;overflow:hidden}body{display:flex;justify-content:center;background:#070b12}#app{width:min(100vw,calc(100vh * 16 / 9));height:100vh;min-height:0;background:linear-gradient(145deg,#0a111d 0%,#101928 55%,#0a111a 100%);box-shadow:0 0 60px rgba(0,0,0,.5)}
.app-shell{height:100vh;min-height:0;grid-template-columns:292px minmax(0,1fr)}
.side-nav{height:100vh;padding:14px 14px 12px;overflow:hidden;background:linear-gradient(180deg,#101a2b 0%,#0c1523 100%)}
.brand{padding:0 2px 14px}.brand-mark{width:52px;height:52px;flex-basis:52px}.brand strong{font-size:1.04rem}.brand small{font-size:1.08rem;margin-top:5px;color:#a9c9ff;font-weight:850}
.boss-nav{gap:5px;padding-top:11px}.boss-nav button{min-height:38px;padding:8px 12px;font-size:.94rem}.boss-nav .nav-admin{margin-top:5px;padding-top:12px;min-height:50px}
.side-context{margin-top:11px;border:1px solid #3b506f;background:linear-gradient(145deg,#17263b,#111d2f);border-radius:12px;padding:10px 11px;box-shadow:0 8px 25px rgba(0,0,0,.2)}
.side-context-boss{color:#ffd36c;font-weight:900;font-size:.76rem;margin-bottom:3px}.side-context>strong{display:block;font-size:.91rem;letter-spacing:-.02em}.side-context-meta{display:flex;justify-content:space-between;gap:8px;margin-top:6px;color:#a8bad2;font-size:.68rem}.side-release{margin-top:8px;padding-top:7px;border-top:1px dashed #40516b;display:grid;grid-template-columns:1fr auto;gap:2px 6px;align-items:center}.side-release b{color:#ffd56f;font-size:.7rem}.side-release span{grid-column:1/2;color:#cbbf9d;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-release button{grid-column:2;grid-row:1/3;padding:3px 6px;font-size:.58rem}
.side-card{margin-top:9px;padding:9px 10px;border-radius:11px}.side-card-title{margin-bottom:6px;font-size:.71rem}.side-card>div:not(.side-card-title){padding:4px 0}.side-card span{font-size:.65rem}.side-card strong{font-size:.71rem}
.highlight-card{margin-top:9px;border:1px solid #3e4c73;border-radius:11px;background:linear-gradient(160deg,#171f35,#121b2a);padding:9px 10px}.highlight-grid{display:grid;gap:5px}.highlight-item{display:grid;grid-template-columns:68px 1fr auto;align-items:center;gap:5px;padding:6px 7px;border-radius:8px;border:1px solid transparent}.highlight-item span{font-size:.58rem;font-weight:900;letter-spacing:.02em}.highlight-item strong{font-size:.68rem;overflow:hidden;text-overflow:ellipsis}.highlight-item em{font-style:normal;font-size:.64rem;font-weight:900}.highlight-item.growth{background:rgba(84,220,168,.09);border-color:rgba(84,220,168,.22)}.highlight-item.growth span,.highlight-item.growth em{color:#62e5ae}.highlight-item.rank{background:rgba(79,162,255,.09);border-color:rgba(79,162,255,.22)}.highlight-item.rank span,.highlight-item.rank em{color:#68b1ff}.highlight-item.target{background:rgba(246,200,95,.09);border-color:rgba(246,200,95,.23)}.highlight-item.target span,.highlight-item.target em{color:#ffd56e}
.main-panel{height:100vh;padding:8px 10px 8px;overflow:hidden}.boss-page{height:100%;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:5px}.table-toolbar{display:flex;justify-content:flex-end;gap:6px;height:30px}.table-toolbar select{height:30px;min-width:205px;padding:3px 7px;font-size:.68rem}.table-toolbar button{height:30px;padding:4px 9px;font-size:.68rem}
.raid-table-wrap{max-height:none;height:100%;overflow:auto;border-radius:9px}.raid-table thead th{top:0}.raid-table tr.group-upper td{background-color:rgba(121,86,170,.045)}.raid-table tr.group-lower td{background-color:rgba(49,154,173,.04)}.raid-table tbody tr:hover td{background-color:#1d2d45!important}.avg-divider td{background:linear-gradient(90deg,rgba(246,200,95,.22),rgba(246,200,95,.05))!important;border-top:2px solid #b18a3e;border-bottom:1px solid #715a32!important}
.input-help{margin:0 2px;font-size:.59rem;line-height:1.1}
@media(min-aspect-ratio:16/9){body:before,body:after{content:"";flex:1 1 auto;background:#05080e}#app{flex:0 0 min(100vw,calc(100vh * 16 / 9))}}
@media(max-height:900px){.app-shell{grid-template-columns:260px minmax(0,1fr)}.side-nav{padding:10px 10px 8px}.brand{padding-bottom:9px}.brand-mark{width:42px;height:42px;flex-basis:42px}.brand strong{font-size:.86rem}.brand small{font-size:.91rem}.boss-nav{padding-top:7px;gap:3px}.boss-nav button{min-height:31px;padding:6px 10px;font-size:.8rem}.boss-nav .nav-admin{min-height:42px;padding-top:9px}.side-context{margin-top:7px;padding:7px 8px}.side-context>strong{font-size:.77rem}.side-context-meta{margin-top:3px}.side-card,.highlight-card{margin-top:6px;padding:7px 8px}.side-card>div:not(.side-card-title){padding:2px 0}.highlight-item{padding:4px 5px}.main-panel{padding:5px 7px}.table-toolbar{height:26px}.table-toolbar select,.table-toolbar button{height:26px}.raid-table-wrap{border-radius:7px}th,td{height:20px;padding:2px 5px;font-size:.64rem;line-height:1}th{height:22px;font-size:.59rem}.member-link{font-size:.65rem}.cohort-badge{font-size:.51rem;padding:1px 4px}.score-input{height:18px;width:104px;font-size:.63rem;padding:1px 5px}.target-cell small,.raid-table td:last-child small{font-size:.53rem}.avg-divider td{height:18px!important;padding:2px 5px!important;font-size:.56rem}.input-help{font-size:.54rem}}
@media(max-width:900px){html,body{overflow:auto}body{display:block}#app{width:100%;height:auto}.app-shell{height:auto;grid-template-columns:1fr}.side-nav{position:relative;height:auto}.main-panel{height:auto}.boss-page{height:auto}.raid-table-wrap{height:auto;max-height:70vh}}

/* v9: tier colors, richer raid table, thin average boundary */
.raid-table{table-layout:fixed}
.raid-table th:nth-child(1){width:44px}.raid-table th:nth-child(2){width:58px}.raid-table th:nth-child(3){width:54px}.raid-table th:nth-child(4){width:128px}
.raid-table th:nth-last-child(1){width:96px}
.tier-col{width:54px;text-align:center}.tier-badge{display:inline-flex;min-width:30px;justify-content:center;align-items:center;border-radius:999px;padding:3px 7px;font-size:.62rem;font-weight:950;letter-spacing:.02em;border:1px solid transparent}
.tier-badge.tier-1{background:rgba(246,108,113,.18);border-color:rgba(246,108,113,.42);color:#ffb5b8}.tier-badge.tier-2{background:rgba(83,190,208,.16);border-color:rgba(83,190,208,.38);color:#9ce7f2}.tier-badge.tier-3{background:rgba(248,202,83,.18);border-color:rgba(248,202,83,.40);color:#ffe29a}.tier-badge.tier-4{background:rgba(175,148,229,.17);border-color:rgba(175,148,229,.38);color:#d8c1ff}
.raid-table tr.tier-row-1 td{background-color:rgba(132,47,61,.075)}.raid-table tr.tier-row-2 td{background-color:rgba(37,113,128,.07)}.raid-table tr.tier-row-3 td{background-color:rgba(145,111,32,.075)}.raid-table tr.tier-row-4 td{background-color:rgba(92,69,130,.075)}
.raid-table tr.tier-row-1 td:first-child{box-shadow:inset 3px 0 0 #e56f78}.raid-table tr.tier-row-2 td:first-child{box-shadow:inset 3px 0 0 #58bccd}.raid-table tr.tier-row-3 td:first-child{box-shadow:inset 3px 0 0 #e5bd54}.raid-table tr.tier-row-4 td:first-child{box-shadow:inset 3px 0 0 #aa8fd9}
.raid-table tr.avg-break td{border-top:1px solid #d3aa4e!important}
.raid-table tbody tr:hover td{filter:brightness(1.13)}
.week-badge{display:inline-flex;align-items:center;justify-content:center;min-width:66px;padding:3px 7px;border-radius:999px;font-size:.59rem;font-weight:900;border:1px solid transparent}.badge-growth{color:#83f1bd;background:rgba(75,216,157,.11);border-color:rgba(75,216,157,.28)}.badge-jump{color:#8cc4ff;background:rgba(79,162,255,.11);border-color:rgba(79,162,255,.28)}.badge-target{color:#ffe087;background:rgba(246,200,95,.11);border-color:rgba(246,200,95,.30)}.badge-miss{color:#ff9da7;background:rgba(255,111,127,.10);border-color:rgba(255,111,127,.27)}.badge-none{color:#5f738d}
.raid-table .positive{color:#66e3b2}.raid-table .negative{color:#ff7e8d}.rank-delta.up{color:#5eb2ff}.rank-delta.down{color:#ff6e7d}
.raid-table-wrap{background:#152239;border-color:#3a526f}.raid-table th{background:linear-gradient(180deg,#263955,#20324b);color:#d9e4f3}.raid-table td{border-bottom-color:#30445f}
.side-card,.highlight-card,.side-context{box-shadow:0 10px 26px rgba(0,0,0,.18)}
.highlight-card .side-card-title{color:#d7c9ff}.highlight-item.growth span:before{content:'● ';font-size:.54rem}.highlight-item.rank span:before{content:'▲ ';font-size:.54rem}.highlight-item.target span:before{content:'◆ ';font-size:.54rem}
@media(min-height:901px){th,td{height:26px;padding:4px 7px;font-size:.7rem}th{height:28px}.member-link{font-size:.71rem}.score-input{height:22px;font-size:.68rem}.main-panel{padding:8px 10px}.table-toolbar{height:30px}}
@media(max-height:900px){th,td{height:22px;padding:2px 4px;font-size:.62rem}th{height:23px}.member-link{font-size:.63rem}.score-input{height:19px;width:96px}.tier-badge,.week-badge{padding:2px 5px;font-size:.52rem}.side-card,.highlight-card{margin-top:5px}.side-context{margin-top:6px}}

/* v10: score-band tiers, clearer weekly model, history cleanup */
.side-info small{display:block;margin-top:2px;color:#6f86a4;font-size:.54rem;font-weight:650}
.tier-legend{margin-top:7px;padding:8px 9px;border:1px solid #334b69;border-radius:10px;background:linear-gradient(160deg,rgba(24,37,57,.94),rgba(16,27,43,.96));display:grid;gap:4px}
.tier-legend>div:not(.side-card-title){display:grid;grid-template-columns:34px 1fr;gap:7px;align-items:center;color:#90a5bf;font-size:.57rem}
.tier-dot{display:inline-flex;align-items:center;justify-content:center;padding:2px 5px;border-radius:999px;font-size:.53rem;border:1px solid transparent}.tier-dot.t1{background:rgba(246,108,113,.18);border-color:rgba(246,108,113,.42);color:#ffb5b8}.tier-dot.t2{background:rgba(83,190,208,.16);border-color:rgba(83,190,208,.38);color:#9ce7f2}.tier-dot.t3{background:rgba(248,202,83,.18);border-color:rgba(248,202,83,.40);color:#ffe29a}.tier-dot.t4{background:rgba(175,148,229,.17);border-color:rgba(175,148,229,.38);color:#d8c1ff}
.raid-table tr.avg-break td{border-top:1px solid rgba(246,200,95,.72)!important}
.history-note{margin:0 0 10px;color:#91a6c0;font-size:.72rem}.history-grid>div{grid-template-columns:1fr auto auto}.history-delete{padding:4px 7px;font-size:.62rem;color:#ff9aa4;border-color:rgba(255,111,127,.35);background:rgba(255,111,127,.08)}.history-delete:hover{background:rgba(255,111,127,.16)}
@media(max-height:900px){.tier-legend{margin-top:5px;padding:6px 7px;gap:2px}.tier-legend>div:not(.side-card-title){font-size:.52rem}.side-info small{font-size:.49rem}}


/* v11: move raid controls into the information rail; main canvas is table-first */
.side-week-controls{margin-top:8px;display:grid;gap:6px;padding:8px;border:1px solid #344b69;border-radius:10px;background:linear-gradient(160deg,#151f32,#101a29)}
.side-week-controls label{display:grid;gap:4px;color:#8fa5bf;font-size:.58rem;font-weight:800}
.side-week-controls select{width:100%;height:29px;padding:3px 7px;border-radius:7px;background:#0f1928;color:#eef4ff;font-size:.66rem}
.side-week-controls button{width:100%;height:29px;padding:4px 7px;border-color:#5c527a;background:linear-gradient(180deg,#2b2741,#201d33);color:#e8e0ff;font-size:.66rem;font-weight:850}
.boss-page{grid-template-rows:minmax(0,1fr) auto}
.table-toolbar{display:none!important}
@media(max-height:900px){.side-week-controls{margin-top:5px;padding:5px;gap:4px}.side-week-controls select,.side-week-controls button{height:24px;font-size:.57rem}.side-week-controls label{font-size:.51rem}}
.side-nav{overflow-y:auto;scrollbar-width:none}.side-nav::-webkit-scrollbar{display:none}

/* v12: 100% browser zoom should feel like the previous ~150% zoom view.
   Typography and controls are enlarged without sacrificing the 30-row 16:9 table view. */
:root{font-size:16px}

/* Sidebar: larger, easier to read at browser 100% */
.app-shell{grid-template-columns:306px minmax(0,1fr)}
.side-nav{padding:14px 15px 12px}
.brand{gap:13px;padding-bottom:14px}
.brand-mark{width:54px;height:54px;flex-basis:54px;font-size:1.15rem}
.brand strong{font-size:1.00rem;line-height:1.25}
.brand small{font-size:.92rem;line-height:1.2;margin-top:5px}
.boss-nav button{min-height:39px;padding:8px 12px;font-size:.88rem}
.boss-nav .nav-admin{min-height:49px}
.side-context-boss{font-size:.72rem}.side-context>strong{font-size:.81rem}
.side-context-meta,.side-context small{font-size:.60rem}
.side-card-title{font-size:.69rem}.side-card span{font-size:.61rem}.side-card strong{font-size:.68rem}
.side-week-controls label{font-size:.58rem}.side-week-controls select,.side-week-controls button{font-size:.64rem}
.tier-legend>div:not(.side-card-title){font-size:.56rem}.tier-dot{font-size:.52rem}
.highlight-item span{font-size:.56rem}.highlight-item strong{font-size:.64rem}.highlight-item em{font-size:.61rem}

/* Main table: noticeably larger text, but retain all 30 rows in a normal 16:9 viewport */
.main-panel{padding:7px 9px 7px}
th,td{height:24px;padding:3px 6px;font-size:.69rem;line-height:1.02}
th{height:26px;font-size:.63rem}
.member-link{font-size:.69rem}
.rank-delta{font-size:.66rem}
.tier-badge{font-size:.56rem;padding:2px 6px}
.week-badge{font-size:.55rem;padding:2px 6px}
.cohort-badge{font-size:.54rem;padding:1px 4px}
.score-input{height:21px;width:108px;font-size:.67rem;padding:1px 6px}
.target-cell small,.raid-table td:last-child small{font-size:.54rem}
.mini-edit{font-size:.54rem}
.input-help{font-size:.55rem}

/* Prevent ultra-wide monitors from shrinking the visual language; retain the 16:9 app canvas. */
#app{width:min(100vw,calc(100vh * 16 / 9));max-width:none}

/* Laptop / browser-chrome constrained height: prioritize legibility over tiny text. */
@media(max-height:900px){
  .app-shell{grid-template-columns:286px minmax(0,1fr)}
  .side-nav{padding:9px 10px 8px}
  .brand-mark{width:44px;height:44px;flex-basis:44px}
  .brand strong{font-size:.88rem}.brand small{font-size:.82rem}
  .boss-nav button{min-height:31px;padding:5px 9px;font-size:.72rem}
  .side-context{padding:6px 7px}.side-context>strong{font-size:.70rem}
  .side-card,.highlight-card{padding:6px 7px}
  .side-card-title{font-size:.59rem}.side-card span{font-size:.52rem}.side-card strong{font-size:.58rem}
  .side-week-controls{padding:5px}.side-week-controls select,.side-week-controls button{height:24px;font-size:.54rem}
  .tier-legend>div:not(.side-card-title){font-size:.49rem}.tier-dot{font-size:.46rem}
  .main-panel{padding:4px 6px 5px}
  th,td{height:21px;padding:2px 4px;font-size:.60rem}
  th{height:22px;font-size:.55rem}
  .member-link{font-size:.61rem}.rank-delta{font-size:.58rem}
  .tier-badge,.week-badge{font-size:.48rem;padding:1px 4px}
  .cohort-badge{font-size:.46rem}
  .score-input{height:18px;width:96px;font-size:.58rem}
  .target-cell small,.raid-table td:last-child small{font-size:.47rem}
}

/* v13: keep the full information rail visible inside a 16:9 desktop viewport. */
@media (min-width:901px){
  .side-nav{
    overflow-y:auto;
    overscroll-behavior:contain;
    scrollbar-width:thin;
    scrollbar-color:#334863 transparent;
  }
  .side-nav::-webkit-scrollbar{display:block;width:5px}
  .side-nav::-webkit-scrollbar-track{background:transparent}
  .side-nav::-webkit-scrollbar-thumb{background:#334863;border-radius:999px}
}
@media (min-width:901px) and (max-height:1000px){
  .side-nav{padding-top:8px;padding-bottom:7px}
  .brand{padding-bottom:8px;gap:9px}
  .brand-mark{width:42px;height:42px;flex-basis:42px}
  .brand strong{font-size:.82rem}.brand small{font-size:.73rem;margin-top:2px}
  .boss-nav{padding-top:6px;gap:2px}
  .boss-nav button{min-height:28px;padding:4px 8px;font-size:.69rem}
  .boss-nav .nav-admin{min-height:35px;margin-top:3px;padding-top:7px}
  .boss-nav .nav-admin span{padding:6px 8px;margin:-4px -2px}
  .side-context{margin-top:5px;padding:6px 7px;border-radius:8px}
  .side-context-boss{font-size:.58rem}.side-context>strong{font-size:.66rem}
  .side-context-meta,.side-context small{font-size:.49rem;margin-top:2px}
  .side-release{margin-top:5px;padding-top:4px}.side-release b{font-size:.53rem}.side-release span{font-size:.47rem}
  .side-week-controls{margin-top:4px;padding:5px;gap:3px;border-radius:8px}
  .side-week-controls label{font-size:.47rem;gap:2px}
  .side-week-controls select,.side-week-controls button{height:22px;font-size:.50rem;padding:2px 5px}
  .side-card,.highlight-card,.tier-legend{margin-top:4px;padding:5px 7px;border-radius:8px}
  .side-card-title{margin-bottom:3px;font-size:.54rem}
  .side-card>div:not(.side-card-title){padding:1px 0}
  .side-card span{font-size:.47rem}.side-card strong{font-size:.52rem}.side-info small{font-size:.43rem}
  .highlight-grid{gap:2px}.highlight-item{padding:3px 4px;grid-template-columns:55px 1fr auto;gap:3px}
  .highlight-item span{font-size:.45rem}.highlight-item strong{font-size:.50rem}.highlight-item em{font-size:.47rem}
  .tier-legend{gap:1px}.tier-legend>div:not(.side-card-title){font-size:.43rem;grid-template-columns:29px 1fr;gap:4px}
  .tier-dot{font-size:.41rem;padding:1px 4px}
}

/* v14: stable hover states, compact close control, clearer target model labels */
button:hover:not(:disabled){transform:none}
.raid-table tbody tr:hover td{filter:none!important;background-image:linear-gradient(rgba(255,255,255,.028),rgba(255,255,255,.028))}
dialog{position:relative;padding-top:24px}
.modal-x{position:sticky;top:0;float:right;z-index:8;width:34px;height:34px;margin:-10px -8px 4px 10px;padding:0;border-radius:50%;font-size:1.35rem;line-height:1;background:#202d42;border:1px solid #536b8d;color:#dce8f8;box-shadow:0 5px 15px rgba(0,0,0,.22)}
.modal-x:hover{background:#2a3a54;border-color:#7894bb;color:#fff}
.event-target{background:rgba(246,200,95,.055);border-left:2px solid rgba(246,200,95,.65);padding-left:6px!important}
.event-target span{color:#e5c86f!important}.event-target strong{color:#ffe39a!important}

/* v15: unified weekly goal language and consistent boss-side card heights */
.side-context{min-height:118px;display:flex;flex-direction:column}
.side-release{min-height:36px}
.side-release.normal{border-top-color:#2b405b}
.side-release.normal b{color:#9fb2ca}
.side-release.normal span{color:#7087a3}
.side-release.active b{color:#ffd36a}
.side-info{min-height:126px}
@media (min-width:901px) and (max-height:1000px){
  .side-context{min-height:91px}
  .side-release{min-height:27px}
  .side-info{min-height:90px}
}

/* v16: same-height raid canvas, clearer guild-average boundary, consistent goal labels */
.boss-page{height:100%;display:block;min-height:0}
.boss-page>.raid-table-wrap{height:100%;min-height:0;max-height:none}
.input-help{display:none!important}
.raid-table tr.avg-break td{
  border-top:1px solid #f3c95f!important;
  box-shadow:inset 0 1px 0 rgba(243,201,95,.95),0 -3px 9px rgba(243,201,95,.12);
}
.side-info span{max-width:72%;line-height:1.15}
@media (min-width:901px) and (max-height:1000px){
  .side-info span{max-width:74%;font-size:.45rem}
}


/* v17: unify right-side canvas and row heights across current, historical, and members views */
.main-panel{height:100vh;min-height:0;overflow:hidden}
.boss-page,.members-page{height:100%;min-height:0;display:block}
.boss-page>.raid-table-wrap,.members-page>.raid-table-wrap{height:100%;min-height:0;max-height:none;overflow:auto}

/* Every data row uses the exact same geometry. Inputs/buttons must fit inside the row, never enlarge it. */
.raid-table tbody tr,.members-table tbody tr{height:24px!important}
.raid-table tbody td,.members-table tbody td{height:24px!important;min-height:24px!important;max-height:24px!important;padding-top:2px!important;padding-bottom:2px!important;vertical-align:middle;line-height:1!important}
.raid-table thead th,.members-table thead th{height:26px!important;min-height:26px!important;max-height:26px!important;padding-top:2px!important;padding-bottom:2px!important;vertical-align:middle;line-height:1!important}
.score-input{height:18px!important;min-height:18px!important;max-height:18px!important;padding:0 6px!important;line-height:18px!important}
.mini-edit,.member-edit{height:18px!important;min-height:18px!important;max-height:18px!important;padding:0 6px!important;line-height:16px!important;border-radius:6px!important;font-size:.58rem!important;transform:none!important}
.member-link{line-height:18px!important;height:18px!important;min-height:18px!important;padding:0!important;display:inline-flex;align-items:center}
.tier-badge,.week-badge,.cohort-badge{line-height:14px!important;min-height:14px!important}

/* Members page shares the same full-height canvas. Toolbar lives INSIDE it instead of shortening the canvas. */
.members-table-wrap{position:relative;padding-top:34px}
.members-toolbar{position:absolute;top:0;left:0;right:0;height:34px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 8px;background:linear-gradient(180deg,#1b2a42,#17243a);border-bottom:1px solid #334964;z-index:4}
.members-toolbar>div{display:flex;align-items:baseline;gap:8px;min-width:0}.members-toolbar strong{font-size:.78rem;color:#fff}.members-toolbar small{font-size:.61rem;color:#8fa3bd}.members-toolbar button{height:24px!important;padding:2px 8px!important;font-size:.62rem!important}
.members-table thead th{top:34px}

/* Prevent hover/focus states from changing layout height. */
.raid-table button:hover,.members-table button:hover{transform:none!important}
.raid-table input:focus{outline:none}

@media (min-width:901px) and (max-height:1000px){
  .raid-table tbody tr,.members-table tbody tr{height:22px!important}
  .raid-table tbody td,.members-table tbody td{height:22px!important;min-height:22px!important;max-height:22px!important;padding-top:1px!important;padding-bottom:1px!important}
  .raid-table thead th,.members-table thead th{height:23px!important;min-height:23px!important;max-height:23px!important}
  .score-input{height:17px!important;min-height:17px!important;max-height:17px!important;line-height:17px!important}
  .mini-edit,.member-edit,.member-link{height:17px!important;min-height:17px!important;max-height:17px!important;line-height:15px!important}
  .members-table-wrap{padding-top:30px}.members-toolbar{height:30px}.members-table thead th{top:30px}
}


/* v18: clean full-width guild-average divider and remove redundant focus metric */
.raid-table tr.avg-break td{
  border-top:1px solid #e8bd58!important;
  box-shadow:none!important;
}
.raid-table tr.avg-break td:first-child,
.raid-table tr.avg-break td:last-child{
  border-top:1px solid #e8bd58!important;
}
.highlight-item.target{display:none!important}

/* v19: two growth leaders + two rank climbers in raid focus */
.focus-grid{display:grid;gap:7px}
.focus-section{border:1px solid transparent;border-radius:8px;padding:6px 7px}
.focus-section.growth{background:rgba(84,220,168,.08);border-color:rgba(84,220,168,.22)}
.focus-section.rank{background:rgba(79,162,255,.08);border-color:rgba(79,162,255,.22)}
.focus-section-title{font-size:.58rem;font-weight:900;margin-bottom:4px;letter-spacing:.02em}
.focus-section.growth .focus-section-title,.focus-section.growth em{color:#62e5ae}
.focus-section.rank .focus-section-title,.focus-section.rank em{color:#68b1ff}
.focus-row{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:5px;min-height:18px}
.focus-row+.focus-row{border-top:1px solid rgba(255,255,255,.055)}
.focus-place{font-size:.54rem;color:#71859f;font-weight:900;text-align:center}
.focus-row strong{font-size:.64rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.focus-row em{font-style:normal;font-size:.61rem;font-weight:900}
@media (min-width:901px) and (max-height:1000px){
  .focus-grid{gap:4px}.focus-section{padding:4px 5px}.focus-section-title{font-size:.49rem;margin-bottom:2px}.focus-row{min-height:15px}.focus-row strong{font-size:.54rem}.focus-row em{font-size:.52rem}.focus-place{font-size:.48rem}
}

/* v20: 평균 기준선은 별도 행으로 렌더링해 모든 열을 끊김 없이 가로지른다. */
.raid-table .avg-line-row td{
  height:2px!important;
  min-height:2px!important;
  padding:0!important;
  border:0!important;
  background:#d3aa4e!important;
  box-shadow:none!important;
  line-height:0!important;
}
.raid-table tr.avg-break td{border-top:0!important;box-shadow:none!important;}
.history-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;margin:0 0 10px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#152136}.history-select-all{display:flex;align-items:center;gap:7px;font-size:.74rem;color:#dbe7f8;cursor:pointer}.history-select-all input,.history-check{width:16px;height:16px;accent-color:#8f73ff}.history-toolbar [data-history-count]{font-size:.7rem;color:var(--muted)}.history-bulk-delete{padding:6px 10px;color:#ff9aa4;border-color:rgba(255,111,127,.35);background:rgba(255,111,127,.08)}.history-bulk-delete:disabled{opacity:.4;cursor:default}.history-grid>div{grid-template-columns:auto 1fr auto}.history-check{margin:0 2px 0 0}

/* v23: guild-average divider must be a true 1px line, never a full-height table row */
.raid-table tbody tr.avg-line-row{
  height:1px!important;
  min-height:1px!important;
  max-height:1px!important;
  line-height:0!important;
  padding:0!important;
}
.raid-table tbody tr.avg-line-row td{
  height:1px!important;
  min-height:1px!important;
  max-height:1px!important;
  padding:0!important;
  line-height:0!important;
  border:0!important;
  background:#d3aa4e!important;
  box-shadow:none!important;
}

/* v24: collapsible navigation + responsive phone/portrait layout */
.sidebar-toggle{position:absolute;top:10px;right:10px;z-index:25;width:30px;height:30px;padding:0;display:grid;place-items:center;border-radius:8px;background:#162238;border-color:#3b506f;color:#dce7f8;font-size:1.15rem;line-height:1}
.sidebar-fab{display:none;position:fixed;left:10px;top:10px;z-index:40;width:40px;height:40px;padding:0;border-radius:10px;background:#17253b;border-color:#526b90;color:#fff;font-size:1.1rem;box-shadow:0 8px 24px rgba(0,0,0,.35)}
.sidebar-backdrop{display:none}
.app-shell.sidebar-collapsed{grid-template-columns:54px minmax(0,1fr)}
.app-shell.sidebar-collapsed .side-nav{padding:8px 7px;overflow:hidden}
.app-shell.sidebar-collapsed .side-nav .brand,
.app-shell.sidebar-collapsed .side-nav .boss-nav,
.app-shell.sidebar-collapsed .side-nav .side-context,
.app-shell.sidebar-collapsed .side-nav .side-week-controls,
.app-shell.sidebar-collapsed .side-nav .side-card,
.app-shell.sidebar-collapsed .side-nav .highlight-card,
.app-shell.sidebar-collapsed .side-nav .tier-legend{display:none!important}
.app-shell.sidebar-collapsed .side-nav .sidebar-toggle{position:static;width:40px;height:40px;margin:0 auto;display:grid}

/* A portrait desktop is treated like a compact device so the 16:9 canvas never overflows. */
@media (max-width:900px), (max-width:1300px) and (orientation:portrait){
  html,body{width:100%;height:100%;overflow:hidden}
  body{display:block;background:#070b12}
  #app{width:100vw!important;height:100dvh!important;min-height:0!important;max-width:none!important;box-shadow:none!important}
  .app-shell,.app-shell.sidebar-collapsed{height:100dvh;min-height:0;display:block;position:relative}
  .main-panel{width:100%;height:100dvh!important;min-height:0;padding:8px!important;overflow:hidden}
  .side-nav{position:fixed!important;inset:0 auto 0 0;width:min(86vw,330px)!important;height:100dvh!important;z-index:35;transform:translateX(0);transition:transform .18s ease;box-shadow:18px 0 50px rgba(0,0,0,.48);overflow-y:auto!important;padding:12px!important}
  .app-shell.sidebar-collapsed .side-nav{transform:translateX(-102%);width:min(86vw,330px)!important;padding:12px!important}
  .app-shell.sidebar-collapsed .side-nav .brand,
  .app-shell.sidebar-collapsed .side-nav .boss-nav,
  .app-shell.sidebar-collapsed .side-nav .side-context,
  .app-shell.sidebar-collapsed .side-nav .side-week-controls,
  .app-shell.sidebar-collapsed .side-nav .side-card,
  .app-shell.sidebar-collapsed .side-nav .highlight-card,
  .app-shell.sidebar-collapsed .side-nav .tier-legend{display:initial!important}
  .app-shell.sidebar-collapsed .side-nav .boss-nav{display:grid!important}
  .app-shell.sidebar-collapsed .side-nav .brand{display:flex!important}
  .app-shell.sidebar-collapsed .side-nav .side-context,
  .app-shell.sidebar-collapsed .side-nav .side-card,
  .app-shell.sidebar-collapsed .side-nav .highlight-card,
  .app-shell.sidebar-collapsed .side-nav .tier-legend{display:block!important}
  .app-shell.sidebar-collapsed .side-nav .side-week-controls{display:grid!important}
  .side-nav .sidebar-toggle{display:grid!important;position:absolute!important;top:10px!important;right:10px!important;margin:0!important}
  .sidebar-fab{display:none}
  .app-shell.sidebar-collapsed .sidebar-fab{display:grid;place-items:center}
  .sidebar-backdrop{display:block;position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.48);opacity:1;pointer-events:auto}
  .app-shell.sidebar-collapsed .sidebar-backdrop{opacity:0;pointer-events:none}
  .brand{padding-right:38px}
  .brand strong{font-size:.92rem!important}.brand small{font-size:.86rem!important}
  .boss-nav button{min-height:38px!important;font-size:.9rem!important}
  .boss-page,.members-page{height:100%!important;min-height:0!important}
  .raid-table-wrap{height:100%!important;max-height:none!important;overflow:auto!important;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .raid-table{min-width:1120px;table-layout:auto}
  .members-table{min-width:640px}
  .raid-table thead th,.members-table thead th{position:sticky;top:0;z-index:5}
  .members-table thead th{top:30px}
  th,td{font-size:.68rem!important}
  .member-link{font-size:.69rem!important}
  .score-input{width:100px!important;font-size:.66rem!important}
  dialog{width:min(96vw,620px)!important;max-height:88dvh!important;padding:16px!important}
  .history-grid>div{grid-template-columns:auto 1fr auto!important;gap:6px}
}

@media (max-width:560px){
  .main-panel{padding:5px!important}
  .raid-table{min-width:1030px}
  .members-table{min-width:560px}
  .sidebar-fab{left:7px;top:7px;width:38px;height:38px}
  dialog{width:96vw!important;padding:13px!important;border-radius:11px}
  dialog h2{font-size:1.35rem}
  .history-toolbar{grid-template-columns:1fr auto;gap:6px}.history-toolbar [data-history-count]{display:none}
}

/* v25: make the sidebar collapse control unmistakable and always reachable. */
.side-nav{position:sticky}
.brand{padding-right:46px}
.sidebar-toggle{
  position:absolute!important;
  top:16px!important;
  right:12px!important;
  z-index:80!important;
  width:34px!important;
  height:34px!important;
  display:grid!important;
  place-items:center!important;
  padding:0!important;
  border:1px solid #7d68b4!important;
  border-radius:10px!important;
  background:linear-gradient(180deg,#4a3a70,#30264d)!important;
  color:#fff!important;
  font-size:.9rem!important;
  font-weight:900!important;
  line-height:1!important;
  box-shadow:0 4px 14px rgba(0,0,0,.28)!important;
}
.sidebar-toggle:hover{transform:none!important;background:linear-gradient(180deg,#5c4789,#3a2d5d)!important}
.app-shell.sidebar-collapsed .side-nav .sidebar-toggle{
  position:static!important;
  width:40px!important;
  height:40px!important;
  margin:0 auto!important;
}

@media (max-width:900px), (max-width:1300px) and (orientation:portrait){
  .brand{padding-right:48px!important}
  .side-nav .sidebar-toggle{
    top:12px!important;
    right:12px!important;
    width:38px!important;
    height:38px!important;
  }
  .app-shell.sidebar-collapsed .sidebar-fab{
    display:grid!important;
    place-items:center!important;
    width:44px!important;
    height:44px!important;
    left:10px!important;
    top:10px!important;
    border:1px solid #7d68b4!important;
    background:linear-gradient(180deg,#4a3a70,#30264d)!important;
    color:#fff!important;
    font-size:1.15rem!important;
    z-index:90!important;
  }
}

/* v25: clearly visible sidebar collapse / reopen controls */
.brand{padding-right:48px!important}
.sidebar-toggle{
  position:absolute!important;top:14px!important;right:12px!important;z-index:80!important;
  width:36px!important;height:36px!important;padding:0!important;display:grid!important;place-items:center!important;
  border:1px solid #806bc0!important;border-radius:10px!important;
  background:linear-gradient(180deg,#4d3d74,#30264d)!important;color:#fff!important;
  font-size:.9rem!important;font-weight:900!important;line-height:1!important;
  box-shadow:0 4px 16px rgba(0,0,0,.32)!important;
}
.sidebar-toggle:hover{transform:none!important;background:linear-gradient(180deg,#5d498b,#392d59)!important}
.app-shell.sidebar-collapsed .side-nav .sidebar-toggle{position:static!important;width:40px!important;height:40px!important;margin:0 auto!important}
@media (max-width:900px), (max-width:1300px) and (orientation:portrait){
  .side-nav .sidebar-toggle{top:10px!important;right:10px!important;width:40px!important;height:40px!important}
  .app-shell.sidebar-collapsed .sidebar-fab{display:grid!important;place-items:center!important;width:44px!important;height:44px!important;left:10px!important;top:10px!important;border:1px solid #806bc0!important;background:linear-gradient(180deg,#4d3d74,#30264d)!important;color:#fff!important;z-index:90!important}
}

/* v26: guild ranking / sortable headers / native-dialog replacement */
.nav-separator{height:1px;background:rgba(255,255,255,.12);margin:8px 10px}
.raid-table th.sortable{padding:0!important}
.raid-table th.sortable>button{width:100%;height:100%;min-height:34px;border:0;background:transparent;color:inherit;font:inherit;font-weight:700;text-align:inherit;padding:0 9px;cursor:pointer;white-space:nowrap}
.raid-table th.sortable.num>button{text-align:right}
.raid-table th.sortable>button span{display:inline-block;min-width:12px;margin-left:4px;color:#b59cff;font-size:10px}
.ranking-page{padding:14px 16px 18px;min-width:0}
.ranking-top,.ranking-controls,.ranking-summary,.ranking-tabs{display:flex;align-items:center;gap:10px}
.ranking-top{justify-content:space-between;margin-bottom:10px}.ranking-top h2{margin:0;font-size:20px}.ranking-top p{margin:3px 0 0;color:#8790a8;font-size:12px}
.ranking-tabs{margin-bottom:10px}.ranking-tabs button{border:1px solid #30384b;background:#151a26;color:#aeb6ca;border-radius:8px;padding:7px 16px;font-weight:700;cursor:pointer}.ranking-tabs button.active{background:#5c45a7;border-color:#8169d3;color:#fff}
.ranking-controls{justify-content:space-between;flex-wrap:wrap;margin-bottom:10px;padding:9px 10px;border:1px solid #252c3d;background:#111722;border-radius:10px}.cut-checks{display:flex;gap:6px;flex-wrap:wrap}.cut-checks label{display:flex;align-items:center;gap:5px;border:1px solid #343c50;border-radius:999px;padding:5px 9px;color:#929caf;font-size:11px;cursor:pointer}.cut-checks label.checked{border-color:#826ce0;background:#241f3c;color:#f2efff}.cut-checks input{accent-color:#8067db}
.ranking-goal{display:flex;align-items:end;gap:7px;flex-wrap:wrap}.ranking-goal label{display:flex;flex-direction:column;gap:3px;color:#8790a8;font-size:10px}.ranking-goal select,.ranking-goal input{height:30px;border:1px solid #343c50;background:#0d121b;color:#eef1f8;border-radius:6px;padding:0 7px}.ranking-goal input{width:72px}.ranking-goal button{height:30px;border:1px solid #5d50a2;background:#32285e;color:#fff;border-radius:6px;padding:0 10px;cursor:pointer}
.cut-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:8px;margin-bottom:10px}.cut-card{border:1px solid #2b3345;background:#151b27;border-radius:10px;padding:9px 11px}.cut-card.goal{border-color:#8a70e1;box-shadow:inset 0 0 0 1px rgba(138,112,225,.2)}.cut-card span,.cut-card small{display:block;color:#8790a8;font-size:10px}.cut-card strong{display:block;margin:3px 0;font-size:15px;color:#fff}
.ranking-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}.ranking-summary>div{background:#111722;border:1px solid #252c3d;border-radius:9px;padding:8px 10px}.ranking-summary span{display:block;color:#7f899f;font-size:10px}.ranking-summary strong{display:block;margin-top:3px;font-size:14px}.ranking-period{font-weight:800;margin:8px 2px;color:#d7dbea}.ranking-table-wrap{overflow:auto}.ranking-table{min-width:790px}.ranking-table .sirius-row td{background:rgba(103,82,184,.15)!important}.danger-link{border:0;background:transparent;color:#ff7f87;cursor:pointer;font-weight:700}.danger{border:1px solid #9b4149!important;background:#7d3038!important;color:#fff!important}
.ranking-upload{min-width:min(780px,82vw)}.upload-meta{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.upload-meta label{display:flex;flex-direction:column;gap:4px}.upload-meta input,.upload-meta select{height:34px;background:#0f1420;color:#fff;border:1px solid #343c50;border-radius:7px;padding:0 8px}.screenshot-drop{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:120px;margin:12px 0;border:1px dashed #6657a4;border-radius:10px;background:#151329;color:#ded8ff;cursor:pointer}.screenshot-drop small{color:#8f96ab}.ocr-status{font-size:12px;color:#9da6bb;margin-bottom:7px}.ocr-preview{max-height:42vh;overflow:auto}.ocr-preview table{width:100%;border-collapse:collapse}.ocr-preview th,.ocr-preview td{border-bottom:1px solid #252c3d;padding:4px}.ocr-preview input{width:100%;box-sizing:border-box;background:#0c1119;color:#edf0f8;border:1px solid #30384a;border-radius:5px;padding:5px}.ocr-preview td:first-child input{width:58px}.confirm-modal{max-width:440px}.confirm-modal p{color:#aeb5c5;line-height:1.55}
@media(max-width:900px),(max-width:1300px) and (orientation:portrait){.ranking-page{padding:10px}.ranking-summary{grid-template-columns:1fr 1fr}.ranking-controls{align-items:stretch}.ranking-goal{width:100%}.ranking-upload{min-width:0;width:min(92vw,760px)}.upload-meta{grid-template-columns:1fr}.raid-table th.sortable>button{min-height:30px;padding:0 6px}}
/* v28 growth engine */
.tier-badge.tier-5{background:rgba(112,171,237,.16);border-color:rgba(112,171,237,.38);color:#b9dcff}
.tier-badge.tier-6{background:rgba(246,108,113,.18);border-color:rgba(246,108,113,.42);color:#ffb5b8}
.tier-weight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tier-weight-grid label{display:grid;gap:4px}.tier-weight-grid input{width:100%;box-sizing:border-box;height:32px;background:#0f1420;color:#fff;border:1px solid #343c50;border-radius:7px;padding:0 8px}.target-engine-form small{color:#7f899f;font-size:.7rem}.target-engine-form p{color:#aeb5c5;line-height:1.45;margin:0}.ranking-table .danger-link{margin-right:7px}.ranking-table .danger-link:last-child{margin-right:0}
@media(max-width:600px){.tier-weight-grid{grid-template-columns:1fr 1fr}}
.target-explain{min-width:min(700px,82vw)}.explain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.explain-grid>div{padding:9px;border:1px solid #2b3447;border-radius:8px;background:#111722}.explain-grid span{display:block;color:#7f899f;font-size:10px}.explain-grid strong{display:block;margin-top:3px;font-size:13px}.target-explain>p{color:#aeb5c5;font-size:12px;line-height:1.5}
@media(max-width:600px){.target-explain{min-width:0}.explain-grid{grid-template-columns:1fr 1fr}}
.tier-badge.tier-0{background:rgba(246,108,113,.18);border-color:rgba(246,108,113,.42);color:#ffb5b8}
.tier-badge.tier-1{background:rgba(255,160,95,.18);border-color:rgba(255,160,95,.40);color:#ffd0ad}
.tier-badge.tier-2{background:rgba(248,202,83,.18);border-color:rgba(248,202,83,.40);color:#ffe29a}
.tier-badge.tier-3{background:rgba(83,190,208,.16);border-color:rgba(83,190,208,.38);color:#9ce7f2}
.tier-badge.tier-4{background:rgba(175,148,229,.17);border-color:rgba(175,148,229,.38);color:#d8c1ff}
.tier-badge.tier-5{background:rgba(112,171,237,.16);border-color:rgba(112,171,237,.38);color:#b9dcff}

/* v29 (Module C): analytics view — an-* prefix only, appended, no existing rule changed */
.an-page{--an-bg:#111722;--an-bg2:#151d2c;--an-line:#2b3345;--an-line2:#3a4560;--an-text:#eef2fa;--an-muted:#93a2ba;--an-up:#6fe0b0;--an-down:#ff8b98;--an-gold:#f6c85f;min-width:0;display:grid;gap:10px;padding:12px 2px 20px;color:var(--an-text);font-size:.8rem;line-height:1.45}
.an-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}
.an-head h2{margin:0;font-size:1.15rem;letter-spacing:-.02em}
.an-head p{margin:3px 0 0;color:var(--an-muted);font-size:.74rem}
.an-back{flex:0 0 auto}

.an-section{border:1px solid var(--an-line);border-radius:12px;background:linear-gradient(165deg,var(--an-bg2),var(--an-bg));padding:11px 12px;display:grid;gap:9px;min-width:0}
.an-section h3{margin:0;font-size:.9rem;color:#cfd8ea;letter-spacing:-.01em}
.an-note{margin:-4px 0 0;color:var(--an-muted);font-size:.7rem}

.an-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(190px,100%),1fr));gap:8px}
.an-card{border:1px solid var(--an-line);border-radius:11px;background:linear-gradient(165deg,var(--an-bg2),var(--an-bg));padding:9px 11px;display:grid;gap:2px;min-width:0}
.an-card>span{color:var(--an-muted);font-size:.68rem;font-weight:700}
.an-card>strong{font-size:1.28rem;line-height:1.15;letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.an-card>small{color:var(--an-muted);font-size:.66rem;line-height:1.4}
.an-card-spread>strong{color:#9fd0ff}
.an-card-growth>strong{color:#c6b0ff}

.an-duo{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:10px;min-width:0}
.an-duo-item{display:grid;gap:7px;min-width:0;align-content:start}
.an-duo-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.an-duo-head strong{font-size:.8rem;color:#dbe4f4}
.an-duo-head span{color:var(--an-muted);font-size:.66rem}

.an-chart{width:100%;max-width:100%;min-width:0;overflow:hidden;border:1px solid var(--an-line);border-radius:10px;background:#0e1522;padding:4px}
.an-chart svg{display:block;width:100%;height:auto;max-width:100%}
.an-grid line{stroke:#253048;stroke-width:1}
.an-grid text{fill:#7f8fa8;font-size:11px;font-variant-numeric:tabular-nums}
.an-axis{stroke:#3b4763;stroke-width:1}
.an-xlabel{fill:#8d9cb5;font-size:11px}
.an-ytitle{fill:#a8b6cd;font-size:11px;font-weight:700}
.an-ref line{stroke:var(--an-gold);stroke-width:1.4;stroke-dasharray:3 3;opacity:.75}
.an-ref text{fill:var(--an-gold);font-size:11px;font-weight:700}
.an-line{stroke-linecap:round}
.an-line.an-provisional{opacity:.6;stroke-width:1.7}
.an-area.an-provisional{opacity:.75}
.an-dot{fill:#0e1522;stroke:#8fc7ff;stroke-width:1.6}
.an-dot.an-provisional{stroke:var(--an-muted);stroke-dasharray:2 2}
.an-sparkline{display:block;width:100%;max-width:132px;height:30px}

.an-legend{list-style:none;display:flex;flex-wrap:wrap;gap:4px 12px;margin:0;padding:0;color:var(--an-muted);font-size:.66rem}
.an-legend-item{display:flex;align-items:center;gap:5px}
.an-swatch{width:16px;height:0;border-top:2px solid #8fc7ff;display:inline-block;flex:0 0 auto}
.an-swatch.dashed{border-top-style:dashed;opacity:.6}
.an-legend-item.an-boss-scotia .an-swatch{border-top-color:#8fc7ff}
.an-legend-item.an-boss-nephthys .an-swatch{border-top-color:#c9a6ff}
.an-legend-item.an-boss-idun .an-swatch{border-top-color:#ffb98a}

.an-bars{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.an-bar{display:grid;grid-template-columns:minmax(78px,34%) 1fr auto;align-items:center;gap:7px}
.an-bar-label{color:#cbd5e6;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.an-bar-track{height:10px;border-radius:999px;background:#1d2637;border:1px solid var(--an-line);overflow:hidden}
.an-bar-fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#4c7fd0,#8fc7ff)}
/* CSP style-src 'self' 로 인라인 style 불가 → 폭을 5% 단위 클래스로 표현(.an-w-0 ~ .an-w-20) */
.an-w-0{width:0}.an-w-1{width:5%}.an-w-2{width:10%}.an-w-3{width:15%}.an-w-4{width:20%}
.an-w-5{width:25%}.an-w-6{width:30%}.an-w-7{width:35%}.an-w-8{width:40%}.an-w-9{width:45%}
.an-w-10{width:50%}.an-w-11{width:55%}.an-w-12{width:60%}.an-w-13{width:65%}.an-w-14{width:70%}
.an-w-15{width:75%}.an-w-16{width:80%}.an-w-17{width:85%}.an-w-18{width:90%}.an-w-19{width:95%}.an-w-20{width:100%}
.an-bar-value{color:var(--an-text);font-size:.7rem;font-variant-numeric:tabular-nums;text-align:right}
.an-bar small{grid-column:2/4;color:var(--an-muted);font-size:.62rem}

.an-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--an-line);border-radius:10px;background:#121a29;-webkit-overflow-scrolling:touch}
.an-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:.72rem}
.an-table th,.an-table td{padding:6px 9px;border-bottom:1px solid #222c3e;text-align:left;height:auto;line-height:1.3;font-size:inherit}
.an-table thead th{position:static;background:#1b2434;color:#c3cfe2;font-size:.66rem;font-weight:800;box-shadow:none;z-index:auto}
.an-table tbody tr:last-child td{border-bottom:0}
.an-table tbody tr:hover td{background:#182234}
.an-table .num{text-align:right;font-variant-numeric:tabular-nums}
.an-table th.sortable{padding:0}
.an-table th.sortable>button{width:100%;border:0;background:transparent;color:inherit;font:inherit;font-weight:800;padding:6px 9px;cursor:pointer;white-space:nowrap;display:flex;gap:4px;align-items:center}
.an-table th.sortable.num>button{justify-content:flex-end}
.an-table th.sortable>button span{color:#b59cff;font-size:.6rem}
.an-table th.sortable>button:hover{color:#fff}
.an-table tfoot td{position:static;background:#161f2e;color:#aab7cc;font-weight:800;border-top:1px solid var(--an-line2);font-variant-numeric:tabular-nums}
.an-cell-sub{display:inline;color:var(--an-muted);font-size:.62rem;margin-left:4px}
.an-row-miss td{background:rgba(214,75,92,.10)}
.an-provisional-row td{background:rgba(255,255,255,.028);color:#b8c4d8}
.an-streak{display:inline-block;padding:1px 6px;border-radius:999px;background:rgba(255,111,127,.16);border:1px solid rgba(255,111,127,.4);color:#ff9fa9;font-size:.62rem;font-weight:800}
.an-row-miss{box-shadow:inset 3px 0 0 rgba(255,111,127,.65)}

.an-chip{display:inline-flex;align-items:center;gap:4px;padding:1px 7px;border-radius:999px;font-size:.62rem;font-weight:800;border:1px solid var(--an-line2);background:#1a2333;color:#c3cfe2;white-space:nowrap}
.an-chip-final{border-color:rgba(111,224,176,.4);background:rgba(111,224,176,.12);color:var(--an-up)}
.an-chip-imported{border-color:rgba(246,200,95,.4);background:rgba(246,200,95,.12);color:var(--an-gold)}
.an-chip-manual{border-color:rgba(169,140,255,.42);background:rgba(169,140,255,.14);color:#cbb8ff}
.an-provisional{opacity:.75}
.an-boss-scotia{border-color:rgba(143,199,255,.42);background:rgba(143,199,255,.14);color:#b7dcff}
.an-boss-nephthys{border-color:rgba(201,166,255,.42);background:rgba(201,166,255,.14);color:#dcc9ff}
.an-boss-idun{border-color:rgba(255,185,138,.42);background:rgba(255,185,138,.14);color:#ffd2b0}

.an-delta-up{color:var(--an-up);font-weight:800}
.an-delta-down{color:var(--an-down);font-weight:800}
.an-delta-flat{color:var(--an-muted)}

.an-link{border:0;background:transparent;padding:0;color:#c6b2ff;font:inherit;font-weight:800;cursor:pointer;text-align:inherit}
.an-link:hover{background:transparent;color:#fff;transform:none;text-decoration:underline}
.an-filters{display:flex;flex-wrap:wrap;gap:6px}
.an-filter{display:inline-flex;align-items:center;gap:5px;padding:4px 11px;border-radius:999px;border:1px solid var(--an-line2);background:#161e2d;color:#b3c0d6;font-size:.7rem;font-weight:800;cursor:pointer}
.an-filter span{color:var(--an-muted);font-weight:700;font-size:.62rem}
.an-filter.active{background:#312a52;border-color:#8b74dd;color:#fff}
.an-filter.an-boss-scotia.active{background:rgba(143,199,255,.18);border-color:#8fc7ff;color:#eaf5ff}
.an-filter.an-boss-nephthys.active{background:rgba(201,166,255,.18);border-color:#c9a6ff;color:#f4edff}
.an-filter.an-boss-idun.active{background:rgba(255,185,138,.18);border-color:#ffb98a;color:#fff2e8}

.an-statline{display:flex;flex-wrap:wrap;gap:6px 16px;color:var(--an-muted);font-size:.68rem}
.an-statline strong{color:var(--an-text);font-variant-numeric:tabular-nums}
.an-streakbox{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(120px,100%),1fr));gap:8px}
.an-streakbox>div{border:1px solid var(--an-line);border-radius:10px;background:#141c2b;padding:7px 10px}
.an-streakbox>div.warn{border-color:rgba(255,111,127,.45);background:rgba(255,111,127,.10)}
.an-streakbox span{display:block;color:var(--an-muted);font-size:.66rem}
.an-streakbox strong{font-size:1.05rem;font-variant-numeric:tabular-nums}
.an-streakbox.warn strong{color:#ff9fa9}

.an-empty{display:grid;justify-items:center;gap:4px;padding:22px 14px;border:1px dashed var(--an-line2);border-radius:11px;background:rgba(255,255,255,.02);color:var(--an-muted);text-align:center}
.an-empty-mark{font-size:1.35rem;color:#5f6f8a}
.an-empty strong{color:#c6d0e0;font-size:.82rem}
.an-empty small{font-size:.68rem}

@media(prefers-reduced-motion:no-preference){.an-card,.an-section,.an-chip{transition:border-color .15s ease,background .15s ease}}
@media(prefers-reduced-motion:reduce){.an-page *{transition:none!important;animation:none!important}}
@media(max-width:900px){.an-page{padding:8px 0 16px;gap:8px}.an-cards{grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr))}.an-duo{grid-template-columns:minmax(0,1fr)}.an-chart{padding:2px}}
@media(max-width:390px){.an-cards{grid-template-columns:1fr}.an-card>strong{font-size:1.15rem}.an-head h2{font-size:1rem}.an-table-wrap{border-radius:8px}.an-duo{grid-template-columns:minmax(0,1fr)}.an-streakbox{grid-template-columns:1fr 1fr}.an-bar{grid-template-columns:minmax(64px,40%) 1fr auto}.an-legend{font-size:.62rem}}

/* v30: 레이드 필터 도구줄 + 스킨 선택 */
.raid-filter-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:5px 6px;margin-bottom:5px;border:1px solid var(--line);border-radius:8px;background:rgba(20,32,51,.6)}
.raid-filter-input{height:26px;min-width:118px;padding:2px 7px;font-size:.7rem}
.raid-filter-input[type=search]{min-width:150px}
.raid-filter-score{width:104px;min-width:0}
.raid-filter-select{height:26px;padding:2px 6px;font-size:.7rem}
.raid-filter-check{display:flex;align-items:center;gap:4px;font-size:.7rem;color:var(--muted);white-space:nowrap}
.raid-filter-count{font-size:.66rem;color:var(--muted);margin-left:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52%}
.raid-skin-picker{grid-column:1/2;display:grid!important;gap:4px;font-size:.8rem;color:var(--muted)}
.raid-skin-picker select{width:100%}
@media(max-width:900px){.raid-filter-count{max-width:100%;margin-left:0}}

/* v30: 분석/랭킹/길드원 화면 스크롤 복구
   v8 레이어의 .main-panel{overflow:hidden} 때문에 아래로 긴 화면이 잘려
   스크롤할 수 없었습니다. 이 세 화면은 자기 영역에서 세로 스크롤합니다.
   (레이드 본표 .boss-page 는 자체 .raid-table-wrap 이 이미 스크롤하므로 그대로 둡니다) */
.an-page,.ranking-page,.members-page{height:100%;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}
.ranking-page,.members-page{display:block}
.an-page::-webkit-scrollbar,.ranking-page::-webkit-scrollbar,.members-page::-webkit-scrollbar{width:10px;height:10px}
.an-page::-webkit-scrollbar-thumb,.ranking-page::-webkit-scrollbar-thumb,.members-page::-webkit-scrollbar-thumb{background:#2b3a55;border-radius:6px;border:2px solid transparent;background-clip:content-box}
.an-page::-webkit-scrollbar-track,.ranking-page::-webkit-scrollbar-track,.members-page::-webkit-scrollbar-track{background:transparent}
@media(max-width:900px){.an-page,.ranking-page,.members-page{height:auto;min-height:0;overflow:visible}}

/* v30: 분석 화면 정렬/필터 컨트롤 */
.an-card-note{display:block;margin-top:5px;font-size:.62rem;line-height:1.35;font-style:normal;color:var(--an-muted);opacity:.92}
.an-sortable button{background:transparent;border:0;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;gap:3px;align-items:center}
.an-sortable button:hover{color:var(--an-up)}
.an-sortable.active{color:var(--an-text)}
.an-sort-arrow{font-size:.6rem;opacity:.7}
.an-filters{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:0 0 7px}
.an-filters>span:first-child{font-size:.68rem;color:var(--an-muted)}
.an-filters label{display:flex;align-items:center;gap:5px;font-size:.68rem;color:var(--an-muted)}
.an-filters input[type=search]{height:24px;min-width:150px;padding:2px 7px;font-size:.7rem;background:var(--an-bg2);color:var(--an-text);border:1px solid var(--an-line2);border-radius:6px}
.an-filters-count{font-size:.66rem;color:var(--an-muted)}
.an-boss-filter button{height:24px;padding:2px 9px;font-size:.68rem;background:var(--an-bg2);border:1px solid var(--an-line2);border-radius:6px;color:var(--an-muted);cursor:pointer}
.an-boss-filter button.active{background:var(--an-line2);color:var(--an-text);border-color:var(--an-up)}
.an-filters-hint{font-size:.62rem;color:var(--an-muted);opacity:.8}

/* v30: 레이�� 표 헤더/셀 폭을 단일 출처로 (정렬 불일치 + 근거 잘림 해결)
   기존 .raid-table th:nth-child() 는 12개 컬럼 중 5개만 폭을 지정해서
   목표 컬럼이 압축되고 근거/수정 버튼이 잘렸습니다.
   raid_filters.ts 의 RAID_COLUMNS(44/58/54/128/132/152/132/96/84/104/104/96)가 단일 출처입니다. */
.boss-page .raid-table{table-layout:fixed}
.boss-page .raid-table .col-rank{width:44px}
.boss-page .raid-table .col-delta{width:58px}
.boss-page .raid-table .col-tier{width:54px}
.boss-page .raid-table .col-member{width:128px}
.boss-page .raid-table .col-baseline{width:132px}
.boss-page .raid-table .col-target{width:152px}
.boss-page .raid-table .col-score{width:132px}
.boss-page .raid-table .col-diff{width:96px}
.boss-page .raid-table .col-growth{width:84px}
.boss-page .raid-table .col-gap{width:104px}
.boss-page .raid-table .col-result{width:104px}
.boss-page .raid-table .col-badge{width:96px}
.boss-page .raid-table th.col-rank,.boss-page .raid-table th.col-delta,.boss-page .raid-table th.col-tier{text-align:center}
.boss-page .raid-table th.col-baseline,.boss-page .raid-table th.col-target,.boss-page .raid-table th.col-score,.boss-page .raid-table th.col-diff,.boss-page .raid-table th.col-growth,.boss-page .raid-table th.col-gap{text-align:right}
.boss-page .raid-table th.col-member,.boss-page .raid-table th.col-result,.boss-page .raid-table th.col-badge{text-align:left}
/* 근거(목표 계산 소스) 가 잘리지 않도록: 두 줄로 접고 줄바꿈 허용 */
.boss-page .raid-table td.col-target{padding-top:5px!important;padding-bottom:5px!important;white-space:nowrap}
/* 목표 셀: 1줄 = 목표점수 + 증가율 배지, 2줄 = 증가량 + 근거/수정 버튼.
   이전엔 .target-evidence 가 flex-wrap 으로 버튼이 3줄로 깨졌습니다. */
.boss-page .raid-table td.col-target .target-main{display:flex;align-items:baseline;justify-content:flex-end;gap:6px;white-space:nowrap}
.boss-page .raid-table td.col-target .target-main strong{font-weight:820;font-size:.76rem}
.boss-page .raid-table td.col-target .target-rate{font-size:.63rem;font-weight:800;font-style:normal;font-variant-numeric:tabular-nums;color:#ffd479;background:rgba(255,212,121,.11);border:1px solid rgba(255,212,121,.28);border-radius:5px;padding:0 4px;line-height:1.5;white-space:nowrap}
.boss-page .raid-table td.col-target .target-sub{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap;white-space:nowrap;margin-top:2px;min-height:15px}
.boss-page .raid-table td.col-target .target-inc{font-size:.59rem;color:#8ea3bd;font-variant-numeric:tabular-nums;white-space:nowrap}
.boss-page .raid-table td.col-target .target-tag{font-size:.53rem;font-weight:800;color:#9fb4cd;border:1px solid #3a5070;border-radius:4px;padding:0 3px;line-height:1.5;white-space:nowrap}
.boss-page .raid-table td.col-target .target-acts{display:inline-flex;gap:3px;flex:0 0 auto;margin-left:auto}
.boss-page .raid-table td.col-target .target-acts .mini-edit{flex:0 0 auto;padding:0 6px;font-size:.55rem;line-height:16px;height:17px;white-space:nowrap}
.boss-page .raid-table td.col-target>strong{font-variant-numeric:tabular-nums}
@media(max-width:900px){.boss-page .raid-table{table-layout:auto}.boss-page .raid-table .col-target{width:auto}}

/* v31: 좌측 목표 진행 패널 (기준/현재/목표/부족/달성률) */
.side-progress{margin-top:9px;padding:9px 10px;border-radius:11px;border:1px solid #3b506f;background:linear-gradient(160deg,#16233a,#111c2e)}
.side-progress .side-card-title{color:#9fe3c6;margin-bottom:6px}
.side-progress>div:not(.side-card-title):not(.side-progress-note){display:grid;grid-template-columns:1fr auto;gap:8px;align-items:baseline;padding:3px 0;border-bottom:1px dashed #2c405c}
.side-progress>div:last-child{border-bottom:0}
.side-progress span{font-size:.65rem;color:#93a9c4}
.side-progress strong{font-size:.74rem;font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.side-progress strong.positive{color:#62e5ae}
.side-progress strong.negative{color:#ff8b98}
.side-progress strong.muted{color:#7d90a8}
.side-progress-note{margin-top:6px;padding-top:5px;border-top:1px dashed #2c405c;font-size:.58rem;color:#7f93ad;line-height:1.35}
.side-progress-empty{font-size:.66rem;color:#93a9c4;line-height:1.4}

/* v31: 목표 진행 패널 — 증가율 분포 / 상한 경고 */
.side-progress-split{margin-top:8px;padding-top:7px;border-top:1px dashed #2c405c}
.side-progress-split .side-card-title{margin-bottom:4px;color:#9fe3c6}
.side-progress-warn{margin-top:7px;padding:6px 8px;border-radius:8px;border:1px solid #6b4a2a;background:#2a1f14;color:#ffc46b;font-size:.6rem;line-height:1.4}