.alert-error,.alert-info,.alert-success,.alert-warning,.badge-error,.badge-primary,.badge-success,.badge-warning,.blue-badge,.error-message,.green-badge,.green-color,.online-badge,.spinner-lg,.spinner-sm,.success-message{@extend .text-success}.App{background-attachment:scroll;background-image:url(https://cdn.battlefortheoceans.com/battlefortheoceans.jpg);background-image:var(--app-background,url("https://cdn.battlefortheoceans.com/battlefortheoceans.jpg"));background-position:50%;background-size:cover;height:300vh;margin:0;overflow:hidden;padding:0;width:100vw}.scene{height:100vh;left:0;overflow-y:auto;position:fixed;top:0;width:100%}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}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;font-family:var(--font-body,-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif);margin:0;min-height:100vh;overflow-x:hidden}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;font-family:var(--font-mono,source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace)}button{background:none;border:none;cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit;font-size:inherit}ol,ul{list-style:none}a{color:inherit;text-decoration:none}img{display:block;height:auto;max-width:100%}@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}:root{--space-xs:4px;--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:32px;--space-2xl:48px;--space-3xl:64px;--font-heading:"Orbitron","Rajdhani","Bebas Neue",sans-serif;--font-body:"Roboto","Open Sans",sans-serif;--font-mono:"Roboto Mono","Courier New",monospace;--border-radius-sm:4px;--border-radius-md:8px;--border-radius-lg:12px;--transition-speed:0.3s;--transition-fast:0.15s;--transition-slow:0.5s;--breakpoint-mobile:480px;--breakpoint-tablet:768px;--breakpoint-desktop:1024px;--breakpoint-wide:1440px;--z-background:-1;--z-base:0;--z-content:1;--z-modal:100;--z-overlay:200;--z-toast:300;--body-before-opacity:0.3}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}@media (max-width:768px){html{font-size:14px}:root{--space-xs:2px;--space-sm:4px;--space-md:8px;--space-lg:12px;--space-xl:16px;--space-2xl:24px;--space-3xl:32px}}@media (max-width:480px){html{font-size:12px}}body[data-era=traditional]{--nav-bg:#14283cf2;--primary-glow:#00d9ff80}body[data-era=midway]{--nav-bg:#281414f2;--primary-glow:#ffc80080}body{--primary:#00d9ff;--primary-glow:#00d9ffcc;--primary-dim:#00d9ff4d;--primary-dark:#09b;--bg-dark:#0a1628;--bg-medium:#132b47;--bg-light:#1e4d6b;--bg-overlay:#0a1628e6;--accent:#00ffd4;--accent-secondary:#4a90e2;--warning:#ff6b35;--success:#0f8;--error:#f36;--text-primary:#fff;--text-secondary:#b8e6f0;--text-dim:#7a9fad;--text-disabled:#4a5c68;--border-color:var(--primary);--border-subtle:#00d9ff33;--border-strong:var(--primary);--shadow:0 0 20px var(--primary-glow);--shadow-sm:0 0 10px var(--primary-dim);--shadow-lg:0 0 40px var(--primary-glow);--btn-border-primary:var(--primary);--btn-border-primary-hover:var(--primary);color:var(--text-primary);font-family:Roboto,Open Sans,sans-serif;font-family:var(--font-body);line-height:1.6;transition:background .5s ease,color .3s ease;transition:background var(--transition-slow) ease,color var(--transition-speed) ease}body[data-has-background-image=true] .content-pane{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}body:not([data-has-background-image=true]){background-attachment:fixed;background-image:radial-gradient(ellipse at bottom,var(--bg-medium) 0,var(--bg-dark) 100%);background-position:50%;background-size:cover}body[data-has-background-image=true]{background-attachment:scroll;background-position:50%;background-size:cover}body[data-has-background-image=true]:before{display:none}body:before{background-image:repeating-linear-gradient(0deg,#0000,#0000 2px,#00d9ff08 0,#00d9ff08 4px);bottom:0;content:"";left:0;opacity:.3;opacity:var(--body-before-opacity);pointer-events:none;position:fixed;right:0;top:0;z-index:-1;z-index:var(--z-background)}.container{position:relative}body{font-weight:400;letter-spacing:.01em}h1,h2,h3,h4,h5,h6{color:var(--primary);font-family:Orbitron,Rajdhani,Bebas Neue,sans-serif;font-family:var(--font-heading);font-weight:700;letter-spacing:.05em;line-height:1.2;margin:0 0 16px;margin:0 0 var(--space-md) 0;text-shadow:var(--shadow-sm)}h1{font-size:clamp(1.75rem,5vw,3rem);text-transform:uppercase}h2{font-size:clamp(1.5rem,4vw,2.25rem)}h3{font-size:clamp(1.25rem,3vw,1.75rem)}h4{font-size:clamp(1.125rem,2.5vw,1.5rem)}p{color:var(--text-secondary);margin:0 0 16px;margin:0 0 var(--space-md) 0}b,strong{color:var(--text-primary);font-weight:700}em,i{color:var(--accent);font-style:italic}code,pre{background:var(--bg-dark);border-radius:4px;border-radius:var(--border-radius-sm);font-family:Roboto Mono,Courier New,monospace;font-family:var(--font-mono);padding:.125em .25em}.container{margin:0 auto;max-width:1200px;min-height:100vh}.container,.container-fluid,.container-narrow{padding:0 16px;padding:0 var(--space-md);width:100%}.container-narrow{margin:0 auto;max-width:800px}@media (min-width:768px){.container,.container-fluid,.container-narrow{padding:0 24px;padding:0 var(--space-lg)}}@media (min-width:1024px){.container,.container-fluid,.container-narrow{padding:0 32px;padding:0 var(--space-xl)}}.flex{display:flex}.flex-column{flex-direction:column}.flex-center{align-items:center;justify-content:center}.flex-between{align-items:center;justify-content:space-between}.flex-wrap{flex-wrap:wrap}.grid{grid-gap:24px;grid-gap:var(--space-lg);display:grid;gap:24px;gap:var(--space-lg)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.gap-sm{gap:8px;gap:var(--space-sm)}.gap-md{gap:16px;gap:var(--space-md)}.gap-lg{gap:24px;gap:var(--space-lg)}.gap-xl{gap:32px;gap:var(--space-xl)}.mb-sm{margin-bottom:8px;margin-bottom:var(--space-sm)}.mb-md{margin-bottom:16px;margin-bottom:var(--space-md)}.mb-lg{margin-bottom:24px;margin-bottom:var(--space-lg)}.mb-xl{margin-bottom:32px;margin-bottom:var(--space-xl)}.mt-sm{margin-top:8px;margin-top:var(--space-sm)}.mt-md{margin-top:16px;margin-top:var(--space-md)}.mt-lg{margin-top:24px;margin-top:var(--space-lg)}.mt-xl{margin-top:32px;margin-top:var(--space-xl)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.skip-link{background:var(--bg-dark);color:var(--primary);left:0;padding:8px;padding:var(--space-sm);position:absolute;top:-40px;transition:top .15s;transition:top var(--transition-fast);z-index:100;z-index:var(--z-modal)}.skip-link:focus{top:0}.sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.fade-in{animation:fadeIn .3s ease-in;animation:fadeIn var(--transition-speed) ease-in}.fade-out{animation:fadeOut .3s ease-out;animation:fadeOut var(--transition-speed) ease-out}.slide-in-up{animation:slideInUp .3s ease-out;animation:slideInUp var(--transition-speed) ease-out}.glow-pulse{animation:glowPulse 2s ease-in-out infinite}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes glowPulse{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:var(--shadow)}}@media print{body{background:#fff;color:#000}body:before{display:none}*{box-shadow:none!important;text-shadow:none!important}}.selectable-item{background:var(--bg-overlay);border:2px solid var(--border-subtle);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);cursor:pointer;margin:var(--space-sm) 0;padding:var(--space-md);transition:all var(--transition-speed)}.selectable-item:hover{border-color:var(--primary);box-shadow:var(--shadow);transform:translateY(-2px)}.selectable-item--selected{background:var(--bg-medium);border-color:var(--success);box-shadow:0 4px 12px #00ff884d}.selectable-item--locked{cursor:not-allowed;opacity:.8}.selectable-item--locked:hover{border-color:var(--border-subtle);transform:none}.item-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-sm)}.item-name{color:var(--text-primary);font-size:1.1rem;font-weight:700}.item-description{line-height:1.3;margin:var(--space-xs) 0}.item-description,.item-details{color:var(--text-secondary);font-size:.9rem}.item-details{display:flex;gap:var(--space-md)}.opponent-content{align-items:flex-start;display:flex;gap:.75rem;width:100%}.opponent-avatar--small{background:var(--bg-medium);border:2px solid var(--border-color);border-radius:6px;flex-shrink:0;height:96px;overflow:hidden;width:96px}.opponent-avatar--small img{height:100%;object-fit:cover;width:100%}.opponent-info{flex:1 1;min-width:0}.nav-bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#14283cf2;background:var(--nav-bg,#14283cf2);border-bottom:2px solid var(--primary);box-shadow:0 2px 10px #0000004d;left:0;position:fixed;right:0;top:0;z-index:1000}.nav-bar__container{align-items:center;display:flex;gap:2rem;justify-content:space-between;margin:0 auto;max-width:1400px;padding:.5rem 1.5rem}.nav-bar__logo{color:var(--primary);font-family:var(--font-heading);font-size:1.25rem;font-weight:700;text-shadow:0 0 10px #00d9ff80;text-shadow:0 0 10px var(--primary-glow,#00d9ff80);white-space:nowrap}.nav-bar__links{display:flex;flex:1 1;gap:1rem;justify-content:center}.nav-bar__user{align-items:center;display:flex;gap:.5rem}.nav-bar__username{color:var(--text-primary);font-family:var(--font-body);font-size:.9rem;font-weight:500}.App main{padding-top:60px}.scrollable-list{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin:var(--space-md) 0;max-height:30vh;overflow-y:auto;padding:var(--space-md)}.scrollable-list--short{max-height:20vh}.scrollable-list--tall{max-height:40vh}.era-item .item-name{font-size:1.2rem}.alliance-item{display:flex;flex:1 1;flex-direction:column;gap:var(--space-sm);max-width:350px;min-width:250px}.opponent-item.ai-opponent:hover{border-color:var(--warning)}.opponent-item.ai-opponent.selectable-item--selected{border-color:var(--error)}.opponent-item.human-opponent:hover{border-color:var(--accent)}.opponent-item.human-opponent.selectable-item--selected{border-color:var(--primary)}.collapsible-section{background:var(--bg-medium);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin-bottom:var(--space-lg)}.collapsible-section__header{align-items:center;cursor:pointer;display:flex;gap:var(--space-md);justify-content:space-between;padding:var(--space-md);transition:background var(--transition-fast)}.collapsible-section__header:hover{background:var(--bg-light)}.collapsible-section__header h3{align-items:center;color:var(--text-primary);display:flex;gap:var(--space-sm);margin:0}.collapsible-section__icon{color:var(--primary);font-size:.8rem;transition:transform var(--transition-fast)}.collapsible-section__icon--expanded{transform:rotate(90deg)}.empty-state{color:var(--text-dim);padding:var(--space-lg);text-align:center}.empty-state p{margin:var(--space-xs) 0}.empty-state__hint{color:var(--text-dim);font-size:.85rem;font-style:italic}.achievement-notification{opacity:0;pointer-events:none;position:fixed;right:20px;top:80px;transform:translateX(400px);transition:all .4s cubic-bezier(.68,-.55,.265,1.55);z-index:999}.achievement-notification--visible{opacity:1;pointer-events:auto;transform:translateX(0)}.achievement-notification__content{animation:glow-pulse 2s ease-in-out infinite;background:#0a1628fa;background:var(--bg-dark,#0a1628fa);border:2px solid #00d9ff;border:2px solid var(--primary,#00d9ff);border-radius:12px;box-shadow:0 8px 32px #0009,0 0 20px #00d9ff4d;max-width:400px;min-width:320px;padding:1.5rem;position:relative}@keyframes glow-pulse{0%,to{box-shadow:0 8px 32px #0009,0 0 20px #00d9ff4d}50%{box-shadow:0 8px 32px #0009,0 0 30px #00d9ff80}}.achievement-notification__header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.achievement-notification__badge{color:#00d9ff;color:var(--primary,#00d9ff);font-family:var(--font-heading);font-size:.9rem;font-weight:700;letter-spacing:.1em;text-shadow:0 0 10px #00d9ff80;text-transform:uppercase}.achievement-notification__counter{background:#00d9ff1a;border-radius:12px;color:#a0aec0;color:var(--text-muted,#a0aec0);font-family:var(--font-body);font-size:.8rem;padding:.25rem .75rem}.achievement-notification__body{align-items:flex-start;display:flex;gap:1rem}.achievement-notification__icon{animation:icon-bounce .6s ease-out;flex-shrink:0;font-size:3rem;line-height:1}@keyframes icon-bounce{0%,to{transform:scale(1)}25%{transform:scale(1.2) rotate(-10deg)}75%{transform:scale(.9) rotate(5deg)}}.achievement-notification__details{flex:1 1}.achievement-notification__name{color:#e0e0e0;color:var(--text-primary,#e0e0e0);font-family:var(--font-heading);font-size:1.25rem;font-weight:700;margin:0 0 .5rem}.achievement-notification__description{color:#b0b0b0;color:var(--text-secondary,#b0b0b0);font-family:var(--font-body);font-size:.9rem;line-height:1.4;margin:0 0 .75rem}.achievement-notification__points{align-items:center;display:flex;gap:1rem}.achievement-notification__points-value{color:#0f8;color:var(--success,#0f8);font-family:var(--font-heading);font-size:1rem;font-weight:700}.achievement-notification__tier{font-family:var(--font-heading);font-size:.75rem;font-weight:700;letter-spacing:.1em}.achievement-notification__close{background:#0000;border:none;color:#a0aec0;color:var(--text-muted,#a0aec0);cursor:pointer;font-size:1.5rem;line-height:1;padding:.25rem .5rem;position:absolute;right:.5rem;top:.5rem;transition:all .2s ease}.achievement-notification__close:hover{color:#e0e0e0;color:var(--text-primary,#e0e0e0);transform:scale(1.2)}.purchase-body{max-height:70vh;overflow-y:auto}.image-grid{align-items:center;display:flex;flex-wrap:wrap;gap:30px;justify-content:center;margin-bottom:var(--space-lg)}.promo-image{border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);height:200px;max-width:400px;object-fit:contain}.section-header{color:var(--primary);font-size:1.1rem;margin-bottom:var(--space-md)}.feature-checklist{list-style:none;margin:0;padding:0}.feature-checklist li{color:var(--text-secondary);padding:var(--space-xs) 0 var(--space-xs) var(--space-md);position:relative}.feature-checklist li:before{color:var(--primary);content:"✓";font-weight:700;left:0;position:absolute}.info-card{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin-bottom:var(--space-lg);padding:var(--space-lg)}.info-card--center{text-align:center}.info-card__title{color:var(--primary);font-size:1.1rem;font-weight:700;margin:0 0 var(--space-md) 0}.info-list{color:var(--text-secondary);font-size:.875rem;margin:0;padding-left:var(--space-lg)}.tab-buttons{border-bottom:1px solid var(--border-subtle);display:flex;gap:var(--space-sm);padding-bottom:var(--space-sm)}.price-box{background:var(--bg-overlay);border-radius:var(--border-radius-md);padding:var(--space-md);text-align:center}.price-amount{color:var(--primary);font-size:2rem;font-weight:700;margin-bottom:var(--space-xs)}.price-note{color:var(--text-dim);font-size:.875rem}.content-pane{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);margin:0 auto;max-height:90vh;max-width:600px;overflow-y:auto;padding:var(--space-xl);width:80vw}.content-pane--wide{max-width:1400px}.content-pane--medium{max-width:1024px}.content-pane--narrow{max-width:500px}.page-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-overlay);min-height:100vh;padding:var(--space-lg)}.modal-overlay{align-items:center;animation:fadeIn var(--transition-speed) ease-in;background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:var(--z-modal)}.modal-overlay--transparent{background:#0000}.modal{animation:slideInUp var(--transition-speed) ease-out;background:var(--bg-medium);border:2px solid var(--border-color);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);max-height:90vh;max-width:90%;overflow-y:auto;padding:var(--space-xl)}.modal__header{align-items:center;border-bottom:1px solid var(--border-subtle);display:flex;justify-content:space-between;margin-bottom:var(--space-lg);padding-bottom:var(--space-md)}.modal__title{color:var(--primary);font-size:1.5rem;margin:0}.modal__close{background:#0000;border:none;color:var(--text-dim);cursor:pointer;font-size:1.5rem;padding:var(--space-xs);transition:all var(--transition-fast)}.modal__close:hover{color:var(--text-primary);transform:scale(1.1)}.modal__body{color:var(--text-secondary);margin-bottom:var(--space-lg)}.modal__footer{border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-md);justify-content:flex-end;padding-top:var(--space-md)}.card-header{border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-md);padding-bottom:var(--space-md)}.card-header--with-close{align-items:flex-start;display:flex;gap:var(--space-md);justify-content:space-between}.card-body{color:var(--text-secondary)}.card-footer{border-top:1px solid var(--border-subtle);display:flex;gap:var(--space-sm);justify-content:flex-end;margin-top:var(--space-md);padding-top:var(--space-md)}.card-title{color:var(--primary);font-size:1.5rem;margin:0}.card-subtitle{color:var(--text-dim);font-size:.875rem;margin:var(--space-sm) 0 0 0}.panel{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow);padding:var(--space-lg)}.card,.panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-overlay)}.card{border:1px solid var(--border-subtle);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-lg);margin:0 auto;max-width:600px;padding:var(--space-xl)}.card--narrow{max-width:400px}.card--medium{max-width:600px}.card--wide{max-width:95vw;width:1400px}.card.white{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff;border:1px solid #e0e0e0;box-shadow:0 4px 20px #00000026;color:#333}.card.white .card-title{color:#333}.card.white .card-subtitle{color:#666}.card.white .form-label{color:#333}.card.white .form-input{background:#f8f9fa;border:1px solid #d0d0d0;color:#333}.card.white .form-input:focus{border-color:#007bff;box-shadow:0 0 5px #007bff4d}.card.white .form-help{color:#666}.card.white .form-error{color:#dc3545}.btn{align-items:center;border:none;border-radius:var(--border-radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-heading);font-size:1rem;font-weight:600;gap:var(--space-sm);justify-content:center;letter-spacing:.05em;padding:var(--space-md) var(--space-lg);text-decoration:none;text-transform:uppercase;transition:all var(--transition-speed);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{cursor:not-allowed;opacity:.5;pointer-events:none}.btn--pulse{animation:pulse-glow 2s ease-in-out infinite}.btn--thin{font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md)}@keyframes pulse-glow{0%,to{box-shadow:0 0 5px var(--primary),0 0 10px var(--primary),0 0 15px var(--primary)}50%{box-shadow:0 0 10px var(--primary),0 0 20px var(--primary),0 0 30px var(--primary),0 0 40px var(--primary)}}.btn--primary{background:var(--bg-medium);border:2px solid var(--btn-border-primary);box-shadow:var(--shadow-sm);color:var(--text-primary)}.btn--primary:hover:not(:disabled){background:var(--primary);border-color:var(--btn-border-primary-hover);box-shadow:var(--shadow);color:var(--bg-dark);transform:translateY(-2px)}.btn--primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.btn--secondary{background:#0000;border:1px solid var(--border-subtle);color:var(--text-secondary)}.btn--secondary:hover:not(:disabled){border-color:var(--border-color);box-shadow:var(--shadow-sm);color:var(--text-primary)}.btn--danger{background:var(--bg-medium);border:2px solid var(--error);color:var(--text-primary)}.btn--danger:hover:not(:disabled){background:var(--error);box-shadow:0 0 20px #f369;color:var(--text-primary)}.btn--success{background:var(--bg-medium);border:2px solid var(--success);color:var(--text-primary)}.btn--success:hover:not(:disabled){background:var(--success);box-shadow:0 0 20px #0f89;color:var(--bg-dark)}.btn--warning{background:var(--bg-medium);border:2px solid var(--warning);color:var(--text-primary)}.btn--warning:hover:not(:disabled){background:var(--warning);box-shadow:0 0 20px #e8aa4299;color:var(--bg-dark)}.btn--sm{font-size:.875rem;padding:var(--space-sm) var(--space-md)}.btn--lg{font-size:1.125rem;padding:var(--space-lg) var(--space-xl)}.btn--block{display:flex;width:100%}.btn-group{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.link-button{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.875rem;padding:var(--space-xs) 0;text-decoration:underline;transition:color var(--transition-fast)}.link-button:hover{color:var(--primary-dark)}.form-group{margin-bottom:var(--space-lg)}.form-label{color:var(--text-primary);display:block;font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-sm);text-transform:uppercase}.form-input,.form-select,.form-textarea,.input,.input-primary{background:var(--bg-dark);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);color:var(--text-primary);font-size:1rem;padding:var(--space-md);transition:all var(--transition-speed);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus,.input-primary:focus,.input:focus{border-color:var(--border-color);box-shadow:var(--shadow-sm);outline:none}.form-input::placeholder,.form-textarea::placeholder,.input-primary::placeholder,.input::placeholder{color:var(--text-dim)}.form-textarea{min-height:120px;resize:vertical}.form-select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%2300D9FF' d='M6 9 1 4h10z'/%3E%3C/svg%3E");background-position:right var(--space-md) center;background-repeat:no-repeat;cursor:pointer;padding-right:calc(var(--space-md)*3)}.stripe-card-input{background:var(--bg-dark);border:2px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:inset 0 2px 4px #0000004d;margin-bottom:var(--space-lg);min-height:44px;padding:var(--space-md)}.stripe-card-input:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px #00d9ff33}.form-error{align-items:center;color:var(--error);display:flex;gap:var(--space-xs)}.form-error,.form-help{font-size:.875rem;margin-top:var(--space-xs)}.form-help{color:var(--text-dim)}.character-count{margin-top:var(--space-xs);text-align:right}.form-check{align-items:center;cursor:pointer;display:flex;gap:var(--space-sm)}.form-check input[type=checkbox],.form-check input[type=radio]{accent-color:var(--primary);cursor:pointer;height:20px;width:20px}.form-check label{color:var(--text-secondary);cursor:pointer}.password-group{position:relative}.password-group .input,.password-group .input-primary{padding-right:45px}.password-toggle{background:#0000;border:none;color:var(--text-dim);cursor:pointer;font-size:1.25rem;padding:var(--space-xs);position:absolute;right:var(--space-sm);top:50%;transform:translateY(-50%);transition:color var(--transition-fast)}.password-toggle:hover{color:var(--text-primary)}.form-actions{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-lg)}.login-dialog{margin:0 auto;max-width:400px;text-align:center}.login-dialog form{text-align:left}.auth-links{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.guest-section{margin-top:var(--space-xl);text-align:center}.guest-section .btn{display:inline-flex;margin:0 auto}.divider{background:linear-gradient(90deg,#0000 0,var(--border-color) 50%,#0000 100%);height:1px;margin:var(--space-lg) 0;position:relative}.divider span{background:var(--bg-dark);color:var(--text-dim);font-size:.875rem;left:50%;padding:0 var(--space-md);position:absolute;top:50%;transform:translate(-50%,-50%)}.email-confirmation-message{margin:var(--space-lg) 0;text-align:left}.email-confirmation-message .email-address{color:var(--primary);font-weight:600;margin:var(--space-sm) 0}.email-confirmation-message .help-text{color:var(--text-dim);font-size:.875rem;margin-top:var(--space-md)}.confirmation-actions{display:flex;flex-direction:column;gap:var(--space-md);margin-top:var(--space-lg)}.error-section{margin:var(--space-lg) 0}.reset-error,.reset-password-form,.reset-success{margin:0 auto;max-width:400px;text-align:center}.reset-password-form form{margin-top:var(--space-lg);text-align:left}.reset-password-form .form-group{margin-bottom:var(--space-lg)}.reset-password-form label{color:var(--text-primary);display:block;font-size:.9rem;font-weight:500;margin-bottom:var(--space-sm)}.reset-password-form .password-group .input{padding-right:45px}.reset-password-form .form-actions{margin-top:var(--space-xl)}.reset-password-form .btn-large{font-size:1rem;padding:14px 24px;width:100%}.reset-password-form .btn-secondary{width:100%}.loading-message,.transition-message{padding:var(--space-xl);text-align:center}.loading-message h2,.transition-message h2{color:var(--primary);margin-bottom:var(--space-md)}.loading-message p,.transition-message p{color:var(--text-secondary)}.era-grid,.era-players{font-weight:500}.hero-tagline{color:var(--text-secondary);font-size:1.25rem;font-style:italic;font-weight:300;letter-spacing:.02em;line-height:1.6;margin-top:.75rem;text-align:center}.alliance-selection{margin-top:var(--space-lg)}.alliance-choice{margin-bottom:var(--space-lg)}.alliance-list{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center;margin:var(--space-md) 0;max-height:25vh;overflow-y:auto;padding:var(--space-md)}.alliance-ships,.ship-count{font-weight:500}.alliance-fleet,.alliance-ships,.ship-count{color:var(--text-secondary);font-size:.85rem}.alliance-fleet{line-height:1.2;margin:var(--space-xs) 0}.ship-name{font-style:italic}.alliance-join-btn{align-self:center;font-size:.9rem;margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md)}.collapsible-section{margin-bottom:var(--space-md)}.collapsible-section__header{padding:var(--space-sm) var(--space-md)}.collapsible-section__header h4{font-size:1rem;margin:0}.collapsible-section__header p{font-size:.85rem;margin:0}.opponent-choice{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);padding:var(--space-lg);text-align:center}.ai-opponents,.human-opponents{margin-bottom:var(--space-lg)}.opponent-list{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin:0;max-height:200px;overflow-y:auto;padding:var(--space-sm)}.opponent-type{color:var(--text-dim);font-size:.8rem;font-style:italic;margin-top:var(--space-xs)}.placement-header{margin-bottom:var(--space-md)}.placement-header p{margin:0 0 var(--space-sm) 0}.placement-header h2{margin:0}.auto-place-section,.placement-actions{margin-top:var(--space-md)}.placement-actions{text-align:center}.auto-place-controls{display:flex!important;justify-content:center;margin:var(--space-md) 0;opacity:1!important;padding:var(--space-md);position:relative;visibility:visible!important;z-index:100}.auto-place-controls .btn{border:2px solid #0000;box-shadow:var(--shadow-sm);font-size:1rem;font-weight:600;min-width:200px;padding:var(--space-md) var(--space-lg);transition:all var(--transition-speed)}.auto-place-controls .btn:hover:not(:disabled){box-shadow:var(--shadow);transform:translateY(-1px)}.auto-place-controls .btn:disabled{cursor:not-allowed;opacity:.6;transform:none}.placement-complete{display:flex!important;justify-content:center;margin:var(--space-xl) 0;opacity:1!important;padding:var(--space-md);position:relative;visibility:visible!important;z-index:100}.placement-complete .btn--lg{font-size:1.2rem;font-weight:700;min-width:250px;padding:var(--space-lg) var(--space-xl)}.canvas-board{border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);touch-action:none;transition:box-shadow var(--transition-fast)}.canvas-board--battle{cursor:crosshair}.canvas-board--battle-waiting{cursor:not-allowed}.canvas-board--placement{cursor:copy}.canvas-board--placement-empty{cursor:default}.loading-container{padding:var(--space-lg);text-align:center}.loading-container p{color:var(--text-secondary);margin:0}.game-board-container{align-items:center;display:flex;justify-content:center;margin:var(--space-md) 0;min-height:320px;overflow:auto;padding:var(--space-md)}.game-board-container canvas{background-color:initial;border:2px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow);height:auto;max-height:100%;max-width:100%;object-fit:contain;width:auto}.final-board-section{margin-bottom:var(--space-xl);margin-top:var(--space-xl)}.final-board-container{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);display:flex;justify-content:center;padding:var(--space-md)}.final-board-image{border:2px solid var(--border-color);border-radius:var(--border-radius-md);height:auto;max-width:100%}.achievements-section{background:#00d9ff0d;border:1px solid #00d9ff33;border-radius:var(--border-radius-md);margin:var(--space-lg) 0;padding:var(--space-md)}.achievements-title{color:var(--primary);font-size:1.25rem;margin:0 0 var(--space-md) 0;text-align:center}.achievements-toggle{background:var(--bg-overlay);border-radius:var(--border-radius-md);display:flex;gap:0;justify-content:center;margin-bottom:var(--space-md);padding:var(--space-xs)}.achievements-toggle .btn{border-radius:0;border-right:1px solid var(--border-subtle)}.achievements-toggle .btn:first-child{border-radius:var(--border-radius-sm) 0 0 var(--border-radius-sm)}.achievements-toggle .btn:last-child{border-radius:0 var(--border-radius-sm) var(--border-radius-sm) 0;border-right:none}.achievements-toggle .btn--primary{background:var(--primary);color:var(--bg-dark)}.achievements-grid{align-items:flex-start;display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center}.achievement-grid--compact{grid-gap:var(--space-sm);display:grid;gap:var(--space-sm);grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.achievement-card{align-items:center;animation:achievementFadeIn .5s ease forwards;background:#ffffff0d;border:5px solid;border-radius:var(--border-radius-md);display:flex;flex-direction:column;justify-content:space-between;min-height:120px;opacity:0;padding:var(--space-sm);transform:translateY(10px);transition:transform .2s ease,box-shadow .2s ease;width:100px}@keyframes achievementFadeIn{to{opacity:1;transform:translateY(0)}}.achievement-card:hover{box-shadow:0 8px 24px #00d9ff66;transform:translateY(-4px) scale(1.05)}.achievement-card--bronze:hover{box-shadow:0 8px 24px #cd7f3280}.achievement-card--silver:hover{box-shadow:0 8px 24px #c0c0c080}.achievement-card--gold:hover{box-shadow:0 8px 24px #ffd70080}.achievement-card--platinum:hover{box-shadow:0 8px 24px #e5e4e280}.achievement-card--bronze{background:#cd7f321a;border-color:#cd7f32}.achievement-card--silver{background:#c0c0c01a;border-color:silver}.achievement-card--gold{background:#ffd7001a;border-color:gold}.achievement-card--platinum{background:#e5e4e21a;border-color:#e5e4e2}.achievement-card__icon{align-items:center;color:currentColor;display:flex;flex:1 1;justify-content:center;margin-bottom:var(--space-sm);width:100%}.achievement-card__icon svg{height:100%;max-height:64px;max-width:64px;width:100%}.achievement-card--bronze .achievement-card__icon{color:#cd7f32}.achievement-card--silver .achievement-card__icon{color:silver}.achievement-card--gold .achievement-card__icon{color:gold}.achievement-card--platinum .achievement-card__icon{color:#e5e4e2}.achievement-card__text{align-items:center;display:flex;flex-direction:column;gap:var(--space-xs);text-align:center;width:100%}.achievement-card__name{word-wrap:break-word;color:var(--text-primary);font-size:.75rem;font-weight:600;-webkit-hyphens:auto;hyphens:auto;line-height:1.2}.achievement-card__points{font-size:.625rem}.badge--bronze{background:#cd7f3233;border:1px solid #cd7f32;color:#cd7f32}.badge--silver{background:#c0c0c033;border:1px solid silver;color:silver}.badge--gold{background:#ffd70033;border:1px solid gold;color:gold}.badge--platinum{background:#e5e4e233;border:1px solid #e5e4e2;color:#e5e4e2}.challenges-section{margin:var(--space-lg) 0}.challenge-item{align-items:center;background:#ffffff0d;border:2px solid var(--border-color);border-radius:var(--border-radius-md);display:flex;flex-direction:column;justify-content:space-between;margin-bottom:var(--space-md);padding:var(--space-md);transition:all .2s ease}.challenge-item:hover{box-shadow:0 4px 12px #00d9ff4d;transform:translateY(-2px)}.challenge-item:last-child{margin-bottom:0}.challenge-header{align-items:center;display:flex;gap:var(--space-md);margin-bottom:var(--space-md);width:100%}.challenge-icon{align-items:center;color:var(--primary);display:flex;flex-shrink:0;justify-content:center}.challenge-info{flex:1 1;min-width:0}.challenge-name{align-items:center;color:var(--text-primary);display:flex;flex-wrap:wrap;font-size:1rem;font-weight:600;gap:var(--space-xs);margin-bottom:var(--space-xs)}.challenge-description{color:var(--text-secondary);font-size:.875rem;line-height:1.4}.challenge-progress{width:100%}.progress-bar{background:#ffffff1a;border-radius:4px;height:8px;margin-bottom:var(--space-xs);overflow:hidden;width:100%}.progress-bar__fill{background:linear-gradient(90deg,var(--primary),var(--success));border-radius:4px;height:100%;transition:width .3s ease}.progress-text{color:var(--text-secondary);display:block;font-size:.75rem;text-align:center}.view-mode-controls{background:#0000004d;border-radius:var(--border-radius-md);border-top:2px solid var(--primary);display:flex;gap:0;justify-content:center;margin:var(--space-md) auto;padding:4px;width:60%}.view-mode-btn{background:#0000;border:none;border-radius:var(--border-radius-sm);color:#fff9;cursor:pointer;flex:1 1;font-family:var(--font-heading);font-size:.875rem;font-weight:600;letter-spacing:.5px;padding:var(--space-sm) var(--space-lg);transition:all .2s ease}.view-mode-btn:hover{background:#ffffff0d;color:#fffc}.view-mode-btn--active,.view-mode-btn--active:hover{background:var(--primary);color:var(--text-dark)}.autoplay-toggle{margin-left:var(--space-md)}.message-consoles{margin:var(--space-md) auto;max-width:600px;width:100%}.console-combined{border:1px solid var(--border-color);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);overflow:hidden;width:100%}.console-header{background:var(--primary);color:var(--bg-dark);font-size:.75rem;font-weight:700;padding:var(--space-xs) var(--space-md);text-align:center}.console-content-combined{background:var(--bg-overlay);border-left:4px solid var(--primary);color:var(--text-primary);font-size:.9rem;line-height:1.4;padding:var(--space-md)}.ui-message{color:var(--primary);font-size:.95rem;font-weight:700;margin-bottom:var(--space-sm);text-align:center}.message-divider{background:linear-gradient(90deg,#0000,var(--border-color) 20%,var(--border-color) 80%,#0000);height:1px;margin:var(--space-sm) 0}.battle-message{color:var(--text-secondary);font-size:.85rem;text-align:center}.battle-legend{color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:.875rem;gap:var(--space-lg);justify-content:center;margin-top:var(--space-md)}.battle-legend .legend-item{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:var(--bg-overlay);border-radius:var(--border-radius-md);display:flex;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm)}.battle-legend .legend-icon{align-items:center;border-radius:var(--border-radius-sm);display:flex;font-size:8px;height:16px;justify-content:center;position:relative;width:16px}.battle-legend .legend-icon.has-ship{background-color:var(--accent)}.battle-legend .legend-icon.your-hit{background-color:var(--error)}.battle-legend .legend-icon.enemy-hit{background-color:var(--warning)}.battle-legend .legend-icon.your-miss{background-color:var(--text-dim)}.battle-stats{background:var(--bg-overlay);border:2px solid var(--border-subtle);border-radius:var(--border-radius-md);margin:var(--space-lg) 0;padding:var(--space-lg);transition:all var(--transition-speed)}.battle-stats h4{color:var(--primary);text-align:center}.battle-stats h4,.stats-grid{margin-bottom:var(--space-md)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.player-stats{background:var(--bg-medium);border:2px solid var(--border-subtle);border-radius:var(--border-radius-md);padding:var(--space-md);transition:all var(--transition-speed)}.player-stats--winner{border-color:gold;box-shadow:0 0 20px #ffd70080}.player-stats--loser{border-color:var(--error);box-shadow:0 0 20px #f366}.player-name{color:var(--primary);font-size:1.1rem;font-weight:700;margin-bottom:var(--space-sm);text-align:center}.stat-row{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);display:flex;justify-content:space-between;padding:var(--space-xs) 0}.stat-row:last-child{border-bottom:none}.game-duration{border-top:1px solid var(--border-subtle);color:var(--text-dim);font-size:.9rem;margin-top:var(--space-md);padding-top:var(--space-md);text-align:center}.leaderboard-section{background:var(--bg-overlay);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin:var(--space-xl) 0;padding:var(--space-lg)}.leaderboard-section h4{color:var(--primary);font-size:1.3rem;margin-bottom:var(--space-md);text-align:center}.leaderboard-subtitle{color:var(--text-secondary);font-size:.9rem;margin:var(--space-sm) 0 var(--space-lg) 0}.leaderboard-table{margin-bottom:var(--space-md);overflow-x:auto}.leaderboard-table .table{font-size:.9rem;margin:0}.leaderboard-table .rank-cell{color:var(--primary);font-weight:700;width:60px}.leaderboard-table .player-cell{color:var(--text-primary);font-weight:600}.leaderboard-table .player-row{background:#00d9ff1a;border-left:3px solid var(--primary)}.leaderboard-table .player-row td{color:var(--text-primary);font-weight:600}.player-rank-info{background:var(--bg-medium);border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin-top:var(--space-md);padding:var(--space-md);text-align:center}.player-rank-info p{color:var(--text-secondary);font-size:.95rem;margin:0}.player-rank-info strong{color:var(--primary)}.guest-leaderboard-note{background:#00d9ff0d;border:1px solid var(--border-subtle);border-radius:var(--border-radius-md);margin-top:var(--space-md);padding:var(--space-md);text-align:center}.guest-leaderboard-note p{color:var(--text-secondary);font-size:.9rem;font-style:italic;margin:0}.ml-sm{margin-left:var(--space-sm)}.game-stats{color:var(--text-primary);display:flex;font-size:.875rem;font-weight:600;gap:var(--space-xl);justify-content:center;margin:var(--space-sm) 0}.game-stats .score{background:var(--bg-overlay);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);padding:var(--space-sm) var(--space-md)}.stat-inline{background:var(--bg-overlay);border-radius:var(--border-radius-sm);color:var(--text-secondary);font-size:.8rem;padding:var(--space-xs) var(--space-sm)}.action-buttons{align-items:center;border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;margin-top:var(--space-lg);padding-top:var(--space-md)}.over-actions{display:flex;flex-wrap:wrap;gap:var(--space-md);justify-content:center;margin:var(--space-xl) 0}.game-info{margin-bottom:var(--space-md)}.game-info h3{margin-bottom:var(--space-sm)}.game-info p{margin-bottom:var(--space-xs)}.game-info .hint{color:var(--text-dim);font-size:.85rem;font-style:italic}@media (max-width:768px){.game-board-container{min-height:250px;padding:var(--space-sm)}.game-board-container canvas{height:auto;max-width:100%}.stats-grid{gap:var(--space-md);grid-template-columns:1fr}.battle-stats,.leaderboard-section{padding:var(--space-md)}.leaderboard-table .table{font-size:.8rem}.achievement-grid--compact{grid-template-columns:repeat(auto-fit,minmax(100px,1fr))}}@media (max-width:480px){.game-board-container{margin:var(--space-sm) 0;min-height:200px}.alliance-list{flex-direction:column;max-height:30vh}.opponent-list{max-height:150px}.action-buttons,.over-actions{flex-direction:column;gap:var(--space-sm)}.action-buttons .btn,.over-actions .btn{width:100%}.battle-legend,.game-stats{align-items:center;flex-direction:column;gap:var(--space-sm)}.auto-place-controls .btn,.placement-complete .btn--lg{min-width:auto;width:100%}.leaderboard-table{font-size:.75rem}.leaderboard-table .rank-cell{width:40px}.achievement-card{min-height:100px;width:80px}.achievement-card__icon svg{height:24px;width:24px}.achievement-card__name{font-size:.675rem}.challenge-header{align-items:center;flex-direction:column;text-align:center}.challenge-info{text-align:center}}@media (min-width:481px) and (max-width:768px){.alliance-list{justify-content:center;max-height:28vh}.opponent-list{max-height:180px}}@media (orientation:landscape) and (max-height:600px){.alliance-list{max-height:22vh}.opponent-list{max-height:20vh}}@media (max-height:500px){.alliance-list{max-height:18vh}.opponent-list{max-height:15vh}}@media (min-width:1024px){.alliance-list{max-height:35vh}.opponent-list{max-height:250px}}.badge{align-items:center;background:var(--bg-medium);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);color:var(--text-primary);display:inline-flex;font-size:.75rem;font-weight:600;justify-content:center;letter-spacing:.05em;padding:var(--space-xs) var(--space-sm);text-transform:uppercase}.badge--primary{background:var(--primary);border-color:var(--primary);color:var(--bg-dark)}.badge--success{background:var(--success);border-color:var(--success);color:var(--bg-dark)}.badge--warning{background:var(--warning);border-color:var(--warning);color:var(--bg-dark)}.badge--error{background:var(--error);border-color:var(--error);color:var(--text-primary)}.badge--online{animation:pulse 2s infinite;background:var(--success);color:var(--bg-dark)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.btn--disabled{cursor:not-allowed;opacity:.6}.game-version{color:var(--text-dim);font-family:var(--font-mono);font-size:.75rem;margin:0;padding:var(--space-sm) 0;text-align:center}.info-panel-overlay{animation:fadeIn .2s ease-in-out;background:#00000080;left:0;z-index:1000}.info-panel,.info-panel-overlay{bottom:0;position:fixed;right:0;top:0}.info-panel{animation:slideInRight .3s ease-out;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:var(--bg-primary);box-shadow:-4px 0 12px #0000004d;display:flex;flex-direction:column;max-width:90vw;width:400px;z-index:1001}.info-panel__header{align-items:center;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:var(--space-lg)}.info-panel__title{color:var(--primary);font-family:var(--font-heading);font-size:1.5rem;margin:0}.info-panel__close{align-items:center;background:none;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;line-height:1;padding:0;transition:color .2s ease;width:32px}.info-panel__close:hover{color:var(--primary)}.info-panel__content{flex:1 1;overflow-y:auto;padding:var(--space-lg)}.info-panel__content h4{color:var(--primary);font-family:var(--font-heading);margin-bottom:var(--space-sm);margin-top:var(--space-lg)}.info-panel__content h4:first-child{margin-top:0}.info-panel__content p{line-height:1.6;margin-bottom:var(--space-md)}.info-panel__content ul{margin-bottom:var(--space-md);margin-left:var(--space-lg)}.info-panel__content li{line-height:1.6;margin-bottom:var(--space-sm)}.info-panel__content .info-symbol{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;display:inline-block;font-family:monospace;font-weight:700;padding:2px 8px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}@media (max-width:768px){.info-panel{max-width:100%;width:100%}}.page-with-info{position:relative;width:100%}.info-button{align-items:center;background:var(--primary);border:2px solid var(--primary-light);border-radius:50%;box-shadow:0 2px 8px #00d9ff4d;color:var(--bg-primary);cursor:pointer;display:flex;font-family:var(--font-heading);font-size:1.25rem;font-weight:700;height:40px;justify-content:center;position:absolute;right:var(--space-md);top:var(--space-md);transition:all .2s ease;width:40px;z-index:900}.info-button:hover{background:var(--primary-light);box-shadow:0 4px 12px #00d9ff80;transform:scale(1.1)}.info-button__icon{font-style:italic}@media (max-width:768px){.info-button{font-size:1.1rem;height:36px;right:var(--space-md);top:var(--space-md);width:36px}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.italics{font-style:italic}.bold{font-weight:700}.uppercase{text-transform:uppercase}.alert{align-items:center;animation:slideInUp var(--transition-speed) ease-out;border-radius:var(--border-radius-md);display:flex;gap:var(--space-md);margin-bottom:var(--space-md);padding:var(--space-md) var(--space-lg)}.alert--info{background:#00d9ff1a;border:1px solid var(--primary);color:var(--text-primary)}.alert--success{background:#00ff881a;border:1px solid var(--success);color:var(--text-primary)}.alert--warning{background:#e8aa421a;border:1px solid var(--warning);color:var(--text-primary)}.alert--error{background:#ff33661a;border:1px solid var(--error);color:var(--text-primary)}.alert__icon{font-size:1.5rem}.message{border-radius:var(--border-radius-md);line-height:1.5;margin:var(--space-md) 0;padding:var(--space-md)}.message--error{background:#ff33661a;border:1px solid var(--error);color:var(--error)}.message--success{background:#00ff881a;border:1px solid var(--success);color:var(--success)}.message--info{background:#00d9ff1a;border:1px solid var(--primary);color:var(--primary)}.message--warning{background:#e8aa421a;border:1px solid var(--warning);color:var(--warning)}.reset-success .message--success{background:#00ff8826;border-color:var(--success);color:var(--text-primary)}.reset-error .message--error{background:#ff336626;border-color:var(--error);color:var(--text-primary)}.reset-success .page-header h2{color:var(--success)}.reset-error .page-header h2{color:var(--error)}.spinner{animation:spin 1s linear infinite;border:3px solid var(--border-subtle);border-radius:50%;border-top-color:var(--primary);height:40px;width:40px}.spinner--sm{border-width:2px;height:20px;width:20px}.spinner--lg{border-width:4px;height:60px;width:60px}@keyframes spin{to{transform:rotate(1turn)}}.loading{align-items:center;color:var(--text-secondary);display:flex;flex-direction:column;gap:var(--space-md);justify-content:center;padding:var(--space-xl)}.table{border-collapse:collapse;border-radius:var(--border-radius-md);overflow:hidden;width:100%}.table thead{background:var(--bg-dark);color:var(--primary);font-size:.875rem;letter-spacing:.05em;text-transform:uppercase}.table td,.table th{border-bottom:1px solid var(--border-subtle);padding:var(--space-md);text-align:left}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-medium)}.table tbody tr:last-child td{border-bottom:none}.divider-vertical{background:linear-gradient(180deg,#0000 0,var(--border-color) 50%,#0000 100%);height:100%;margin:0 var(--space-lg);width:1px}[data-tooltip]{cursor:help;position:relative}[data-tooltip]:hover:after{animation:fadeIn var(--transition-fast) ease-in;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:var(--border-radius-sm);bottom:100%;color:var(--text-primary);content:attr(data-tooltip);font-size:.875rem;left:50%;padding:var(--space-sm) var(--space-md);position:absolute;transform:translateX(-50%) translateY(-4px);white-space:nowrap;z-index:var(--z-toast)}.text-success{color:var(--success)}.text-error{color:var(--error)}.text-warning{color:var(--warning)}.text-primary{color:var(--primary)}.text-secondary{color:var(--text-secondary)}.text-dim{color:var(--text-dim)}.bg-success-subtle{background:#00ff881a}.bg-error-subtle{background:#ff33661a}.bg-warning-subtle{background:#e8aa421a}.bg-primary-subtle{background:#00d9ff1a}.alert-error,.alert-info,.alert-success,.alert-warning,.badge-error,.badge-primary,.badge-success,.badge-warning,.blue-badge,.error-message,.green-badge,.green-color,.online-badge,.spinner-lg,.spinner-sm,.success-message{@extend .text-success}.stats-hero{background:linear-gradient(135deg,#00d9ff1a,#00ff881a);border-radius:var(--radius-md);gap:var(--space-lg);margin-bottom:var(--space-xl);padding:var(--space-xl)}.rank-badge,.stats-hero{align-items:center;display:flex}.rank-badge{background:linear-gradient(135deg,gold,orange);border-radius:50%;box-shadow:0 4px 12px #ffd7004d;color:#000;flex-shrink:0;font-size:1.5rem;font-weight:700;height:70px;justify-content:center;width:70px}.win-rate{margin-left:auto;text-align:right}.win-rate__value{color:var(--success);font-size:2.5rem;font-weight:700}.win-rate__label{color:var(--text-secondary);font-size:.85rem;text-transform:uppercase}.stats-grid{grid-gap:var(--space-lg);display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(180px,1fr));margin-bottom:var(--space-xl)}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-lg);text-align:center;transition:transform .2s ease}.stat-card:hover{box-shadow:0 8px 16px #0000004d;transform:translateY(-4px)}.stat-card--highlight{background:linear-gradient(135deg,#ffd7001a,#ffa5001a);border-color:gold}.stat-card__icon{font-size:2.5rem;margin-bottom:var(--space-sm)}.stat-card__value{color:var(--text-primary);font-size:2rem;font-weight:700;margin:var(--space-xs) 0}.stat-card__label{color:var(--text-secondary);font-size:.9rem;letter-spacing:.05em;text-transform:uppercase}.section-title{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:1.25rem;font-weight:700;margin:var(--space-xl) 0 var(--space-lg) 0;padding-bottom:var(--space-sm)}.border-success{border-left:4px solid var(--success)!important}.border-error{border-left:4px solid var(--error)!important}@media (max-width:768px){.stats-hero{flex-direction:column;text-align:center}.win-rate{margin-left:0}.stats-grid{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.stat-card__icon{font-size:2rem}.stat-card__value{font-size:1.5rem}.rank-badge{font-size:1.25rem;height:60px;width:60px}.win-rate__value{font-size:2rem}.content-pane,.panel{margin:var(--space-sm) 0;padding:var(--space-md)}.btn{font-size:.875rem;padding:var(--space-sm) var(--space-md)}.btn-group{width:100%}.btn-group .btn{flex:1 1;min-width:0}.table{font-size:.875rem}.table td,.table th{padding:var(--space-sm)}.modal{max-width:95%;padding:var(--space-lg)}}@media (max-width:480px){.login-dialog,.reset-error,.reset-password-form,.reset-success{margin:0 var(--space-md)}.reset-password-form .form-actions{margin-top:var(--space-lg)}.card,.card--medium,.card--narrow,.card--wide,.content-pane,.content-pane--medium,.content-pane--narrow,.content-pane--wide{max-width:95%;padding:var(--space-lg)}.purchase-card{margin:var(--space-sm)}.purchase-body{max-height:60vh}.image-grid{gap:var(--space-md)}.promo-image{height:150px;max-width:100%}.info-card{padding:var(--space-md)}.section-header{font-size:1rem}.price-amount{font-size:1.5rem}.tab-buttons{flex-direction:column}.tab-buttons .btn{width:100%}.stripe-card-input{padding:var(--space-lg)}.era-list{max-height:35vh}.era-item,.era-list{padding:var(--space-sm)}.era-item{margin:var(--space-xs) 0}.era-name{font-size:1rem}.era-header{align-items:flex-start}.era-details,.era-header{flex-direction:column;gap:var(--space-xs)}.alliance-list{flex-direction:column;max-height:30vh}.alliance-item{max-width:none;min-width:auto}.alliance-header{align-items:flex-start;flex-direction:column;gap:var(--space-xs)}.opponent-list{max-height:150px}.opponent-item{padding:var(--space-sm)}.opponent-header{align-items:flex-start;flex-direction:column;gap:var(--space-xs)}.action-buttons,.over-actions{flex-direction:column;gap:var(--space-sm)}.action-buttons .btn,.over-actions .btn{width:100%}.message-consoles{margin:var(--space-sm) auto;max-width:95%}.battle-legend,.game-stats{align-items:center;flex-direction:column;gap:var(--space-sm)}}@media (max-width:360px){.price-amount{font-size:1.25rem}.promo-image{height:120px}.tab-buttons{gap:var(--space-xs)}}@media (min-width:481px) and (max-width:768px){.era-list{max-height:32vh}.alliance-list{justify-content:center;max-height:28vh}.opponent-list{max-height:180px}.era-details{gap:var(--space-sm)}}@media (orientation:landscape) and (max-height:600px){.era-list{max-height:25vh}.alliance-list{max-height:22vh}.opponent-list{max-height:20vh}.purchase-body{max-height:50vh}}@media (max-height:500px){.era-list{max-height:20vh}.alliance-list{max-height:18vh}.opponent-list{max-height:15vh}.purchase-body{max-height:45vh}}@media (min-width:1024px){.content-pane--wide{max-width:95%}.alliance-list{max-height:35vh}.era-list{max-height:40vh}.opponent-list{max-height:250px}}@media (max-width:768px){.game-board-container{min-height:250px;padding:var(--space-sm)}.game-board-container canvas{height:auto;max-width:100%}}@media (max-width:480px){.game-board-container{margin:var(--space-sm) 0;min-height:200px}}@media (max-width:768px){.stats-grid{gap:var(--space-md);grid-template-columns:1fr}.battle-stats{padding:var(--space-md)}}@media (max-width:480px){.message-console{font-size:.875rem;margin:var(--space-sm) 0;padding:var(--space-sm)}.console-content-combined{font-size:.8rem;padding:var(--space-sm)}}@media (max-width:768px){.log-content{font-size:.7rem;max-height:200px}.log-entry{flex-direction:column;gap:var(--space-xs)}.log-time,.log-turn{min-width:auto}}@media (max-width:480px){.badge{font-size:.65rem;padding:2px var(--space-xs)}.auto-place-controls .btn,.placement-complete .btn--lg{min-width:auto;width:100%}}@media (max-width:768px){.nav-bar__container{gap:1rem;padding:.5rem 1rem}.nav-bar__logo{font-size:1rem}.nav-bar__links{gap:.5rem}.nav-bar__username{font-size:.8rem}.App main{padding-top:50px}}@media (max-width:480px){.nav-bar__container{flex-wrap:wrap;padding:.5rem}.nav-bar__logo{flex:1 1 100%;margin-bottom:.5rem;text-align:center}.nav-bar__links,.nav-bar__user{flex:1 1 auto;justify-content:center}.achievement-notification{left:10px;right:10px;top:60px}.achievement-notification__content{max-width:none;min-width:auto;padding:1rem}.achievement-notification__icon{font-size:2.5rem}.achievement-notification__name{font-size:1.1rem}.achievement-notification__description{font-size:.85rem}}@media (min-width:481px) and (max-width:768px){.achievement-notification{right:15px;top:70px}.achievement-notification__content{max-width:350px;min-width:280px}}
/*# sourceMappingURL=main.81421ca9.css.map*/