body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box}:root,[data-theme=light]{--bg:#e8e8e8;--bg-card:#fff;--text:#333;--text-muted:#555;--border:#e8e8e8;--card-bg:#fff}[data-theme=dark]{--bg:#1a1a1a;--bg-card:#2d2d2d;--text:#e8e8e8;--text-muted:#b0b0b0;--border:#404040;--card-bg:#2d2d2d}body{color:#333;color:var(--text);font-family:Segoe UI,system-ui,-apple-system,sans-serif;margin:0}.auth-page,body{background:#e8e8e8;background:var(--bg);min-height:100vh}.auth-page{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:2rem}.auth-page .auth-wrapper{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 4px 20px #00000014;max-width:420px;overflow:hidden;width:100%}.auth-page .auth-illustration{align-items:center;background:#f9f9f9;display:flex;height:180px;justify-content:center;padding:1rem;width:100%}.auth-page .auth-illustration img{max-height:100%;max-width:100%;object-fit:contain}.auth-page .auth-card{padding:2rem 2rem 2.5rem}.auth-page .auth-google-section{margin-bottom:1rem}.auth-page .btn-google{align-items:center;background:#fff;border:1px solid #ddd;border-radius:8px;color:#333;cursor:pointer;display:inline-flex;font-size:.95rem;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1rem;text-decoration:none;transition:background .2s,border-color .2s;width:100%}.auth-page .btn-google:hover{background:#f8f8f8;border-color:#ccc}.auth-page .btn-google.disabled{cursor:not-allowed;opacity:.7;pointer-events:none}.auth-page .auth-divider{color:#888;font-size:.9rem;margin:1rem 0;text-align:center}.auth-page h1{color:#333;font-size:1.5rem;font-weight:600;margin:0 0 1.5rem;text-align:center}.auth-page form{display:flex;flex-direction:column;gap:1.25rem}.auth-page .form-group{display:flex;flex-direction:column;gap:.4rem}.auth-page .form-group label{color:#333;font-size:.9rem;font-weight:500}.auth-page .form-group label .required{color:#e74c3c}.auth-page input[type=email],.auth-page input[type=password],.auth-page input[type=text]{background:#fff;border:1px solid #ddd;border-radius:8px;color:#333;font-size:1rem;padding:.75rem 1rem;transition:border-color .2s}.auth-page input::placeholder{color:#999}.auth-page input:focus{border-color:#e74c3c;outline:none}.auth-page .form-check{align-items:center;color:#666;display:flex;font-size:.9rem;gap:.5rem}.auth-page .form-check input{accent-color:#e74c3c;height:18px;width:18px}.auth-page button[type=submit]{background:#e74c3c;border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1.05rem;font-weight:500;margin-top:.25rem;padding:1rem 2rem;transition:background .2s;width:100%}.auth-page button[type=submit]:hover:not(:disabled){background:#c0392b}.auth-page button[type=submit]:disabled{cursor:not-allowed;opacity:.6}.auth-page .auth-error-top,.auth-page .error{background:#fde8e8;border:1px solid #f5c6cb;border-radius:8px;color:#c0392b;font-size:.9rem;padding:.75rem 1rem}.auth-page .auth-error-top{margin-bottom:1rem}.auth-page .auth-loading{background:#f0f7ff;border:1px solid #b3d7ff;border-radius:8px;color:#1976d2;font-size:.95rem;margin-bottom:1rem;padding:.75rem 1rem;text-align:center}.auth-page .success{background:#e8f5e9;border:1px solid #c8e6c9;border-radius:8px;color:#2e7d32;font-size:.9rem;padding:.75rem 1rem}.auth-page .btn-link{background:none;border:none;color:#e74c3c;cursor:pointer;font:inherit;padding:0;text-decoration:none}.auth-page .btn-link:hover{text-decoration:underline}.auth-page input.readonly{background:#f5f5f5;color:#666}.auth-page .auth-links{align-items:center;display:flex;flex-direction:column;font-size:.9rem;gap:.5rem;margin-top:1.5rem}.auth-page .auth-links a{color:#e74c3c;text-decoration:none;transition:color .2s}.auth-page .auth-links a:hover{color:#c0392b}.auth-page .auth-footer{color:#666;font-size:.95rem;margin-top:1.5rem;text-align:center}.auth-page .auth-footer a{color:#e74c3c;text-decoration:none;transition:color .2s}.auth-page .auth-footer a:hover{color:#c0392b}.auth-page .auth-subtitle{color:#666;font-size:.95rem;margin:0 0 1.5rem;text-align:center}.auth-page .code-input{font-size:1.5rem;letter-spacing:.5em;text-align:center}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-size:1rem;font-weight:500;justify-content:center;min-height:2.75rem;padding:.7rem 1.35rem;text-decoration:none;transition:background .2s,color .2s}.btn-primary{background:#e74c3c;color:#fff}.btn-primary:hover{background:#c0392b}.btn-secondary{background:#fff;border:1px solid #ddd;color:#333}.btn-secondary:hover{background:#f5f5f5;border-color:#ccc}[data-theme=dark] .btn-secondary{background:#2a2f38;border-color:#4a505c;color:#e8e8e8}[data-theme=dark] .btn-secondary:hover{background:#343a45;border-color:#5a6170}.btn-outline{background:#0000;border:2px solid #e74c3c;color:#e74c3c}.btn-outline:hover{background:#e74c3c;color:#fff}[data-theme=dark] .btn-outline{border-color:#ff8a7a;color:#ff8a7a}[data-theme=dark] .btn-outline:hover{background:#e74c3c;color:#fff}.btn-sm{font-size:.85rem;min-height:2.25rem;padding:.4rem .75rem}.btn-icon{font-size:1.15rem;line-height:1;min-width:2.75rem;padding:.5rem;width:2.75rem}.home-page{display:flex;flex-direction:column;margin:0;min-height:100vh;overflow:visible;padding:0}.home-page header{flex-shrink:0;flex-wrap:nowrap;width:100%}.home-page main{align-items:center;display:flex;flex:1 1;justify-content:center;margin:0 auto;max-width:720px;padding:1.5rem;width:100%}.decks-page,.play-page{margin:0;max-width:none;overflow:visible;padding:1.5rem 2rem;width:100%}.decks-page h1,.play-page h1{margin-top:0}.decks-page .btn,.play-page .btn{margin-bottom:1rem}.decks-page-actions{display:flex;gap:.75rem;margin-bottom:1rem}.deck-create-page{max-width:none;width:100%}.deck-create-page .deck-create-actions{margin-bottom:1rem}.deck-create-form{display:flex;flex-direction:column;gap:1rem}.deck-create-form .form-group{display:flex;flex-direction:column;gap:.4rem}.deck-create-form .form-group label{font-weight:500}.deck-create-form input{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.5rem .75rem}.deck-create-form select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-color:#fff;background-color:var(--card-bg,#fff);background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23c0392b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right .65rem center;background-repeat:no-repeat;background-size:1.15rem;border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:10px;color:#333;color:var(--text);cursor:pointer;font-family:inherit;font-size:1rem;font-weight:500;max-width:28rem;padding:.6rem 2.5rem .6rem .85rem;transition:border-color .2s,box-shadow .2s,background-color .2s;width:100%}.deck-create-form select:hover:not(:disabled){border-color:#e74c3c}.deck-create-form select:focus{border-color:#e74c3c;box-shadow:0 0 0 3px #e74c3c38;outline:none}.deck-create-form select:disabled{background-color:#e8e8e8;background-color:var(--bg,#f0f0f0);cursor:not-allowed;opacity:.7}[data-theme=dark] .deck-create-form select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23e74c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");border-color:#e8e8e8;border-color:var(--border)}[data-theme=dark] .deck-create-form select:disabled{background-color:#fff;background-color:var(--bg-card)}@media (max-width:480px){.deck-create-form select{font-size:16px;max-width:none}}.deck-total{color:#333;font-weight:600}.cards-list{background:#fafafa;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:.5rem;width:100%}.card-row{align-items:center;border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:.4rem .5rem}.card-row:last-child{border-bottom:none}.card-name{font-size:.9rem}.card-controls{align-items:center;display:flex;gap:.5rem}.card-count{font-weight:500;min-width:1.5rem;text-align:center}.decks-page .error,.play-page .error{background:#fde8e8;border:1px solid #f5c6cb;border-radius:8px;color:#c0392b;font-size:.9rem;margin-bottom:1rem;padding:.75rem 1rem}.play-page>div{display:flex;flex-direction:column;gap:.75rem}.play-page select{font-size:1rem;padding:.5rem}.play-page .btn{font-size:1.05rem;padding:.85rem 1.75rem}.play-page>div.play-page-toolbar{align-items:center;flex-direction:row;flex-wrap:wrap;gap:.75rem 1rem;justify-content:space-between}.play-page-toolbar h1{margin:0}.play-page-toolbar .btn{margin-bottom:0}.play-page-cta{margin-top:.25rem}.play-page-cta .btn{margin-bottom:0;max-width:22rem;width:100%}@media (min-width:480px){.play-page-cta .btn{width:auto}}.play-page button:disabled{cursor:not-allowed;opacity:.6}.play-page .mode-selection{margin-bottom:1rem}.play-page .mode-selection>label{display:block;font-weight:500;margin-bottom:.25rem}.play-page .mode-selection-options{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.25rem}.play-page .mode-option{border:2px solid #e8e8e8;border:2px solid var(--border,#e8e8e8);border-radius:8px;cursor:pointer;display:flex;flex:1 1;flex-direction:column;gap:.15rem;min-width:140px;padding:.75rem 1rem;transition:border-color .2s,background .2s}.play-page .mode-option:hover{background:#e74c3c0a;border-color:#e74c3c}.play-page .mode-option:has(input:checked){background:#e74c3c14;border-color:#e74c3c}.play-page .mode-option input{accent-color:#e74c3c;margin-right:.5rem}.play-page .mode-option span{font-weight:600}.play-page .mode-option small{color:#555;color:var(--text-muted);display:block;font-size:.8rem}.home-page a:not(.btn){color:#e74c3c}.welcome .btn-primary,header .btn-primary{color:#fff}header{background:#fff;background:var(--bg-card);border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border);gap:.75rem;justify-content:space-between;padding:1rem max(1.5rem,env(safe-area-inset-right)) 1rem max(1.5rem,env(safe-area-inset-left))}header,header .header-actions{align-items:center;display:flex;flex-wrap:nowrap}header .header-actions{flex:1 1;gap:.65rem .85rem;justify-content:flex-end;min-width:0}header .header-actions-guest{flex:0 1 auto}header .header-actions-auth{align-items:center;flex:1 1;justify-content:flex-start;order:0;width:auto}header .header-nav-tabs{align-items:stretch;display:flex;flex:1 1 auto;gap:.25rem;min-width:0}header .header-buttons{align-items:center;display:flex;flex:1 1;flex-wrap:nowrap;gap:.5rem .65rem;justify-content:flex-end;min-width:0}header .header-nav-primary{align-items:center;display:flex;flex-wrap:nowrap;gap:.5rem}header .header-nav-secondary{align-items:center;display:flex;flex-wrap:nowrap;gap:.4rem .5rem}header .header-nav-tools{align-items:center;background:#0000000a;border-radius:10px;display:inline-flex;flex-wrap:nowrap;gap:.35rem;padding:.2rem}[data-theme=dark] header .header-nav-tools{background:#ffffff0f}header .btn{font-size:.95rem;min-height:2.5rem;padding:.55rem 1.15rem}header .btn-outline{padding:.55rem 1.1rem}header .btn-icon{min-height:2.5rem;min-width:2.5rem;padding:.45rem;width:2.5rem}header .header-logo{flex-shrink:0;font-size:1.25rem;margin:0;position:relative;z-index:2}header .header-logo,header .header-logo-link{align-items:center;display:flex;gap:.5rem;min-width:0}header .header-logo-link{color:inherit;text-decoration:none}header .header-logo-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header .header-logo img{border-radius:6px;flex-shrink:0;height:36px;width:auto}header .header-user{align-items:center;display:inline-flex;flex-shrink:0;gap:.5rem;margin:0;position:relative;z-index:2}.header-avatar{border-radius:50%;height:32px;object-fit:cover;width:32px}.header-avatar-placeholder{align-items:center;background:#4a90d9;border-radius:50%;color:#fff;display:flex;font-size:.9rem;font-weight:600;height:32px;justify-content:center;width:32px}header .header-username{color:#555;color:var(--text-muted,#666);font-weight:500}.nav-dropdown{align-self:center;flex-shrink:0;position:relative}.header-nav-tabs .nav-dropdown{align-self:stretch;flex:1 1;min-width:0}.nav-dropdown-trigger{align-items:center;display:inline-flex;gap:.35rem;max-width:min(100%,12.5rem)}.header-nav-tabs .nav-dropdown-trigger{justify-content:space-between;max-width:none;width:100%}.header-actions-auth .header-nav-tools{flex-shrink:0;margin-left:auto}@media (min-width:769px){.home-page header .header-actions-auth{align-self:stretch;margin-bottom:-1rem;margin-top:-1rem}.home-page header .header-nav-tabs,.home-page header .header-nav-tabs .nav-dropdown{align-self:stretch}.home-page header .header-nav-tabs .nav-dropdown-trigger{border-radius:0;height:100%;min-height:0}}.nav-tab{background:#fff;border:none;border-bottom:2px solid #e74c3c;border-radius:0;color:#e74c3c;min-height:2.2rem;padding:.55rem .65rem}.nav-tab:hover,.nav-tab[aria-expanded=true]{background:#e74c3c1a;border-bottom-color:#e74c3c;color:#e74c3c}[data-theme=dark] .nav-tab{background:#242932;border-bottom-color:#ff8a7a;color:#ff8a7a}[data-theme=dark] .nav-tab:hover{background:#e74c3c33;border-bottom-color:#ff9a8f;color:#ff9a8f}[data-theme=dark] .nav-tab[aria-expanded=true]{background:#e74c3c42;border-bottom-color:#ff9a8f;color:#ff9a8f}.nav-dropdown-label{min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.nav-dropdown-caret{flex-shrink:0;font-size:.5rem;line-height:1;opacity:.75}.nav-dropdown-menu{background:#fff;background:var(--card-bg,#fff);border:1px solid #e8e8e8;border:1px solid var(--border,#e0e0e0);border-radius:10px;box-shadow:0 8px 28px #00000024;left:auto;list-style:none;margin:0;min-width:11rem;padding:.35rem 0;position:absolute;right:0;top:calc(100% + 6px);z-index:400}.nav-dropdown-menu--portal{position:fixed}.nav-dropdown--menu-left .nav-dropdown-menu:not(.nav-dropdown-menu--portal){left:0;right:auto}.nav-dropdown-item{background:none;border:none;color:#333;color:var(--text);cursor:pointer;display:block;font:inherit;font-size:.92rem;font-weight:500;padding:.55rem 1rem;text-align:left;text-decoration:none;transition:background .15s;width:100%}.nav-dropdown-item:hover{background:#e74c3c1a}.nav-dropdown-item--primary{color:#e74c3c;font-weight:600}.welcome{align-items:center;display:flex;flex-direction:column;gap:1rem;justify-content:center;text-align:center}.welcome .btn{margin-top:0}.welcome .btn-primary{font-size:1.1rem;padding:1rem 2rem}.welcome-box{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 4px 24px #0000001a;min-width:320px;padding:2.5rem 3rem}.welcome-logo{align-items:center;display:flex;font-size:1.5rem;gap:.5rem;justify-content:center;margin:0 0 .5rem}.welcome-logo img{border-radius:8px;height:48px;width:auto}.welcome-buttons{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.welcome-actions{align-items:stretch;display:flex;flex-direction:column;gap:.75rem;max-width:22rem;width:100%}@media (min-width:420px){.welcome-actions{flex-direction:row;flex-wrap:wrap;justify-content:center;max-width:none}.welcome-actions .btn-lg{flex:1 1 auto;min-width:9.5rem}}.btn-lg{font-size:1.15rem!important;padding:1rem 2.5rem!important}.game-board{margin:0 auto;max-width:900px;padding:1rem;position:relative}.game-effect-overlay{align-items:center;animation:overlay-fade-in .2s ease-out;background:#00000080;cursor:pointer;display:flex;inset:0;justify-content:center;position:fixed;z-index:900}.game-effect-overlay img,.game-effect-overlay video{max-height:90vh;max-width:90vw;object-fit:contain;pointer-events:none}.game-overlay{align-items:center;animation:overlay-fade-in .4s ease-out;background:#000000bf;display:flex;flex-direction:column;inset:0;justify-content:center;position:fixed;z-index:1000}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}.game-overlay-message{border-radius:12px;font-size:3rem;font-weight:700;letter-spacing:.1em;padding:2rem 4rem;text-transform:uppercase}.game-overlay-message.victory{background:linear-gradient(135deg,#27ae60,#2ecc71);box-shadow:0 8px 32px #27ae6080;color:#fff}.game-overlay-message.defeat{background:linear-gradient(135deg,#c0392b,#e74c3c);box-shadow:0 8px 32px #c0392b80;color:#fff}.game-overlay-message.draw{background:linear-gradient(135deg,#7f8c8d,#95a5a6);box-shadow:0 8px 32px #7f8c8d80;color:#fff}.game-overlay-hint{color:#fffc;font-size:1rem;margin-top:1.5rem}.game-overlay .btn{margin-top:.5rem}.replay-page{margin:0 auto;max-width:900px;padding:1rem}.replay-error,.replay-loading{padding:2rem;text-align:center}.replay-error p{color:#c0392b;margin-bottom:1rem}.replay-controls{align-items:center;display:flex;gap:1rem;justify-content:center;margin:1rem 0;padding:.5rem}.replay-step-info{color:#555;color:var(--text-muted,#888);font-size:.95rem}.game-board header{border:none}.game-board-loading .game-load-error,.game-board-loading .game-loading{padding:2rem;text-align:center}.game-load-error p{color:#c0392b;margin-bottom:1rem}.error-detail-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.error-detail{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;max-height:85vh;max-width:520px;overflow:hidden;width:100%}.error-detail-header{align-items:center;background:#c0392b14;border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1rem 1.25rem}.error-detail-header h3{color:#c0392b;font-size:1.1rem;margin:0}.error-detail-close{background:none;border:none;color:#555;color:var(--text-muted);cursor:pointer;font-size:1.5rem;line-height:1;padding:0 .25rem}.error-detail-close:hover{color:#333;color:var(--text)}.error-detail-body{overflow-y:auto;padding:1.25rem}.error-detail-message{color:#333;color:var(--text);font-size:1rem;margin:0 0 1rem}.error-detail-meta{grid-gap:.25rem 1rem;display:grid;font-size:.9rem;gap:.25rem 1rem;grid-template-columns:auto 1fr;margin-bottom:1rem}.error-detail-meta dt{color:#555;color:var(--text-muted)}.error-detail-meta dd{margin:0}.error-detail-meta code{font-size:.85em;word-break:break-all}.error-detail-details{margin-bottom:1rem}.error-detail-details h4{font-size:.9rem;margin:0 0 .5rem}.error-detail-details ul{font-size:.9rem;margin:0;padding-left:1.25rem}.error-detail-full{background:#0000000f;border-radius:6px;font-size:.8rem;margin:0;padding:.75rem;white-space:pre-wrap;word-break:break-word}.error-detail-footer{border-top:1px solid #e8e8e8;border-top:1px solid var(--border);padding:1rem 1.25rem}.enemy-area,.my-area{border:1px solid #444;border-radius:8px;margin:1rem 0;padding:1rem}.board{align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;min-height:100px}.minion{align-items:center;border:2px solid #666;border-radius:8px;display:flex;flex-direction:column;font-size:12px}.minion .card-display{border:none;box-shadow:none}.my-minion{border-color:#4a90d9;cursor:default}.my-minion.can-attack{cursor:pointer}.my-minion.can-attack:hover{box-shadow:0 0 0 2px #4a90d9}.my-minion.attacker-selected{border-color:#f39c12;box-shadow:0 0 0 3px #f39c12}.my-minion.battlecry-target{border-color:#27ae60;box-shadow:0 0 0 3px #27ae60;cursor:pointer}.my-minion.battlecry-target:hover{border-color:#2ecc71;box-shadow:0 0 0 4px #2ecc71;transform:scale(1.02)}.enemy-minion.attack-target{box-shadow:0 0 0 2px #e74c3c;cursor:pointer}.enemy-minion.attack-target:hover{box-shadow:0 0 0 4px #e74c3c;transform:scale(1.02)}.minion.attack-hit{animation:attack-hit .35s ease-out}@keyframes attack-hit{0%,to{transform:scale(1)}25%{filter:brightness(1.5);transform:scale(1.08)}50%{transform:scale(.96) translateX(-2px)}75%{transform:scale(1.02) translateX(2px)}}.minion.card-just-played{animation:card-play .4s ease-out}@keyframes card-play{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.enemy-hero{align-items:center;border-radius:8px;display:inline-flex;font-weight:600;gap:.75rem;padding:.5rem 1rem}.enemy-hero-text{align-items:flex-start;display:flex;flex-direction:column;gap:.1rem}.enemy-hero-name{font-weight:600;line-height:1.2}.enemy-hero-hp{color:#555;color:var(--text-muted,#666);font-size:.85rem;font-weight:500}.replay-hero-static.enemy-hero{cursor:default}.hero-portrait-sm{align-items:center;border-radius:10px;color:#fff;display:flex;flex-shrink:0;font-size:1.05rem;font-weight:700;height:44px;justify-content:center;overflow:hidden;text-shadow:0 1px 2px #00000059;width:44px}.hero-portrait-sm img{height:100%;object-fit:cover;width:100%}.hero-card-portrait--lotus_guardian,.hero-portrait-sm--lotus_guardian{background:linear-gradient(145deg,#8e44ad,#3498db)}.hero-card-portrait--ember_mage,.hero-portrait-sm--ember_mage{background:linear-gradient(145deg,#c0392b,#f39c12)}.hero-card-portrait--thorn_ranger,.hero-portrait-sm--thorn_ranger{background:linear-gradient(145deg,#27ae60,#2ecc71)}.hero-card-portrait--tide_shaman,.hero-portrait-sm--tide_shaman{background:linear-gradient(145deg,#16a085,#3498db)}.hero-card-portrait--void_rogue,.hero-portrait-sm--void_rogue{background:linear-gradient(145deg,#2c3e50,#9b59b6)}.hero-card-portrait--sun_paladin,.hero-portrait-sm--sun_paladin{background:linear-gradient(145deg,#f1c40f,#e67e22)}.hero-card-portrait--default,.hero-portrait-sm--default{background:linear-gradient(145deg,#7f8c8d,#34495e)}.my-hero-row{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.35rem}.my-hero-stats{font-size:.95rem}.hero-selection{margin-bottom:1rem}.hero-selection>label{display:block;font-weight:500;margin-bottom:.35rem}.hero-selection-grid{display:flex;flex-wrap:wrap;gap:.65rem}.hero-card{align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px solid #e8e8e8;border:2px solid var(--border,#ddd);border-radius:10px;color:inherit;cursor:pointer;display:flex;flex-direction:column;font:inherit;gap:.35rem;max-width:8.5rem;min-width:6.5rem;padding:.65rem .75rem;text-align:center;transition:border-color .2s,box-shadow .2s}.hero-card.selected,.hero-card:hover{border-color:#e74c3c}.hero-card.selected{box-shadow:0 0 0 2px #e74c3c40}.hero-card.hero-card--locked{cursor:not-allowed;filter:grayscale(.2);opacity:.68}.hero-card.hero-card--locked:hover{border-color:#e8e8e8;border-color:var(--border,#ddd);box-shadow:none}.hero-card-lock-badge{font-size:.75em;margin-left:.25rem}.heroes-page-intro{font-size:.95rem;margin:0 0 1rem;max-width:42rem}.heroes-page-empty,.heroes-page-intro{color:#555;color:var(--text-muted,#666)}.heroes-page-empty{margin:0}.heroes-page-grid{margin-top:.5rem}.play-page-hero-section{margin:.25rem 0 1rem}.play-page-hero-label{display:block;font-weight:500;margin-bottom:.35rem}.play-page-hero-card{-webkit-tap-highlight-color:transparent;align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px solid #e8e8e8;border:2px solid var(--border,#e8e8e8);border-radius:12px;box-sizing:border-box;color:inherit;display:flex;gap:.85rem;min-height:4.25rem;padding:.85rem 1rem;text-decoration:none;transition:border-color .2s,background .2s}.play-page-hero-card:hover{background:#e74c3c0f;border-color:#e74c3c}.play-page-hero-card:focus-visible{outline:2px solid #e74c3c;outline-offset:2px}.play-page-hero-card--loading{opacity:.85;pointer-events:none}.play-page-hero-avatar{border-radius:14px;flex-shrink:0;font-size:1.35rem;height:64px;width:64px}.play-page-hero-avatar.hero-card-portrait{height:64px;width:64px}.play-page-hero-info{display:flex;flex:1 1;flex-direction:column;gap:.15rem;min-width:0;text-align:left}.play-page-hero-name{font-size:1.05rem;font-weight:700;line-height:1.2}.play-page-hero-title{color:#555;color:var(--text-muted);font-size:.78rem;line-height:1.3}.play-page-hero-meta{color:#555;color:var(--text-muted);font-size:.85rem;font-weight:500}.play-page-hero-placeholder{color:#555;color:var(--text-muted);font-size:.92rem;line-height:1.35}.play-page-hero-change{color:#e74c3c;flex-shrink:0;font-size:.88rem;font-weight:600;white-space:nowrap}.hero-card-portrait{align-items:center;border-radius:12px;color:#fff;display:flex;font-size:1.2rem;font-weight:700;height:52px;justify-content:center;overflow:hidden;width:52px}.hero-card-portrait img{height:100%;object-fit:cover;width:100%}.hero-card-name{font-size:.9rem;font-weight:600;line-height:1.2}.hero-card-hp{font-size:.8rem;font-weight:500}.hero-card-hp,.hero-card-title{color:#555;color:var(--text-muted)}.hero-card-title{display:block;font-size:.7rem;line-height:1.25;margin:0}.waiting-hero-picked{color:#555;color:var(--text-muted);margin:.5rem 0 1rem}.navbar-hero-select{flex-shrink:0;position:relative}.navbar-hero-select-trigger{align-items:center;background:#fff;background:var(--card-bg,#fff);border:2px solid #e8e8e8;border:2px solid var(--border,#ddd);border-radius:10px;color:inherit;cursor:pointer;display:inline-flex;font:inherit;gap:.45rem;max-width:14rem;padding:.35rem .55rem}.navbar-hero-select-trigger:hover:not(:disabled){border-color:#e74c3c}.navbar-hero-select-trigger:disabled{cursor:wait;opacity:.75}.navbar-hero-select-trigger .hero-portrait-sm{font-size:.95rem;height:32px;width:32px}.navbar-hero-select-label{font-size:.88rem;font-weight:600;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.navbar-hero-select-caret{color:#555;color:var(--text-muted);flex-shrink:0;font-size:.55rem}.navbar-hero-select-menu{background:#fff;background:var(--card-bg,#fff);border:1px solid #e8e8e8;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px #0000001f;list-style:none;margin:0;max-height:min(70vh,320px);min-width:220px;overflow-y:auto;padding:.35rem 0;position:absolute;right:0;top:calc(100% + 6px);z-index:200}.navbar-hero-select-option{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font:inherit;gap:.5rem;padding:.45rem .75rem;text-align:left;width:100%}.navbar-hero-select-option:hover{background:#e74c3c14}.navbar-hero-select-option.selected{background:#e74c3c1f}.navbar-hero-select-option--locked{cursor:not-allowed;opacity:.65}.navbar-hero-select-option--locked:hover{background:#0000}.navbar-hero-lock-badge{font-size:.85rem;margin-left:.35rem;vertical-align:middle}.navbar-hero-select-option .hero-portrait-sm{height:36px;width:36px}.navbar-hero-option-text{display:flex;flex-direction:column;gap:.1rem;min-width:0}.navbar-hero-option-name{font-size:.9rem;font-weight:600}.navbar-hero-option-meta{color:#555;color:var(--text-muted);font-size:.78rem}.play-page-toolbar-right{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.enemy-hero.attack-target{background:#e74c3c33;border:2px solid #e74c3c;cursor:pointer}.enemy-hero.attack-target:hover{background:#e74c3c59}.enemy-hero.attack-hit{animation:attack-hit .35s ease-out}.attack-hint{color:#f39c12;font-size:.9rem;margin-top:.5rem}.minion-attack-badge{color:#27ae60;font-size:9px;margin-top:.2rem}.hand{-webkit-overflow-scrolling:touch;align-items:flex-start;display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0;overflow-x:auto;overflow-y:visible}.card-in-hand{align-items:center;display:flex;flex-direction:column;gap:.25rem}.card-in-hand .card-display{border:none;box-shadow:none}.card-display{align-items:center;background:linear-gradient(145deg,#fff,#f0f0f0);border:1px solid #ccc;border-radius:8px;box-shadow:0 2px 6px #0000001a;display:flex;flex-direction:column;justify-content:flex-start;min-width:0;padding:.5rem;position:relative}.card-display--with-image{background-position:50%!important;background-size:cover!important}.card-display--with-image .card-display-name{background:linear-gradient(#0000,#000000bf);color:#fff;text-shadow:0 1px 2px #000c}.card-display--with-image .card-display-mana,.card-display--with-image .card-display-right-stats,.card-display--with-image .card-display-stats,.card-display--with-image .card-display-type{text-shadow:0 1px 2px #000c}.card-display-image-overlay{background:linear-gradient(0deg,#00000080 0,#0000 50%);border-radius:inherit;inset:0;pointer-events:none;position:absolute}.card-display--sm{font-size:11px;min-height:98px;width:72px}.card-display--sm .card-display-name{font-size:10px;line-height:1.1}.card-display--sm .card-display-stats,.card-display--sm .card-display-type{font-size:10px}.card-display--md{font-size:13px;min-height:168px;width:120px}.card-display--md .card-display-mana{font-size:15px}.card-display--md .card-display-name{font-size:12px;line-height:1.2}.card-display--lg{font-size:15px;min-height:198px;width:148px}.card-display--lg .card-display-mana{font-size:18px}.card-display--lg .card-display-name{font-size:13px;line-height:1.2}.card-display-mana{align-items:center;background:#4a90d9;border-radius:50%;color:#fff;display:flex;font-weight:700;height:28px;justify-content:center;margin-bottom:.4rem;width:28px}.card-display--sm .card-display-mana{font-size:11px;height:20px;width:20px}.card-display--md .card-display-mana{height:28px;width:28px}.card-display--lg .card-display-mana{height:34px;width:34px}.card-display-name{align-items:center;color:#333;display:flex;font-weight:600;justify-content:center;margin-top:auto;padding-top:.35rem;text-align:center;word-break:break-word}.card-display-stats{color:#555;font-weight:600}.card-display-type{color:#666;font-size:.85em}.card-display-right-stats{background:#0000000f;border-radius:6px 0 0 6px;display:flex;flex-direction:column;gap:.4rem;padding:.25rem .35rem;position:absolute;right:0;top:50%;transform:translateY(-50%)}.card-display-attack{color:#c0392b}.card-display-attack,.card-display-health{align-items:center;display:flex;font-size:.9em;font-weight:700;justify-content:center;min-width:20px}.card-display-health{color:#27ae60}.card-display--sm .card-display-right-stats{gap:.2rem;padding:.15rem .25rem}.card-display--sm .card-display-attack,.card-display--sm .card-display-health{font-size:.8em;min-width:16px}.card-display-count{align-items:center;background:#e74c3c;border-radius:50%;color:#fff;display:flex;font-size:11px;font-weight:700;height:18px;justify-content:center;position:absolute;right:-4px;top:-4px;width:18px}.card-display--sm .card-display-count{font-size:9px;height:14px;width:14px}.card-display-keywords{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.2rem}.keyword{border-radius:4px;font-size:.65em;font-weight:600;padding:.1rem .3rem}.keyword-taunt{background:#95a5a6;color:#fff}.keyword-charge{background:#f39c12;color:#fff}.keyword-divine{background:#3498db;color:#fff}.keyword-windfury{background:#9b59b6;color:#fff}.keyword-stealth{background:#2c3e50;color:#fff}.keyword-poisonous{background:#27ae60;color:#fff}.keyword-lifesteal{background:#e74c3c;color:#fff}.keyword-rush{background:#e67e22;color:#fff}.keyword-battlecry{background:#1abc9c;color:#fff}.keyword-deathrattle{background:#34495e;color:#fff}.minion-stealth{filter:brightness(.9);opacity:.85}.cards-grid{background:#f8f8f8;border:1px solid #e8e8e8;border-radius:12px;display:flex;flex-wrap:wrap;gap:.75rem;min-height:280px;padding:1.5rem;width:100%}.deck-card{background:#fff;border:2px solid #ddd;border-radius:12px;cursor:pointer;min-width:200px;padding:1.25rem;transition:border-color .2s,box-shadow .2s}.deck-card:hover{border-color:#e74c3c;box-shadow:0 4px 12px #e74c3c33}.deck-card.selected{background:#fff8f8;border-color:#e74c3c;box-shadow:0 4px 12px #e74c3c40}.deck-card-link{color:inherit;display:block;text-decoration:none}.decks-grid{display:flex;flex-wrap:wrap;gap:1rem;margin-top:1rem}.decks-list-page{display:flex;flex-direction:column;min-height:100vh;padding:0}.decks-page-header{align-items:center;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;flex-shrink:0;justify-content:space-between;padding:1rem 2rem}.decks-page-header h1{font-size:1.25rem;margin:0}.decks-grid-full{background:#fff;flex:1 1;margin-top:0;min-height:0;overflow:auto;padding:1.5rem 2rem}.deck-detail-page{display:flex;flex-direction:column;margin:0;min-height:100vh;padding:0;width:100%}.deck-detail-header{align-items:center;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;flex-shrink:0;justify-content:space-between;padding:1rem 2rem}.deck-detail-header h1{font-size:1.25rem;margin:0}.deck-detail-cards{background:#fff;flex:1 1;min-height:0;overflow:auto;padding:1.5rem 2rem}.deck-detail-cards .cards-grid{min-height:auto}.deck-edit-cards-section{margin:1.5rem 0}.deck-edit-cards-section h3{font-size:1.1rem;margin:0 0 1rem}.deck-edit-cards-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:1rem}.deck-edit-card-item{align-items:center;background:#f9f9f9;border:1px solid #eee;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.deck-edit-card-item .card-display{cursor:default}.deck-edit-card-item--locked{filter:grayscale(.25);opacity:.82}.deck-edit-card-lock{color:#e74c3c;font-size:.78rem;font-weight:600}.deck-edit-card-controls{align-items:center;display:flex;gap:.5rem}.deck-edit-card-count{font-size:.95rem;font-weight:600;min-width:1.5rem;text-align:center}.deck-card h3{font-size:1rem;margin:0 0 .25rem}.deck-card-hero-badge{color:#e74c3c;display:inline-block;font-size:.78rem;font-weight:600;margin-bottom:.5rem}.deck-card-link .deck-card-hero-badge{text-decoration:none}.form-hint-muted{font-size:.82rem;line-height:1.35;margin:.35rem 0 0}.form-hint-muted,.play-page-deck-hint{color:#555;color:var(--text-muted,#666)}.play-page-deck-hint{font-size:.95rem;line-height:1.4;margin:.5rem 0 0}.play-page-deck-hint-link{color:#e74c3c;font-weight:600;text-decoration:underline}.play-page-deck-hint-link:hover{text-decoration:none}.deck-card .deck-cards-preview{background:#fafafa;border-radius:8px;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;min-height:110px;padding:.5rem}.deck-card-count{color:#666;display:block;font-size:.85rem;margin-top:.5rem}.decks-cards-row{display:flex;flex-wrap:wrap;gap:1rem;margin:.75rem 0;width:100%}.deck-selection label{display:block;font-weight:500;margin-bottom:.25rem}.selected-deck-cards{background:#fff;background:var(--card-bg,#fff);border:1px solid #e8e8e8;border:1px solid var(--border,#e8e8e8);border-radius:12px;margin:1.5rem 0;padding:1.5rem;width:100%}.selected-deck-cards h3{font-size:1rem;margin:0 0 1rem}.admin-cabinet{min-height:100vh;padding:0}.admin-header{align-items:center;background:#fff;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;padding:1rem 2rem}.admin-header h1{font-size:1.25rem;margin:0}.admin-promote-section{background:#fff;border-bottom:1px solid #e8e8e8;padding:1rem 2rem}.admin-promote-section h3{font-size:1rem;margin:0 0 .75rem}.admin-promote-form{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem}.admin-inline-field{display:flex;flex-direction:column;gap:.25rem}.admin-inline-field>span{color:#555;color:var(--text-muted,#666);font-size:.74rem;font-weight:600}.admin-promote-input{border:1px solid #ddd;border-radius:8px;font-size:1rem;min-width:200px;padding:.5rem .75rem}.admin-post-match-section{background:#fff;border-bottom:1px solid #e8e8e8;padding:1rem 2rem}.admin-post-match-section h3{font-size:1rem;margin:0 0 .5rem}.admin-post-match-form{align-items:flex-start;display:flex;flex-direction:column;gap:1rem}.admin-post-match-grid{grid-gap:.75rem 1rem;display:grid;gap:.75rem 1rem;grid-template-columns:repeat(4,minmax(0,1fr));max-width:720px;width:100%}.admin-post-match-field{color:#444;display:flex;flex-direction:column;font-size:.85rem;gap:.35rem}.admin-post-match-field span{font-weight:500}.admin-post-match-field input{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.45rem .6rem}.admin-drop-card-pool-section{background:#fff;border-bottom:1px solid #e8e8e8;padding:1rem 2rem}.admin-drop-card-pool-section h3{font-size:1rem;margin:0 0 .5rem}.admin-drop-card-pool-form{display:flex;flex-direction:column;gap:.75rem}.admin-drop-card-pool-filters{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:220px minmax(220px,380px)}.admin-drop-card-pool-filters input,.admin-drop-card-pool-filters select{border:1px solid #ddd;border-radius:8px;font-size:.95rem;padding:.45rem .6rem}.admin-drop-card-pool-actions{display:flex;flex-wrap:wrap;gap:.5rem}.admin-drop-card-pool-grid{grid-gap:.5rem;background:#fafafa;border:1px solid #e8e8e8;border-radius:10px;display:grid;gap:.5rem;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));max-height:320px;overflow:auto;padding:.6rem}.admin-drop-card-pool-item{background:#fff;border:1px solid #ececec;border-radius:8px;display:flex;flex-direction:column;gap:.2rem;padding:.45rem}.admin-drop-card-pool-item input[type=checkbox]{margin:0 0 .15rem}.admin-drop-card-pool-name{font-size:.86rem;font-weight:600}.admin-drop-card-pool-meta{color:#888;font-size:.72rem}.admin-drop-card-pool-empty{background:#fff;border:1px dashed #ddd;border-radius:8px;color:#777;padding:.65rem}.admin-game-sounds-section{background:#fff;border-bottom:1px solid #e8e8e8;padding:1rem 2rem}.admin-game-sounds-section h3{font-size:1rem;margin:0 0 .5rem}.admin-game-sounds-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(3,1fr);margin-top:.75rem}.admin-game-sound-item{background:#fafafa;border:1px solid #e8e8e8;border-radius:8px;padding:1rem}.admin-game-sound-item h4{font-size:.9rem;margin:0 0 .5rem}.admin-heroes-section{background:#fff;border-bottom:1px solid #e8e8e8;padding:1rem 2rem}.admin-heroes-section h3{font-size:1rem;margin:0 0 .5rem}.admin-heroes-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));margin-top:.75rem}.admin-hero-card{background:#fafafa;border:1px solid #e8e8e8;border-radius:10px;display:flex;flex-direction:column;gap:.5rem;padding:.75rem}.admin-hero-preview{align-items:center;border-radius:12px;display:flex;height:72px;justify-content:center;margin:0 auto;overflow:hidden;width:72px}.admin-hero-preview-img{height:100%;object-fit:cover;width:100%}.admin-hero-preview-letter{color:#fff;font-size:1.5rem;font-weight:700}.admin-hero-meta{text-align:center}.admin-hero-name{display:block;font-size:.9rem;font-weight:600}.admin-hero-id{color:#888;display:block;font-size:.72rem;word-break:break-all}.admin-hero-upload-form{display:flex;flex-direction:column;gap:.35rem}.admin-hero-remove-btn{width:100%}.admin-content{margin:0 auto;max-width:1400px;padding:1.5rem 2rem}.admin-cards-list h3{font-size:1rem;margin:0 0 1rem}.admin-cards-grid{display:flex;flex-wrap:wrap;gap:.75rem}.admin-card-item{background:#fff;border:2px solid #ddd;border-radius:8px;cursor:pointer;padding:.5rem;text-align:center;transition:border-color .2s}.admin-card-item:hover{border-color:#e74c3c}.admin-card-item.selected{background:#fff8f8;border-color:#e74c3c}.admin-card-preview-img{border-radius:6px;height:98px;object-fit:cover;width:72px}.admin-card-preview-name{display:block;font-size:.8rem;margin-top:.25rem;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-edit-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;overflow-y:auto;padding:1rem;position:fixed;z-index:1000}.admin-edit-panel{background:#fff;border:1px solid #e8e8e8;border-radius:12px;box-shadow:0 8px 32px #0003;max-height:90vh;max-width:420px;overflow-y:auto;padding:1.5rem;width:100%}.admin-edit-panel-header{align-items:center;border-bottom:1px solid #e8e8e8;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.75rem}.admin-edit-panel-header h3{font-size:1rem;margin:0}.admin-edit-close{font-size:1.5rem;line-height:1;min-height:36px;min-width:36px;padding:0}.admin-form .form-group{margin-bottom:1rem}.admin-form .form-group label{display:block;font-weight:500;margin-bottom:.25rem}.admin-form input,.admin-form textarea{border:1px solid #ddd;border-radius:8px;font-size:1rem;padding:.5rem .75rem;width:100%}.admin-form button{margin-top:.5rem}.admin-delete-card-btn{margin-left:.5rem}.admin-image-upload,.admin-sound-upload{border-top:1px solid #eee;margin-top:1.5rem;padding-top:1.5rem}.admin-image-upload h4,.admin-sound-upload h4{font-size:.95rem;margin:0 0 .75rem}.current-sound{display:flex;flex-direction:column;gap:.25rem;margin-top:.75rem}.admin-image-upload h4{font-size:.95rem;margin:0 0 .75rem}.admin-file-input-wrap{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.75rem;position:relative}.admin-file-input{cursor:pointer;height:100%;left:0;opacity:0;position:absolute;top:0;width:100%}.admin-file-label{align-items:center;cursor:pointer;display:inline-flex;justify-content:center;margin:0;position:relative}.admin-file-label:hover{background:#f5f5f5;border-color:#ccc}.admin-file-name{color:#666;font-size:.9rem;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-hint{color:#666;font-style:italic}.admin-hint-small{color:#888;font-size:.85em;margin:.25rem 0 .5rem}.admin-cabinet .error{margin:1rem 2rem}.profile-page{display:flex;flex-direction:column;min-height:100vh}.profile-main{flex:1 1;margin:0 auto;max-width:560px;padding:2rem;width:100%}.profile-main h2{font-size:1.5rem;margin:0 0 1.5rem}.profile-card{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 4px 20px #00000014;margin-bottom:2rem;padding:2rem}.profile-avatar-wrap{display:flex;justify-content:center;margin-bottom:1.5rem}.profile-avatar{border-radius:50%;height:96px;object-fit:cover;width:96px}.profile-avatar-placeholder{align-items:center;background:#4a90d9;border-radius:50%;color:#fff;display:flex;font-size:2.5rem;font-weight:600;height:96px;justify-content:center;width:96px}.profile-form .form-group{margin-bottom:1rem}.profile-form .form-group label{display:block;font-weight:500;margin-bottom:.25rem}.profile-form input{background:#fff;background:var(--card-bg);border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:8px;color:#333;color:var(--text);font-size:1rem;padding:.5rem .75rem;width:100%}.profile-form .error{margin-bottom:1rem}.avatar-upload-form{margin-bottom:.5rem}.avatar-upload-row{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem}.avatar-file-label{cursor:pointer;margin:0}.avatar-file-input{display:none}.avatar-file-name{color:#555;color:var(--text-muted);font-size:.9rem}.profile-stats{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 4px 20px #00000014;padding:2rem}.profile-stats h3{font-size:1.1rem;margin:0 0 1rem}.stats-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(3,1fr)}.stat-item{background:#0000000a;border-radius:8px;padding:1rem;text-align:center}.stat-value{color:#333;color:var(--text);display:block;font-size:1.5rem;font-weight:700}.stat-label{color:#555;color:var(--text-muted);font-size:.85rem}.stat-rating .stat-value{color:#9b59b6}.stat-rank .stat-value{color:#f39c12}.stat-wins .stat-value{color:#27ae60}.stat-losses .stat-value{color:#e74c3c}.stat-draws .stat-value{color:#7f8c8d}@media (max-width:500px){.stats-grid{grid-template-columns:repeat(2,1fr)}}.modal-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.modal-content{background:#fff;background:var(--card-bg,#fff);border-radius:12px;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column;max-height:90vh;max-width:520px;overflow:hidden;width:100%}.modal-header{align-items:center;border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border,#e8e8e8);display:flex;justify-content:space-between;padding:1rem 1.5rem}.modal-header h2{font-size:1.25rem;margin:0}.modal-body{overflow-y:auto;padding:1.5rem}.tutorial-modal section{margin-bottom:1.25rem}.tutorial-modal section:last-child{margin-bottom:0}.tutorial-modal h3{color:#333;color:var(--text,#333);font-size:1rem;margin:0 0 .5rem}.tutorial-modal p{color:#555;color:var(--text-muted,#555);font-size:.95rem;line-height:1.5;margin:0}.leaderboard-page{min-height:100vh;padding:0}.leaderboard-page header{align-items:center;background:#fff;background:var(--card-bg);border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;padding:1rem 2rem}.leaderboard-main{margin:0 auto;max-width:600px;padding:2rem}.leaderboard-main h2{margin:0 0 .5rem}.leaderboard-subtitle{color:#555;color:var(--text-muted);font-size:.95rem;margin:0 0 1.5rem}.leaderboard-table{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 2px 12px #00000014;overflow:hidden}.leaderboard-header,.leaderboard-row{grid-gap:1rem;align-items:center;display:grid;gap:1rem;grid-template-columns:50px 1fr 80px 100px;padding:.75rem 1rem}.leaderboard-header{background:#0000000d;font-size:.9rem;font-weight:600}.leaderboard-row{border-top:1px solid #e8e8e8;border-top:1px solid var(--border)}.leaderboard-row:nth-child(2n){background:#00000005}.lb-place{color:#555;color:var(--text-muted)}.lb-user{align-items:center;display:flex;gap:.5rem}.lb-avatar{object-fit:cover}.lb-avatar,.lb-avatar-placeholder{border-radius:50%;height:32px;width:32px}.lb-avatar-placeholder{align-items:center;background:#4a90d9;color:#fff;display:flex;font-size:.9rem;font-weight:600;justify-content:center}.lb-rating{color:#9b59b6;font-weight:600}.lb-rank{color:#f39c12}.leaderboard-empty{color:#555;color:var(--text-muted);padding:2rem;text-align:center}.replays-list-page{background:#e8e8e8;background:var(--bg);display:flex;flex-direction:column;min-height:100vh}.replays-page-header{align-items:center;background:#fff;background:var(--card-bg);border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border);display:flex;flex-shrink:0;justify-content:space-between;padding:1rem 2rem}.replays-page-header h1{font-size:1.25rem;margin:0}.replays-content{flex:1 1;overflow:auto;padding:1.5rem 2rem}.replays-empty{color:#555;color:var(--text-muted)}.replays-empty,.replays-loading{padding:2rem;text-align:center}.replays-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.replay-card{background:#fff;background:var(--card-bg);border:2px solid #e8e8e8;border:2px solid var(--border);border-radius:12px;color:inherit;display:flex;flex-direction:column;gap:.5rem;padding:1.25rem;text-decoration:none;transition:border-color .2s,box-shadow .2s}.replay-card:hover{border-color:#e74c3c;box-shadow:0 4px 12px #e74c3c33}.replay-card-header{align-items:center;display:flex;justify-content:space-between}.replay-card-id{font-size:1rem;font-weight:600}.replay-card-result{border-radius:6px;font-size:.9rem;font-weight:600;padding:.25rem .5rem}.replay-result-win{background:#27ae6026;color:#27ae60}.replay-result-loss{background:#e74c3c26;color:#e74c3c}.replay-result-draw{background:#7f8c8d26;color:#7f8c8d}.replay-card-meta{color:#555;color:var(--text-muted);font-size:.85rem}.replay-card-watch{color:#e74c3c;font-size:.9rem;margin-top:.75rem}@media (max-width:768px){.replays-list-page{min-height:100vh}.replays-page-header{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.replays-page-header h1{font-size:1.15rem;text-align:center}.replays-page-actions{display:flex;justify-content:center}.replays-page-actions .btn{max-width:200px;width:100%}.replays-content{padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.replays-grid{gap:.75rem;grid-template-columns:1fr}.replay-card{padding:1rem}.replay-card-header{flex-wrap:wrap;gap:.5rem}.replay-card-id{font-size:.95rem}.replay-card-result{font-size:.85rem;padding:.2rem .4rem}.replay-card-meta{font-size:.8rem}.replay-card-watch{font-size:.85rem;margin-top:.5rem}.replays-empty{font-size:.95rem}.replays-empty,.replays-loading{padding:1.5rem 1rem}}@media (max-width:480px){.replays-page-header{padding:.75rem}.replays-page-header h1{font-size:1.1rem}.replays-content{padding:.75rem}.replays-grid{gap:.6rem}.replay-card{padding:.85rem}.replay-card-id{font-size:.9rem}.replay-card-meta{font-size:.75rem}.replay-card-watch{font-size:.8rem}.replays-error,.replays-list-page .error{margin:.75rem 1rem!important}}.replays-list-page .replays-error{margin:1rem 2rem}@media (max-width:768px){.decks-page-header{align-items:stretch;flex-direction:column;gap:1rem;padding:1rem}.decks-page-header h1{font-size:1.1rem;text-align:center}.decks-page-actions{flex-wrap:wrap;gap:.5rem;justify-content:center}.decks-page-actions .btn{flex:1 1;font-size:.9rem;margin-bottom:0;min-width:120px;padding:.65rem 1rem}.decks-grid-full{padding:1rem}.decks-grid{gap:.75rem}.deck-card{min-width:100%;padding:1rem;width:100%}.deck-card h3{font-size:.95rem}.deck-card .deck-cards-preview{gap:.35rem;min-height:85px;padding:.4rem}.deck-card .deck-cards-preview .card-display{min-height:66px!important;width:48px!important}.deck-card .deck-cards-preview .card-display-mana{font-size:9px!important;height:16px!important;width:16px!important}.deck-card .deck-cards-preview .card-display-name{font-size:8px!important;line-height:1.1}.deck-card .deck-cards-preview .card-display-right-stats{font-size:.65em;padding:.1rem .15rem}.deck-card-count{font-size:.8rem}}@media (max-width:480px){.decks-page-header{padding:.75rem}.decks-page-actions{flex-direction:column}.decks-page-actions .btn{min-width:100%;width:100%}.decks-grid-full{padding:.75rem}.decks-page .error{margin:.75rem 1rem!important}}@media (max-width:768px){.deck-detail-header{align-items:stretch;flex-direction:column;gap:.75rem;padding:1rem}.deck-detail-header h1{font-size:1.1rem;text-align:center}.deck-detail-header .btn{width:100%}.deck-detail-cards{padding:1rem}.deck-edit-cards-section{margin:1rem 0}.deck-edit-cards-grid{gap:.75rem}.deck-edit-card-item{padding:.4rem}}@media (max-width:480px){.deck-detail-cards{padding:.75rem}.deck-detail-cards .cards-grid{gap:.5rem}}@media (max-width:768px){body{font-size:15px}header{align-items:center;box-sizing:border-box;flex-wrap:nowrap;gap:clamp(.25rem,.15rem + .65vw,.45rem);max-width:100%;min-width:0;overflow-x:hidden;padding:clamp(.35rem,.25rem + .6vw,.55rem) max(clamp(.35rem,.2rem + 1vw,.65rem),env(safe-area-inset-right)) clamp(.35rem,.25rem + .6vw,.55rem) max(clamp(.35rem,.2rem + 1vw,.65rem),env(safe-area-inset-left))}header .header-logo{flex:0 0 auto;flex-shrink:0;font-size:clamp(.78rem,.62rem + .85vw,.95rem);max-width:min(32vw,7.5rem);min-width:0}header .header-logo img{height:clamp(18px,10px + 3.2vw,26px);width:auto}header .header-user{flex:0 0 auto;flex-shrink:0;min-width:0}header .header-actions{flex-wrap:nowrap;gap:clamp(.12rem,.06rem + .55vw,.35rem);overflow-y:visible}header .header-actions,header .header-actions-guest{-webkit-overflow-scrolling:touch;flex:1 1;justify-content:flex-start;min-width:0;overflow-x:auto;scrollbar-width:thin}header .header-actions-guest{flex-wrap:nowrap}header .header-buttons{flex:0 0 auto;flex-shrink:0;flex-wrap:nowrap;gap:clamp(.12rem,.06rem + .65vw,.55rem);justify-content:flex-start;min-width:-webkit-min-content;min-width:min-content}header .header-nav-primary,header .header-nav-secondary{flex-wrap:nowrap;gap:clamp(.1rem,.05rem + .55vw,.45rem)}header .header-nav-tools{gap:clamp(.12rem,.06rem + .35vw,.35rem);padding:clamp(.08rem,.04rem + .25vw,.2rem)}header .btn{flex-shrink:0;font-size:clamp(.56rem,.38rem + 1.15vw,.82rem);line-height:1.15;min-height:clamp(1.42rem,.95rem + 2.4vw,2.05rem);padding:clamp(.18rem,.1rem + .65vw,.4rem) clamp(.22rem,.12rem + 1.1vw,.55rem);white-space:nowrap}header .btn-outline{padding:clamp(.18rem,.1rem + .65vw,.38rem) clamp(.22rem,.12rem + 1vw,.52rem)}header .btn-icon{flex-shrink:0;font-size:clamp(.62rem,.45rem + 1.6vw,.92rem);min-height:clamp(1.38rem,.92rem + 2.2vw,2.05rem);min-width:clamp(1.38rem,.92rem + 2.2vw,2.05rem);padding:clamp(.1rem,.05rem + .45vw,.32rem);width:clamp(1.38rem,.92rem + 2.2vw,2.05rem)}header .header-user{margin-bottom:0}header .header-actions .navbar-hero-select{flex-shrink:1;min-width:0}header .header-actions .navbar-hero-select-trigger{max-width:min(9rem,28vw)}.header-avatar,.header-avatar-placeholder{font-size:clamp(.65rem,.55rem + .5vw,.8rem);height:clamp(22px,16px + 2vw,28px);width:clamp(22px,16px + 2vw,28px)}header .header-username{font-size:clamp(.68rem,.58rem + .55vw,.82rem);max-width:min(5.5rem,22vw);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}header .nav-dropdown{flex-shrink:0}header .nav-dropdown-trigger{max-width:min(8.5rem,40vw)}}@media (max-width:400px){header .header-username{display:none}header .header-user{margin-right:.12rem}}@media (max-width:360px){header .header-logo-text{display:none}header .header-logo{flex:0 0 auto;max-width:none}}@media (max-width:768px){.home-page main{padding:1rem}.welcome-box{max-width:100%;min-width:0;padding:1.5rem 1.25rem;width:100%}.welcome h2,.welcome-logo{font-size:1.25rem}.welcome-logo img{height:36px}.welcome-buttons{flex-direction:column;gap:.75rem}.welcome-actions{flex-direction:column;max-width:100%}.welcome .btn-lg,.welcome-actions .btn,.welcome-buttons .btn{font-size:1rem!important;padding:.9rem 1.5rem!important;width:100%}}@media (max-width:480px){.auth-page{padding:1rem}.auth-page .auth-card{padding:1.5rem 1.25rem}.auth-page h1{font-size:1.25rem}.auth-page .auth-illustration{height:140px}.auth-page input[type=email],.auth-page input[type=password],.auth-page input[type=text]{font-size:16px;padding:.65rem .9rem}.auth-page button[type=submit]{padding:.9rem 1.5rem}}@media (max-width:768px){.decks-page,.play-page{padding:1rem max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.decks-page h1,.play-page h1{font-size:1.2rem}.decks-page-actions{flex-wrap:wrap}.play-page .mode-selection-options{flex-direction:column}.play-page .mode-option{min-width:0;width:100%}.play-page>div.play-page-toolbar{align-items:stretch;flex-direction:column;gap:.65rem}.play-page-toolbar-right{width:100%}.play-page-toolbar-right .btn{justify-content:center;text-align:center;width:100%}.play-page-hero-card{gap:.75rem;min-height:4.5rem;padding:.85rem .9rem}.play-page-hero-avatar,.play-page-hero-avatar.hero-card-portrait{border-radius:12px;font-size:1.2rem;height:56px;width:56px}.play-page-hero-name{font-size:1rem}.play-page-hero-change{font-size:.82rem}.play-page .deck-selection{margin:1rem 0}.play-page .decks-cards-row{flex-direction:column;gap:.75rem}.play-page .deck-card{min-width:0;padding:1rem;width:100%}.play-page .deck-card h3{font-size:1rem}.play-page .deck-cards-preview{gap:.35rem;min-height:80px}.play-page .selected-deck-cards{margin:1rem 0;padding:1rem}.play-page .selected-deck-cards .cards-grid{gap:.5rem;padding:1rem}.play-page .selected-deck-cards .card-display--lg{font-size:12px;min-height:136px;width:100px}.play-page .btn-primary{padding:.9rem 1.5rem;width:100%}.play-page .btn-secondary{width:100%}}@media (max-width:480px){.decks-page,.play-page{padding:.75rem max(.75rem,env(safe-area-inset-right)) max(.75rem,env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-left))}.play-page select{width:100%}.play-page h1{font-size:1.1rem}.play-page .mode-option{font-size:.95rem;padding:.65rem .9rem}.play-page .mode-option small{font-size:.75rem}.play-page-hero-card{flex-wrap:wrap;row-gap:.5rem}.play-page-hero-info{flex-basis:calc(100% - 76px);flex-grow:1;flex-shrink:1;min-width:8rem}.play-page-hero-change{border-top:1px solid #e8e8e8;border-top:1px solid var(--border,#eee);flex:1 1 100%;margin:0 -.25rem;padding-left:.25rem;padding-right:.25rem;padding-top:.15rem;text-align:right}.play-page .deck-card{padding:.85rem}.play-page .deck-card .deck-cards-preview .card-display{min-height:60px!important;width:44px!important}.play-page .deck-card .deck-cards-preview .card-display-mana{font-size:8px!important;height:14px!important;width:14px!important}.play-page .deck-card .deck-cards-preview .card-display-name{font-size:7px!important}.play-page .deck-card-count{font-size:.8rem}.play-page .selected-deck-cards{margin:.75rem 0;padding:.75rem}.play-page .selected-deck-cards h3{font-size:.95rem}.play-page .selected-deck-cards .cards-grid{gap:.4rem;padding:.75rem}.play-page .selected-deck-cards .card-display--lg{font-size:11px;min-height:120px;width:88px}.play-page .selected-deck-cards .card-display--lg .card-display-mana{font-size:14px;height:24px;width:24px}}@media (max-width:768px){.game-board{max-width:100%;padding:.5rem max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left))}.game-board header{flex-wrap:wrap;gap:.4rem;padding:.5rem 0}.game-board header h2{flex:1 1;font-size:.95rem;min-width:0}.game-board .header-actions{gap:.4rem}.game-board .header-actions .btn{font-size:.85rem;padding:.4rem .6rem}.game-status{padding:.4rem 0}.game-status p{font-size:.9rem;margin:.2rem 0}.attack-hint{font-size:.8rem;line-height:1.3}.enemy-area,.my-area{border-radius:6px;margin:.4rem 0;padding:.6rem}.enemy-header{margin-bottom:.4rem}.board{gap:.3rem;min-height:70px}.game-board .card-display--sm{font-size:10px;min-height:74px;width:56px}.game-board .card-display--sm .card-display-mana{font-size:9px;height:15px;width:15px}.game-board .card-display--sm .card-display-name{font-size:8px}.game-board .card-display--sm .card-display-right-stats{padding:.1rem .15rem}.game-board .card-display--sm .card-display-attack,.game-board .card-display--sm .card-display-health{font-size:.7em;min-width:12px}.game-board .minion{padding:.2rem}.game-board .hand{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.3rem;margin:.4rem 0;overflow-x:auto;overflow-y:visible;padding-bottom:.3rem;scrollbar-width:thin;touch-action:pan-x}.card-in-hand{flex-shrink:0;gap:.2rem}.card-in-hand .card-display{min-height:74px!important;width:56px!important}.card-in-hand .btn{font-size:.75rem;min-height:36px;padding:.35rem .5rem}.minion-attack-badge{font-size:7px}.enemy-hero{font-size:.85rem;padding:.35rem .6rem}.my-hero-row{align-items:center;display:flex;flex-wrap:wrap;font-size:.9rem;gap:.5rem}.game-board .btn-primary{font-size:.95rem;padding:.7rem 1.25rem;width:100%}.game-overlay-message{font-size:1.75rem;padding:1.25rem 1.5rem}.game-overlay-hint{font-size:.9rem;margin-top:.75rem;padding:0 1rem;text-align:center}.game-overlay .btn{margin-top:.5rem;padding:.75rem 1.5rem}}@media (max-width:480px){.game-board{padding:.35rem max(.35rem,env(safe-area-inset-right)) .35rem max(.35rem,env(safe-area-inset-left))}.game-board header h2{font-size:.9rem}.game-status p{font-size:.85rem}.attack-hint{font-size:.75rem}.enemy-area,.my-area{margin:.35rem 0;padding:.5rem}.board{gap:.25rem;min-height:60px}.game-board .card-display--sm{min-height:62px;width:46px}.game-board .card-display--sm .card-display-mana{font-size:8px;height:12px;width:12px}.game-board .card-display--sm .card-display-name{font-size:6px;line-height:1.1}.game-board .card-display--sm .card-display-attack,.game-board .card-display--sm .card-display-health{font-size:.65em;min-width:10px}.card-in-hand .card-display{min-height:62px!important;width:46px!important}.card-in-hand .btn{font-size:.7rem;padding:.3rem .4rem}.enemy-hero{font-size:.8rem;padding:.3rem .5rem}.my-hero-row{font-size:.85rem}.my-hero-row .btn-outline{width:100%}.game-overlay-message{font-size:1.5rem;padding:1rem 1.25rem}.game-overlay-hint{font-size:.85rem}.card-display-keywords .keyword{font-size:.5em;padding:.05rem .15rem}}@media (max-width:360px){.game-board .card-display--sm{min-height:56px;width:42px}.game-board .card-display--sm .card-display-name{font-size:5px}.card-in-hand .card-display{min-height:56px!important;width:42px!important}}@media (max-width:768px){.replay-page{padding:.75rem max(.75rem,env(safe-area-inset-right)) .75rem max(.75rem,env(safe-area-inset-left))}.replay-page header{flex-wrap:wrap;gap:.5rem}.replay-page header h2{flex:1 1;font-size:1rem;min-width:0}.replay-controls{flex-wrap:wrap;gap:.5rem;margin:.5rem 0;padding:.5rem 0}.replay-controls .btn{flex:1 1;font-size:.9rem;min-width:80px;padding:.5rem .75rem}.replay-step-info{font-size:.85rem;order:-1;text-align:center;width:100%}.replay-board .enemy-area,.replay-board .my-area{margin:.4rem 0;padding:.5rem}.replay-board .board{gap:.3rem;min-height:70px}.replay-board .enemy-hero{font-size:.85rem;padding:.35rem .6rem}.replay-board .card-display--sm{min-height:74px;width:56px}.replay-board .card-display--sm .card-display-name{font-size:8px}.replay-board .hand{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;gap:.3rem;margin:.4rem 0;overflow-x:auto}.replay-board .card-in-hand .card-display{min-height:74px!important;width:56px!important}.replay-board .my-area>div:last-child{font-size:.9rem}.replay-error,.replay-loading{padding:1.5rem 1rem}.replay-error .btn{max-width:200px;width:100%}}@media (max-width:480px){.replay-page{padding:.5rem}.replay-page header h2{font-size:.95rem}.replay-controls{flex-direction:column;gap:.4rem}.replay-controls .btn{min-width:0;width:100%}.replay-step-info{font-size:.8rem}.replay-board .enemy-area,.replay-board .my-area{padding:.4rem}.replay-board .board{gap:.25rem;min-height:60px}.replay-board .card-display--sm{min-height:62px;width:46px}.replay-board .card-display--sm .card-display-name{font-size:6px}.replay-board .card-in-hand .card-display{min-height:62px!important;width:46px!important}.replay-board .enemy-hero{font-size:.8rem;padding:.3rem .5rem}.replay-board .my-area>div:last-child{font-size:.85rem}}@media (max-width:768px){.leaderboard-page header{padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.leaderboard-page .header-logo{font-size:1rem}.leaderboard-page .header-logo img{height:28px;width:28px}.leaderboard-main{padding:1rem max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.leaderboard-main h2{font-size:1.2rem}.leaderboard-subtitle{font-size:.9rem;margin-bottom:1rem}.leaderboard-table{border-radius:10px}.leaderboard-header,.leaderboard-row{font-size:.9rem;gap:.5rem;grid-template-columns:36px 1fr 60px 70px;padding:.6rem .75rem}.lb-avatar,.lb-avatar-placeholder{font-size:.8rem;height:26px;width:26px}}@media (max-width:480px){.leaderboard-page header{align-items:center;flex-direction:row;gap:.35rem;min-width:0;overflow-x:hidden;padding:.5rem .6rem}.leaderboard-page .header-logo{font-size:.88rem;justify-content:flex-start;max-width:38%;min-width:0}.leaderboard-page .header-logo img{height:22px;width:auto}.leaderboard-page .header-actions{flex:1 1;justify-content:flex-end;min-width:0;overflow-x:visible}.leaderboard-page .header-actions .btn{flex-shrink:1;width:auto}.leaderboard-main{padding:.75rem}.leaderboard-main h2{font-size:1.1rem;text-align:center}.leaderboard-subtitle{font-size:.85rem;margin-bottom:.85rem;text-align:center}.leaderboard-header,.leaderboard-row{font-size:.82rem;gap:.35rem;grid-template-columns:28px 1fr 48px 52px;padding:.5rem .6rem}.leaderboard-header{font-size:.8rem}.lb-place{font-size:.9rem}.lb-username{font-size:.85rem;max-width:100%;overflow:hidden;text-overflow:ellipsis}.lb-avatar,.lb-avatar-placeholder{flex-shrink:0;font-size:.7rem;height:22px;width:22px}.lb-user{gap:.35rem;min-width:0}.leaderboard-empty{font-size:.9rem;padding:1.5rem 1rem}}@media (max-width:360px){.leaderboard-header,.leaderboard-row{font-size:.78rem;grid-template-columns:24px 1fr 44px 48px;padding:.4rem .5rem}.lb-avatar,.lb-avatar-placeholder{font-size:.65rem;height:20px;width:20px}}.profile-matches{background:#fff;background:var(--card-bg);border-radius:12px;box-shadow:0 4px 20px #00000014;margin-top:2rem;padding:2rem}.profile-matches h3{font-size:1.1rem;margin:0 0 1rem}.matches-list{list-style:none;margin:0;padding:0}.matches-list li{align-items:center;border-bottom:1px solid #e8e8e8;border-bottom:1px solid var(--border,#eee);display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem 0}.matches-list li:last-child{border-bottom:none}.match-replay-btn{margin-left:.5rem}.notifications-page{background:#e8e8e8;background:var(--bg);display:flex;flex-direction:column;min-height:100vh}.notifications-content{flex:1 1;margin:0 auto;max-width:860px;padding:1.5rem;width:100%}.notifications-list{display:flex;flex-direction:column;gap:.75rem;list-style:none;margin:0;padding:0}.notification-item{align-items:center;background:#fff;background:var(--card-bg);border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:12px;display:flex;gap:1rem;justify-content:space-between;padding:.9rem 1rem}.notification-item--read{opacity:.82}.notification-item-main{align-items:center;display:flex;gap:.75rem;min-width:0}.notification-hero-portrait,.notification-reward-icon{flex-shrink:0;height:48px;width:48px}.notification-reward-icon{background:color-mix(in srgb,#f39c12 14%,#0000);background:color-mix(in srgb,var(--primary-color,#f39c12) 14%,#0000);border-radius:12px;display:grid;font-size:1.4rem;place-items:center}.notification-text{min-width:0}.notification-text h3{font-size:1rem;margin:0 0 .25rem}.notification-text p{color:#555;color:var(--text-muted);margin:0 0 .3rem}.notification-reward-amount{color:#e74c3c;font-weight:700;margin:.15rem 0 .35rem}.notification-text small,.notifications-empty{color:#555;color:var(--text-muted)}.friends-content{display:flex;flex-direction:column;gap:1rem}.friends-block{background:#fff;background:var(--card-bg);border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:12px;padding:.9rem 1rem}.friends-block h3{margin:0 0 .75rem}.friends-invite-form{display:flex;flex-wrap:wrap;gap:.75rem}.friends-invite-form input{border:1px solid #ddd;border-radius:8px;min-width:220px;padding:.5rem .65rem}.friends-list{display:flex;flex-direction:column;gap:.65rem;list-style:none;margin:0;padding:0}.friends-item{align-items:center;border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:10px;display:flex;gap:.75rem;justify-content:space-between;padding:.6rem}.friends-item-actions{display:flex;gap:.45rem}.friends-mini-user{align-items:center;display:flex;gap:.6rem}.friends-mini-avatar{border-radius:50%;flex-shrink:0;height:38px;object-fit:cover;width:38px}.friends-mini-avatar--placeholder{background:#e74c3c;background:var(--accent,#e74c3c);color:#fff;display:grid;font-weight:700;place-items:center}.friends-mini-meta{display:flex;flex-direction:column}.friends-mini-name{font-weight:600}.friends-empty,.friends-mini-rating,.friends-pending-label{color:#555;color:var(--text-muted);font-size:.9rem}.shop-content{display:flex;flex-direction:column;gap:1rem;padding:1rem 2rem 2rem}.shop-block{background:#fff;background:var(--card-bg);border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:12px;padding:1rem}.shop-block h3{margin:0 0 .75rem}.shop-info-line{margin:0 0 .45rem}.shop-hint-muted{color:#555;color:var(--text-muted);font-size:.9rem;margin:.65rem 0 0}.shop-cards-grid,.shop-last-card{margin-top:.75rem}.shop-cards-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(128px,1fr))}.shop-card-item{align-items:center;background:color-mix(in srgb,#fff 95%,#000 5%);background:color-mix(in srgb,var(--card-bg) 95%,#000 5%);border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:10px;display:flex;flex-direction:column;gap:.35rem;padding:.45rem}.shop-card-item--locked{filter:grayscale(.28);opacity:.84}.shop-card-state{font-size:.78rem;font-weight:600}.shop-card-state--locked{color:#e74c3c}.shop-card-state--unlocked{color:#27ae60}.shop-heroes-grid{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));margin-top:.75rem}.shop-hero-item{align-items:center;background:color-mix(in srgb,#fff 95%,#000 5%);background:color-mix(in srgb,var(--card-bg) 95%,#000 5%);border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:10px;display:flex;flex-direction:column;gap:.35rem;padding:.55rem .45rem;text-align:center}.shop-hero-item--locked{filter:grayscale(.3);opacity:.84}.shop-hero-name{font-size:.86rem;font-weight:600}.shop-last-hero{align-items:center;display:flex;gap:.65rem;margin-top:.75rem}.shop-last-hero-meta{display:flex;flex-direction:column;gap:.1rem}.shop-last-hero-meta span{color:#555;color:var(--text-muted);font-size:.86rem}@media (max-width:768px){.shop-content{padding:1rem}}@media (max-width:480px){.shop-content{padding:.75rem}}.chat-widget{background:linear-gradient(180deg,color-mix(in srgb,#fff 88%,#121212 12%),#fff);background:linear-gradient(180deg,color-mix(in srgb,var(--card-bg) 88%,#121212 12%),var(--card-bg));border:1px solid color-mix(in srgb,#e8e8e8 70%,#fff 30%);border:1px solid color-mix(in srgb,var(--border,#ddd) 70%,#fff 30%);border-radius:14px;bottom:16px;box-shadow:0 14px 34px #00000047;display:flex;flex-direction:column;overflow:hidden;position:fixed;right:16px;width:min(390px,calc(100vw - 20px));z-index:420}.chat-widget,.chat-widget--theme-general{--chat-accent:#e74c3c;--chat-accent-soft:#e74c3c1f;--chat-accent-border:#e74c3c57}.chat-widget--theme-private{--chat-accent:#8b5cf6;--chat-accent-soft:#8b5cf624;--chat-accent-border:#8b5cf661}.chat-widget--theme-match{--chat-accent:#22c55e;--chat-accent-soft:#22c55e21;--chat-accent-border:#22c55e61}.chat-widget--collapsed{width:min(210px,calc(100vw - 20px))}.chat-widget-head{align-items:center;background:color-mix(in srgb,#fff 92%,#000 8%);background:color-mix(in srgb,var(--card-bg) 92%,#000 8%);border-bottom:1px solid color-mix(in srgb,#e8e8e8 75%,#0000 25%);border-bottom:1px solid color-mix(in srgb,var(--border,#ddd) 75%,#0000 25%);display:flex;justify-content:space-between;padding:.6rem .65rem .5rem}.chat-widget-title-wrap{align-items:center;display:flex;gap:.5rem}.chat-widget-title{font-size:.9rem;font-weight:700;letter-spacing:.2px}.chat-widget-conn{border:1px solid #0000;border-radius:999px;font-size:.72rem;padding:.12rem .45rem}.chat-widget-conn--online{background:#22c55e24;border-color:#22c55e4d;color:#22c55e}.chat-widget-conn--offline{background:#f59e0b24;border-color:#f59e0b4d;color:#f59e0b}.chat-widget-tabs{display:flex;gap:.35rem;padding:.5rem .55rem 0}.chat-widget-private-open{display:flex;gap:.4rem;padding:.45rem .55rem 0}.chat-widget-private-open input,.chat-widget-send input{background:var(--bg-color);border:1px solid color-mix(in srgb,#e8e8e8 80%,#0000 20%);border:1px solid color-mix(in srgb,var(--border,#ddd) 80%,#0000 20%);border-radius:8px;color:var(--text-color);flex:1 1;padding:.46rem .58rem}.chat-widget-status{color:#555;color:var(--text-muted);font-size:.8rem;padding:.35rem .6rem 0}.chat-widget-dialogs{border:1px solid #e8e8e8;border:1px solid var(--border,#ddd);border-radius:8px;display:flex;flex-direction:column;gap:.25rem;margin:.45rem .55rem 0;max-height:115px;overflow:auto;padding:.25rem}.chat-dialog{grid-gap:.2rem .4rem;background:#0000;border:1px solid #0000;border-radius:8px;cursor:pointer;display:grid;gap:.2rem .4rem;grid-template-columns:28px 1fr auto;padding:.3rem .4rem;text-align:left;width:100%}.chat-dialog:hover{border-color:color-mix(in srgb,var(--chat-accent) 42%,#0000)}.chat-dialog--active{background:color-mix(in srgb,var(--chat-accent) 11%,#0000);border-color:color-mix(in srgb,var(--chat-accent) 58%,#0000)}.chat-dialog-avatar{align-self:center;border-radius:50%;grid-row:1/span 2;height:26px;object-fit:cover;width:26px}.chat-dialog-avatar--fallback{align-items:center;background:var(--chat-accent);color:#fff;display:inline-flex;font-size:.7rem;font-weight:700;justify-content:center}.chat-dialog-name{font-size:.82rem;font-weight:600;grid-column:2/span 1}.chat-dialog-last{color:#555;color:var(--text-muted);font-size:.75rem;grid-column:2/span 1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-dialog-unread{align-items:center;align-self:center;background:var(--chat-accent);border-radius:999px;color:#fff;display:inline-flex;font-size:.72rem;grid-row:1/span 2;height:18px;justify-content:center;justify-self:end;min-width:18px;padding:0 6px}.chat-widget-messages{background:color-mix(in srgb,var(--bg-color) 92%,#101010 8%);border:1px solid color-mix(in srgb,#e8e8e8 82%,#0000 18%);border:1px solid color-mix(in srgb,var(--border,#ddd) 82%,#0000 18%);border-radius:10px;display:flex;flex-direction:column;gap:.42rem;margin:.45rem .55rem 0;max-height:280px;min-height:160px;overflow:auto;padding:.55rem}.chat-msg{align-items:flex-end;align-self:flex-start;display:flex;gap:.38rem;max-width:92%}.chat-msg-body{background:color-mix(in srgb,#fff 90%,#000 10%);background:color-mix(in srgb,var(--card-bg) 90%,#000 10%);border:1px solid color-mix(in srgb,#e8e8e8 75%,#0000 25%);border:1px solid color-mix(in srgb,var(--border,#ddd) 75%,#0000 25%);border-radius:8px;display:flex;flex-direction:column;gap:.15rem;padding:.4rem .5rem}.chat-msg--me{align-self:flex-end;flex-direction:row-reverse}.chat-msg--compact{margin-top:-.18rem}.chat-msg--compact:not(.chat-msg--me){margin-left:calc(26px + .38rem)}.chat-msg--compact.chat-msg--me{margin-right:calc(26px + .38rem)}.chat-msg--me .chat-msg-body{background:var(--chat-accent-soft);border-color:var(--chat-accent-border)}.chat-msg-avatar{border-radius:50%;flex-shrink:0;height:26px;object-fit:cover;width:26px}.chat-msg-avatar--fallback{align-items:center;background:var(--chat-accent);color:#fff;display:inline-flex;font-size:.7rem;font-weight:700;justify-content:center}.chat-msg-author{color:#555;color:var(--text-muted);font-size:.73rem;font-weight:600}.chat-msg-time{align-self:flex-end;font-size:.66rem;opacity:.72}.chat-msg-text{font-size:.9rem;word-break:break-word}.chat-empty{color:#555;color:var(--text-muted);font-size:.85rem}.chat-error{color:#d35400;font-size:.82rem;padding:0 .6rem}.chat-widget-send{display:flex;gap:.4rem;padding:0 .55rem .55rem}.hero-drop-modal{max-width:560px}.friend-online-modal{max-width:460px}.hero-drop-body{display:flex;flex-direction:column;gap:1rem}.hero-drop-card{align-items:center;display:flex;gap:.9rem}.hero-drop-portrait{flex-shrink:0;height:72px;width:72px}.hero-drop-info h3{margin:0 0 .35rem}.hero-drop-info p{color:#555;color:var(--text-muted);margin:0}.hero-drop-actions{display:flex;flex-wrap:wrap;gap:.6rem}.post-match-reward-icon{align-items:center;background:#e74c3c1f;border:1px solid #e74c3c40;border-radius:16px;display:flex;flex-shrink:0;font-size:2.25rem;height:72px;justify-content:center;width:72px}.post-match-reward-amount{color:#e74c3c;font-size:1.35rem;font-weight:800;margin:.35rem 0 0}@media (max-width:768px){.profile-page header{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.profile-main{padding:1.5rem max(1rem,env(safe-area-inset-right)) 1.5rem max(1rem,env(safe-area-inset-left))}.profile-main h2{font-size:1.35rem}.profile-card,.profile-matches,.profile-stats{padding:1.5rem}.avatar-upload-row{align-items:stretch;flex-direction:column}.avatar-upload-row .btn{width:100%}.avatar-file-name{text-align:center;word-break:break-all}.stats-grid{gap:.75rem;grid-template-columns:repeat(2,1fr)}.stat-item{padding:.85rem}.stat-value{font-size:1.35rem}.profile-matches{margin-top:1.5rem}}@media (max-width:480px){.profile-main{padding:1rem max(.75rem,env(safe-area-inset-right)) 1rem max(.75rem,env(safe-area-inset-left))}.profile-main h2{font-size:1.2rem}.profile-card,.profile-matches,.profile-stats{padding:1rem}.profile-avatar-wrap{margin-bottom:1rem}.profile-avatar,.profile-avatar-placeholder{font-size:2rem;height:72px;width:72px}.profile-form input{font-size:16px;padding:.6rem .75rem}.profile-form .btn-primary{width:100%}.stats-grid{grid-template-columns:1fr}.stat-item{padding:.75rem}.stat-value{font-size:1.25rem}.profile-matches{margin-top:1rem}.matches-list li{align-items:flex-start;flex-direction:column;padding:.75rem 0}.match-replay-btn,.matches-list li .btn{font-size:.85rem;margin-left:0;padding:.4rem .75rem}}@media (max-width:768px){.admin-cabinet{min-height:100vh}.admin-drop-card-pool-section,.admin-game-sounds-section,.admin-header,.admin-post-match-section,.admin-promote-section{padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.admin-header h1{font-size:1.15rem}.admin-header .btn{max-width:200px;width:100%}.admin-content{padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.admin-promote-form{align-items:stretch;flex-direction:column;gap:.5rem}.admin-promote-input{min-width:0;width:100%}.admin-promote-form .btn{width:100%}.admin-post-match-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none}.admin-post-match-form .btn{max-width:280px;width:100%}.admin-drop-card-pool-grid{grid-template-columns:1fr;max-height:280px}.admin-drop-card-pool-filters,.admin-game-sounds-grid{grid-template-columns:1fr}.admin-game-sounds-grid{gap:1rem}.admin-game-sound-item{padding:.85rem}.admin-game-sound-item .btn{width:100%}.admin-game-sound-item audio{max-width:100%!important}.admin-cards-grid{gap:.5rem}.admin-card-item{min-width:70px;padding:.4rem}.admin-card-preview-img{height:76px;width:56px}.admin-card-preview-name{font-size:.75rem;max-width:70px}.admin-edit-overlay{align-items:center;padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.admin-edit-panel{-webkit-overflow-scrolling:touch;margin:auto;max-height:85vh}.admin-edit-panel-header{margin-bottom:.85rem;padding-bottom:.6rem}.admin-form input[type=number]{max-width:120px;width:100%}}@media (max-width:480px){.admin-header{align-items:stretch;flex-direction:column;gap:.75rem;padding:.75rem}.admin-header h1{font-size:1.05rem;text-align:center}.admin-header .btn{max-width:none}.admin-drop-card-pool-section,.admin-game-sounds-section,.admin-post-match-section,.admin-promote-section{padding:.75rem}.admin-drop-card-pool-section h3,.admin-game-sounds-section h3,.admin-post-match-section h3,.admin-promote-section h3{font-size:.95rem}.admin-content{padding:.75rem}.admin-cards-list h3{font-size:.95rem}.admin-edit-overlay{align-items:flex-end;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}.admin-edit-panel{-webkit-overflow-scrolling:touch;border-radius:12px 12px 0 0;max-height:90vh;max-height:calc(90vh - env(safe-area-inset-bottom));padding:.85rem .85rem max(.85rem,env(safe-area-inset-bottom));width:100%}.admin-edit-panel-header{margin-bottom:.75rem;padding-bottom:.6rem}.admin-edit-panel-header h3{font-size:.95rem;overflow:hidden;padding-right:.5rem;text-overflow:ellipsis;white-space:nowrap}.admin-edit-close{flex-shrink:0;min-height:44px;min-width:44px}.admin-cards-grid{gap:.4rem}.admin-card-item{min-width:60px;padding:.35rem}.admin-card-preview-img{height:66px;width:48px}.admin-card-preview-name{font-size:.7rem;max-width:55px}.admin-form .form-group{margin-bottom:.75rem}.admin-form input,.admin-form select,.admin-form textarea{font-size:16px;width:100%}.admin-form input[type=number]{max-width:none}.form-checkboxes{flex-direction:column;gap:.35rem}.form-checkboxes .checkbox-label{padding:.4rem 0}.admin-form .form-group input[style*=margin-left],.admin-form .form-group input[style*=marginLeft]{margin-left:0!important;margin-top:.35rem!important;width:100%!important}.admin-form .form-group select[style*=margin-left],.admin-form .form-group select[style*=marginLeft]{margin-left:0!important;margin-top:.35rem!important}.admin-file-input-wrap{align-items:stretch;flex-direction:column}.admin-file-label{justify-content:center;width:100%}.admin-file-name{max-width:none;text-align:center;word-break:break-all}.admin-image-upload .btn,.admin-sound-upload .btn{width:100%}.admin-cabinet .error{margin:.75rem 1rem!important}}@media (max-width:360px){.admin-edit-panel{padding:.7rem .7rem max(.7rem,env(safe-area-inset-bottom))}.admin-edit-panel-header h3{font-size:.88rem}}@media (max-width:480px){.error-detail-overlay{align-items:flex-end;padding:.5rem}.error-detail{border-radius:12px 12px 0 0;max-height:90vh}.error-detail-header h3{font-size:1rem}.error-detail-body{padding:1rem}.error-detail-full{font-size:.75rem;padding:.5rem}}@media (max-width:768px){.modal-overlay{padding:1rem max(1rem,env(safe-area-inset-right)) 1rem max(1rem,env(safe-area-inset-left))}.modal-content{max-width:100%}.modal-body,.modal-header{padding-left:max(1rem,env(safe-area-inset-left));padding-right:max(1rem,env(safe-area-inset-right))}.modal-header h2{font-size:1.15rem}.tutorial-modal section{margin-bottom:1rem}.tutorial-modal h3{font-size:.98rem}.tutorial-modal p{font-size:.92rem}}@media (max-width:480px){.modal-overlay{align-items:flex-end;padding:0 env(safe-area-inset-right) 0 env(safe-area-inset-left)}.modal-content{border-radius:12px 12px 0 0;max-height:90vh;max-height:calc(90vh - env(safe-area-inset-bottom));width:100%}.modal-header{padding:1rem 1rem max(1rem,env(safe-area-inset-top))}.modal-header h2{font-size:1.1rem}.modal-header .btn{font-size:1.5rem;min-height:44px;min-width:44px;padding:0}.modal-body{-webkit-overflow-scrolling:touch;padding:1rem 1rem max(1rem,env(safe-area-inset-bottom))}.tutorial-modal section{margin-bottom:.9rem}.tutorial-modal h3{font-size:.95rem}.tutorial-modal p{font-size:.9rem;line-height:1.55}}@media (max-width:360px){.modal-header h2{font-size:1rem}.tutorial-modal h3{font-size:.9rem}.tutorial-modal p{font-size:.85rem}}@media (max-width:768px){.deck-create-page{padding:1rem}.cards-list{max-height:300px}.cards-grid{gap:.5rem;padding:1rem}.deck-edit-cards-grid{gap:.5rem}}@media (hover:none) and (pointer:coarse){.btn{min-height:44px;padding:.85rem 1.5rem}.btn-sm{min-height:36px;padding:.5rem 1rem}.card-in-hand,.enemy-hero.attack-target,.minion{min-height:44px}header .btn{min-height:40px}}
/*# sourceMappingURL=main.f624c2f1.css.map*/