@import "https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Cinzel+Decorative:wght@700&family=Crimson+Text:ital,wght@0,400;0,600;1,400&family=Inter:wght@400;500;600&display=swap";:root{--bg-deep:#091b26;--bg-primary:#0e2635;--bg-secondary:#0a3d52;--bg-header:#0d5070;--bg-card:#083348;--bg-input:#031c28;--bg-elevated:#0d1f2e;--bg-overlay:#000000b3;--text-primary:#dff0ff;--text-secondary:#c8d4d8;--text-dim:#8aacbc;--text-player:#adc0b8;--text-faction:#adc0b8;--text-stat-num:#a8cce8;--text-gold:#d4b580;--text-warm:#fffbef;--accent-gold:#d4b580;--accent-gold-hover:#e0c490;--accent-gold-dim:#b89a5a;--accent-red:#a04444;--accent-red-light:#c45e5e;--accent-green:#3aaa88;--accent-green-light:#5ec46a;--semantic-success:#5ec46a;--semantic-success-bg:#5ec46a1a;--semantic-warning:#c4965e;--semantic-warning-bg:#c4965e1f;--semantic-danger:#c45e5e;--semantic-danger-bg:#c45e5e1f;--semantic-info:#5e82c4;--semantic-info-bg:#5e82c41f;--stat-win:#86b88a;--stat-loss:#b88282;--stat-draw:#5e82c4;--stat-terr:#c4a87a;--stat-pv:#a8cce8;--stat-pc:#d4b580;--border-subtle:#146e8c66;--border-panel:#0d6080;--border-card:#0a4a62;--border-section:#2a7090;--border-gold:#d4b58040;--border-gold-mid:#d4b58073;--border-focus:var(--accent-gold);--shadow-soft:0 4px 12px #0000004d;--shadow-hover:0 6px 16px #00000073;--shadow-modal:0 8px 40px #000c;--radius-none:0;--radius-sm:3px;--radius-md:6px;--radius-lg:10px;--radius-full:9999px;--transition-fast:all .15s ease;--transition-base:all .2s ease;--transition-slow:all .4s cubic-bezier(.4, 0, .2, 1);--z-base:1;--z-sticky:10;--z-bottomnav:150;--z-drawer:200;--z-tooltip:300;--z-overlay:900;--z-modal:1000;--sidebar-width:275px;--sidebar-width-tab:220px;--right-panel-width:260px;--right-panel-tab:220px;--topbar-height:44px;--bottomnav-height:56px;--p1c:#c20;--p1l:#f53;--p2c:#04c;--p2l:#3378ff;--p3c:#0a0;--p3l:#2e2;--p4c:#c80;--p4l:#fb0;--p5c:#80c;--p5l:#b3f;--b-ciudad:#9070e0;--b-pueblo:#c89040;--b-minas:#b87828;--b-montana:#48a848;--b-camino:#d0b840;--b-especial:#c040ff;--b-ruinas:#282d2359}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{font-size:20px;overflow-x:hidden}html,body,#root{height:100%}@media (width>=1025px){html,body,#root{overflow:hidden}}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:Inter,sans-serif;font-size:13px;line-height:1.5}h1,h2,h3,h4{color:var(--text-primary);font-family:Cinzel,serif;line-height:1.3}.prose,.chronicle{color:var(--text-secondary);font-family:Crimson Text,Georgia,serif;font-size:.9rem;line-height:1.7}.tabular,.player-stat-value,.pv-value,.turn-number,[class*=stat-]{font-variant-numeric:tabular-nums;font-family:Inter,sans-serif;font-weight:600}label,button,input,textarea,select,td,th,li{font-family:Inter,sans-serif}:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--accent-gold)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important;transform:none!important}}.auth-page{background-color:var(--bg-deep);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex;overflow:hidden}.auth-box-wrapper{width:100%;max-width:420px;position:relative}.auth-box-wrapper:before{content:"";z-index:0;background:#010810;border-radius:0;position:absolute;inset:10px -10px -10px 10px}.auth-box-wrapper:after{content:"";z-index:0;background:#020c14;border-radius:0;position:absolute;inset:5px -5px -5px 5px}.auth-box{z-index:1;background:linear-gradient(160deg,#0d4858 0%,#083040 50%,#0a3848 100%);border:1px solid #1a6878;border-bottom:2px solid #6a4820;width:100%;max-width:420px;padding:32px;position:relative;overflow:hidden}.auth-box:before{content:"";z-index:1;background:linear-gradient(90deg,#0000,#d4b580 20%,#f0d090 50%,#d4b580 80%,#0000);height:3px;position:absolute;top:0;left:0;right:0}.auth-header{text-align:center;z-index:1;margin-bottom:28px;position:relative}.auth-sigil{margin-bottom:12px;font-size:2.5rem}.auth-title{color:var(--accent-gold);letter-spacing:3px;text-shadow:0 0 20px #e8b84866;margin-bottom:6px;font-family:Cinzel Decorative,serif;font-size:1.1rem}.auth-subtitle{letter-spacing:6px;color:var(--text-secondary);font-family:Cinzel,serif;font-size:.6rem}.auth-form{z-index:1;flex-direction:column;gap:16px;display:flex;position:relative}.auth-error{background:var(--semantic-danger-bg);border:1px solid var(--accent-red);color:#ff9090;padding:8px 12px;font-family:Cinzel,serif;font-size:.85rem}.form-field{z-index:1;flex-direction:column;gap:4px;display:flex;position:relative}.form-field label{letter-spacing:2px;color:var(--accent-gold);text-transform:uppercase;font-family:Cinzel,serif;font-size:.65rem}.form-field input{outline:none;width:100%;padding:10px 12px;font-family:Crimson Text,serif;font-size:1rem;background:var(--bg-input)!important;color:#b8d8e8!important;border:1px solid #1a5868!important;border-top:2px solid #020e14!important;border-left:2px solid #020e14!important;box-shadow:inset 0 3px 8px #0009!important}.form-field input:focus{border-color:var(--accent-gold)!important;background:var(--bg-input)!important}.form-field input::placeholder{color:var(--text-secondary);opacity:.5}.form-field input:-webkit-autofill{caret-color:#b8d8e8;-webkit-box-shadow:0 0 0px 1000px var(--bg-input) inset!important;-webkit-text-fill-color:#b8d8e8!important}.form-field input:-webkit-autofill:hover{caret-color:#b8d8e8;-webkit-box-shadow:0 0 0px 1000px var(--bg-input) inset!important;-webkit-text-fill-color:#b8d8e8!important}.form-field input:-webkit-autofill:focus{caret-color:#b8d8e8;-webkit-box-shadow:0 0 0px 1000px var(--bg-input) inset!important;-webkit-text-fill-color:#b8d8e8!important}.btn-primary{cursor:pointer;width:100%;transition:var(--transition-base);background:linear-gradient(#a01818 0%,#781010 50%,#500808 100%);border-top:2px solid #c83838;border-bottom:3px solid #200404;border-left:2px solid #b02828;border-right:2px solid #380808;justify-content:center;align-items:center;gap:16px;padding:11px 20px;font-family:Cinzel,serif;display:flex;box-shadow:0 4px 8px #0009,inset 0 1px #ff646426}.btn-primary:hover:not(:disabled){background:linear-gradient(#c02020 0%,#a01818 50%,#681010 100%);box-shadow:0 4px 12px #000c,inset 0 1px #ff646433}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.auth-footer{text-align:center;color:var(--text-secondary);z-index:1;margin-top:20px;font-size:.85rem;position:relative}.auth-footer a{color:var(--accent-gold);text-decoration:none}.auth-footer a:hover{color:var(--accent-gold)}.loading-screen{background:var(--bg-primary);height:100vh;color:var(--text-secondary);letter-spacing:3px;flex-direction:column;justify-content:center;align-items:center;gap:16px;font-family:Cinzel,serif;display:flex}.loading-sigil{font-size:3rem;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.95)}}.dashboard{flex-direction:column;height:100dvh;display:flex;overflow:hidden}.dashboard-header{border-bottom:2px solid var(--border-panel);background:linear-gradient(#0d5070,#0a4862,#0a3d52);border-radius:0;flex-shrink:0;justify-content:space-between;align-items:center;min-height:56px;padding:0 16px;display:flex;position:relative}.dashboard-header:after{content:"";background:linear-gradient(90deg, transparent, var(--accent-gold), #a8781866, var(--accent-gold), transparent);height:2px;position:absolute;bottom:0;left:0;right:0}.dh-left{align-items:center;gap:12px;display:flex}.dh-sigil{color:var(--accent-red-light);align-items:center;font-size:1.5rem;display:flex}.dh-mobile-title{display:none}.dh-left h1{color:var(--accent-gold);letter-spacing:2px;font-family:Cinzel Decorative,serif;font-size:.95rem}.dh-left p{letter-spacing:4px;color:var(--text-secondary);font-family:Cinzel,serif;font-size:.55rem}.dh-right{align-items:center;gap:8px;display:flex}.dh-user{color:var(--text-primary);font-family:Cinzel,serif;font-size:.7rem}.dh-role{letter-spacing:1px;color:var(--accent-gold);text-transform:uppercase;background:#a878181a;border:1px solid #a878184d;padding:2px 6px;font-family:Cinzel,serif;font-size:.55rem}.dashboard-main{flex-direction:column;flex:1;gap:28px;padding:24px 32px;display:flex;overflow-y:auto}.btn{letter-spacing:.06em;cursor:pointer;transition:var(--transition-fast);border-top:1px solid var(--border-gold-mid);border-left:1px solid var(--border-gold-mid);color:var(--accent-gold);white-space:nowrap;background:#0000004d;border-bottom:2px solid #0009;border-right:1px solid #0006;border-radius:0;align-items:center;gap:6px;padding:5px 11px;font-family:Cinzel,serif;font-size:.58rem;text-decoration:none;display:inline-flex}.btn:hover{border-top-color:var(--border-gold-mid);border-left-color:var(--border-gold-mid);color:var(--accent-gold-hover);background:#d4b5801a}.btn-red{color:#e07070;border-top-color:#b4323266;border-left-color:#b4323266}.btn-red:hover{color:#f09090;background:#b4323226;border-top-color:#c8505099;border-left-color:#c8505099}.join-section{background:linear-gradient(180deg, var(--bg-secondary), var(--bg-secondary));border:1px solid var(--border-subtle);border-top:2px solid #d4b5804d;border-bottom:2px solid #d4b58033;border-radius:0;padding:16px 20px}.join-section h2,.campaigns-section h2{letter-spacing:3px;color:var(--accent-gold);text-transform:uppercase;border-bottom:1px solid var(--border-subtle);margin-bottom:12px;padding-bottom:6px;font-family:Cinzel,serif;font-size:.7rem}.join-form{align-items:center;gap:8px;display:flex}.join-form input{background:var(--bg-input);color:var(--text-primary);letter-spacing:2px;text-transform:uppercase;border:1px solid #1a5868;border-top:2px solid #020e14;border-left:2px solid #020e14;outline:none;flex:1;max-width:300px;padding:7px 12px;font-family:Cinzel,serif;font-size:.65rem;box-shadow:inset 0 2px 5px #00000080}.join-form input:focus{border-color:var(--accent-gold)}.form-error{color:#ff9090;margin-top:6px;font-size:.8rem}.campaign-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.campaign-card{border:1px solid var(--border-subtle);border-top:2px solid var(--border-gold);cursor:pointer;transition:var(--transition-base);background:linear-gradient(160deg,#066a8614,#04445826);border-radius:0;padding:16px;position:relative}.campaign-card:hover{border-color:var(--accent-gold);box-shadow:var(--shadow-hover);background:linear-gradient(160deg,#066a8626,#04445840);transform:translateY(-2px)}.cc-status{letter-spacing:2px;text-transform:uppercase;border:1px solid;margin-bottom:8px;padding:2px 6px;font-family:Cinzel,serif;font-size:.55rem;display:inline-block}.cc-status[data-status=ACTIVE]{color:var(--semantic-success);border-color:var(--semantic-success);background:var(--semantic-success-bg)}.cc-status[data-status=DRAFT]{color:var(--text-secondary);border-color:var(--border-subtle);background:#0003}.cc-status[data-status=PAUSED]{color:var(--semantic-warning);border-color:var(--semantic-warning);background:var(--semantic-warning-bg)}.cc-status[data-status=FINISHED]{color:var(--accent-red-light);border-color:var(--accent-red-light);background:var(--semantic-danger-bg)}.cc-name{color:var(--accent-gold);letter-spacing:1px;margin-bottom:4px;font-family:Cinzel,serif;font-size:.85rem}.cc-subtitle{color:var(--text-secondary);margin-bottom:10px;font-size:.8rem;font-style:italic}.cc-meta{color:var(--text-secondary);gap:16px;margin-bottom:8px;font-family:Cinzel,serif;font-size:.75rem;display:flex}.cc-code{color:var(--text-secondary);letter-spacing:1px;font-family:Cinzel,serif;font-size:.7rem}.cc-code strong{color:var(--accent-gold);letter-spacing:3px}.empty-text,.loading-text{color:var(--text-secondary);padding:20px 0;font-size:.9rem;font-style:italic}.wh-table{border-collapse:collapse;width:100%}.wh-table th{letter-spacing:.1em;color:var(--accent-gold);text-align:left;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--border-gold);background:#00000059;padding:10px 14px;font-family:Cinzel,serif;font-size:10px}.wh-table tbody tr:nth-child(2n){background:#0d507059;border-left:3px solid #0d507099}.wh-table tbody tr:nth-child(odd){background:#0a3d522e;border-left:3px solid #0a3d524d}.wh-table tbody tr{border-bottom:1px solid var(--border-gold);transition:var(--transition-fast)}.wh-table tbody tr:hover{border-left-color:var(--accent-gold)!important;background:#d4b58017!important}.wh-table td{color:var(--text-primary);vertical-align:middle;padding:12px 14px;font-size:13px}@keyframes slideInRight{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes skeletonPulse{0%,to{opacity:.4}50%{opacity:.8}}.drawer-input{border:1px solid var(--border-subtle);width:100%;color:var(--text-primary);background:#0000004d;border-radius:3px;outline:none;padding:6px 10px;font-family:Crimson Text,Georgia,serif;font-size:13px;transition:border-color .2s}.drawer-input:focus{border-color:var(--border-subtle)}.milestone-locked{position:relative;overflow:hidden}.milestone-locked:after{content:"";pointer-events:none;background:#0000004d;position:absolute;inset:0}.veterancy-tooltip{position:relative}.veterancy-tooltip:hover .tooltip-text{display:block}.tooltip-text{background:var(--bg-secondary);border:1px solid var(--border-subtle);color:var(--text-secondary);white-space:nowrap;z-index:100;border-radius:3px;padding:4px 8px;font-family:Crimson Text,serif;font-size:10px;display:none;position:absolute;bottom:calc(100% + 4px);left:50%;transform:translate(-50%)}.confirm-danger{background:var(--semantic-danger-bg);border:1px solid var(--accent-red);border-radius:var(--radius-sm);margin-top:8px;padding:10px 12px}@media (width<=768px){.player-drawer,.left-sidebar{width:100%!important}}@media (width>=769px) and (width<=1024px){.player-drawer{width:80%!important}}.hero-status-alive{color:var(--semantic-success)}.hero-status-wounded{color:var(--semantic-warning)}.hero-status-recovering{color:var(--semantic-info)}.hero-status-captured{color:#848}.hero-status-missing{color:var(--text-dim)}.hero-status-dead{color:var(--semantic-danger)}.xp-bar-fill{transition:width .4s cubic-bezier(.4,0,.2,1)}.shield-active{filter:drop-shadow(0 0 3px)}.shield-inactive{filter:grayscale()opacity(.3)}@media (width<=1024px){.dashboard-header{min-height:48px;padding:0 14px}.dh-left p{display:none}.dh-left h1{font-size:.82rem}}@media (width<=768px){.dh-user,.dh-role,.dh-right .btn{display:none}.dh-hamburger{display:flex}.dashboard-main{gap:16px;padding:14px 16px}.act-btn{min-width:44px;min-height:44px;padding:8px 12px}}@media (width<=480px){.dh-left{position:static;transform:none}.dh-left>div{display:none}.dh-mobile-title{text-align:center;letter-spacing:4px;color:var(--accent-gold);text-transform:uppercase;pointer-events:none;flex:1;font-family:Cinzel,serif;font-size:.58rem;display:block}.dashboard-main{gap:12px;padding:12px}.campaigns-section h2{display:none}}@media (width<=600px){.auth-page{min-height:100dvh;padding:24px 16px}}.dh-logout{cursor:pointer;opacity:.85;transition:var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:2px;display:flex}.dh-logout:hover{opacity:1;filter:drop-shadow(0 0 4px #d4b58066)}.dh-hamburger{border:1px solid var(--border-gold);color:var(--accent-gold);cursor:pointer;transition:var(--transition-fast);background:0 0;flex-shrink:0;min-height:36px;padding:6px 11px;font-size:16px;display:none}.dh-hamburger:hover{background:#d4b5801a}.mobile-menu{background:var(--bg-elevated);border-left:1px solid var(--border-gold);width:260px;z-index:var(--z-modal);flex-direction:column;gap:8px;padding:16px;transition:transform .25s;display:flex;position:fixed;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-8px 0 32px #0009}.mobile-menu.open{transform:translate(0)}.mobile-menu-overlay{background:var(--bg-overlay);z-index:var(--z-overlay);display:none;position:fixed;inset:0}.mobile-menu-overlay.open{display:block}.mobile-menu-header{border-bottom:1px solid var(--border-gold);justify-content:space-between;align-items:center;margin-bottom:4px;padding-bottom:12px;display:flex}.mobile-menu-user{color:var(--accent-gold);font-family:Cinzel,serif;font-size:.75rem}.mobile-menu-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:2px 6px;font-size:18px;display:flex}.mobile-menu .btn{justify-content:flex-start;width:100%;min-height:44px;padding:10px 14px;font-size:.65rem}.mobile-menu-footer{border-top:1px solid var(--border-gold);margin-top:auto;padding-top:12px}.mobile-menu-role{color:var(--text-secondary);letter-spacing:.08em;margin-bottom:8px;font-family:Cinzel,serif;font-size:.6rem}@media (width<=1024px){.campaign-grid{grid-template-columns:repeat(2,1fr);gap:10px}}@media (width<=768px){.campaign-grid{grid-template-columns:1fr;gap:10px}}@media (width<=480px){.join-form{flex-direction:column;align-items:stretch}.join-form input{max-width:100%;min-height:44px}.join-input{min-height:44px}.join-form .btn{justify-content:center;min-height:44px}}@media (width<=1024px){.wh-col-turn,.wh-col-players{display:none}.wh-row-meta{display:block}}@media (width<=768px){.tableWrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.wh-row-meta{display:none}}@media (width<=480px){.wh-act-admin,.wh-col-estado{display:none}.wh-mobile-status-dot{display:inline!important}.wh-table td,.wh-table th{padding:8px 6px}}.wh-mobile-status-dot{display:none}.wh-row-meta{color:var(--text-dim);letter-spacing:.04em;margin-top:3px;font-family:Cinzel,serif;font-size:11px;display:none}@keyframes hammerPulse{0%,to{opacity:.75;filter:drop-shadow(0 0 6px #d4b5804d);transform:scale(1)}50%{opacity:1;filter:drop-shadow(0 0 16px #d4b580b3);transform:scale(1.06)}}.campaign-loading{background:var(--bg-primary);flex-direction:column;justify-content:center;align-items:center;gap:20px;height:100dvh;display:flex}.campaign-loading svg{animation:1.8s ease-in-out infinite hammerPulse}.campaign-loading span{letter-spacing:.2em;color:var(--accent-gold);opacity:.6;font-family:Cinzel,serif;font-size:11px}.campaign-view{background:var(--bg-primary);flex-direction:column;height:100dvh;display:flex;position:relative;overflow:hidden}@media (width<=1024px){.topbar-sub,.topbar-phase-pill{display:none}}.topbar-menu-wrap{flex-shrink:0;display:none;position:relative}@media (width<=768px){.topbar-actions{display:none!important}.topbar-name,.topbar-back{display:none}.topbar-menu-wrap{align-items:center;display:flex}.topbar-mobile-info{display:flex!important}.topbar-center{justify-content:center}}.topbar-mobile-info{white-space:nowrap;flex-direction:row;align-items:center;gap:6px;font-family:Cinzel,serif;display:none}.topbar-mobile-info .tmi-turn,.topbar-mobile-info .tmi-phase{vertical-align:middle;font-size:14px;line-height:1}.topbar-mobile-info .tmi-turn{color:var(--accent-gold);letter-spacing:.08em;font-weight:700}.topbar-mobile-info .tmi-phase{color:var(--text-primary);letter-spacing:.07em}.topbar-menu-btn{border:1px solid var(--border-gold);color:var(--accent-gold);cursor:pointer;min-width:36px;min-height:32px;transition:var(--transition-fast);background:0 0;justify-content:center;align-items:center;padding:2px 10px;font-size:20px;line-height:1;display:flex}.topbar-menu-btn:hover{background:#d4b5801a}.topbar-menu-overlay{z-index:calc(var(--z-modal) - 1);position:fixed;inset:0}.topbar-dropdown{background:var(--bg-elevated);border:1px solid var(--border-gold);border-top:2px solid var(--accent-gold);min-width:200px;box-shadow:var(--shadow-modal);z-index:var(--z-modal);flex-direction:column;display:flex;position:absolute;top:calc(100% + 6px);right:0}.topbar-dropdown-meta{border-bottom:1px solid var(--border-subtle);flex-wrap:wrap;align-items:center;gap:8px;padding:8px 12px;display:flex}.topbar-dropdown-item{color:var(--text-primary);letter-spacing:.06em;text-align:left;cursor:pointer;transition:var(--transition-fast);border:none;border-bottom:1px solid var(--border-subtle);background:0 0;align-items:center;gap:6px;min-height:44px;padding:10px 14px;font-family:Cinzel,serif;font-size:.6rem;display:flex}.topbar-dropdown-item:last-child{border-bottom:none}.topbar-dropdown-item:hover{color:var(--accent-gold);background:#d4b58014}.topbar-dropdown-item--danger{color:var(--semantic-danger)}.topbar-dropdown-item--danger:hover{color:var(--semantic-danger);background:#c45e5e1a}.topbar-dropdown-divider{background:var(--border-gold);opacity:.4;height:1px;margin:2px 0}.topbar-sidebar-btn{border:1px solid var(--border-gold);color:var(--accent-gold);cursor:pointer;transition:var(--transition-fast);letter-spacing:.06em;background:0 0;flex-shrink:0;align-items:center;gap:4px;min-height:44px;padding:4px 8px;font-family:Cinzel,serif;font-size:.52rem;display:none}.topbar-sidebar-btn:hover{background:#d4b5801a}.left-sidebar{width:var(--sidebar-width);flex-shrink:0;position:relative}@media (width<=1024px){.left-sidebar{width:var(--sidebar-width-tab)}.sidebar-collapse-btn{display:flex}}@media (width<=768px){.left-sidebar{width:300px;height:calc(100% - 56px);z-index:var(--z-drawer);box-shadow:var(--shadow-modal);transition:transform .25s;position:absolute;top:0;left:0;transform:translate(-100%)}.left-sidebar.sidebar-open{transform:translate(0)}.sidebar-collapse-btn{display:none}}.sidebar-collapse-btn{background:var(--bg-secondary);border:1px solid var(--border-panel);cursor:pointer;width:14px;height:48px;color:var(--accent-gold);z-index:20;transition:var(--transition-fast);border-left:none;justify-content:center;align-items:center;font-size:8px;display:none;position:absolute;top:50%;right:-14px;transform:translateY(-50%)}.sidebar-collapse-btn:hover{background:#d4b58014}.left-sidebar.collapsed{overflow:hidden;width:0!important}.sidebar-overlay{background:var(--bg-overlay);z-index:calc(var(--z-drawer) - 1);display:none;position:absolute;inset:0 0 56px}.sidebar-overlay.open{display:block}.right-panel{flex-direction:column;display:flex}@media (width<=1024px){.right-panel{width:var(--right-panel-tab)}}@media (width<=768px){.right-panel{display:none}}.bottom-nav{z-index:calc(var(--z-drawer) + 50);background:linear-gradient(180deg, #0a3345, var(--bg-elevated));border-top:1px solid var(--border-panel);z-index:var(--z-bottomnav);flex-shrink:0;display:none;position:relative}.bottom-nav:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-gold), transparent);height:1px;position:absolute;top:0;left:0;right:0}.bn-tabs{height:56px;display:flex}.bn-tab{color:var(--text-dim);letter-spacing:.08em;cursor:pointer;transition:var(--transition-fast);-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:6px 4px;font-family:Cinzel,serif;font-size:.48rem;display:flex;position:relative}.bn-tab.active{color:var(--accent-gold);background:#d4b5800f}.bn-tab.active:before{content:"";background:var(--accent-gold);height:2px;position:absolute;top:0;left:20%;right:20%}.bn-tab-icon{font-size:18px;line-height:1}.bn-tab-label{letter-spacing:.06em;text-transform:uppercase;font-size:9px}.bn-divider{background:var(--border-subtle);width:1px;margin:10px 0}.action-banner-mobile{display:none}.action-banner-wrapper{position:relative}.action-banner-wrapper:after{content:attr(data-tooltip);background:var(--bg-elevated);border:1px solid var(--border-panel);border-radius:var(--radius-sm);color:var(--text-primary);white-space:normal;word-break:break-word;pointer-events:none;opacity:0;z-index:var(--z-tooltip,900);padding:6px 10px;font-size:11px;line-height:1.5;transition:opacity .15s;position:absolute;top:calc(100% + 2px);left:0;right:0;box-shadow:0 4px 12px #00000080}.action-banner-wrapper:hover:after{opacity:1}@media (width<=768px){.bottom-nav{display:block}.action-banner-mobile{display:flex}.pv-box{min-width:64px}.action-banner-wrapper:after{display:none}.action-banner-detail{white-space:normal!important;text-overflow:unset!important;overflow:visible!important}.map-extra-controls{align-items:flex-start!important;top:8px!important;left:8px!important;right:auto!important}}.mobile-panel{bottom:var(--bottomnav-height);max-height:calc(70dvh - var(--topbar-height));background:var(--bg-secondary);border-top:1px solid var(--border-panel);z-index:calc(var(--z-bottomnav) + 1);flex-direction:column;display:none;position:absolute;left:0;right:0;overflow:hidden}.mobile-panel.open{display:flex}.mobile-panel-header{border-bottom:1px solid var(--border-gold);background:#0003;flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.mobile-panel-title{letter-spacing:.12em;color:var(--accent-gold);text-transform:uppercase;font-family:Cinzel,serif;font-size:.62rem}.mobile-panel-close{color:var(--text-dim);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;min-width:36px;min-height:36px;padding:4px 8px;font-size:16px;display:flex}.mobile-panel-body{flex:1;overflow-y:auto}.mobile-mov-bar{display:none}@media (width<=768px){.mobile-mov-bar{background:var(--bg-header);border-top:1px solid var(--border-gold-mid);z-index:120;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;display:flex}.mobile-mov-bar-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-family:Cinzel,serif;font-size:12px;overflow:hidden}.mobile-mov-bar-mp{color:var(--accent-gold);margin-left:4px;font-size:11px}.mobile-mov-bar-actions{flex-shrink:0;gap:6px;display:flex}.mobile-mov-bar-btn{cursor:pointer;white-space:nowrap;transition:var(--transition-fast);padding:6px 10px;font-family:inherit;font-size:12px}.mobile-mov-bar-reset{background:var(--semantic-warning-bg);border:1px solid var(--semantic-warning);border-radius:var(--radius-sm);color:var(--semantic-warning);border-bottom:2px solid #965032cc;font-weight:600}.mobile-mov-bar-end{border:1px solid var(--border-gold-mid);border-radius:var(--radius-sm);color:var(--accent-gold);text-shadow:0 1px 3px #0009;background:linear-gradient(#d4b58040 0%,#d4b58014 100%);border-bottom:2px solid #8c641ee6;font-weight:600;box-shadow:0 2px 6px #b4781e4d,inset 0 1px #f0c85033}.mobile-mov-bar-end:disabled{opacity:.5;cursor:not-allowed}.ficha-modal{width:95vw!important}.ficha-modal-body{max-height:calc(90dvh - 100px)!important}.player-drawer-panel{width:100vw!important}.drawer-tab-label,.drawer-badge-role,.drawer-guide-label,.drawer-pc-hint{display:none}.drawer-pc-summary{justify-content:space-around}.hero-card-header{row-gap:4px;flex-wrap:wrap!important}.hero-card-status{order:10;flex-basis:100%!important}.unit-destroy-label{display:none}.ficha-tree-cols{flex-direction:column!important}.ficha-hero-row{flex-wrap:wrap!important}.ficha-hero-main{flex-basis:100%!important}.ficha-hero-add{flex-wrap:wrap!important}.ficha-hero-add input{flex-basis:100%!important}}@media (width<=480px){.ficha-modal{border-left:none!important;border-right:none!important;border-radius:0!important;width:100vw!important}.ficha-modal-body{max-height:calc(100dvh - 100px)!important}.ficha-tab-bar{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.ficha-tab-bar::-webkit-scrollbar{display:none}.ficha-tab{flex-shrink:0}}.bh-back-btn{display:none}@media (width<=600px){.bh-list{width:100%!important;min-width:unset!important;border-right:none!important}.bh-list.bh-list--detail-open{display:none}.bh-detail{padding:14px!important}.bh-back-btn{color:#d4aa50;letter-spacing:.06em;cursor:pointer;background:0 0;border:1px solid #d4aa504d;align-self:flex-start;align-items:center;gap:6px;margin-bottom:4px;padding:6px 12px;font-family:Cinzel,serif;font-size:11px;display:flex}.battle-xp-row{row-gap:4px;flex-wrap:wrap!important}.battle-xp-controls{flex-wrap:wrap;flex-shrink:0;justify-content:flex-end}.edit-status-grid{grid-template-columns:repeat(2,1fr)!important}}@media (width<=768px){.final-score-modal{width:95vw!important}.score-col-extras,.score-col-obj{display:none}}@media (width<=480px){.final-score-modal{border-left:none!important;border-right:none!important;width:100vw!important;max-height:calc(100dvh - 100px)!important}.score-col-terr,.score-col-pc{display:none}.detail-scroll-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:none;overflow-x:auto}.detail-scroll-wrap::-webkit-scrollbar{display:none}}
