@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&family=Press+Start+2P&display=swap');

:root{color-scheme:dark;--bg:#10121b;--panel:#171a26;--panel-2:#1d2030;--line:#292c3c;--muted:#898da1;--text:#f4f3f7;--purple:#ad91ff;--purple-2:#8664ee;--green:#a9f074;--orange:#ffb76b;--red:#ff6e79;--blue:#76c6ff;--font:'Manrope',Inter,Segoe UI,sans-serif;--mono:'DM Mono',Consolas,monospace;--pixel:'Press Start 2P',monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font);font-size:13px;min-height:100vh}button,input,select{font:inherit}button{color:inherit}.app-shell{min-height:100vh;background:radial-gradient(ellipse at 66% 5%,rgba(86,72,142,.08),transparent 40%)}.topbar{height:65px;border-bottom:1px solid #222432;display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;background:rgba(16,18,27,.93);backdrop-filter:blur(16px);z-index:10}.brand{color:var(--text);text-decoration:none;display:flex;align-items:center;gap:10px}.brand>span:last-child{display:flex;gap:5px;align-items:baseline;letter-spacing:.05em}.brand strong{font-size:13px}.brand b{color:var(--purple);font-size:11px;letter-spacing:.13em}.brand-mark{width:22px;height:22px;display:grid;grid-template-columns:repeat(2,8px);grid-template-rows:repeat(2,8px);gap:2px;transform:rotate(45deg);margin:0 4px}.brand-mark i{display:block;background:var(--purple);box-shadow:0 0 12px #ad91ff66}.brand-mark i:nth-child(2),.brand-mark i:nth-child(3){background:#6e58bc}.topbar-center{font:10px var(--mono);letter-spacing:.08em;color:#aaaabd}.topbar-divider{margin:0 9px;color:#55586a}.live-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);box-shadow:0 0 8px #a9f07488;margin-right:8px;vertical-align:1px}.icon-button{border:1px solid var(--line);background:#191b28;border-radius:9px;width:33px;height:33px;color:var(--purple);cursor:pointer}.workspace{display:grid;grid-template-columns:214px minmax(0,1fr);min-height:calc(100vh - 65px)}.sidebar{border-right:1px solid #222432;padding:30px 16px 17px;display:flex;flex-direction:column;min-height:calc(100vh - 65px);position:sticky;top:65px;height:calc(100vh - 65px)}.sidebar-label,.eyebrow,.input-label,.stats-heading,.card-topline,.fighter-heading small,.fighter-heading>b,.arena-label,.round-label,.roster-count small,.source-label,.site-footer,.intro-footnote,.manager-count,.bid-info>span,.current-lot-label{font:9px var(--mono);letter-spacing:.12em;color:#85889b}.sidebar-label{padding:0 10px 14px}.main-nav{display:grid;gap:5px}.nav-item{height:42px;background:transparent;border:0;border-radius:8px;text-align:left;display:flex;align-items:center;gap:11px;color:#a9aabb;font-size:12px;padding:0 10px;cursor:pointer;transition:.18s}.nav-item:hover{background:#1b1d2a;color:#fff}.nav-item.active{background:#252337;color:#ede8ff;box-shadow:inset 2px 0 var(--purple)}.nav-icon{width:18px;text-align:center;color:#88829e;font-size:15px}.nav-item.active .nav-icon{color:var(--purple)}.nav-shortcut{margin-left:auto;font:9px var(--mono);color:#65677b}.sidebar-rule{height:1px;background:var(--line);margin:20px 4px}.season-card{border:1px solid #343046;background:linear-gradient(145deg,#27233a,#1a1b29 72%);border-radius:10px;padding:15px 13px 13px;position:relative;overflow:hidden}.season-card:after{content:'✦';position:absolute;right:8px;top:38px;color:#ae91ff12;font-size:66px}.season-card-top{display:flex;align-items:center;gap:7px}.season-cube{color:var(--purple);font-size:14px}.season-card .eyebrow{font-size:7px;color:#afa4cf}.season-card>strong{display:block;font-size:17px;line-height:1.2;margin-top:13px}.season-card p{font-size:10px;color:#a5a2b2;line-height:1.55;margin:9px 0 14px;max-width:150px}.text-button{border:0;background:none;padding:0;color:var(--purple);font-size:10px;font-weight:700;cursor:pointer}.text-button span{margin-left:5px}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:17px 2px 1px;display:flex;align-items:center;gap:9px}.player-avatar{width:31px;height:31px;background:#332c4c;color:#c7b8ff;display:grid;place-items:center;border-radius:8px;font:9px var(--mono);border:1px solid #584b7a}.player-copy{display:grid;gap:3px}.player-copy strong{font-size:10px}.player-copy span{font-size:9px;color:#898da1}.online-state{width:6px;height:6px;border-radius:50%;background:var(--green);margin-left:auto}.main-content{max-width:1500px;width:100%;padding:30px 34px 16px;margin:0 auto}.view{display:none;animation:fadeIn .3s ease}.view.active{display:block}@keyframes fadeIn{from{opacity:.3;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-heading{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 22px}.eyebrow{color:#9792aa}.heading-eyebrow{display:flex;align-items:center;gap:9px;font-size:9px}.sparkle{color:var(--purple);font-size:12px}.heading-line{height:1px;width:33px;background:#4a425f;margin-left:2px}.page-heading h1{font-size:31px;letter-spacing:-1.5px;margin:7px 0 4px;font-weight:800}.page-heading h1 span{color:var(--purple)}.page-heading p{margin:0;color:#9d9fb0;font-size:12px}.heading-stats{display:grid;gap:5px;text-align:right;padding-bottom:2px}.heading-stats span{font:9px var(--mono);color:#86899b;letter-spacing:.1em}.heading-stats strong{font:16px var(--mono);color:var(--green)}.heading-stats small{font-size:11px}.panel{background:var(--panel);border:1px solid #2b2e3d;border-radius:10px}.arena-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(290px,.8fr);gap:15px;align-items:start}.battle-card{padding:0 17px 14px;overflow:hidden}.card-topline{height:43px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #292c3b;font-size:8px}.card-topline .live-dot{width:5px;height:5px;margin-right:5px}.match-tag{color:#aaa0c5;background:#29253a;border:1px solid #3c3554;border-radius:4px;padding:5px 7px;font-size:8px}.fighter-bars{display:grid;grid-template-columns:1fr 35px 1fr;align-items:center;gap:12px;padding:14px 2px 12px}.fighter-heading{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-bottom:8px}.fighter-heading>div{display:grid;gap:3px;min-width:0}.fighter-heading small{font-size:7px;color:#8c8da2}.fighter-heading strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fighter-heading span{font-size:9px;color:#9699aa;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fighter-heading>b{font-size:8px;color:#d1d0db;letter-spacing:0}.health-track{height:6px;border-radius:5px;background:#30313f;overflow:hidden}.health-track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#91e960,#c1f48b);transition:width .5s ease;border-radius:5px}.fighter-bar-right{text-align:right}.fighter-bar-right .fighter-heading>div{order:2}.fighter-bar-right .fighter-heading>b{order:1}.fighter-bar-right .health-track i{margin-left:auto;background:linear-gradient(90deg,#ff9983,#fa637d)}.versus{font:9px var(--pixel);font-size:8px;text-align:center;color:#7e718f;text-shadow:0 0 9px #ae91ff88}.arena-canvas-wrap{position:relative;border-radius:8px;border:1px solid #343047;background:#121522;overflow:hidden;box-shadow:inset 0 0 35px #0009}.arena-canvas-wrap canvas{display:block;width:100%;height:auto;aspect-ratio:960/440;image-rendering:pixelated}.arena-overlay{pointer-events:none;position:absolute;inset:0;display:flex;align-items:flex-start;justify-content:space-between;padding:13px 14px}.arena-label,.round-label{font-size:7px;color:#b1a7c9;background:#171827b8;padding:6px 8px;border:1px solid #3c3953;border-radius:3px}.round-label{color:#b1f784}.arena-corner{position:absolute;width:14px;height:14px;border-color:#c7a6ff}.corner-tl{top:5px;left:5px;border-top:1px solid;border-left:1px solid}.corner-br{bottom:5px;right:5px;border-bottom:1px solid;border-right:1px solid}.battle-footer{display:flex;align-items:center;justify-content:space-between;padding:13px 2px 11px;color:#9a9cad;font-size:9px}.battle-footer>span{display:flex;align-items:center;gap:7px}.ping{width:5px;height:5px;background:var(--green);border-radius:50%;box-shadow:0 0 6px #a9f07488}.fight-button{display:flex;align-items:center;gap:9px;background:var(--purple);color:#15111f;border:0;border-radius:6px;padding:10px 13px;font-size:10px;font-weight:800;cursor:pointer;box-shadow:0 3px 0 #7156bd;transition:transform .15s,filter .15s}.fight-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.fight-button:active{transform:translateY(2px);box-shadow:0 1px 0 #7156bd}.fight-button>span{font-size:13px}.fight-button>b{font-size:12px;margin-left:5px}.combat-log{border-top:1px solid #292c3b;display:flex;align-items:baseline;gap:10px;min-height:30px;padding:10px 2px 0}.combat-log .log-time{font:8px var(--mono);color:var(--purple)}.combat-log p{font-size:9px;color:#9c9faf;margin:0}.fighter-select{padding:16px 15px 13px}.panel-title-row{display:flex;align-items:center;justify-content:space-between}.panel-title-row .eyebrow{font-size:8px}.panel-title-row h2{font-size:15px;letter-spacing:-.4px;margin:5px 0 0}.settings-glyph{color:#8d8b9c;font-size:15px}.input-label{display:block;font-size:7px;margin:17px 0 7px}.search-box,.roster-search{display:flex;align-items:center;gap:8px;border:1px solid #353849;background:#12141f;border-radius:6px;height:35px;padding:0 10px;color:#9f9daf}.search-box span,.roster-search span{font-size:18px;line-height:1}.search-box input,.roster-search input{width:100%;min-width:0;background:none;border:0;outline:0;color:var(--text);font-size:10px}.search-box input::placeholder,.roster-search input::placeholder{color:#74788b}.selected-fighters{position:relative;margin-top:13px;display:grid;gap:7px}.selected-card{display:flex;align-items:center;gap:9px;border:1px solid #343747;background:#1b1d2a;border-radius:6px;min-height:51px;padding:7px 9px;position:relative}.selected-color{width:5px;height:31px;background:var(--blue);border-radius:5px;box-shadow:0 0 10px #76c6ff55}.selected-two .selected-color{background:var(--red);box-shadow:0 0 10px #ff6e7955}.selected-details{display:grid;gap:3px;min-width:0;flex:1}.selected-details small{font:7px var(--mono);color:var(--blue);letter-spacing:.08em}.selected-two .selected-details small{color:var(--red)}.selected-details select{background:none;border:0;color:#f2f0f7;padding:0;width:100%;font-size:11px;font-weight:700;outline:none;appearance:none;cursor:pointer}.selected-details select option{background:#202231}.selected-series{font-size:8px;color:#898c9e}.selected-caret{color:#8b8da0;font-size:14px}.selection-vs{position:absolute;z-index:1;top:calc(50% - 7px);left:calc(50% - 12px);border:1px solid #4b465b;border-radius:4px;background:#29263a;color:#b8acdb;font:7px var(--mono);padding:3px 4px}.stats-block{margin-top:15px}.stats-heading{display:flex;justify-content:space-between;font-size:7px;padding-bottom:7px;border-bottom:1px solid #303343}.stats-heading span:last-child{color:#676a7b}.stat-row{display:grid;grid-template-columns:1fr 33px 33px;align-items:center;gap:6px;margin-top:9px}.stat-label{color:#a3a4b3;font-size:9px}.stat-meter{height:4px;background:#303342;border-radius:3px;overflow:hidden;grid-column:1/2;margin-top:-2px}.stat-meter i{display:block;height:100%;background:var(--blue);border-radius:3px}.stat-row:nth-child(odd) .stat-meter i{background:var(--red)}.stat-value{text-align:right;font:8px var(--mono);color:#c6c5d1}.panel-note{display:flex;gap:7px;margin-top:15px;padding:8px;background:#202131;border-radius:5px;color:#aaa3c0}.panel-note>span{font-size:12px;color:var(--purple)}.panel-note p{font-size:8px;line-height:1.5;color:#aaa8b5;margin:0}.site-footer{margin-top:22px;padding:13px 0 2px;border-top:1px solid #252735;display:flex;justify-content:space-between;font-size:7px;letter-spacing:.08em}.site-footer b{color:var(--purple);margin:0 4px}.footer-heart{color:#fa7684;font-size:10px;margin-left:4px}.hidden{display:none!important}

/* Tournament */
.tournament-grid{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(235px,.65fr);gap:15px;align-items:start}.tournament-main{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:0 12px}.tournament-main>.card-topline{grid-column:1/-1;padding:0 4px}.auction-stage{min-height:300px;border-right:1px solid #2a2d3b;padding:17px 18px 18px 6px;display:grid;align-items:center}.auction-intro{text-align:center;max-width:410px;margin:auto}.trophy-art{width:60px;height:60px;margin:0 auto 14px;display:grid;place-items:center;position:relative;border:1px solid #504463;border-radius:15px;color:var(--purple);font-size:28px;background:linear-gradient(145deg,#302940,#1c1b29);box-shadow:0 0 34px #af92ff12}.trophy-art span{position:absolute;font-size:12px;right:-5px;top:2px;color:var(--green)}.auction-intro .eyebrow{font-size:8px}.auction-intro h2{font-size:26px;letter-spacing:-1px;line-height:1.12;margin:9px 0}.auction-intro h2 span{color:var(--purple)}.auction-intro p{color:#a1a1b0;font-size:10px;line-height:1.65;margin:0 auto 14px;max-width:330px}.auction-intro .fight-button{margin:0 auto}.intro-footnote{font-size:7px;margin-top:13px;color:#828496}.intro-footnote span{color:#5f6172;margin:0 5px}.auction-controls{margin:13px 13px 13px 0;padding:14px;background:#1b1d2a;min-width:0}.wallet-icon{font-size:17px;color:var(--green);background:#29312b;border:1px solid #424b41;width:31px;height:31px;border-radius:8px;display:grid;place-items:center}.wallet-track{height:4px;background:#343545;margin:12px 0 13px;border-radius:4px;overflow:hidden}.wallet-track i{display:block;height:100%;background:var(--green);width:100%;transition:width .3s}.current-lot{min-height:112px;border:1px dashed #484459;background:#21212f;border-radius:7px;padding:11px;display:grid;align-items:center}.lot-placeholder{text-align:center;color:#89899b;font-size:9px;line-height:1.5}.lot-card{display:flex;align-items:center;gap:10px}.lot-sprite{width:68px;height:78px;flex:none;background:#2a2638;border-radius:6px;overflow:hidden;display:grid;place-items:center}.lot-sprite canvas{width:68px;height:78px;image-rendering:pixelated}.lot-copy{min-width:0;display:grid;gap:4px}.current-lot-label{font-size:6px;color:var(--purple)}.lot-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lot-copy span:last-child{font-size:8px;color:#9597a8}.bid-info{display:grid;gap:4px;margin:12px 0 9px}.bid-info>span{font-size:7px}.bid-info strong{font:11px var(--mono);color:#e4dbff}.bid-actions{display:grid;grid-template-columns:.7fr 1.3fr;gap:7px}.pass-button,.bid-button{border-radius:5px;min-height:34px;font-size:9px;font-weight:700;cursor:pointer}.pass-button{border:1px solid #414352;background:transparent;color:#c0becc}.bid-button{border:0;background:var(--purple);color:#17131f;box-shadow:0 2px 0 #6f55b8}.bid-button span{font:8px var(--mono);margin-left:4px}.pass-button:disabled,.bid-button:disabled{opacity:.42;cursor:not-allowed}.auction-hint{font-size:8px;color:#898b9d;line-height:1.5;margin:9px 0 0;min-height:25px}.auction-ledger{grid-column:1/-1;margin:0 13px 13px 0;padding:13px}.manager-count{font-size:7px}.manager-list{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:11px}.empty-managers{grid-column:1/-1;text-align:center;color:#7f8192;font-size:9px;padding:15px}.manager-card{background:#202230;border:1px solid #323545;border-radius:6px;padding:8px;min-width:0;display:grid;grid-template-columns:22px 1fr;gap:6px;align-items:center}.manager-avatar{width:22px;height:22px;border-radius:6px;background:#302c45;color:#c5b5ff;display:grid;place-items:center;font:7px var(--mono)}.manager-card.manager-human .manager-avatar{background:#334437;color:var(--green)}.manager-text{min-width:0;display:grid;gap:3px}.manager-text strong{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manager-text span{font-size:7px;color:#8c8d9e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.manager-status{grid-column:2;color:#ad91ff;font:7px var(--mono)}.bracket-stage{padding:13px 10px 18px;min-height:300px}.bracket-title{display:flex;align-items:end;justify-content:space-between;margin:0 0 14px}.bracket-title h2{margin:4px 0 0;font-size:18px}.bracket-title>span{font:8px var(--mono);color:#aaa0c5}.bracket-rounds{display:grid;grid-template-columns:repeat(3,minmax(110px,1fr));gap:12px}.bracket-round{display:grid;gap:8px;align-content:start}.bracket-round>h3{font:8px var(--mono);letter-spacing:.08em;color:#8f91a3;margin:0 0 2px}.bracket-match{border:1px solid #343647;background:#202230;border-radius:6px;padding:7px}.bracket-match.completed{border-color:#645a7a}.bracket-contender{display:flex;align-items:center;justify-content:space-between;gap:4px;padding:4px 3px;color:#b5b5c1;font-size:8px}.bracket-contender.winner{color:var(--green)}.bracket-contender small{font:7px var(--mono);color:#858697}.bracket-placeholder{height:44px;border:1px dashed #3a3b4c;border-radius:5px;color:#6f7182;display:grid;place-items:center;font-size:8px}.bracket-action{margin-top:13px}.bracket-action .fight-button{margin:auto}.tournament-side{display:grid;gap:13px}.rules-panel{padding:16px}.rules-panel h2{font-size:20px;line-height:1.2;letter-spacing:-.8px;margin:8px 0 14px}.rules-panel h2:after{content:'✦';color:var(--purple);font-size:13px;margin-left:7px;vertical-align:top}.rules-panel ol{padding:0;margin:0;list-style:none;display:grid;gap:12px}.rules-panel li{display:grid;grid-template-columns:24px 1fr;gap:8px;align-items:start}.rules-panel li>b{font:8px var(--mono);color:var(--purple);padding-top:2px}.rules-panel li span{display:grid;gap:4px}.rules-panel li strong{font-size:9px}.rules-panel li small{color:#9698a9;font-size:8px;line-height:1.5}.prize-panel{min-height:111px;background:linear-gradient(120deg,#2b273d,#201e2c);display:flex;align-items:center;gap:12px;padding:14px;position:relative;overflow:hidden}.prize-icon{height:38px;width:38px;flex:none;border:1px solid #55486c;background:#383049;border-radius:10px;color:#f0cc82;display:grid;place-items:center;font-size:20px}.prize-panel>div:nth-child(2){display:grid;gap:4px}.prize-panel small{font:7px var(--mono);letter-spacing:.07em;color:#c4ae78}.prize-panel strong{font-size:13px;line-height:1.15}.prize-panel span{font-size:8px;color:#a3a0ad}.prize-corner{position:absolute;right:-8px;bottom:-18px;font-size:65px;color:#e8c36c0d}

/* Roster */
.roster-heading{align-items:center}.import-button,.export-button{border:1px solid #504463;color:#d5c7ff;background:#282439;border-radius:6px;padding:9px 12px;font-size:9px;font-weight:700;cursor:pointer}.import-button:hover,.export-button:hover{background:#332d49}.import-button span{font-size:13px;margin-right:6px}.roster-toolbar{min-height:67px;padding:11px 13px;display:flex;align-items:center;gap:11px}.roster-count{display:flex;align-items:center;gap:9px;min-width:166px}.count-mark{width:33px;height:33px;border:1px solid #45405c;border-radius:7px;background:#2a2639;color:var(--purple);display:grid;place-items:center;font-size:16px}.roster-count>div{display:grid;gap:3px}.roster-count strong{font:15px var(--mono);color:#f5f2ff}.roster-count small{font-size:7px}.roster-search{max-width:350px;flex:1}.roster-toolbar select{height:35px;background:#12141f;border:1px solid #353849;border-radius:6px;padding:0 10px;color:#d2d2de;outline:none;font-size:9px;max-width:200px}.roster-toolbar select option{background:#202231}.export-button{margin-left:auto;background:#212332;border-color:#383b4b;color:#babac7}.roster-meta{display:flex;justify-content:space-between;align-items:center;margin:14px 2px 9px;color:#888b9c;font-size:9px}.source-label{font-size:7px;display:flex;align-items:center;gap:6px}.source-label i{display:inline-block;width:5px;height:5px;background:var(--green);border-radius:50%}.roster-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.character-card{border:1px solid #2f3241;background:#181a26;border-radius:8px;overflow:hidden;transition:transform .15s,border-color .15s}.character-card:hover{transform:translateY(-2px);border-color:#665981}.character-art{height:104px;position:relative;background:radial-gradient(ellipse at 50% 87%,var(--art-glow),transparent 52%),linear-gradient(135deg,#252539,#191a27);display:grid;place-items:center;border-bottom:1px solid #2d3040}.character-art canvas{width:74px;height:90px;image-rendering:pixelated;filter:drop-shadow(0 7px 4px #07070d99)}.rank-chip{position:absolute;top:7px;left:7px;border:1px solid #424153;background:#191a28c9;border-radius:4px;padding:4px 5px;color:#b3a8cd;font:7px var(--mono)}.media-chip{position:absolute;top:7px;right:7px;max-width:76%;padding:3px 4px;border:1px solid #494357;border-radius:4px;background:#191a28d9;color:#c1b7d7;font:6px var(--mono);letter-spacing:.035em;text-align:right;white-space:normal;line-height:1.35}.character-copy{padding:9px 9px 8px}.character-name{font-size:10px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-series{font-size:8px;color:#8f92a3;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.character-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:8px;padding-top:7px;border-top:1px solid #2b2e3d}.mini-stat{display:grid;gap:3px}.mini-stat span{font:6px var(--mono);color:#838697}.mini-stat b{font:8px var(--mono);color:#c5b7eb}.roster-footer{display:flex;justify-content:space-between;align-items:center;padding:11px 13px;margin-top:13px;color:#9799a8;font-size:8px;gap:12px}.roster-footer a{color:var(--purple);text-decoration:none;white-space:nowrap;font-weight:700}.empty-roster{grid-column:1/-1;padding:50px;text-align:center;color:#9698a9;font-size:11px;border:1px dashed #383a4a;border-radius:8px}.toast{position:fixed;left:50%;bottom:24px;z-index:30;transform:translate(-50%,20px);opacity:0;pointer-events:none;background:#2a2838;border:1px solid #594f70;color:#e4dcf6;border-radius:6px;padding:10px 15px;font-size:10px;box-shadow:0 8px 30px #0008;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}

@media(max-width:1100px){.workspace{grid-template-columns:185px 1fr}.main-content{padding:24px 20px}.arena-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,.8fr)}.tournament-grid{grid-template-columns:minmax(0,1.6fr) 230px}.tournament-main{grid-template-columns:minmax(0,1fr) 240px}.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.workspace{grid-template-columns:1fr}.sidebar{height:auto;min-height:0;position:static;border-right:0;border-bottom:1px solid var(--line);padding:10px 15px;display:flex;flex-direction:row;align-items:center;gap:12px}.sidebar-label,.sidebar-rule,.season-card,.sidebar-bottom{display:none}.main-nav{display:flex;width:100%;gap:6px}.nav-item{flex:1;justify-content:center;height:37px;padding:0 5px}.nav-shortcut{display:none}.main-content{padding:22px 16px}.arena-layout{grid-template-columns:minmax(0,1.4fr) minmax(235px,.9fr)}.tournament-grid{grid-template-columns:1fr}.tournament-side{grid-template-columns:1fr 1fr}.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:620px){.topbar{height:54px;padding:0 15px}.topbar-center{font-size:8px}.workspace{min-height:calc(100vh - 54px)}.page-heading{align-items:flex-start}.page-heading h1{font-size:26px}.page-heading p{font-size:10px;max-width:270px;line-height:1.5}.heading-stats{padding-top:12px}.heading-stats span{font-size:7px}.heading-stats strong{font-size:12px}.arena-layout{grid-template-columns:1fr}.fighter-select{order:-1}.fighter-select .input-label,.fighter-select .search-box,.fighter-select .panel-note{display:none}.selected-fighters{grid-template-columns:1fr 1fr;gap:9px}.selection-vs{top:calc(50% - 7px)}.selected-card{min-height:46px}.stats-block{margin-top:12px}.stat-row{margin-top:7px}.stat-comparison{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.fighter-bars{gap:7px}.fighter-heading strong{font-size:10px}.battle-card{padding:0 11px 12px}.arena-canvas-wrap canvas{min-height:160px;object-fit:cover}.tournament-main{grid-template-columns:1fr}.tournament-main>.card-topline{grid-column:1}.auction-stage{border-right:0;padding:15px 7px;min-height:260px}.auction-controls{margin:0 0 13px}.auction-ledger{margin:0 0 13px}.manager-list{grid-template-columns:repeat(2,1fr)}.tournament-side{grid-template-columns:1fr 1fr;gap:9px}.rules-panel{padding:12px}.rules-panel h2{font-size:17px}.rules-panel li small{font-size:7px}.prize-panel{padding:10px;gap:8px}.prize-icon{height:30px;width:30px}.prize-panel strong{font-size:11px}.bracket-rounds{grid-template-columns:1fr 1fr}.bracket-round:last-child{grid-column:1/-1}.roster-heading{gap:10px;align-items:flex-end}.import-button{padding:8px;font-size:8px;white-space:nowrap}.roster-toolbar{flex-wrap:wrap}.roster-count{min-width:calc(50% - 10px)}.roster-search{order:3;max-width:none;flex-basis:100%}.roster-toolbar select{flex:1}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.character-art{height:96px}.roster-meta{font-size:8px}.roster-footer{align-items:flex-start;flex-direction:column;line-height:1.5}.site-footer{font-size:6px;gap:8px}.site-footer span:last-child{text-align:right}}

/* Comparison meters and long local catalogs. */
.stat-row{grid-template-columns:minmax(0,1fr) 30px 30px;gap:5px 6px}
.stat-meter{grid-column:1/-1;position:relative;margin-top:-2px}
.stat-meter i,.stat-meter b{position:absolute;left:0;top:0;height:100%;border-radius:3px}
.stat-meter i{background:var(--blue)}
.stat-meter b{background:var(--red);opacity:.8}
.roster-toolbar .series-filter{height:35px;width:190px;max-width:200px;border:1px solid #353849;border-radius:6px;padding:0 10px;background:#12141f;color:#d2d2de;outline:none;font-size:9px}
.roster-toolbar .series-filter::placeholder{color:#858899}
.load-more{grid-column:1/-1;height:38px;border:1px solid #3d3b50;background:#201e2d;border-radius:6px;color:#c3b4e7;font-size:9px;cursor:pointer}
.load-more span{margin-left:5px}
.champion-banner{color:#f0d590;font:9px var(--mono);text-align:center;margin:4px auto 10px;padding:9px;border:1px solid #5b4b38;background:#342e2a;border-radius:5px}
.sound-on{box-shadow:0 0 0 2px #ad91ff55}
@media(max-width:620px){.roster-toolbar .series-filter{flex:1;max-width:none}}
.art-search-links{display:flex;justify-content:space-between;gap:4px;margin-top:8px;padding-top:6px;border-top:1px solid #2b2e3d}
.art-search-links a{color:#b6a8df;font:6px var(--mono);text-decoration:none;white-space:nowrap}
.art-search-links a:hover{color:#fff;text-decoration:underline}
.auction-config,.room-panel{padding:15px;margin:0 0 12px}
.auction-config .panel-title-row h2,.room-panel .panel-title-row h2{font-size:14px;margin:5px 0 0}
.auction-config-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}
.auction-config-grid label,.room-controls>label,.room-invite>div{display:grid;gap:6px;min-width:0}
.auction-config-grid label>span,.room-controls .input-label,.room-invite .input-label{font:7px var(--mono);letter-spacing:.1em;color:#898b9c;margin:0}
.auction-config-grid input,.auction-config-grid select,.room-controls input,.room-invite input{height:34px;min-width:0;border:1px solid #353849;border-radius:5px;background:#12141f;color:#dedce8;padding:0 9px;font-size:9px;outline:none}
.auction-config-grid input:focus,.auction-config-grid select:focus,.room-controls input:focus{border-color:#78689f}
.auction-config-note{color:#85889b;font-size:8px;line-height:1.45;margin:11px 0 0}
.mode-setting-help{display:block;color:#a9a2bc;font-size:8px;line-height:1.45;margin-top:6px;min-height:24px}
.roster-scroll-hint{margin:11px 2px 6px;color:#aaa2c3;font-size:9px}
.roster-scroll-area{max-height:min(68vh,820px);min-height:340px;overflow:auto;overscroll-behavior:contain;padding:2px 6px 8px 2px;border:1px solid #2b2e3d;border-radius:9px;background:#11131d55;scrollbar-width:thin;scrollbar-color:#625579 #1b1d29}
.roster-scroll-area::-webkit-scrollbar{width:10px}
.roster-scroll-area::-webkit-scrollbar-track{background:#1b1d29;border-radius:8px}
.roster-scroll-area::-webkit-scrollbar-thumb{background:#625579;border:2px solid #1b1d29;border-radius:8px}
.roster-scroll-area:focus-visible{outline:2px solid #ad91ff;outline-offset:2px}
.character-specialty{display:flex;align-items:center;justify-content:space-between;gap:5px;margin-top:8px}
.character-specialty>small{font:7px var(--mono);color:#c8bafa}
.mode-badge{display:inline-flex;align-items:center;min-height:18px;padding:3px 6px;border:1px solid #514969;border-radius:4px;background:#29243b;color:#d4c8ff;font:7px var(--mono);letter-spacing:.03em}
.mode-drague{border-color:#73404f;background:#38232d;color:#ffb0c7}.mode-cuisine{border-color:#6d5936;background:#30291f;color:#f3d18c}.mode-aura{border-color:#475f76;background:#202b38;color:#a9d8ff}.mode-souffrance{border-color:#71434a;background:#332125;color:#f7a2a5}
.character-lore{min-height:42px;margin:7px 0 0;color:#a3a4b2;font-size:8px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.profile-source{display:inline-block;margin-top:6px;color:#b5a4e8;font-size:7px;text-decoration:none}.profile-source:hover{text-decoration:underline;color:#fff}
.winner-showcase canvas#arenaCanvas{opacity:.15;filter:blur(2px);transform:scale(.97);transition:opacity .4s,filter .4s,transform .5s}
.winner-celebration{position:absolute;z-index:2;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;text-align:center;padding:14px;background:radial-gradient(ellipse at 50% 44%,#594375dd 0,#241d36ed 49%,#111522f5 100%);animation:winner-arrive .65s cubic-bezier(.2,.8,.2,1) both}
.winner-celebration:before,.winner-celebration:after{content:"✦";position:absolute;color:#f3d895;font-size:22px;animation:winner-twinkle 1.6s ease-in-out infinite alternate}.winner-celebration:before{left:14%;top:19%}.winner-celebration:after{right:14%;top:34%;animation-delay:.55s}
.winner-crown{color:#ffe49c;font-size:35px;line-height:1;text-shadow:0 0 20px #ffd16699;animation:winner-bounce 1.1s ease-in-out infinite}
.winner-sprite{height:40%;min-height:115px;max-height:220px;aspect-ratio:1;display:grid;place-items:center;margin:0 auto 7px;filter:drop-shadow(0 8px 8px #0009);animation:winner-bounce 1.35s ease-in-out infinite}
.winner-sprite-image,.winner-sprite canvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}
.winner-overline{color:#ead69d;font:8px var(--mono);letter-spacing:.16em;text-shadow:0 2px 8px #000}.winner-celebration>strong{max-width:92%;margin-top:6px;color:#fff;font-size:clamp(18px,4vw,31px);line-height:1.1;text-shadow:0 3px 12px #090711;overflow-wrap:anywhere}.winner-celebration>span{margin-top:5px;color:#c8bed7;font-size:9px}.winner-sparkles{margin-top:12px;color:#f0d895;font-size:17px;letter-spacing:.25em;animation:winner-twinkle 1.4s ease-in-out infinite alternate}
@keyframes winner-arrive{from{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1)}}
@keyframes winner-bounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes winner-twinkle{from{opacity:.45;filter:brightness(.85)}to{opacity:1;filter:brightness(1.4)}}
@media(max-width:850px){.roster-scroll-area{max-height:64vh;min-height:300px}}
@media(max-width:620px){.mode-setting-help{font-size:7px}.roster-scroll-area{max-height:60vh;min-height:280px;padding-right:4px}.winner-crown{font-size:28px}.winner-sprite{min-height:92px;max-height:155px}.winner-overline{font-size:6px}.winner-celebration>span{font-size:8px}}
.room-status-dot{width:7px;height:7px;border-radius:50%;background:#77798b;box-shadow:0 0 8px #77798b55}
.room-status-dot.connected{background:var(--green);box-shadow:0 0 8px #a9f07488}
.room-controls{display:grid;grid-template-columns:1fr auto 1fr auto;align-items:end;gap:9px;margin-top:13px}
.room-action{min-height:34px;padding:8px 12px;font-size:9px;box-shadow:0 2px 0 #7156bd}
.room-join-button{min-height:34px;border:1px solid #504463;border-radius:6px;background:#282439;color:#d5c7ff;padding:0 12px;font-size:9px;font-weight:700;cursor:pointer}
.room-join-button:hover{background:#332d49}
.room-invite{display:flex;gap:9px;align-items:end;margin-top:11px}
.room-invite>div{flex:1}
.room-invite input{width:100%}
.room-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:11px;color:#888b9c;font-size:8px}
.room-participant-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.room-participant{display:flex;align-items:center;gap:6px;border:1px solid #363848;background:#202230;border-radius:5px;padding:6px 8px;color:#d3cfdf;font-size:8px}
.room-participant i{width:5px;height:5px;border-radius:50%;background:var(--green)}
.room-empty{color:#77798b;font-size:8px}
.sealed-offer{display:grid;gap:6px;margin:10px 0;color:#999aab;font:7px var(--mono);letter-spacing:.1em}
.sealed-offer input{height:34px;border:1px solid #454052;border-radius:5px;background:#171824;color:#efeafa;padding:0 9px;font:10px var(--mono)}
.room-panel button:disabled,.auction-config input:disabled,.auction-config select:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:850px){.room-controls{grid-template-columns:1fr auto}.room-name-field{grid-column:1}.room-action{grid-column:2;grid-row:1}.room-code-field{grid-column:1}.room-controls .room-join-button{grid-column:2;grid-row:2}}
@media(max-width:620px){.auction-config-grid{grid-template-columns:1fr 1fr}.room-controls{grid-template-columns:1fr}.room-name-field,.room-code-field,.room-action,.room-controls .room-join-button{grid-column:1;grid-row:auto}.room-action,.room-controls .room-join-button{width:100%}.room-invite{align-items:stretch;flex-direction:column}.room-meta{align-items:flex-start;flex-direction:column}}
.manager-text span{white-space:normal;line-height:1.4;overflow-wrap:anywhere}.bracket-contender{min-width:0}.bracket-contender span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-bye{border-color:#3f4c3d}.bye-label{display:block;padding:3px;color:var(--green);font:6px var(--mono);text-align:right}
.arena-dialog{width:min(900px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:17px;border:1px solid #4c4562;border-radius:12px;background:#171a26;color:var(--text);box-shadow:0 22px 80px #000b;overflow:auto}.arena-dialog::backdrop{background:#070811d9;backdrop-filter:blur(5px)}.arena-modal-head{display:flex;justify-content:space-between;align-items:center;padding:1px 4px 12px}.arena-modal-head h2{font-size:17px;margin:4px 0 0}.arena-dialog-close{width:34px;height:34px;border:1px solid #404255;border-radius:7px;background:#202230;color:#d8d5e2;font-size:23px;line-height:1;cursor:pointer}.arena-dialog-close:hover{border-color:var(--purple);color:#fff}.arena-dialog .battle-card{background:#171a26}.arena-dialog .arena-canvas-wrap{width:min(100%,640px,72dvh);aspect-ratio:1;margin:0 auto}.arena-dialog .arena-canvas-wrap canvas{width:100%;height:100%;aspect-ratio:1;object-fit:contain}.arena-dialog .battle-footer{gap:10px}.arena-dialog .fight-button{white-space:nowrap}
@media(max-width:620px){.arena-dialog{padding:9px;width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}.arena-dialog .battle-card{padding:0 7px 10px}.arena-dialog .card-topline{height:36px;font-size:7px}.arena-dialog .fighter-bars{grid-template-columns:1fr 23px 1fr;gap:5px;padding:10px 0}.arena-dialog .fighter-heading{display:block}.arena-dialog .fighter-heading strong{font-size:9px}.arena-dialog .fighter-heading span{font-size:7px}.arena-dialog .fighter-heading>b{display:block;margin-top:3px}.arena-dialog .battle-footer{align-items:stretch;flex-direction:column}.arena-dialog .battle-footer .fight-button{justify-content:center}}
.character-art img.character-sprite{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 7px 5px #07070dcc)}
.lot-sprite img.lot-character-sprite{width:100%;height:100%;object-fit:contain;image-rendering:pixelated}

@media(max-width:1250px){.roster-toolbar{flex-wrap:wrap}.roster-toolbar select{flex:1}.roster-search{max-width:none}}

/* Custom character creator */
.roster-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.secondary-import{background:#202230;border-color:#383b4b;color:#bbb9c8}.add-character-panel{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(260px,1.2fr);gap:22px;padding:20px;margin:-4px 0 14px}.add-character-copy h2{font-size:17px;margin:6px 0}.add-character-copy p{font-size:9px;line-height:1.5;color:#999bac;max-width:320px}.image-upload{width:148px;height:148px;display:grid;place-items:center;overflow:hidden;border:1px dashed #645780;border-radius:9px;background:radial-gradient(ellipse at 50% 80%,#76609b44,transparent 68%),#141520;cursor:pointer;color:#cab8f6;text-align:center}.image-upload:hover{border-color:#ae91ff;background-color:#211d2c}.image-upload img{width:100%;height:100%;object-fit:cover}.image-upload span{display:grid;gap:6px}.image-upload b{font-size:28px;font-weight:400}.image-upload small{font-size:8px;color:#b2a9c7}.add-character-fields{display:grid;align-content:center;gap:13px}.add-character-fields label{display:grid;gap:6px}.add-character-fields label>span{font:7px var(--mono);letter-spacing:.1em;color:#9294a6}.add-character-fields input,.add-character-fields select{height:38px;min-width:0;border:1px solid #383b4c;border-radius:6px;background:#12141f;color:#e7e4ef;padding:0 10px;font-size:10px;outline:none}.add-character-fields input:focus,.add-character-fields select:focus{border-color:#8975b4}.add-character-buttons{display:flex;gap:9px;align-items:center;margin-top:3px}.add-character-buttons .fight-button{min-height:36px;padding:0 15px;font-size:9px}.cancel-add-button{height:36px;padding:0 13px;border:1px solid #3a3c4b;border-radius:6px;background:#202230;color:#c0bfca;font-size:9px;cursor:pointer}.cancel-add-button:hover{border-color:#6a617e;color:#fff}
@media(max-width:620px){.roster-actions{width:100%;justify-content:stretch}.roster-actions button{flex:1}.add-character-panel{grid-template-columns:1fr;gap:12px;padding:14px}.add-character-copy{display:grid;grid-template-columns:1fr auto;column-gap:10px}.add-character-copy .eyebrow,.add-character-copy h2,.add-character-copy p{grid-column:1}.image-upload{grid-column:2;grid-row:1/4;width:96px;height:112px}.add-character-buttons{flex-wrap:wrap}}

/* Three anime game modes */
.game-mode-panel{padding:15px;margin:0 0 12px}.game-mode-panel .panel-title-row h2{font-size:15px;margin:5px 0 0}.game-mode-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.game-mode-card{min-height:132px;display:grid;justify-items:start;align-content:start;gap:7px;padding:13px;border:1px solid #343647;border-radius:8px;background:linear-gradient(145deg,#1c1e2b,#151722);text-align:left;cursor:pointer;transition:.18s}.game-mode-card:hover{transform:translateY(-2px);border-color:#746193}.game-mode-card.active{border-color:#a78be7;background:linear-gradient(145deg,#302742,#1b1b29);box-shadow:inset 0 0 0 1px #a78be733,0 5px 20px #08070d55}.game-mode-icon{width:28px;height:28px;display:grid;place-items:center;border:1px solid #51466b;border-radius:7px;background:#282338;color:#d2c2ff;font-size:16px}.game-mode-card strong{font-size:12px;color:#f1eef9}.game-mode-card small{max-width:270px;color:#a1a1b2;font-size:8px;line-height:1.5}.game-mode-card i{color:#c1b3df;font:7px var(--mono);font-style:normal}.game-mode-description{margin:11px 2px 0;color:#a9a0bc;font-size:9px}.mode-setting-disabled{opacity:.4;pointer-events:none}.quick-result{padding:28px 18px;text-align:center}.quick-result h2{margin:8px 0;font-size:23px}.quick-result>p{max-width:520px;margin:0 auto 20px;color:#a6a6b6;font-size:10px;line-height:1.6}.quick-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:18px 0}.quick-team{padding:12px;border:1px solid #333647;border-radius:7px;background:#151722;text-align:left}.quick-team>strong{font-size:10px}.quick-team>div{display:grid;gap:6px;margin-top:8px}.quick-team>div>span{display:flex;align-items:center;gap:7px;color:#c9c4d4;font-size:8px}.quick-team img{width:28px;height:28px;object-fit:cover;border-radius:4px}.power-compare{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;max-width:560px;margin:24px auto}.power-compare article{min-height:145px;display:grid;align-content:center;gap:7px;padding:15px;border:1px solid #45405c;border-radius:9px;background:radial-gradient(ellipse at 50% 0,#795ba533,transparent 65%),#171824}.power-compare article strong{font-size:13px}.power-compare article span{color:#999bac;font-size:9px}.power-compare article>b{color:#e5cdff;font:26px var(--mono)}.power-compare article>b small{font-size:10px;color:#9893a7}.power-compare>i{color:#f2cf8d;font:italic bold 14px var(--mono)}.quick-result h3{font-size:14px;color:#e5d6ad}
@media(max-width:620px){.game-mode-cards{grid-template-columns:1fr;gap:7px}.game-mode-card{min-height:0;grid-template-columns:32px 1fr;align-items:center;column-gap:8px;padding:9px}.game-mode-icon{grid-row:1/3}.game-mode-card strong,.game-mode-card small,.game-mode-card i{grid-column:2}.game-mode-card small{max-width:none}.power-compare{gap:6px}.power-compare article{min-height:120px;padding:8px}.power-compare article strong{font-size:10px}.quick-result{padding:20px 6px}}

.game-mode-select{display:grid;gap:6px;max-width:360px;margin-top:13px}.game-mode-select>span{font:7px var(--mono);letter-spacing:.1em;color:#9294a6}.game-mode-select select{height:35px;border:1px solid #383b4c;border-radius:6px;background:#12141f;color:#e7e4ef;padding:0 10px;font-size:9px}.auction-only-setting{transition:opacity .15s}

/* Roster license filter and continuous list */
.roster-scroll-area{scroll-behavior:smooth;overscroll-behavior-y:contain}.roster-toolbar .series-filter{border-color:#51476b;background:#211e2d;color:#ddd4f4}.roster-scroll-hint span{color:#c4b4ec;font-family:var(--mono)}

/* License groups and character power estimate */
.license-group{grid-column:1/-1;min-width:0}.license-group>h2{display:flex;align-items:center;gap:9px;margin:8px 2px 10px;padding:0 0 8px;border-bottom:1px solid #373447;color:#dcd3ef;font-size:14px}.license-group>h2 small{color:#87899b;font:8px var(--mono)}.license-character-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.power-estimate-line{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;padding:10px;border:1px solid #373247;border-radius:6px;background:#211d2c;color:#aaa0bd;font:8px var(--mono)}.power-estimate-line strong{color:#f0d08b;font-size:14px}.power-estimate-line small{grid-column:1/-1;font:8px var(--font);color:#858699}.power-rating{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:6px 7px;border-radius:5px;background:#272337;color:#aaa0bd;font:7px var(--mono)}.power-rating strong{color:#f2d38f;font-size:10px}.character-abilities{margin:6px 0 0;color:#b4aad0;font-size:8px;line-height:1.4}.standalone-character-form{margin-top:0}
@media(max-width:1100px){.license-character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:850px){.license-character-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:620px){.license-character-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Editable roster categories */
.edit-mode-toggle{height:35px;padding:0 10px;border:1px solid #5a4b72;border-radius:6px;background:#282439;color:#d8c7ff;font-size:8px;font-weight:700;cursor:pointer}.edit-mode .edit-mode-toggle{background:#3b2d26;border-color:#876343;color:#ffdaa7}.category-editor{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0 0 12px;padding:14px;border:1px solid #3b354a;border-radius:8px;background:#171923}.category-editor h3{margin:0 0 9px;color:#ddd3f1;font-size:11px}.category-add-row{display:flex;gap:5px}.category-add-row input{min-width:0;flex:1;height:31px;padding:0 8px;border:1px solid #36394a;border-radius:5px;background:#10121b;color:#eee;font-size:8px}.category-add-row button,.category-edit-row button{border:1px solid #51476a;border-radius:5px;background:#292438;color:#d9cbf4;padding:0 8px;font-size:8px;cursor:pointer}.category-list{display:grid;gap:5px;max-height:180px;overflow:auto;margin-top:8px}.category-edit-row{display:flex;align-items:center;gap:5px;min-width:0}.category-edit-row span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#bdb9c9;font-size:8px}.category-edit-row button{height:25px}.rename-license-button{margin-left:auto;border:1px solid #51476a;border-radius:4px;background:#292438;color:#d9cbf4;padding:4px 7px;font-size:7px;cursor:pointer}.license-group>h2{display:flex;align-items:center;gap:8px}@media(max-width:800px){.category-editor{grid-template-columns:1fr 1fr}}@media(max-width:560px){.category-editor{grid-template-columns:1fr}.edit-mode-toggle{flex:1}}

/* DUELVERSE — red vs green arena identity */
:root{--bg:#0d1310;--panel:#141c17;--panel-2:#1b261e;--line:#29372c;--muted:#8d9b90;--text:#f1f6f1;--purple:#a8ef76;--purple-2:#79cb52;--green:#8df06d;--orange:#ffc86f;--red:#ff5f62;--blue:#8df06d;--font:'Manrope',Inter,Segoe UI,sans-serif;--mono:'DM Mono',Consolas,monospace}
body{background:radial-gradient(ellipse at 12% 24%,#17452a33,transparent 36%),radial-gradient(ellipse at 88% 20%,#581c2638,transparent 35%),var(--bg)}.app-shell{background:radial-gradient(ellipse at 50% 0,#21382922,transparent 48%)}.topbar{border-bottom-color:#304035;background:rgba(11,17,13,.94)}.brand b{color:var(--green)}.brand-mark i{background:var(--green);box-shadow:0 0 12px #8df06d66}.brand-mark i:nth-child(2),.brand-mark i:nth-child(3){background:#ff6569}.topbar-center{color:#c1c9c2}.team-red-label{color:#ff7377}.team-green-label{color:#9bf37c}.live-dot{background:var(--green);box-shadow:0 0 9px #8df06d88}.nav-item.active{border-color:#526e48;background:linear-gradient(100deg,#27502e66,#42232b66);box-shadow:inset 3px 0 #92ec71}.nav-icon{color:#a5ed7a}.season-card{background:linear-gradient(145deg,#1c3022,#211d22);border-color:#344637}.season-cube{color:#ff797c}.page-heading h1 span{color:#a2ef77}.eyebrow{color:#aab7aa}.heading-line{background:linear-gradient(90deg,#8be66e,#ff6469)}.panel{border-color:#29372e;background:linear-gradient(145deg,#171f19,#131a15)}.auction-config,.room-panel,.game-mode-panel{box-shadow:0 12px 32px #02060344}.settings-glyph{color:#9ca99d}.fight-button{background:linear-gradient(100deg,#a4ef76,#75cf67);color:#11190f;box-shadow:0 3px 0 #4f9c4d}.fight-button:hover{filter:brightness(1.08)}.room-join-button,.import-button{border-color:#476044;background:#202d22;color:#d4f3c3}.room-join-button:hover,.import-button:hover{background:#2a3b2b}.secondary-import,.export-button{border-color:#49383b;background:#281f22;color:#ffc3c3}.export-button:hover{background:#352528}.wallet-icon,.wallet-track i{color:#a1ef77}.wallet-track i{background:linear-gradient(90deg,#75cd69,#b1f477)}.bid-button{background:linear-gradient(100deg,#a4ef76,#75cf67);color:#10190f}.pass-button{border-color:#80464a;background:#322124;color:#ffb2b4}.manager-human{border-color:#4f7944;background:#203226}.manager-status{color:#9eec7c}.room-status-dot.connected{background:#91ed70;box-shadow:0 0 9px #8df06d88}.roster-toolbar,.category-editor{border-color:#304033;background:#151e17}.roster-toolbar select,.roster-search,.add-character-fields input,.add-character-fields select{border-color:#354437;background:#101711;color:#e2ece1}.roster-toolbar .series-filter{border-color:#466342;background:#1b2a1d;color:#dff5d5}.count-mark{border-color:#52664c;background:#1d2d20;color:#a3ef7c}.character-card{border-color:#334037;background:#151d17}.character-card:hover{border-color:#8cd56d}.character-art{background:radial-gradient(ellipse at 12% 80%,#71da5b33,transparent 50%),radial-gradient(ellipse at 88% 18%,#fb5d6230,transparent 46%),linear-gradient(135deg,#202c23,#21191c);border-bottom-color:#354239}.rank-chip{border-color:#445448;background:#172119;color:#d2e2d0}.media-chip{border-color:#554044;background:#21191bd9;color:#ffdbdc}.power-rating{background:linear-gradient(90deg,#243723,#302023);color:#bdc8bb}.power-rating strong{color:#aff181}.power-estimate-line{border-color:#40523c;background:linear-gradient(100deg,#233723,#332326);color:#cad7c7}.power-estimate-line strong{color:#c4f59b}.game-mode-card{border-color:#39463b;background:linear-gradient(140deg,#1d2920,#211c1e)}.game-mode-card:hover{border-color:#8cda71}.game-mode-card.active{border-color:#8fe176;background:linear-gradient(110deg,#254329,#392124);box-shadow:inset 0 0 0 1px #96e77833,0 5px 20px #03070377}.game-mode-icon{border-color:#536849;background:linear-gradient(145deg,#29432b,#402529);color:#c5f3a9}.game-mode-description{color:#c3d0c1}.versus-stamp{display:flex;align-items:center;gap:7px;font:8px var(--mono);letter-spacing:.08em}.versus-stamp b:first-child{color:#ff777b}.versus-stamp b:last-child{color:#9af079}.versus-stamp span{padding:4px 6px;border:1px solid #53614f;border-radius:4px;background:linear-gradient(90deg,#203822,#392226);color:#f0eee9;font-weight:700}.nav-shortcut{color:#819183}.roster-scroll-area{border-color:#334339;background:#0d140f77;scrollbar-color:#66775e #18211a}.roster-scroll-area::-webkit-scrollbar-track{background:#18211a}.roster-scroll-area::-webkit-scrollbar-thumb{background:#66775e;border-color:#18211a}.license-group>h2{border-color:#354337;color:#e0ecdf}.rename-license-button,.category-add-row button,.category-edit-row button{border-color:#52664d;background:#213024;color:#d3efc2}.category-editor h3{color:#d8edcf}.category-add-row input{border-color:#3c4a3e;background:#101711;color:#eaf1e9}.edit-mode-toggle{border-color:#56694e;background:#253327;color:#d7f2c8}.mode-setting-help{color:#bbcfb8}.roster-meta,.roster-footer{color:#a1ada1}.source-label i{background:#98ed78}.site-footer{border-color:#29382d;color:#b1bcb2}.site-footer b{color:#ff777b}.arena-dialog{border-color:#52604b;background:#141c17}.arena-dialog .battle-card{background:#141c17}.arena-dialog-close:hover{border-color:#95e875}.fighter-bar-left .health-track i{background:linear-gradient(90deg,#4ba95b,#a6f17a)}.fighter-bar-right .health-track i{background:linear-gradient(90deg,#df494f,#ff8684)}.fighter-bar-left .fighter-heading strong{color:#b3f08d}.fighter-bar-right .fighter-heading strong{color:#ff9b9d}.versus{border-color:#765047;background:linear-gradient(120deg,#29432a,#492529);color:#ffe4d4}.fighter-select,.selected-card{border-color:#354337;background:#171f19}.selected-two{border-color:#694044;background:#281d20}.selected-two .selected-color{background:#ff696e}.selected-two .selected-details small{color:#ff8588}.selected-color{background:#93ed72}.stat-meter i{background:#8ee66f}.stat-row:nth-child(odd) .stat-meter i{background:#ff676c}.bracket-contender.winner{border-color:#78c95f;background:#203423}.bracket-bye{border-color:#536548}.champion-banner{border-color:#687c4c;background:#2c3725;color:#d7f29a}.winner-celebration{background:radial-gradient(ellipse at 15% 48%,#367843cc 0,#17291df0 45%,#111711f8 100%)}.winner-crown{color:#bdff83}.character-specialty .mode-badge{border-color:#526449;background:#263326;color:#c6ecad}.toast{border-color:#52654a;background:#222d23;color:#edfae6}
@media(max-width:620px){.versus-stamp{font-size:7px}.page-heading h1 span{color:#a2ef77}}
.footer-red-dot,.footer-green-dot{display:inline-block;width:6px;height:6px;border-radius:50%;vertical-align:1px}.footer-red-dot{background:#ff6569;box-shadow:0 0 8px #ff656988}.footer-green-dot{background:#93ed72;box-shadow:0 0 8px #93ed7288}

/* Compact VS mark: green lightning V against red S */
.topbar-center.duel-logo{display:flex;align-items:center;justify-content:center;gap:2px;min-width:50px;font-family:var(--font);font-size:23px;font-weight:900;line-height:1;letter-spacing:-.12em}.duel-logo .duel-v{position:relative;color:#91ee70;text-shadow:0 0 12px #82e75b66}.duel-logo .duel-v i{position:absolute;left:50%;top:50%;transform:translate(-48%,-46%) rotate(7deg);color:#efffe7;font-family:var(--mono);font-size:13px;font-style:normal;line-height:1;text-shadow:0 0 8px #a0ff7d}.duel-logo .duel-s{color:#ff6268;text-shadow:0 0 12px #ff555f77}

/* Brand mark now carries the VS logo; keep it between icon and wordmark. */
.brand{gap:9px}.brand-mark.duel-logo{width:36px;height:30px;display:flex;align-items:center;justify-content:center;gap:0;transform:none;margin:0;font-family:var(--font);font-size:23px;font-weight:900;line-height:1;letter-spacing:-.12em}.brand-mark.duel-logo .duel-v{color:#91ee70;text-shadow:0 0 10px #82e75b66}.brand-mark.duel-logo .duel-s{color:#ff6268;text-shadow:0 0 10px #ff555f77}.brand-mark.duel-logo .duel-lightning{z-index:1;margin:0 -1px;color:#f0ffe9;font:12px var(--mono);font-style:normal;text-shadow:0 0 8px #a0ff7d}.topbar-center.duel-logo{display:none}
.brand-mark.duel-logo{width:43px;gap:1px;font-size:23px;letter-spacing:-.08em}.brand-mark.duel-logo .duel-lightning{display:block;width:15px;height:25px;flex:0 0 15px;margin:0 -1px;overflow:visible;filter:drop-shadow(0 0 4px #a4ff79aa)}.brand-mark.duel-logo .duel-lightning path{fill:#f5ffe9;stroke:#93ee70;stroke-width:1.25;stroke-linejoin:round}

/* Competitive angular V/S monogram, gold lightning separator */
.brand-mark.duel-logo{width:48px;gap:1px;font-family:'Oxanium','Arial Black',sans-serif;font-size:25px;font-weight:800;letter-spacing:-.07em}.brand-mark.duel-logo .duel-v,.brand-mark.duel-logo .duel-s{font-family:'Oxanium','Arial Black',sans-serif;font-weight:800;transform:skewX(-7deg)}.brand-mark.duel-logo .duel-lightning{width:17px;height:29px;flex-basis:17px;margin:0 1px;filter:drop-shadow(0 0 5px #ffd43b99)}.brand-mark.duel-logo .duel-lightning path{fill:#ffe45c;stroke:#ffb927;stroke-width:1.7;stroke-linejoin:bevel}
.duel-vote-panel{margin-top:12px;padding:16px;border:1px solid #526347;border-radius:8px;background:linear-gradient(110deg,#1e3423,#2d2021)}
.duel-vote-panel>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px}
.duel-vote-panel strong{font-size:14px}.duel-vote-panel span{font-size:11px;color:#d3ded4}
.duel-vote-panel p{margin:7px 0 12px;color:#eff5ee;font-size:13px}
.duel-vote-actions{display:flex;gap:10px}
.duel-vote-actions button{min-height:44px;flex:1;border:1px solid #679456;border-radius:6px;background:#213925;color:#e6f8df;font-size:12px;font-weight:700;cursor:pointer}
.duel-vote-actions button+button{border-color:#985355;background:#392426;color:#ffe5e5}
.duel-vote-actions button:disabled{opacity:.55;cursor:default}
.character-image-edit{display:inline-flex;align-items:center;justify-content:center;position:relative;overflow:hidden;min-height:34px;margin-top:8px;padding:6px 9px;border:1px dashed #8cdb70;border-radius:5px;background:#1b2d1d;color:#dbf8cf;font-size:10px;font-weight:700;cursor:pointer}
.character-image-edit input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
@media(max-width:560px){.duel-vote-actions{flex-direction:column}}

/* Lisibilité générale : texte courant, contrôles et états interactifs */
body{font-size:14px;line-height:1.55}
.main-content{padding-top:34px}
.page-heading h1{font-size:clamp(30px,3vw,38px);line-height:1.18}
.page-heading p,.auction-intro p,.season-card p{font-size:13px;line-height:1.65;color:#c0c9c1}
.eyebrow,.sidebar-label,.input-label,.card-topline,.manager-count,.bid-info>span,.current-lot-label,.source-label,.intro-footnote,.site-footer{font-size:10px;letter-spacing:.08em;color:#b0bdb2}
.nav-item{font-size:14px;min-height:46px}
.nav-shortcut,.player-copy span{font-size:10px;color:#aab6ab}
.season-card p{max-width:175px}
.panel-title-row h2,.rules-panel h2{font-size:18px;line-height:1.3}
.auction-config-grid label>span,.game-mode-select>span,.auction-config label>span{font-size:11px;color:#d0d9d1;letter-spacing:.04em}
.auction-config-grid input,.auction-config-grid select,.game-mode-select select,.room-controls input,.room-invite input{min-height:40px;font-size:13px}
.game-mode-card{min-height:150px;padding:16px;gap:9px}
.game-mode-card strong{font-size:14px}
.game-mode-card small,.game-mode-card i,.game-mode-description{font-size:11px;line-height:1.55}
.fight-button,.room-join-button,.import-button,.bid-button,.pass-button{min-height:42px;font-size:12px}
.roster-actions{max-width:560px}
.roster-toolbar{margin-bottom:14px;gap:12px}
.roster-toolbar select,.roster-search{height:42px;min-height:42px;font-size:13px}
input.roster-search{display:block;padding:0 12px;color:#f1f6f1}
input.roster-search::placeholder{color:#c0c9c1}
.roster-toolbar select{max-width:none;flex:1;min-width:150px}
.roster-toolbar .series-filter{width:auto;max-width:none}
.roster-meta,.roster-scroll-hint,.roster-footer{font-size:11px;line-height:1.5}
.roster-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.character-art{height:132px}
.character-name{font-size:13px}
.character-series,.character-abilities,.character-lore{font-size:11px;line-height:1.5}
.power-rating,.character-specialty,.mini-stat span,.mini-stat b{font-size:10px}
.category-edit-row span{font-size:11px}
.category-edit-row button,.category-add-row button,.rename-license-button{min-height:34px;padding:5px 9px;font-size:10px}
.add-character-fields label>span,.power-estimate-line{font-size:11px}
.add-character-fields input{min-height:40px;font-size:13px}
.add-character-buttons{flex-wrap:wrap}
.quick-result>p,.quick-team>strong,.quick-team>div>span,.power-compare article span{font-size:12px;line-height:1.55}
.quick-team>strong{font-size:13px}
.manager-text strong,.manager-status,.auction-hint,.lot-placeholder{font-size:11px;line-height:1.5}
button,select,input{touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #ffe45c;outline-offset:3px}
@media(max-width:1000px){.roster-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.roster-actions{justify-content:flex-start}.roster-heading{align-items:flex-start;gap:15px;flex-direction:column}.main-content{padding:22px 18px 16px}}
@media(max-width:480px){.roster-grid{grid-template-columns:1fr}.roster-toolbar select{min-width:100%}.game-mode-cards{grid-template-columns:1fr}.game-mode-card{min-height:0}.page-heading h1{font-size:29px}}
.roster-quick-link{margin-top:8px;padding:9px 11px;border:1px solid #526e48;border-radius:6px;background:linear-gradient(100deg,#203b25,#302124);color:#e8f1e5;font-size:10px;font-weight:700;cursor:pointer}.roster-quick-link b{margin-left:7px;color:#a2ef77}.roster-quick-link:hover{border-color:#9be879;background:linear-gradient(100deg,#29472d,#3b2729)}
.roster-source-tabs{display:flex;gap:8px;margin:4px 0 16px;border-bottom:1px solid #344238}.roster-source-tab{padding:10px 14px;border:1px solid transparent;border-bottom:0;border-radius:7px 7px 0 0;background:transparent;color:#a8b6a8;font-size:11px;font-weight:700;cursor:pointer}.roster-source-tab:hover,.roster-source-tab.active{border-color:#455642;background:linear-gradient(110deg,#203b25,#302124);color:#edfae8}.online-roster-panel{padding:18px}.online-roster-url{display:grid;gap:7px;margin:16px 0 8px;color:#a5b6a1;font:9px var(--mono);letter-spacing:.08em}.online-roster-url input{height:38px;padding:0 11px;border:1px solid #405141;border-radius:6px;background:#101711;color:#e5eee3;font:11px var(--font);letter-spacing:normal}.online-roster-url input:focus,.online-roster-search:focus{outline:1px solid #8be66e;border-color:#8be66e}.online-roster-help{margin:9px 0 13px;color:#abb6aa;font-size:11px;line-height:1.55}.online-roster-search{max-width:420px;margin-bottom:14px}.online-roster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:9px}.online-character-card{display:grid;gap:5px;padding:12px;border:1px solid #344238;border-radius:7px;background:linear-gradient(145deg,#19231b,#171b18)}.online-character-card strong{color:#eef5ec;font-size:12px}.online-character-card span,.online-character-card small{color:#a7b4a6;font-size:10px}.online-character-card p{margin:3px 0 0;color:#d2dccf;font-size:10px;line-height:1.45}.online-roster-empty{grid-column:1/-1;padding:25px;text-align:center;color:#aab6a8}
.character-card.just-added{outline:2px solid #92e975;outline-offset:2px;box-shadow:0 0 24px #92e97566;transition:outline-color .5s,box-shadow .5s}
.account-button{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-actions{display:flex;align-items:center;gap:9px}.account-button{min-height:36px;padding:0 13px;border:1px solid #50674b;border-radius:6px;background:linear-gradient(110deg,#203b25,#302124);color:#eaf3e6;font:700 11px var(--font);cursor:pointer}.account-button:hover{border-color:#9be879;background:linear-gradient(110deg,#29472d,#3b2729)}.account-dialog{width:min(460px,calc(100vw - 28px));max-height:calc(100dvh - 28px);padding:22px;border:1px solid #52604b;border-radius:12px;background:linear-gradient(145deg,#172019,#111713);color:#e8f0e6;box-shadow:0 24px 90px #000b}.account-dialog::backdrop{background:#030805c9;backdrop-filter:blur(4px)}.account-dialog-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.account-dialog-head h2{margin:4px 0 0;font:800 21px var(--font);letter-spacing:.01em}.account-intro{margin:11px 0 17px;color:#aebbad;font-size:12px;line-height:1.55}.account-form{display:grid;gap:12px}.account-mode-tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:4px;border:1px solid #304033;border-radius:7px;background:#101611}.account-mode-tabs button{min-height:36px;border:1px solid transparent;border-radius:5px;background:transparent;color:#aab8a8;font:700 11px var(--font);cursor:pointer}.account-mode-tabs button.active{border-color:#4f7045;background:linear-gradient(110deg,#24422a,#362225);color:#f0f7ed}.account-form>label{display:grid;gap:6px}.account-form>label>span{color:#aebaa9;font:9px var(--mono);letter-spacing:.1em}.account-form input{width:100%;height:42px;padding:0 11px;border:1px solid #354437;border-radius:6px;background:#101711;color:#eef5ec;font:12px var(--font)}.account-form input:focus{outline:2px solid #8be66e;outline-offset:1px}.account-form-message{min-height:18px;margin:0;color:#b8c7b5;font-size:11px;line-height:1.5}.account-form-message.error{color:#ff9a9d}.account-form-message.success{color:#a6ed80}.account-submit{justify-content:center;min-height:42px}.account-password-note{color:#89978a;font-size:10px;line-height:1.5}.account-signed-in{display:flex;align-items:center;gap:11px;padding:13px;border:1px solid #40553c;border-radius:8px;background:linear-gradient(100deg,#1e3321,#251d20)}.account-status-dot{width:9px;height:9px;flex:none;border-radius:50%;background:#94ed74;box-shadow:0 0 12px #8df06d88}.account-signed-in>div{display:grid;gap:3px;min-width:0;flex:1}.account-signed-in strong{font-size:12px}.account-signed-in span,.account-signed-in small{overflow-wrap:anywhere;color:#a9b7a7;font-size:10px}.account-signed-in .room-join-button{min-height:34px;padding:6px 9px;font-size:10px}.account-dialog:has(.account-signed-in:not(.hidden)) .account-form{display:none}
@media(max-width:480px){.topbar-actions{gap:6px}.account-button{min-height:34px;padding:0 9px;font-size:10px}.account-dialog{padding:16px}.account-signed-in{flex-wrap:wrap}.account-signed-in>div{min-width:calc(100% - 24px)}}
/* Social account sign-in */
.account-oauth-separator{display:flex;align-items:center;gap:10px;color:#89978a;font-size:10px;text-align:center}
.account-oauth-separator::before,.account-oauth-separator::after{content:"";height:1px;flex:1;background:#304033}
.account-oauth-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.account-oauth-button{display:flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 9px;border:1px solid #465448;border-radius:6px;background:#f1f4ef;color:#19211b;font:700 10px var(--font);cursor:pointer;transition:transform .15s,border-color .15s,opacity .15s}
.account-oauth-button svg{width:17px;height:17px;flex:none}
.account-oauth-button.account-oauth-discord{border-color:#5865f2;background:#5865f2;color:#fff}
.account-oauth-button:not(:disabled):hover{transform:translateY(-1px);border-color:#a6ed80}
.account-oauth-button:disabled{cursor:not-allowed;opacity:.45}
@media(max-width:380px){.account-oauth-actions{grid-template-columns:1fr}}
