:root{--color-bg-primary: #0a0a0f;--color-bg-secondary: #12121a;--color-bg-tertiary: #1a1a26;--color-bg-card: #15151f;--color-bg-hover: #1e1e2c;--color-border: #2a2a3a;--color-border-light: #3a3a4a;--color-text-primary: #e8e6e3;--color-text-secondary: #9a9aaa;--color-text-muted: #6a6a7a;--color-gold: #c9a84c;--color-gold-dim: #a08030;--color-gold-bright: #e0c060;--color-red: #c04040;--color-red-bright: #e05050;--color-green: #40a040;--color-green-bright: #50c050;--color-blue: #4080c0;--color-blue-bright: #8bc4ff;--color-purple-bright: #c4a0ff;--color-red-ui: #ef4444;--focus-ring: 0 0 0 2px rgba(201, 168, 76, .4);--color-role-battleline: #50c050;--color-role-character: #c9a84c;--color-role-vehicle: #c04040;--color-role-infantry: #e8e6e3;--color-role-epic-hero: #9060d0;--glass-bg: rgba(18, 18, 26, .6);--glass-bg-heavy: rgba(18, 18, 26, .8);--glass-bg-light: rgba(26, 26, 38, .4);--glass-border: rgba(255, 255, 255, .06);--glass-border-hover: rgba(255, 255, 255, .1);--glass-border-active: rgba(201, 168, 76, .3);--glass-blur: 16px;--glass-blur-heavy: 24px;--glass-blur-light: 8px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3), 0 1px 3px rgba(0, 0, 0, .15);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3), 0 2px 4px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 25px rgba(0, 0, 0, .4), 0 6px 10px rgba(0, 0, 0, .25);--shadow-xl: 0 20px 50px rgba(0, 0, 0, .5), 0 10px 20px rgba(0, 0, 0, .3);--shadow-glow-gold: 0 0 20px rgba(201, 168, 76, .15), 0 0 40px rgba(201, 168, 76, .05);--shadow-glow-red: 0 0 20px rgba(192, 64, 64, .2);--shadow-glow-green: 0 0 20px rgba(64, 160, 64, .15);--shadow-inset: inset 0 1px 0 rgba(255, 255, 255, .03);--gradient-card: linear-gradient(135deg, rgba(21, 21, 31, .8) 0%, rgba(15, 15, 23, .9) 100%);--gradient-card-hover: linear-gradient(135deg, rgba(26, 26, 38, .85) 0%, rgba(18, 18, 28, .95) 100%);--gradient-header: linear-gradient(180deg, rgba(18, 18, 26, .95) 0%, rgba(12, 12, 18, .9) 100%);--gradient-sidebar: linear-gradient(180deg, rgba(14, 14, 22, .95) 0%, rgba(10, 10, 16, .98) 100%);--gradient-gold: linear-gradient(135deg, #c9a84c 0%, #a08030 100%);--gradient-gold-subtle: linear-gradient(135deg, rgba(201, 168, 76, .15) 0%, rgba(201, 168, 76, .05) 100%);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s ease;--text-xs: .694rem;--text-sm: .833rem;--text-base: 1rem;--text-md: 1.2rem;--text-lg: 1.44rem;--text-xl: 1.728rem;--text-2xl: 2.074rem;--z-base: 1;--z-dropdown: 10;--z-sticky: 20;--z-sidebar: 30;--z-modal-backdrop: 90;--z-modal: 100;--color-rank-battle-ready: var(--color-text-secondary);--color-rank-blooded: var(--color-green);--color-rank-battle-hardened: var(--color-blue);--color-rank-heroic: var(--color-purple-bright);--color-rank-legendary: var(--color-gold);--color-honour: var(--color-blue-bright);--color-scar: var(--color-red-bright);--font-display: "Orbitron", sans-serif;--font-body: "Inter", system-ui, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 32px;--space-2xl: 48px;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-body);background-color:var(--color-bg-primary);color:var(--color-text-primary);line-height:1.5;min-height:100vh;font-size:var(--text-base);background-image:radial-gradient(ellipse at 20% 50%,rgba(201,168,76,.03) 0%,transparent 50%),radial-gradient(ellipse at 80% 80%,rgba(144,96,208,.02) 0%,transparent 50%);background-attachment:fixed}#root{min-height:100vh;display:flex;flex-direction:column}a{color:var(--color-gold);text-decoration:none}a:hover{color:var(--color-gold-bright)}button{font-family:var(--font-body);cursor:pointer}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);font-weight:700;letter-spacing:.05em;text-transform:uppercase;line-height:1.2}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}h4{font-size:var(--text-md)}input,select,textarea{font-family:var(--font-body)}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-16px)}to{opacity:1;transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 8px #c9a84c33}50%{box-shadow:0 0 16px #c9a84c66}}@keyframes bar-fill{0%{width:0}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--color-bg-tertiary) 25%,var(--color-bg-hover) 50%,var(--color-bg-tertiary) 75%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.skeleton--text{height:1em;width:60%;margin-bottom:var(--space-sm)}.skeleton--card{height:120px;width:100%}.skeleton--bar{height:10px;width:100%;border-radius:var(--radius-full)}.skeleton--header{height:2em;width:40%;margin-bottom:var(--space-md)}.skeleton-list{display:flex;flex-direction:column;gap:var(--space-md)}.skeleton-row{display:flex;gap:var(--space-md);align-items:center}.skeleton-row__main{flex:1}.glass{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--shadow-md),var(--shadow-inset)}.glass--heavy{background:var(--glass-bg-heavy);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy))}.glass--light{background:var(--glass-bg-light);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light))}.glass--interactive{transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal),background var(--transition-normal)}.glass--interactive:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-lg),var(--shadow-inset);transform:translateY(-1px)}.glass--interactive:active{transform:translateY(0);box-shadow:var(--shadow-sm),var(--shadow-inset)}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-header{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-xl);background:var(--gradient-header);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border-bottom:1px solid var(--glass-border);box-shadow:var(--shadow-lg)}.app-header__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:900;color:var(--color-gold);letter-spacing:.1em;text-shadow:0 0 30px rgba(201,168,76,.2)}.app-header__nav{display:flex;gap:var(--space-xs)}.app-header__link{position:relative;font-size:var(--text-sm);font-weight:500;color:var(--color-text-secondary);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);transition:color var(--transition-normal),background-color var(--transition-normal)}.app-header__link:hover{color:var(--color-text-primary);background-color:#ffffff0a}.app-header__link--active{color:var(--color-gold);background-color:#c9a84c14}.app-header__link--active:after{content:"";position:absolute;bottom:2px;left:50%;transform:translate(-50%);width:24px;height:2px;background:var(--color-gold);border-radius:var(--radius-full);box-shadow:0 0 8px #c9a84c66}.app-main{flex:1;padding:var(--space-xl) var(--space-lg);max-width:1280px;width:100%;margin:0 auto;animation:fadeInUp .4s ease}.app-main:has(.list-editor){max-width:100%;padding:0 var(--space-md);overflow:hidden}.card{position:relative;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-md),var(--shadow-inset);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal)}.card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-lg),var(--shadow-inset)}.btn{display:inline-flex;align-items:center;gap:var(--space-sm);padding:10px 18px;font-size:var(--text-sm);font-weight:600;border:1px solid var(--glass-border);border-radius:var(--radius-md);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));color:var(--color-text-primary);transition:all var(--transition-normal);box-shadow:var(--shadow-sm);cursor:pointer}.btn:hover{background:var(--glass-bg-light);border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.btn--primary{background:var(--gradient-gold);border-color:var(--color-gold);color:#0a0a0f;font-weight:700;box-shadow:var(--shadow-sm),var(--shadow-glow-gold)}.btn--primary:hover{box-shadow:var(--shadow-md),0 0 30px #c9a84c40;transform:translateY(-1px)}.btn--danger{border-color:#c040404d;color:var(--color-red-bright);background:#c0404014}.btn--danger:hover{background:#c0404033;border-color:var(--color-red);box-shadow:var(--shadow-sm),var(--shadow-glow-red)}.btn:disabled,.btn[disabled]{opacity:.4;cursor:not-allowed;pointer-events:none;transform:none;box-shadow:none}.stat-line{display:flex;gap:3px;font-size:var(--text-sm);font-weight:600;font-family:var(--font-body)}.stat-line__item{display:flex;flex-direction:column;align-items:center;background:#0a0a0f80;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid var(--glass-border);border-radius:var(--radius-sm);padding:6px 10px;min-width:44px;transition:border-color var(--transition-fast)}.stat-line__item:hover{border-color:var(--glass-border-hover)}.stat-line__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}.stat-line__value{color:var(--color-text-primary);font-variant-numeric:tabular-nums}.points-bar-container{display:flex;flex-direction:column;gap:var(--space-xs)}.points-bar-labels{display:flex;justify-content:space-between;font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.points-bar{position:relative;width:100%;height:10px;background:#0a0a0f99;border:1px solid var(--glass-border);border-radius:var(--radius-full);overflow:hidden}.points-bar__fill{height:100%;border-radius:var(--radius-full);background:linear-gradient(90deg,#40a040,#50c050);transition:width var(--transition-slow),background var(--transition-normal);box-shadow:0 0 12px #40a0404d;animation:bar-fill .6s ease-out}.points-bar__fill--warning{background:linear-gradient(90deg,#c9a84c,#e0c060);box-shadow:0 0 12px #c9a84c4d}.points-bar__fill--over{background:linear-gradient(90deg,#c04040,#e05050);box-shadow:0 0 16px #c0404066;animation:bar-fill .6s ease-out,glow-pulse 2s ease-in-out infinite}.role-badge{display:inline-flex;align-items:center;padding:3px 10px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;border-radius:var(--radius-full);border:1px solid;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.role-badge--battleline{color:var(--color-role-battleline);border-color:#50c0504d;background:#50c05014}.role-badge--character{color:var(--color-role-character);border-color:#c9a84c4d;background:#c9a84c14}.role-badge--epic_hero{color:var(--color-role-epic-hero);border-color:#9060d04d;background:#9060d014}.role-badge--vehicle,.role-badge--monster{color:var(--color-role-vehicle);border-color:#c040404d;background:#c0404014}.role-badge--infantry{color:var(--color-role-infantry);border-color:#e8e6e333;background:#e8e6e30d}.role-badge--mounted,.role-badge--beast{color:var(--color-text-primary);border-color:#e8e6e333;background:#e8e6e30d}.role-badge--dedicated_transport,.role-badge--fortification{color:var(--color-text-secondary);border-color:#9a9aaa40;background:#9a9aaa0f}.role-badge--allied{color:var(--color-blue);border-color:#4080c04d;background:#4080c014}.ability-tag{display:inline-block;padding:3px 8px;font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-full);border:1px solid;cursor:help;transition:border-color var(--transition-fast),background var(--transition-fast)}.ability-tag--core{color:var(--color-blue);border-color:#4080c04d;background:#4080c014}.ability-tag--core:hover{background:#4080c026}.ability-tag--faction{color:var(--color-gold);border-color:#c9a84c4d;background:#c9a84c14}.ability-tag--faction:hover{background:#c9a84c26}.ability-tag--unique{color:var(--color-text-primary);border-color:#ffffff1a;background:#ffffff0a}.ability-tag--unique:hover{background:#ffffff14}.ability-tag--invuln{color:var(--color-role-epic-hero);border-color:#9060d04d;background:#9060d014}.ability-tag--invuln:hover{background:#9060d026}.form-group{display:flex;flex-direction:column;gap:var(--space-xs)}.form-group label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.form-input,.form-select{padding:10px var(--space-md);background:#0a0a0f99;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--text-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px #c9a84c1a,var(--shadow-glow-gold)}*:focus{outline:none}*:focus-visible{outline:2px solid var(--color-gold);outline-offset:2px;box-shadow:var(--focus-ring)}.form-input:focus-visible,.form-select:focus-visible{outline:none;border-color:var(--color-gold);box-shadow:0 0 0 3px #c9a84c1a,var(--shadow-glow-gold)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--color-text-muted);text-align:center;animation:fadeInUp .4s ease}.empty-state__icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.5}.empty-state__title{font-size:var(--text-md);margin-bottom:var(--space-sm);color:var(--color-text-secondary)}.empty-state__description{font-size:var(--text-sm);color:var(--color-text-muted);max-width:320px;line-height:1.5}.empty-state__action{margin-top:var(--space-lg)}.roster__empty-state{margin:var(--space-md)}.validation-banner{padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:600;backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));animation:fadeInUp .3s ease}.validation-banner--error{background:#c040401f;border:1px solid rgba(192,64,64,.3);color:var(--color-red-bright);box-shadow:var(--shadow-glow-red)}.validation-banner--warning{background:#c9a84c1f;border:1px solid rgba(201,168,76,.3);color:var(--color-gold-bright);box-shadow:var(--shadow-glow-gold)}.datasheet{padding:var(--space-md)}.datasheet--compact{padding:var(--space-sm) var(--space-md)}.datasheet__stats-row{display:flex;align-items:flex-start;gap:var(--space-md)}.datasheet__section{padding:var(--space-sm) 0;border-top:1px solid rgba(255,255,255,.04)}.datasheet__section:first-child{border-top:none;padding-top:0}.datasheet__section-label{font-family:var(--font-body);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--color-gold-dim);margin-bottom:var(--space-xs)}.datasheet__invuln-shield{display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:52px;background:linear-gradient(135deg,#c9a84c26,#c9a84c0d);border:2px solid rgba(201,168,76,.4);border-radius:50%/30% 30% 70% 70%;flex-shrink:0;cursor:default}.datasheet__invuln-value{font-family:var(--font-display);font-size:var(--text-lg);font-weight:900;color:var(--color-gold);line-height:1}.datasheet__invuln-label{font-size:8px;text-transform:uppercase;letter-spacing:.5px;color:var(--color-gold-dim);line-height:1}.datasheet__core-abilities{display:flex;flex-wrap:wrap;gap:4px}.datasheet__core-chip{font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-full);font-weight:600}.datasheet__core-chip--core{background:#64b4ff1f;border:1px solid rgba(100,180,255,.25);color:var(--color-blue-bright)}.datasheet__core-chip--faction{background:#c9a84c1a;border:1px solid rgba(201,168,76,.25);color:var(--color-gold)}.datasheet__ability-list{display:flex;flex-direction:column;gap:var(--space-xs)}.datasheet__ability-item{font-size:var(--text-sm);background:#ffffff05;border-radius:var(--radius-xs);padding:var(--space-xs)}.datasheet__ability-header{display:flex;align-items:center;gap:var(--space-xs)}.datasheet__ability-name{font-weight:600;color:var(--color-text-primary)}.datasheet__ability-desc{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px;line-height:1.4}.datasheet__weapons-group{margin-bottom:var(--space-xs)}.datasheet__weapons-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}.datasheet__weapon-name{font-weight:600}.datasheet__weapon-keywords{display:flex;flex-wrap:wrap;gap:2px;margin-top:2px}.datasheet__weapon-kw-chip{font-size:9px;padding:0 4px;background:#b478ff1a;border:1px solid rgba(180,120,255,.2);border-radius:var(--radius-xs);color:var(--color-purple-bright);white-space:nowrap}.datasheet__keywords{display:flex;flex-wrap:wrap;gap:4px}.datasheet__keyword{font-size:var(--text-xs);padding:2px 6px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-xs);color:var(--color-text-secondary)}.detachment-rules{margin-top:var(--space-sm)}.detachment-rules__toggle{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-gold);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.detachment-rules__toggle:hover{background:var(--glass-bg);border-color:var(--glass-border-hover)}.detachment-rules__arrow{font-size:var(--text-xs);color:var(--color-text-muted)}.detachment-rules__content{margin-top:var(--space-xs);padding:var(--space-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.6;white-space:pre-wrap;max-height:300px;overflow-y:auto}.modal-backdrop{position:fixed;inset:0;background:#0009;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);animation:fadeIn .2s ease;padding:var(--space-lg)}.modal-panel{position:relative;width:100%;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-xl),var(--shadow-inset);animation:scaleIn .25s ease}.modal-panel--sm{max-width:450px}.modal-panel--md{max-width:600px}.modal-panel__title{font-size:var(--text-lg);color:var(--color-gold);margin-bottom:var(--space-lg)}.export-modal__tabs{display:flex;gap:2px;margin-bottom:var(--space-md);border-bottom:1px solid var(--glass-border)}.export-modal__tab{padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast)}.export-modal__tab:hover{color:var(--color-text-primary)}.export-modal__tab--active{color:var(--color-gold);border-bottom-color:var(--color-gold)}.export-modal__panel{max-height:80vh;display:flex;flex-direction:column}.export-modal__textarea{width:100%;min-height:300px;padding:var(--space-md);background-color:#0a0a0f99;border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:monospace;font-size:var(--text-sm);resize:vertical;flex:1}.export-modal__share-body{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:var(--space-lg);padding:var(--space-xl)}.export-modal__help-text{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center}.export-modal__help-text--spaced{margin-bottom:var(--space-md);text-align:left}.export-modal__share-url{padding:var(--space-md);background:#0a0a0f99;border:1px solid var(--glass-border);border-radius:var(--radius-md);font-family:monospace;font-size:var(--text-sm);color:var(--color-gold);word-break:break-all;text-align:center}.export-modal__qr{padding:var(--space-md);background:#0a0a0f66;border:1px solid var(--glass-border);border-radius:var(--radius-lg);display:inline-flex}.export-modal__format-toggle{display:flex;gap:2px;margin-bottom:var(--space-sm);background:var(--color-bg-tertiary);border-radius:var(--radius-md);padding:2px}.export-modal__format-btn{flex:1;padding:var(--space-xs) var(--space-md);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all var(--transition-fast)}.export-modal__format-btn:hover{color:var(--color-text-primary)}.export-modal__format-btn--active{background:var(--color-bg-hover);color:var(--color-gold);box-shadow:var(--shadow-sm)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.validation-banner--spaced{margin-top:var(--space-sm)}.validation-banner__detail{margin-top:var(--space-xs);font-size:var(--text-xs)}.modal-panel__actions{display:flex;gap:var(--space-md);justify-content:flex-end;margin-top:var(--space-lg)}.confirm-dialog{background:var(--gradient-header);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border-active);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:420px;width:90%;animation:fadeInUp .2s ease}.confirm-dialog__title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--color-text-primary);margin:0 0 var(--space-sm)}.confirm-dialog__message{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;margin:0 0 var(--space-lg)}.confirm-dialog__actions{display:flex;gap:var(--space-md);justify-content:flex-end}@media print{@page{margin:1cm;size:A4}body{background:#fff!important;color:#000!important;font-size:11px;font-family:Inter,system-ui,sans-serif;background-image:none!important}*{box-shadow:none!important;text-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}.app-header,.list-editor__picker,.list-editor__detail,.list-editor__summary-actions,.list-editor__shortcuts-hint,.modal-backdrop,.roster-item__remove,.roster-item__expand,.game-tracker,.casualty-tracker,.points-bar,.btn,.shared-list__footer,.skeleton,.skeleton-list{display:none!important}.list-editor{display:block!important}.list-editor__roster{width:100%!important;height:auto!important;overflow:visible!important}.list-editor__summary,.shared-list__header{background:none!important;border:none!important;border-bottom:2px solid black!important;padding:0 0 8px!important;margin-bottom:12px!important;color:#000!important}.list-editor__army-name,.shared-list__header h2{color:#000!important;font-size:18px!important;font-family:Orbitron,sans-serif}.list-editor__detachment,.shared-list__header .list-editor__detachment{color:#333!important;font-size:11px}.list-editor__points-display{color:#000!important;font-size:16px!important;font-weight:700!important}.list-editor__points-limit{color:#333!important}.roster-section{break-inside:avoid;margin-bottom:8px}.roster-section__header{background:none!important;border:none!important;border-bottom:1px solid #999!important;color:#000!important;padding:4px 0!important;font-size:12px!important;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.roster-item{break-inside:avoid;background:none!important;border:none!important;border-bottom:1px solid #ddd!important;color:#000!important;padding:4px 0!important}.roster-item__name,.roster-item__points{color:#000!important;font-weight:600}.roster-item__enhancement{color:#333!important;font-style:italic}.role-badge{border:1px solid #999!important;color:#000!important;background:none!important}.stat-line{border-color:#ccc!important}.stat-line__box{background:none!important;border-color:#ccc!important;color:#000!important}.stat-line__label{color:#666!important}.roster-item__datasheet{break-inside:avoid}.datasheet__weapons-table th,.datasheet__weapons-table td{color:#000!important;border-color:#ccc!important;background:none!important}.shared-list{max-width:none!important}.list-editor__roster:after{content:"Printed from WarForge — warforge.app";display:block;text-align:center;margin-top:16px;padding-top:8px;border-top:1px solid #ccc;font-size:9px;color:#999;font-style:italic}}@media(max-width:1200px){.list-editor__detail{width:600px}.list-editor__picker{width:240px}}@media(max-width:1024px){.list-editor{flex-direction:column;height:auto}.list-editor__picker{width:100%;position:relative;top:auto;max-height:40vh}.list-editor__detail{width:100%;position:relative;top:auto;max-height:60vh;overflow-y:auto}.list-editor__roster{overflow-y:visible}.list-editor__summary{position:relative;top:auto}}@media(min-width:769px)and (max-width:1024px)and (orientation:landscape){.list-editor{flex-direction:row;flex-wrap:wrap;height:calc(100vh - 80px)}.list-editor__picker{width:100%;max-height:0;overflow:hidden;padding:0;border:none;margin:0}.list-editor__roster{flex:1;min-width:0;overflow-y:auto}.list-editor__detail{width:340px;max-height:none;position:sticky;top:80px;height:calc(100vh - 96px)}}@media(max-width:768px){.app-header{padding:var(--space-sm) var(--space-md)}.app-header__title{font-size:var(--text-base)}.app-main{padding:var(--space-sm)}.lists-page__grid{grid-template-columns:1fr}.lists-page__controls{flex-direction:column;align-items:stretch}.lists-page__search{max-width:none}.list-card__actions{opacity:1}.play-mode__header{flex-direction:column;gap:var(--space-sm)}.play-mode__header-actions{width:100%;justify-content:space-between}.game-tracker{gap:var(--space-sm);padding:var(--space-sm)}.game-tracker__section{flex:1;min-width:60px}.game-tracker__value--phase{min-width:60px;font-size:var(--text-xs)}.casualty-tracker__pip{width:28px;height:28px}.casualty-tracker__wound-btn{width:32px;height:32px;font-size:16px}.game-tracker__btn{width:36px;height:36px;font-size:16px}.datasheet__weapons-group{overflow-x:auto}.datasheet__weapons-table td,.datasheet__weapons-table th{font-size:var(--text-xs)}.export-modal__tabs{justify-content:stretch}.export-modal__tab{flex:1;text-align:center;padding:var(--space-sm)}.modal-panel--md{max-width:95vw}.shared-list{padding:0 var(--space-sm)}.btn{min-height:40px}.app-header__user{flex-direction:column;gap:var(--space-xs);align-items:flex-end}.app-header__email{max-width:120px;font-size:.65rem}.auth-page{padding:var(--space-md)}.auth-card{padding:var(--space-lg) var(--space-md)}}@media(max-width:480px){.app-header__nav{gap:var(--space-xs)}.app-header__link{font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm)}.play-mode__title{font-size:var(--text-base)}.play-mode__unit-name{font-size:var(--text-sm)}.stat-line{gap:var(--space-xs)}.stat-line__item{min-width:28px;padding:var(--space-xs)}.modal-panel,.modal-panel--md,.modal-panel--sm{max-width:100vw;max-height:100vh;border-radius:0;margin:0}.modal-backdrop{padding:0}.export-modal__textarea{min-height:200px}.empty-state{padding:var(--space-lg)}.btn{min-height:44px}}.units-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-lg)}.units-page__header h2{margin:0}.units-page__count{font-size:var(--text-sm);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.units-page__filters{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);flex-wrap:wrap;padding:var(--space-md) var(--space-lg);background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md),var(--shadow-inset)}.units-page__controls{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.units-page__role-chips{display:flex;gap:4px;flex-wrap:wrap}.units-page__role-chip{padding:3px 10px;font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;border:1px solid var(--glass-border);border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.units-page__role-chip:hover{border-color:var(--glass-border-active);color:var(--color-text-primary)}.units-page__role-chip--active{background:#c9a84c26;border-color:#c9a84c66;color:var(--color-gold)}.units-page__role-chip--epic_hero.units-page__role-chip--active{background:#c9a84c26;border-color:#c9a84c66;color:var(--color-role-epic-hero)}.units-page__role-chip--battleline.units-page__role-chip--active{background:#4caf501f;border-color:#4caf5059;color:var(--color-green)}.units-page__role-chip--character.units-page__role-chip--active{background:#c9a84c1f;border-color:#c9a84c59;color:var(--color-gold)}.units-page__role-chip--vehicle.units-page__role-chip--active,.units-page__role-chip--monster.units-page__role-chip--active{background:#ef44441f;border-color:#ef444459;color:var(--color-red)}.units-page__sort{width:auto;min-width:180px}.units-page__list{display:flex;flex-direction:column;gap:var(--space-sm)}.unit-browser-card{position:relative;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-md),var(--shadow-inset);cursor:pointer;transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.unit-browser-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-lg),var(--shadow-inset)}.unit-browser-card--expanded{border-color:var(--glass-border-active)}.unit-browser-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.unit-browser-card__left{flex:1;min-width:0}.unit-browser-card__title-row{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap;margin-bottom:4px}.unit-browser-card__name{font-size:var(--text-base);font-family:var(--font-display);font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.03em}.unit-browser-card__unique{font-size:var(--text-xs);color:var(--color-role-epic-hero);font-style:italic}.unit-browser-card__quick-stats{display:flex;gap:var(--space-sm);font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.unit-browser-card__invuln{color:var(--color-gold);font-weight:600}.unit-browser-card__right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.unit-browser-card__points{font-size:var(--text-base);font-family:var(--font-display);font-weight:700;color:var(--color-gold);font-variant-numeric:tabular-nums}.unit-browser-card__tiers{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.unit-browser-card__expand{font-size:10px;color:var(--color-text-muted);margin-top:2px}.unit-browser-card__abilities{display:flex;flex-wrap:wrap;gap:4px;margin-top:var(--space-xs)}.unit-browser-card__datasheet{margin-top:var(--space-md);border-top:1px solid rgba(255,255,255,.06);cursor:default}.weapons-table{width:100%;font-size:var(--text-sm);border-collapse:separate;border-spacing:0;table-layout:fixed}.weapons-table thead th{padding:var(--space-sm);color:var(--color-text-muted);text-align:center;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--glass-border)}.weapons-table thead th:first-child{text-align:left;width:auto}.weapons-table thead th:not(:first-child){width:70px}.weapons-table tbody td{padding:var(--space-sm);border-bottom:1px solid rgba(255,255,255,.03);text-align:center}.weapons-table tbody td:first-child{text-align:left}.weapons-table tbody tr:hover td{background:#ffffff05}.shared-list{max-width:800px;margin:0 auto}.shared-list__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-md);gap:var(--space-md)}.shared-list__home-link{margin-top:var(--space-md)}.shared-list__roster{margin-top:var(--space-lg)}.shared-list__footer{text-align:center;margin-top:var(--space-xl);padding-bottom:var(--space-xl)}.roster-item[role=button]{cursor:pointer}.create-list-form{display:grid;gap:var(--space-md)}.auth-page{display:flex;align-items:center;justify-content:center;min-height:calc(100vh - 80px);padding:var(--space-lg)}.auth-card{width:100%;max-width:420px;padding:var(--space-xl) var(--space-xl) var(--space-lg);text-align:center;animation:fadeInUp .4s ease}.auth-card__icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.7}.auth-card__title{font-size:var(--text-xl);color:var(--color-gold);margin-bottom:var(--space-sm)}.auth-card__subtitle{font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-lg);line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:var(--space-md);text-align:left}.auth-form .form-group label{display:block;font-size:var(--text-sm);color:var(--color-text-secondary);margin-bottom:var(--space-xs);font-weight:500}.auth-form .form-input{width:100%}.auth-card__submit{width:100%;margin-top:var(--space-sm)}.auth-card__toggle{margin-top:var(--space-lg);font-size:var(--text-sm);color:var(--color-text-muted)}.auth-card__toggle-btn{background:none;border:none;color:var(--color-gold);font-size:var(--text-sm);cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px;transition:color var(--transition-fast)}.auth-card__toggle-btn:hover{color:var(--color-gold-bright)}.app-header__user{display:flex;align-items:center;gap:var(--space-sm)}.app-header__email{font-size:var(--text-xs);color:var(--color-text-muted);max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.btn--sm{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);min-height:auto}.app-header__signout{border-color:#ffffff1a;color:var(--color-text-muted)}.app-header__signout:hover{color:var(--color-text-primary);border-color:#fff3}.dashboard{max-width:1000px;margin:0 auto}.dashboard__title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-gold);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-lg)}.dashboard__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.dashboard__card{background:var(--glass-bg);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden;animation:fadeInUp .3s ease}.dashboard__card--active-game{border-color:var(--color-gold-dim);grid-column:1 / -1}.dashboard__card-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--glass-border)}.dashboard__card-icon{font-size:var(--text-lg)}.dashboard__card-title{font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;flex:1}.dashboard__card-link{font-size:var(--text-xs);color:var(--color-gold);text-decoration:none}.dashboard__card-link:hover{text-decoration:underline}.dashboard__card-body{padding:var(--space-md)}.dashboard__empty{color:var(--color-text-muted);font-size:var(--text-sm)}.dashboard__empty a{color:var(--color-gold)}.dashboard__game-name{font-weight:600;color:var(--color-text-primary);margin-bottom:var(--space-xs)}.dashboard__game-opponent{color:var(--color-text-secondary);font-size:var(--text-sm)}.dashboard__game-status{color:var(--color-gold);font-size:var(--text-sm);margin-bottom:var(--space-md)}.dashboard__resume-btn{display:inline-block;text-decoration:none;text-align:center}.dashboard__stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-sm);text-align:center}.dashboard__stat-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;display:block;color:var(--color-text-primary)}.dashboard__stat-value--win{color:var(--color-green-bright)}.dashboard__stat-value--loss{color:var(--color-red-bright)}.dashboard__stat-value--draw{color:var(--color-text-muted)}.dashboard__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase}.dashboard__list-items{display:flex;flex-direction:column}.dashboard__list-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) 0;border-bottom:1px solid rgba(255,255,255,.03);text-decoration:none;color:var(--color-text-primary);transition:color var(--transition-fast)}.dashboard__list-item:last-child{border-bottom:none}.dashboard__list-item:hover{color:var(--color-gold)}.dashboard__list-name{font-weight:500}.dashboard__list-meta{font-size:var(--text-xs);color:var(--color-text-muted)}@media(max-width:768px){.dashboard__grid{grid-template-columns:1fr}.dashboard__stats-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:768px)and (max-width:1024px){.collection-grid,.campaign-grid,.tournament-grid{grid-template-columns:repeat(2,1fr)}}.unit-card{position:relative;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-md),var(--shadow-inset);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);animation:fadeInUp .3s ease}.unit-card:hover{border-color:var(--glass-border-hover)}.unit-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.unit-card__info{flex:1;min-width:0}.unit-card__title-row{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm);flex-wrap:wrap}.unit-card__name{font-size:var(--text-base);font-family:var(--font-display);font-weight:700;letter-spacing:.04em;margin:0;text-transform:uppercase}.unit-card__unique-tag{font-size:var(--text-xs);color:var(--color-role-epic-hero);font-style:italic}.unit-card__limit-tag{font-size:var(--text-xs);background:#c0404026;color:var(--color-red-ui);padding:1px 6px;border-radius:var(--radius-sm)}.unit-card__actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-sm);flex-shrink:0}.unit-card__points{font-size:var(--text-md);font-weight:700;color:var(--color-gold);font-family:var(--font-display);text-shadow:0 0 20px rgba(201,168,76,.15)}.unit-card__points-detail{font-size:var(--text-xs);color:var(--color-text-muted)}.unit-card__remove-btn{opacity:.4;transition:opacity var(--transition-fast)}.unit-card:hover .unit-card__remove-btn{opacity:1}.unit-card__section{margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid rgba(255,255,255,.04)}.unit-card__section-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--space-xs);display:block}.unit-card__enhancement-chip{display:inline-flex;align-items:center;gap:var(--space-xs);padding:4px 12px;background:var(--gradient-gold-subtle);border:1px solid rgba(201,168,76,.2);border-radius:var(--radius-full);font-size:var(--text-xs);color:var(--color-gold-bright)}.list-editor{display:flex;gap:var(--space-md);height:calc(100vh - 80px);animation:fadeIn .3s ease}.list-editor__picker{width:280px;flex-shrink:0;position:sticky;top:80px;max-height:calc(100vh - 96px);display:flex;flex-direction:column;background:var(--gradient-sidebar);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--shadow-inset);overflow:hidden;animation:fadeIn .3s ease}.list-editor__picker-header{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--glass-border);flex-shrink:0;display:flex;justify-content:space-between;align-items:center}.list-editor__picker-title{font-size:var(--text-sm);font-family:var(--font-display);font-weight:700;color:var(--color-gold);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-editor__picker-points{font-size:var(--text-sm);font-family:var(--font-display);font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums;flex-shrink:0}.list-editor__picker-list{flex:1;overflow-y:auto}.list-editor__picker-list::-webkit-scrollbar,.list-editor__roster::-webkit-scrollbar,.list-editor__detail::-webkit-scrollbar{width:6px}.list-editor__picker-list::-webkit-scrollbar-track,.list-editor__roster::-webkit-scrollbar-track,.list-editor__detail::-webkit-scrollbar-track{background:transparent}.list-editor__picker-list::-webkit-scrollbar-thumb,.list-editor__roster::-webkit-scrollbar-thumb,.list-editor__detail::-webkit-scrollbar-thumb{background:#ffffff14;border-radius:var(--radius-full)}.list-editor__picker-list::-webkit-scrollbar-thumb:hover,.list-editor__roster::-webkit-scrollbar-thumb:hover,.list-editor__detail::-webkit-scrollbar-thumb:hover{background:#ffffff26}.list-editor__picker-footer{padding:var(--space-xs) var(--space-sm);border-top:1px solid var(--glass-border);flex-shrink:0}.list-editor__picker-search{width:100%;font-size:var(--text-xs)!important;padding:6px 10px!important}.picker__legends-toggle{display:flex;align-items:center;gap:var(--space-xs);margin-top:var(--space-xs);font-size:var(--text-xs);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.picker__legends-toggle input[type=checkbox]{accent-color:var(--color-gold);cursor:pointer}.picker-section__header{padding:var(--space-xs) var(--space-sm);cursor:pointer;display:flex;align-items:center;gap:var(--space-xs);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-primary);background:#ffffff08;border-bottom:1px solid rgba(255,255,255,.04);-webkit-user-select:none;user-select:none;transition:background var(--transition-fast)}.picker-section__header:hover{background:#ffffff0f}.picker-section__header--epic_hero{color:var(--color-role-epic_hero, #c9a84c)}.picker-section__header--character{color:var(--color-role-character, #c9a84c)}.picker-section__header--battleline{color:var(--color-role-battleline, #4ade80)}.picker-section__header--infantry{color:var(--color-text-primary)}.picker-section__header--vehicle{color:var(--color-role-vehicle, #ef4444)}.picker-section__header--monster{color:var(--color-role-monster, #ef4444)}.picker-section__header--mounted,.picker-section__header--beast{color:var(--color-text-primary)}.picker-section__header--fortification,.picker-section__header--dedicated_transport{color:var(--color-text-secondary)}.picker-section__header--allied{color:#60a5fa}.picker-section__arrow{font-size:8px;width:12px;text-align:center;color:var(--color-text-muted)}.picker-section__label{flex:1}.unit-picker-item{display:flex;justify-content:space-between;align-items:center;padding:4px var(--space-sm);cursor:pointer;transition:background var(--transition-fast);border-left:2px solid transparent}.unit-picker-item:hover{background:#ffffff0a}.unit-picker-item--disabled{opacity:.35;cursor:not-allowed}.unit-picker-item__info{display:flex;align-items:center;gap:6px;min-width:0;flex:1}.unit-picker-item__points-inline{color:var(--color-gold);font-weight:600;font-size:var(--text-xs);font-variant-numeric:tabular-nums;min-width:28px;flex-shrink:0}.unit-picker-item__name{font-size:var(--text-xs);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.unit-picker-item__count{font-size:10px;color:var(--color-text-muted);white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}.unit-picker-item__add{width:22px;height:22px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-primary);font-size:14px;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.unit-picker-item__add:hover:not(:disabled){background:#c9a84c26;border-color:var(--color-gold);color:var(--color-gold)}.unit-picker-item__add:disabled{opacity:.3;cursor:not-allowed}.list-editor__roster{flex:1;min-width:0;display:flex;flex-direction:column;overflow-y:auto}.list-editor__roster-list{display:flex;flex-direction:column;background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}.list-editor__shortcuts-hint{display:flex;justify-content:center;gap:var(--space-xs);padding:var(--space-sm);font-size:10px;color:var(--color-text-muted);opacity:.5}.list-editor__shortcuts-hint span{display:inline-block;padding:1px 4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);font-family:monospace;font-size:9px;color:var(--color-text-secondary)}.roster-section{margin-bottom:2px}.roster-section__header{padding:var(--space-xs) var(--space-md);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;border-radius:var(--radius-sm);margin:2px 0;background:#00b4b426;color:#5eead4}.roster-section__header--epic_hero{background:#c9a84c26;color:var(--color-gold)}.roster-section__header--character{background:#c9a84c1f;color:#e8d48b}.roster-section__header--battleline{background:#4ade801f;color:#4ade80}.roster-section__header--infantry{background:#00b4b41f;color:#5eead4}.roster-section__header--vehicle,.roster-section__header--monster{background:#ef44441f;color:#f87171}.roster-section__header--mounted,.roster-section__header--beast{background:#a855f71f;color:#c084fc}.roster-section__header--fortification,.roster-section__header--dedicated_transport{background:#ffffff0f;color:var(--color-text-secondary)}.roster-section__header--allied{background:#60a5fa1f;color:#60a5fa}.roster-section__points{font-size:var(--text-xs);font-variant-numeric:tabular-nums}.roster-item{padding:var(--space-sm) var(--space-md);border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background var(--transition-fast);border-left:3px solid transparent}.roster-item:hover{background:#ffffff08}.roster-item--selected{background:#c9a84c14;border-left-color:var(--color-gold)}.roster-item__row1{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.roster-item__name{font-size:var(--text-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-item__right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.roster-item__points{color:var(--color-gold);font-weight:600;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.roster-item__remove{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:14px;cursor:pointer;opacity:0;transition:opacity var(--transition-fast),color var(--transition-fast),background var(--transition-fast)}.roster-item:hover .roster-item__remove{opacity:1}.roster-item__remove:hover{background:#c0404033;color:var(--color-red-bright)}.roster-item__drag-handle{display:flex;align-items:center;gap:2px;flex-shrink:0;cursor:grab;opacity:0;transition:opacity var(--transition-fast)}.roster-item:hover .roster-item__drag-handle{opacity:1}.roster-item__grip{color:var(--color-text-muted);font-size:12px;line-height:1;-webkit-user-select:none;user-select:none}.roster-item__movers{display:flex;flex-direction:column;gap:0}.roster-item__move-btn{width:16px;height:14px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);font-size:10px;cursor:pointer;padding:0;line-height:1}.roster-item__move-btn:hover:not(:disabled){color:var(--color-gold)}.roster-item__move-btn:disabled{opacity:.2;cursor:default}.roster-item__drag-over{border-top:2px solid var(--color-gold)}.roster-item__row2{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px;margin-left:24px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.roster-item__enhancement{color:var(--color-gold);font-style:italic}.roster-item__expand{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:10px;cursor:pointer;transition:color var(--transition-fast),background var(--transition-fast)}.roster-item__expand:hover{background:#c9a84c26;color:var(--color-gold)}.roster-item--expanded{background:var(--gradient-card-hover);border-color:var(--glass-border-active)}.roster-item__datasheet{border-top:1px solid rgba(255,255,255,.04);margin-top:var(--space-xs)}.list-editor__detail{width:720px;flex-shrink:0;position:sticky;top:80px;max-height:calc(100vh - 96px);overflow-y:auto;background:var(--gradient-sidebar);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg),var(--shadow-inset);animation:fadeIn .3s ease}.detail-panel{padding:var(--space-md) var(--space-lg)}.detail-panel--empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px;padding:var(--space-xl);text-align:center}.detail-panel__empty-icon{font-size:48px;margin-bottom:var(--space-md);opacity:.2}.detail-panel__empty-text{color:var(--color-text-muted);font-size:var(--text-sm)}.detail-panel__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm);margin-bottom:var(--space-md)}.detail-panel__name{font-size:var(--text-base);font-family:var(--font-display);font-weight:700;margin:0;text-transform:uppercase;letter-spacing:.04em}.detail-panel__meta{display:flex;align-items:center;gap:var(--space-xs);margin-top:4px}.detail-panel__header-right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.detail-panel__points{font-size:var(--text-base);font-family:var(--font-display);font-weight:700;color:var(--color-gold);font-variant-numeric:tabular-nums}.detail-panel__close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:18px;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.detail-panel__close:hover{background:#ffffff0f;color:var(--color-text-primary)}.detail-panel__section{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid rgba(255,255,255,.06)}.detail-panel__section--footer{border-top:none;padding-top:var(--space-sm)}.detail-panel__section .form-select,.detail-panel__section--footer .btn{width:100%}.detail-panel__section-label{font-size:var(--text-xs);text-transform:uppercase;color:var(--color-text-muted);letter-spacing:.06em;margin-bottom:var(--space-xs);font-weight:600}.detail-panel__keywords{display:flex;flex-wrap:wrap;gap:4px}.detail-panel__keyword{font-size:var(--text-xs);padding:2px 8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-sm);color:var(--color-text-secondary)}.detail-panel__ability-list{display:flex;flex-direction:column;gap:var(--space-sm)}.detail-panel__ability-item{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:var(--radius-sm);padding:var(--space-sm)}.detail-panel__ability-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:4px}.detail-panel__ability-header .ability-tag{font-size:9px;padding:1px 6px;flex-shrink:0;text-transform:uppercase;letter-spacing:.5px}.detail-panel__ability-name{font-weight:600;font-size:var(--text-sm);color:var(--color-text-primary)}.detail-panel__ability-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.45;margin-top:2px}.detail-panel__weapons-group{margin-bottom:var(--space-sm)}.detail-panel__weapons-group:last-child{margin-bottom:0}.detail-panel__weapons-group-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--color-text-muted);font-weight:600;margin-bottom:4px}.weapons-table--compact{font-size:var(--text-xs)}.weapons-table--compact thead th{padding:4px 6px;font-size:10px}.weapons-table--compact tbody td{padding:4px 6px}.detail-panel__weapon-name{font-weight:500;color:var(--color-text-primary)}.detail-panel__weapon-keywords{font-size:10px;color:var(--color-text-muted);font-style:italic;margin-top:1px}.detail-panel__enhancement-detail{margin-top:var(--space-sm);padding:var(--space-sm);background:#c9a84c0f;border:1px solid rgba(201,168,76,.25);border-radius:var(--radius-sm)}.detail-panel__enhancement-name{display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:var(--text-sm);color:var(--color-gold);margin-bottom:4px}.detail-panel__enhancement-desc{font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.45;font-style:italic}.composition{display:flex;flex-direction:column;gap:var(--space-xs)}.detail-section{border-left:3px solid var(--glass-border);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-xs);background:#ffffff03;border-radius:0 var(--radius-sm) var(--radius-sm) 0}.detail-section--leader-wargear{border-left-color:var(--color-gold)}.detail-section--composition{border-left-color:#4ade80}.detail-section--wargear{border-left-color:#60a5fa}.detail-section--leaders{border-left-color:#2dd4bf}.detail-section--enhancement{border-left-color:#a78bfa}.detail-section--loadout{border-left-color:#f472b6}.detail-section--abilities{border-left-color:#fb923c}.detail-section--models{border-left-color:#4ade80}.detail-section__header{display:flex;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-xs)}.detail-section__icon{font-size:var(--text-sm);opacity:.6}.detail-section__title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);font-weight:600}.detail-section__badge{margin-left:auto;font-size:var(--text-xs);color:var(--color-gold);font-weight:700;font-variant-numeric:tabular-nums}.detail-section__content{display:flex;flex-direction:column;gap:var(--space-xs)}.wargear-toggle{margin-bottom:var(--space-xs)}.wargear-toggle__group-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600;margin-bottom:4px}.wargear-toggle__switch-row{display:flex;gap:2px;border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--glass-border)}.wargear-toggle__switch-btn{flex:1;padding:6px 8px;background:var(--glass-bg);border:none;color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:4px}.wargear-toggle__switch-btn:hover{background:var(--glass-bg-light)}.wargear-toggle__switch-btn--active{background:#c9a84c26;color:var(--color-gold);font-weight:600;box-shadow:inset 0 0 0 1px var(--color-gold-dim)}.wargear-toggle__radio-group{display:flex;flex-direction:column;gap:2px}.wargear-toggle__radio-card{display:flex;align-items:center;gap:var(--space-xs);padding:5px 8px;border:1px solid var(--glass-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--glass-bg)}.wargear-toggle__radio-card:hover{background:var(--glass-bg-light);border-color:var(--color-gold-dim)}.wargear-toggle__radio-card--active{background:#c9a84c1f;border-color:var(--color-gold-dim)}.wargear-toggle__radio-input{display:none}.wargear-toggle__radio-indicator{width:14px;height:14px;border-radius:50%;border:2px solid var(--glass-border);flex-shrink:0;position:relative;transition:all var(--transition-fast)}.wargear-toggle__radio-card--active .wargear-toggle__radio-indicator{border-color:var(--color-gold)}.wargear-toggle__radio-card--active .wargear-toggle__radio-indicator:after{content:"";position:absolute;inset:2px;border-radius:50%;background:var(--color-gold)}.wargear-toggle__check-label{display:flex;align-items:center;gap:var(--space-xs);padding:5px 8px;border:1px solid var(--glass-border);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:var(--glass-bg)}.wargear-toggle__check-label:hover{background:var(--glass-bg-light)}.wargear-toggle__check-label input{display:none}.wargear-toggle__check-indicator{width:14px;height:14px;border:2px solid var(--glass-border);border-radius:var(--radius-sm);flex-shrink:0;position:relative;transition:all var(--transition-fast)}.wargear-toggle__check-label input:checked~.wargear-toggle__check-indicator{border-color:var(--color-gold);background:var(--color-gold)}.wargear-toggle__check-label input:checked~.wargear-toggle__check-indicator:after{content:"✓";position:absolute;top:-2px;left:1px;font-size:10px;color:var(--color-bg-primary);font-weight:700}.wargear-toggle__name{font-size:var(--text-xs);color:var(--color-text-primary)}.wargear-toggle__pts{font-size:10px;color:var(--color-gold);font-weight:600;margin-left:auto}.weapon-pool{display:flex;align-items:center;gap:var(--space-xs);padding:4px 0}.weapon-pool__bar{width:60px;height:6px;background:var(--glass-bg);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--glass-border)}.weapon-pool__fill{height:100%;border-radius:var(--radius-sm);transition:width var(--transition-fast),background var(--transition-fast)}.pool--available .weapon-pool__fill{background:#4ade80}.pool--partial .weapon-pool__fill,.pool--full .weapon-pool__fill{background:var(--color-gold)}.pool--over .weapon-pool__fill{background:var(--color-danger)}.weapon-pool__label{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);font-weight:600}.pool--over .weapon-pool__label{color:var(--color-danger)}.variant-wargear__pools{display:flex;flex-wrap:wrap;gap:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:1px solid rgba(255,255,255,.04);margin-bottom:var(--space-xs)}.comp__row{display:flex;align-items:center;gap:var(--space-sm);padding:3px 0}.comp__fixed{width:100px;text-align:center}.comp__fixed-count{font-size:var(--text-sm);font-weight:700;color:var(--color-text-muted)}.comp__controls{display:flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums}.comp__bound{font-size:10px;color:var(--color-text-muted);opacity:.6;min-width:16px;text-align:center}.comp__btn{width:22px;height:22px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg-light);color:var(--color-text-primary);cursor:pointer;font-size:12px;transition:background var(--transition-fast)}.comp__btn:hover:not(:disabled){background:#c9a84c26;border-color:var(--color-gold-dim)}.comp__btn:disabled{opacity:.25;cursor:default}.comp__count{min-width:22px;text-align:center;font-weight:700;font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.comp__count--min{color:var(--color-text-muted)}.comp__count--max{color:var(--color-gold)}.comp__name{flex:1;font-size:var(--text-xs);color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.comp__bar{width:40px;height:4px;background:var(--glass-bg);border-radius:var(--radius-xs);overflow:hidden;flex-shrink:0}.comp__bar-fill{height:100%;background:#4ade80;border-radius:var(--radius-xs);transition:width var(--transition-fast)}.comp__group{margin-top:var(--space-xs)}.comp__group-header{display:flex;justify-content:space-between;align-items:center;padding:2px 0;margin-bottom:2px;border-bottom:1px solid rgba(255,255,255,.04)}.comp__group-name{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600}.comp__group-count{font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.leader-card{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg);transition:all var(--transition-fast)}.leader-card:hover{background:var(--glass-bg-light)}.leader-card--attached{border-color:var(--color-gold-dim);background:#c9a84c14}.leader-card--disabled{opacity:.45}.leader-card__info{display:flex;flex-direction:column;gap:2px;min-width:0}.leader-card__name{font-size:var(--text-xs);font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.leader-card__stats{font-size:10px;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.leader-card__right{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0}.leader-card__pts{font-size:10px;color:var(--color-gold);font-weight:600;font-variant-numeric:tabular-nums}.leader-card__toggle{width:26px;height:26px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:50%;background:var(--glass-bg);color:var(--color-text-muted);cursor:pointer;font-size:12px;transition:all var(--transition-fast)}.leader-card__toggle:hover:not(:disabled){background:#c9a84c26;border-color:var(--color-gold-dim);color:var(--color-gold)}.leader-card__toggle--active{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-bg-primary)}.leader-card__toggle--active:hover:not(:disabled){background:var(--color-gold-dim)}.leader-card__toggle:disabled{cursor:default}.loadout__weapons-group{margin-bottom:var(--space-xs)}.loadout__weapons-label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600;margin-bottom:4px}.loadout__weapon-name{display:inline-flex;align-items:center;gap:4px}.loadout__weapon-count{font-size:10px;color:var(--color-gold);font-weight:700;background:#c9a84c1f;padding:0 4px;border-radius:var(--radius-sm)}.weapons-table--loadout{font-size:var(--text-xs)}.weapons-table__section-header td{padding:6px 8px 3px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);background:transparent;border-bottom:1px solid rgba(255,255,255,.06)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.constraint-violation{animation:shake .3s ease-in-out;box-shadow:0 0 8px #ef444466;border-color:var(--color-danger)!important}.list-editor__summary{flex-shrink:0;background:var(--gradient-header);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-lg),var(--shadow-inset);display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-sm)}.list-editor__summary-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md)}.list-editor__army-name{font-size:var(--text-lg);font-family:var(--font-display);font-weight:700;margin:0}.list-editor__army-name--editable{cursor:text;border-bottom:1px dashed transparent;transition:border-color var(--transition-fast)}.list-editor__army-name--editable:hover{border-color:var(--color-gold-dim)}.list-editor__name-input{font-size:var(--text-lg);font-family:var(--font-display);font-weight:700;background:#0a0a0f99;border:1px solid var(--color-gold-dim);border-radius:var(--radius-sm);color:var(--color-text-primary);padding:2px 8px;width:100%;outline:none}.list-editor__name-input:focus{border-color:var(--color-gold);box-shadow:0 0 0 2px #c9a84c26}.list-editor__points-limit--editable{cursor:pointer;border-bottom:1px dashed transparent;transition:border-color var(--transition-fast)}.list-editor__points-limit--editable:hover{border-color:var(--color-gold-dim)}.list-editor__points-input{width:70px;font-size:inherit;font-family:var(--font-display);font-weight:inherit;background:#0a0a0f99;border:1px solid var(--color-gold-dim);border-radius:var(--radius-sm);color:var(--color-text-primary);padding:0 4px;text-align:center;outline:none}.list-editor__points-input:focus{border-color:var(--color-gold)}.list-editor__points-presets{display:flex;gap:4px;flex-wrap:wrap;margin-top:var(--space-xs)}.list-editor__points-preset{padding:2px 10px;font-size:var(--text-xs);font-family:var(--font-display);font-weight:600;border:1px solid var(--glass-border);border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast)}.list-editor__points-preset:hover{border-color:var(--color-gold-dim);color:var(--color-gold)}.list-editor__points-preset--active{background:#c9a84c26;border-color:#c9a84c66;color:var(--color-gold)}.list-editor__detachment{font-size:var(--text-sm);color:var(--color-text-muted)}.list-editor__summary-actions{display:flex;gap:var(--space-sm);flex-shrink:0}.list-editor__points-display{font-size:var(--text-lg);font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-gold)}.list-editor__points-display--over{color:var(--color-red-bright);text-shadow:0 0 20px rgba(192,64,64,.3)}.list-editor__points-limit{font-size:var(--text-base);color:var(--color-text-secondary);font-weight:400}.list-editor__validations{display:flex;flex-direction:column;gap:var(--space-sm)}.list-editor__points-over{font-size:var(--text-sm);color:var(--color-red-bright)}.lists-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xl)}.lists-page__title{font-size:var(--text-xl);margin:0}.lists-page__controls{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg);flex-wrap:wrap}.lists-page__search{flex:1;min-width:200px;max-width:300px}.lists-page__sort{width:auto;min-width:160px}.lists-page__toggle{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.lists-page__toggle input{accent-color:var(--color-gold)}.lists-page__grouped{display:flex;flex-direction:column;gap:var(--space-lg)}.lists-page__faction-group{animation:fadeInUp .3s ease}.lists-page__faction-header{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-gold);padding-bottom:var(--space-sm);border-bottom:1px solid var(--glass-border);margin-bottom:var(--space-md)}.lists-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--space-md)}.list-card{position:relative;display:flex;align-items:center;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);box-shadow:var(--shadow-md),var(--shadow-inset);transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-normal);color:inherit;animation:fadeInUp .3s ease;gap:var(--space-md)}.list-card:hover{border-color:var(--glass-border-active);box-shadow:var(--shadow-lg),var(--shadow-glow-gold),var(--shadow-inset);transform:translateY(-2px)}.list-card__link{display:flex;align-items:center;flex:1;min-width:0;gap:var(--space-md);text-decoration:none;color:inherit}.list-card__info{flex:1;min-width:0}.list-card__name{font-size:var(--text-base);font-family:var(--font-display);font-weight:700;margin-bottom:var(--space-xs);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-card__meta{font-size:var(--text-sm);color:var(--color-text-secondary)}.list-card__time{font-size:var(--text-xs);color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.list-card__actions{display:flex;gap:var(--space-xs);opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.list-card:hover .list-card__actions{opacity:1}.btn--icon{width:32px;height:32px;padding:0;display:flex;align-items:center;justify-content:center;font-size:14px}.battle-size-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-sm)}.battle-size-picker__option{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--space-sm) var(--space-md);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast)}.battle-size-picker__option:hover{border-color:var(--glass-border-hover);background:var(--glass-bg-heavy)}.battle-size-picker__option--active{border-color:var(--color-gold);background:#c9a84c14;color:var(--color-gold);box-shadow:0 0 0 1px var(--color-gold)}.battle-size-picker__name{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.battle-size-picker__points{font-size:var(--text-xs);opacity:.7}.list-editor__battle-size{color:var(--color-text-muted)}.transport-info{display:flex;flex-direction:column;gap:var(--space-sm)}.transport-info__capacity{display:flex;align-items:baseline;gap:var(--space-xs)}.transport-info__number{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-gold)}.transport-info__label{font-size:var(--text-sm);color:var(--color-text-secondary)}.transport-info__rule{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-xs)}.transport-info__rule-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}.transport-info__keyword{font-size:var(--text-xs);padding:1px 6px;border-radius:var(--radius-sm)}.transport-info__keyword--allowed{background:#40a0401f;border:1px solid rgba(64,160,64,.25);color:var(--color-green-bright)}.transport-info__keyword--excluded{background:#c040401f;border:1px solid rgba(192,64,64,.25);color:var(--color-red-bright)}.validation-banner--info{background:#4080c014;border:1px solid rgba(64,128,192,.2);color:var(--color-blue-bright)}@media(min-width:768px)and (max-width:1024px){.list-editor{gap:var(--space-sm)}.list-editor__picker{width:220px}.list-editor__detail{width:280px;min-width:280px}.unit-card{padding:var(--space-md)}.unit-card__name{font-size:var(--text-sm)}}@media(min-width:1024px)and (max-width:1280px){.list-editor__picker{width:240px}.list-editor__detail{width:300px;min-width:300px}}@media(max-width:767px)and (orientation:landscape){.list-editor{height:calc(100vh - 60px)}.list-editor__roster{max-height:calc(100vh - 60px)}}@media print{@page{margin:1.5cm;size:auto}.app-header,.list-editor__picker,.list-editor__detail,.list-editor__shortcuts-hint,.list-editor__summary-actions,.list-editor__points-presets,.roster-item__remove,.roster-item__drag-handle,.roster-item__expand,.roster-item__move-btn,.roster-item__movers,.roster-item__grip,.validation-banner,.list-editor__validations,.points-bar,.btn{display:none!important}body{background:#fff!important;color:#000!important;font-size:11pt}.list-editor{display:block!important;height:auto!important;gap:0!important}.list-editor__roster{width:100%!important;overflow:visible!important;flex:none!important}.list-editor__roster-list{border:none!important;background:none!important}.list-editor__summary{background:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:none!important;border-bottom:2px solid #000!important;border-radius:0!important;box-shadow:none!important;padding:0 0 8pt!important;margin-bottom:12pt!important}.list-editor__summary-header{justify-content:flex-start!important}.list-editor__army-name{font-size:18pt!important;color:#000!important;cursor:default!important;border-bottom:none!important}.list-editor__detachment{color:#333!important;font-size:10pt!important}.list-editor__battle-size{color:#333!important}.list-editor__points-display{font-size:14pt!important;color:#000!important;text-shadow:none!important}.list-editor__points-display--over{color:#c00!important;text-shadow:none!important}.list-editor__points-limit{color:#444!important}.list-editor__points-over{color:#c00!important}.roster-section{margin-bottom:0!important;break-inside:avoid}.roster-section__header{background:#eee!important;color:#000!important;border-radius:0!important;margin:0!important;padding:4pt 8pt!important;font-size:10pt!important;border-bottom:1px solid #999!important}.roster-section__header--epic_hero,.roster-section__header--character,.roster-section__header--battleline,.roster-section__header--infantry,.roster-section__header--vehicle,.roster-section__header--monster,.roster-section__header--mounted,.roster-section__header--beast,.roster-section__header--fortification,.roster-section__header--dedicated_transport,.roster-section__header--allied{background:#eee!important;color:#000!important}.roster-section__points{color:#333!important}.roster-item{border-bottom:1px solid #ccc!important;border-left:none!important;background:none!important;padding:4pt 8pt!important;cursor:default!important;break-inside:avoid;page-break-inside:avoid}.roster-item:hover{background:none!important}.roster-item--selected{background:none!important;border-left:none!important}.roster-item__name{color:#000!important;font-size:10pt!important}.roster-item__points{color:#000!important;font-weight:700!important}.roster-item__row2{color:#444!important;margin-left:0!important}.roster-item__enhancement{color:#333!important;font-style:italic!important}.roster-item__datasheet{border-top:1px solid #ccc!important}.unit-card{background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border:1px solid #999!important;border-radius:4pt!important;box-shadow:none!important;break-inside:avoid;page-break-inside:avoid}.unit-card__name{color:#000!important}.unit-card__points{color:#000!important;text-shadow:none!important}.unit-card__points-detail{color:#444!important}.unit-card__section{border-top-color:#ccc!important}.unit-card__section-label{color:#666!important}.unit-card__enhancement-chip{background:none!important;border:1px solid #999!important;color:#333!important}.unit-card__remove-btn{display:none!important}.detachment-rules__toggle{color:#000!important;background:none!important;border:none!important}.detachment-rules__content{color:#333!important}table{border-collapse:collapse!important}th,td{color:#000!important;border:1px solid #ccc!important}th{background:#eee!important}*,*:before,*:after{animation:none!important;transition:none!important;box-shadow:none!important;text-shadow:none!important}a{color:#000!important;text-decoration:none!important}}.play-mode{max-width:800px;margin:0 auto;padding-bottom:var(--space-2xl)}.play-mode__header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-lg);gap:var(--space-md)}.play-mode__title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-gold);text-transform:uppercase;letter-spacing:.05em;margin:0}.play-mode__subtitle{font-size:var(--text-sm);color:var(--color-text-secondary)}.play-mode__header-actions{display:flex;align-items:center;gap:var(--space-sm)}.play-mode__lock-badge{font-size:var(--text-xs);padding:var(--space-xs) var(--space-sm);background:#c9a84c26;border:1px solid rgba(201,168,76,.3);border-radius:var(--radius-full);color:var(--color-gold);font-weight:600}.play-mode__units{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-xs)}.play-mode__unit-card{background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--transition-fast)}.play-mode__unit-card--expanded{border-color:var(--glass-border-active)}.play-mode__unit-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-md);cursor:pointer}.play-mode__unit-header:hover{background:#ffffff05}.play-mode__unit-name{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;text-transform:uppercase;letter-spacing:.03em}.play-mode__unit-enh{font-size:var(--text-sm);color:var(--color-gold);font-style:italic}.play-mode__unit-right{display:flex;align-items:center;gap:var(--space-sm)}.play-mode__unit-pts{font-size:var(--text-sm);color:var(--color-gold);font-variant-numeric:tabular-nums}.play-mode__expand-arrow{font-size:10px;color:var(--color-text-muted)}.play-mode__datasheet{border-top:1px solid rgba(255,255,255,.04)}.play-mode__tabs{display:flex;gap:2px;margin-top:var(--space-lg);margin-bottom:var(--space-md);border-bottom:1px solid var(--glass-border)}.play-mode__tab{flex:1;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-bottom:2px solid transparent;color:var(--color-text-muted);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;text-align:center;transition:color var(--transition-fast),border-color var(--transition-fast)}.play-mode__tab:hover{color:var(--color-text-primary)}.play-mode__tab--active{color:var(--color-gold);border-bottom-color:var(--color-gold)}.secondary-objectives{display:flex;flex-direction:column;gap:var(--space-md)}.secondary-objectives__header{display:flex;justify-content:space-between;align-items:center}.secondary-objectives__title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-gold)}.secondary-objectives__total{font-family:var(--font-display);font-size:var(--text-lg);font-weight:900;color:var(--color-gold)}.secondary-objectives__empty{color:var(--color-text-muted);font-size:var(--text-sm);text-align:center;padding:var(--space-lg)}.secondary-objectives__card{background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);padding:var(--space-md)}.secondary-objectives__card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.secondary-objectives__card-name{font-family:var(--font-display);font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.03em}.secondary-objectives__card-right{display:flex;align-items:center;gap:var(--space-sm)}.secondary-objectives__card-total{font-weight:700;color:var(--color-gold);font-variant-numeric:tabular-nums}.secondary-objectives__remove{width:20px;height:20px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:14px}.secondary-objectives__remove:hover{color:var(--color-red)}.secondary-objectives__rounds{display:flex;gap:var(--space-sm)}.secondary-objectives__round{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px}.secondary-objectives__round-label{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600}.secondary-objectives__round-controls{display:flex;align-items:center;gap:2px}.secondary-objectives__score-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg-light);color:var(--color-text-primary);cursor:pointer;font-size:12px}.secondary-objectives__score-btn:hover:not(:disabled){background:#c9a84c26}.secondary-objectives__score-btn:disabled{opacity:.3;cursor:default}.secondary-objectives__score-value{min-width:20px;text-align:center;font-weight:700;font-size:var(--text-sm);font-variant-numeric:tabular-nums}.secondary-objectives__add-btn{width:100%;padding:var(--space-sm);background:transparent;border:1px dashed var(--glass-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;font-size:var(--text-sm);transition:border-color var(--transition-fast),color var(--transition-fast)}.secondary-objectives__add-btn:hover{border-color:var(--color-gold-dim);color:var(--color-gold)}.secondary-objectives__picker{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md);background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-md)}.secondary-objectives__picker-list{display:flex;flex-wrap:wrap;gap:4px}.secondary-objectives__picker-item{padding:var(--space-xs) var(--space-sm);background:#ffffff0a;border:1px solid var(--glass-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-size:var(--text-xs);cursor:pointer;transition:all var(--transition-fast)}.secondary-objectives__picker-item:hover{background:#c9a84c1f;border-color:#c9a84c4d;color:var(--color-gold)}.secondary-objectives__custom{display:flex;gap:var(--space-sm)}.secondary-objectives__custom .form-input{flex:1}.stratagem-ref{display:flex;flex-direction:column;gap:var(--space-sm)}.stratagem-ref__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.stratagem-ref__title{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-gold)}.stratagem-ref__search{width:150px;font-size:var(--text-xs)}.stratagem-ref__phase-header{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);padding:var(--space-xs) 0;border-bottom:1px solid rgba(255,255,255,.04);margin-top:var(--space-sm)}.stratagem-ref__card{background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast)}.stratagem-ref__card:hover{border-color:var(--glass-border-hover)}.stratagem-ref__card--expanded{border-color:var(--glass-border-active)}.stratagem-ref__card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md)}.stratagem-ref__card-name{font-weight:700;font-size:var(--text-sm)}.stratagem-ref__card-cp{font-family:var(--font-display);font-weight:900;font-size:var(--text-sm);color:var(--color-gold);background:#c9a84c1a;border:1px solid rgba(201,168,76,.25);border-radius:var(--radius-sm);padding:1px 8px}.stratagem-ref__card-body{padding:0 var(--space-md) var(--space-md);font-size:var(--text-xs);color:var(--color-text-secondary);line-height:1.5;display:flex;flex-direction:column;gap:var(--space-xs)}.stratagem-ref__when strong,.stratagem-ref__effect strong,.stratagem-ref__restrictions strong{color:var(--color-text-primary)}.stratagem-ref__restrictions{color:var(--color-red);font-style:italic}.battle-report{display:flex;flex-direction:column;gap:var(--space-md)}.battle-report__stats{display:flex;justify-content:center;gap:var(--space-lg);padding:var(--space-md);background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-lg)}.battle-report__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.battle-report__stat-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:900;color:var(--color-text-primary)}.battle-report__stat-value--win{color:var(--color-green)}.battle-report__stat-value--loss{color:var(--color-red)}.battle-report__stat-value--draw{color:var(--color-gold)}.battle-report__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em}.battle-report__form{padding:var(--space-md);background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-md)}.battle-report__form-title{font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-gold);text-transform:uppercase;letter-spacing:.04em;margin:0}.battle-report__form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.battle-report__form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.battle-report__card{background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast);border-left:3px solid var(--glass-border)}.battle-report__card--win{border-left-color:var(--color-green)}.battle-report__card--loss{border-left-color:var(--color-red)}.battle-report__card--draw{border-left-color:var(--color-gold)}.battle-report__card:hover{border-color:var(--glass-border-hover)}.battle-report__card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);gap:var(--space-sm)}.battle-report__card-left{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.battle-report__result-badge{font-family:var(--font-display);font-size:10px;font-weight:900;padding:2px 6px;border-radius:var(--radius-sm);letter-spacing:.05em}.battle-report__result-badge--win{background:#4caf5026;color:var(--color-green);border:1px solid rgba(76,175,80,.3)}.battle-report__result-badge--loss{background:#ef444426;color:var(--color-red);border:1px solid rgba(239,68,68,.3)}.battle-report__result-badge--draw{background:#c9a84c26;color:var(--color-gold);border:1px solid rgba(201,168,76,.3)}.battle-report__card-opponent{font-weight:600;font-size:var(--text-sm)}.battle-report__card-faction{font-weight:400;color:var(--color-text-muted)}.battle-report__card-right{display:flex;align-items:center;gap:var(--space-md);flex-shrink:0}.battle-report__card-score{font-family:var(--font-display);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.battle-report__card-date{font-size:var(--text-xs);color:var(--color-text-muted)}.battle-report__card-body{padding:0 var(--space-md) var(--space-md);font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;display:flex;flex-direction:column;gap:var(--space-xs)}.battle-report__card-body strong{color:var(--color-text-primary)}.game-tracker{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:var(--glass-bg-heavy);border:1px solid var(--glass-border);border-radius:var(--radius-lg);flex-wrap:wrap}.game-tracker__section{display:flex;flex-direction:column;align-items:center;gap:2px}.game-tracker__label{font-family:var(--font-display);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.game-tracker__controls{display:flex;align-items:center;gap:var(--space-xs)}.game-tracker__btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg-light);color:var(--color-text-primary);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.game-tracker__btn:hover:not(:disabled){background:#c9a84c26;border-color:var(--color-gold-dim)}.game-tracker__btn:disabled{opacity:.3;cursor:default}.game-tracker__value{min-width:32px;text-align:center;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.game-tracker__value--phase{min-width:80px;font-family:var(--font-display);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.03em;color:var(--color-gold)}.game-tracker__reset{margin-left:auto;padding:var(--space-xs) var(--space-sm);background:transparent;border:1px solid rgba(192,64,64,.3);border-radius:var(--radius-sm);color:var(--color-red);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast)}.game-tracker__reset:hover{background:#c0404026}.casualty-tracker{padding:var(--space-sm) var(--space-md);border-top:1px solid rgba(255,255,255,.04)}.casualty-tracker__pips{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:4px}.casualty-tracker__pip{width:20px;height:20px;border-radius:50%;border:2px solid var(--color-green);background:#40a04033;cursor:pointer;transition:all var(--transition-fast)}.casualty-tracker__pip:hover{transform:scale(1.15)}.casualty-tracker__pip--dead{border-color:var(--color-red);background:#c0404066;opacity:.5}.casualty-tracker__count{font-size:var(--text-xs);color:var(--color-text-muted)}.casualty-tracker__wound-model{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:2px 0}.casualty-tracker__wound-label{font-size:var(--text-xs);color:var(--color-text-secondary);min-width:50px}.casualty-tracker__wound-label--dead{color:var(--color-red);text-decoration:line-through}.casualty-tracker__wound-controls{display:flex;align-items:center;gap:var(--space-xs)}.casualty-tracker__wound-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border:1px solid var(--glass-border);border-radius:var(--radius-sm);background:var(--glass-bg-light);color:var(--color-text-primary);cursor:pointer;font-size:14px;transition:background var(--transition-fast)}.casualty-tracker__wound-btn:hover:not(:disabled){background:#c9a84c26}.casualty-tracker__wound-btn:disabled{opacity:.3;cursor:default}.casualty-tracker__wound-count{font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;min-width:40px;text-align:center;color:var(--color-green)}.casualty-tracker__wound-count--dead{color:var(--color-red)}@media(min-width:769px)and (orientation:landscape){.play-mode{max-width:1100px}.play-mode__units{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.play-mode__role-section{grid-column:1 / -1}.play-mode__unit{break-inside:avoid}}.phase-tracker{display:flex;align-items:stretch;gap:var(--space-xs);background:var(--glass-bg-heavy);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-sm);margin-bottom:var(--space-md);flex-wrap:wrap}.phase-tracker__section{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);flex:1;min-width:70px}.phase-tracker__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-family:var(--font-display)}.phase-tracker__controls{display:flex;align-items:center;gap:var(--space-xs)}.phase-tracker__btn{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg-light);color:var(--color-text-primary);font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.phase-tracker__btn:hover:not(:disabled){border-color:var(--color-gold-dim);background:#c9a84c1a}.phase-tracker__btn:disabled{opacity:.3;cursor:not-allowed}.phase-tracker__value{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--color-text-primary);min-width:32px;text-align:center;font-variant-numeric:tabular-nums}.phase-tracker__value--phase{min-width:80px;font-size:var(--text-sm);color:var(--color-gold)}.phase-tracker__value--vp{color:var(--color-green-bright)}.phase-tracker__value--opp-vp{color:var(--color-red-bright)}.scoreboard{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);margin-bottom:var(--space-md)}.scoreboard__totals{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);margin-bottom:var(--space-md)}.scoreboard__player{text-align:center}.scoreboard__player-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;display:block;margin-bottom:var(--space-xs)}.scoreboard__player-vp{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700}.scoreboard__player-vp--mine{color:var(--color-green-bright)}.scoreboard__player-vp--opponent{color:var(--color-red-bright)}.scoreboard__vs{font-size:var(--text-sm);color:var(--color-text-muted)}.scoreboard__diff{text-align:center;font-size:var(--text-sm);margin-top:var(--space-xs)}.scoreboard__diff--ahead{color:var(--color-green-bright)}.scoreboard__diff--behind{color:var(--color-red-bright)}.scoreboard__diff--tied{color:var(--color-text-muted)}.scoreboard__rounds{width:100%;border-collapse:collapse;margin-top:var(--space-md)}.scoreboard__rounds th,.scoreboard__rounds td{padding:var(--space-xs) var(--space-sm);text-align:center;font-size:var(--text-xs);border-bottom:1px solid var(--glass-border)}.scoreboard__rounds th{color:var(--color-text-muted);font-weight:600}.chess-timer{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);margin-bottom:var(--space-md)}.chess-timer__display{display:flex;gap:var(--space-md);margin-bottom:var(--space-sm)}.chess-timer__player{flex:1;text-align:center;padding:var(--space-md);border-radius:var(--radius-md);border:1px solid var(--glass-border);background:var(--glass-bg-light);transition:all var(--transition-normal)}.chess-timer__player--active{border-color:var(--color-gold);box-shadow:var(--shadow-glow-gold)}.chess-timer__player-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;display:block;margin-bottom:var(--space-xs)}.chess-timer__time{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.chess-timer__controls{display:flex;gap:var(--space-sm);justify-content:center}.dice-roller{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);margin-bottom:var(--space-md)}.dice-roller__header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.dice-roller__input{width:60px}.dice-roller__results{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-bottom:var(--space-sm)}.dice-roller__die{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);border:1px solid var(--glass-border);background:var(--glass-bg-light);font-weight:700;font-size:var(--text-base);color:var(--color-text-primary)}.dice-roller__die--six{border-color:var(--color-gold);color:var(--color-gold);background:#c9a84c1a}.dice-roller__die--one{border-color:var(--color-red);color:var(--color-red);background:#c040401a}.dice-roller__total{font-family:var(--font-display);font-weight:700;color:var(--color-gold)}.dice-roller__history{margin-top:var(--space-sm);border-top:1px solid var(--glass-border);padding-top:var(--space-sm)}.dice-roller__history-toggle{font-size:var(--text-xs);color:var(--color-text-muted);cursor:pointer;background:none;border:none;padding:0}.dice-roller__history-item{font-size:var(--text-xs);color:var(--color-text-secondary);padding:var(--space-xs) 0;border-bottom:1px solid rgba(255,255,255,.03)}.event-log{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);max-height:500px;overflow-y:auto}.event-log__empty{text-align:center;color:var(--color-text-muted);padding:var(--space-lg);font-size:var(--text-sm)}.event-log__round-header{font-family:var(--font-display);font-size:var(--text-xs);color:var(--color-gold);text-transform:uppercase;letter-spacing:.05em;padding:var(--space-sm) 0 var(--space-xs);border-bottom:1px solid var(--glass-border);margin-top:var(--space-sm)}.event-log__round-header:first-child{margin-top:0}.event-log__item{display:flex;align-items:baseline;gap:var(--space-sm);padding:var(--space-xs) 0;font-size:var(--text-xs);border-bottom:1px solid rgba(255,255,255,.03)}.event-log__phase{color:var(--color-text-muted);min-width:70px}.event-log__type{color:var(--color-gold-dim);font-weight:600;min-width:60px}.event-log__description{color:var(--color-text-secondary);flex:1}.event-log__time{color:var(--color-text-muted);font-size:.65rem}.stratagem-panel__search{margin-bottom:var(--space-md)}.stratagem-panel__phase-hint{font-size:var(--text-xs);color:var(--color-gold-dim);margin-bottom:var(--space-sm)}.stratagem-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-md);margin-bottom:var(--space-sm);transition:border-color var(--transition-fast)}.stratagem-card--relevant{border-color:var(--color-gold-dim)}.stratagem-card__header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer}.stratagem-card__cp{background:var(--color-gold-dim);color:var(--color-bg-primary);font-weight:700;font-size:var(--text-xs);padding:2px 8px;border-radius:var(--radius-sm);flex-shrink:0}.stratagem-card__name{font-weight:600;color:var(--color-text-primary);flex:1}.stratagem-card__phase-badge{font-size:var(--text-xs);color:var(--color-text-muted)}.stratagem-card__body{padding:0 var(--space-md) var(--space-md)}.stratagem-card__when,.stratagem-card__effect,.stratagem-card__restrictions{font-size:var(--text-xs);color:var(--color-text-secondary);margin-bottom:var(--space-xs)}.stratagem-card__restrictions{color:var(--color-red);font-style:italic}.stratagem-card--used{animation:stratagem-used-flash .8s ease-out}@keyframes stratagem-used-flash{0%{border-color:var(--color-gold);box-shadow:0 0 12px #c9a84c80}to{border-color:var(--glass-border);box-shadow:none}}.stratagem-card__use-btn{display:block;width:100%;margin-top:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#c9a84c33;border:1px solid var(--color-gold-dim);border-radius:var(--radius-sm);color:var(--color-gold);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.stratagem-card__use-btn:hover:not(:disabled){background:#c9a84c59;border-color:var(--color-gold)}.stratagem-card__use-btn--disabled,.stratagem-card__use-btn:disabled{opacity:.4;cursor:not-allowed;color:var(--color-text-muted);background:#ffffff08;border-color:var(--glass-border)}.play-mode__sync-status{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-xs);font-weight:600;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-full);border:1px solid transparent}.play-mode__sync-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.play-mode__sync-status--connected{color:#4ade80;border-color:#4ade8040;background:#4ade8014}.play-mode__sync-status--connected .play-mode__sync-dot{background:#4ade80;box-shadow:0 0 4px #4ade8099}.play-mode__sync-status--connecting{color:var(--color-gold);border-color:#c9a84c40;background:#c9a84c14}.play-mode__sync-status--connecting .play-mode__sync-dot{background:var(--color-gold);animation:sync-pulse 1.2s ease-in-out infinite}.play-mode__sync-status--disconnected{color:var(--color-text-muted);border-color:#ffffff14;background:#ffffff08}.play-mode__sync-status--disconnected .play-mode__sync-dot{background:var(--color-text-muted)}.game-setup{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:500px;margin:var(--space-xl) auto}.game-setup__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-gold);text-transform:uppercase;text-align:center;margin-bottom:var(--space-lg)}.game-setup__field{margin-bottom:var(--space-md)}.game-setup__label{display:block;font-size:var(--text-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;margin-bottom:var(--space-xs)}.game-setup__actions{display:flex;justify-content:center;margin-top:var(--space-lg)}.play-mode__history-section{margin-top:var(--space-xl)}.play-mode__tools-tab,.play-mode__score-tab,.play-mode__log-tab{display:flex;flex-direction:column;gap:var(--space-md)}@media(max-width:768px){.phase-tracker{gap:var(--space-xs);padding:var(--space-xs)}.phase-tracker__section{min-width:55px}.phase-tracker__btn{width:32px;height:32px}.phase-tracker__value--phase{min-width:65px;font-size:var(--text-xs)}.chess-timer__display{flex-direction:column}.scoreboard__totals{gap:var(--space-md)}.scoreboard__player-vp{font-size:var(--text-xl)}}@media(min-width:768px)and (max-width:1024px){.play-mode__tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}.play-mode__tab{white-space:nowrap;flex-shrink:0}}.sync-status{border-radius:var(--radius-sm);font-size:var(--text-sm);margin-bottom:var(--space-sm)}.sync-status--syncing{padding:var(--space-xs) var(--space-sm);background:#c9a84c14;border:1px solid rgba(201,168,76,.15)}.sync-status__syncing{display:flex;align-items:center;gap:var(--space-xs);color:var(--color-gold)}.sync-status__dot{width:8px;height:8px;border-radius:50%;background:var(--color-gold);animation:sync-pulse 1.2s ease-in-out infinite}@keyframes sync-pulse{0%,to{opacity:.3}50%{opacity:1}}.sync-status__label{font-weight:500}.sync-status--error{padding:var(--space-sm) var(--space-md);background:#dc26261f;border:1px solid rgba(220,38,38,.3)}.sync-status__error{display:flex;align-items:center;gap:var(--space-sm);color:var(--color-danger, #ef4444)}.sync-status__icon{font-size:var(--text-md);flex-shrink:0}.sync-status__message{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sync-status__retry{flex-shrink:0;padding:var(--space-xs) var(--space-sm);background:#dc262633;border:1px solid rgba(220,38,38,.4);border-radius:var(--radius-sm);color:inherit;font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background .15s}.sync-status__retry:hover{background:#dc262659}.sync-status__dismiss{flex-shrink:0;padding:var(--space-xs);background:none;border:none;color:inherit;cursor:pointer;opacity:.6;font-size:var(--text-sm);line-height:1;transition:opacity .15s}.sync-status__dismiss:hover{opacity:1}.collection-page{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.collection-page__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.collection-page__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.collection-page__add-btn{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.collection-page__add-btn:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.collection-page__stats{display:flex;gap:var(--space-md);flex-wrap:wrap}.collection-page__stat{display:flex;flex-direction:column;align-items:center;background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md) var(--space-lg);min-width:100px;-webkit-backdrop-filter:blur(var(--glass-blur-light));backdrop-filter:blur(var(--glass-blur-light))}.collection-page__stat-value{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-gold)}.collection-page__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.collection-page__filters{display:flex;gap:var(--space-md);align-items:center;flex-wrap:wrap}.collection-page__filter-select{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);min-width:160px}.collection-page__filter-select:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.collection-page__status-chips{display:flex;gap:var(--space-xs);flex-wrap:wrap}.collection-page__chip{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:2px var(--space-sm);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.collection-page__chip:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.collection-page__chip--active{background:#c9a84c26;color:var(--color-gold);border-color:var(--color-gold-dim)}.collection-page__chip[data-status=finished].collection-page__chip--active{background:#50c05026;color:var(--color-green-bright);border-color:var(--color-green)}.collection-page__search{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);flex:1;min-width:180px}.collection-page__search::placeholder{color:var(--color-text-muted)}.collection-page__search:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.collection-page__view-toggle{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;width:fit-content}.collection-page__view-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:none;padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.collection-page__view-btn:not(:last-child){border-right:1px solid var(--color-border)}.collection-page__view-btn:hover{background:var(--color-bg-hover)}.collection-page__view-btn--active{background:#c9a84c26;color:var(--color-gold)}.collection-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-md)}.collection-page__loading{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl)}.collection-page__empty{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-muted);font-size:var(--text-md);background:var(--gradient-card);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.collection-card{position:relative;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm),var(--shadow-inset);cursor:pointer;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-fast);animation:fadeInUp .3s ease}.collection-card:hover{border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.collection-card__header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-sm)}.collection-card__status-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.collection-card__status-dot[data-status=unbuilt]{background:var(--color-text-muted)}.collection-card__status-dot[data-status=assembled]{background:#6a6a7a}.collection-card__status-dot[data-status=primed]{background:#8a8a9a}.collection-card__status-dot[data-status=basecoated]{background:var(--color-blue)}.collection-card__status-dot[data-status=detailed]{background:var(--color-gold)}.collection-card__status-dot[data-status=based]{background:var(--color-green)}.collection-card__status-dot[data-status=finished]{background:var(--color-green-bright)}.collection-card__name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collection-card__quantity{background:#c9a84c26;color:var(--color-gold);font-size:var(--text-xs);font-weight:700;padding:1px 6px;border-radius:var(--radius-sm);flex-shrink:0}.collection-card__meta{display:flex;align-items:center;gap:var(--space-sm);flex-wrap:wrap}.collection-card__faction{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm)}.collection-card__status-badge{font-size:var(--text-xs);font-weight:600;padding:1px 8px;border-radius:var(--radius-full)}.collection-card__status-badge[data-status=unbuilt]{background:#6a6a7a26;color:var(--color-text-muted)}.collection-card__status-badge[data-status=assembled]{background:#6a6a7a33;color:#8a8a9a}.collection-card__status-badge[data-status=primed]{background:#8a8a9a33;color:#aaaabc}.collection-card__status-badge[data-status=basecoated]{background:#4080c026;color:var(--color-blue-bright)}.collection-card__status-badge[data-status=detailed]{background:#c9a84c26;color:var(--color-gold)}.collection-card__status-badge[data-status=based]{background:#40a04026;color:var(--color-green)}.collection-card__status-badge[data-status=finished]{background:#50c05026;color:var(--color-green-bright)}.collection-card__advance-btn{display:block;width:100%;margin-top:var(--space-sm);background:#c9a84c1a;color:var(--color-gold-dim);border:1px solid rgba(201,168,76,.2);border-radius:var(--radius-sm);padding:2px var(--space-sm);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.collection-card__advance-btn:hover{background:#c9a84c33;color:var(--color-gold)}.collection-form__backdrop{position:fixed;inset:0;z-index:var(--z-modal-backdrop);background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:fadeIn .2s ease}.collection-form{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;z-index:var(--z-modal);animation:scaleIn .2s ease}.collection-form__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.collection-form__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-gold);margin:0}.collection-form__close{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-lg);cursor:pointer;padding:var(--space-xs);line-height:1;transition:color var(--transition-fast)}.collection-form__close:hover{color:var(--color-text-primary)}.collection-form__body{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg)}.collection-form__field{display:flex;flex-direction:column;gap:var(--space-xs);flex:1}.collection-form__row{display:flex;gap:var(--space-md)}.collection-form__label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.collection-form__input,.collection-form__select,.collection-form__textarea{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-family:var(--font-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.collection-form__input:focus,.collection-form__select:focus,.collection-form__textarea:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.collection-form__input::placeholder,.collection-form__textarea::placeholder{color:var(--color-text-muted)}.collection-form__textarea{resize:vertical;min-height:60px}.collection-form__actions{display:flex;justify-content:flex-end;gap:var(--space-md);padding-top:var(--space-sm)}.collection-form__btn--cancel{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.collection-form__btn--cancel:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.collection-form__btn--save{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.collection-form__btn--save:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.pipeline{display:flex;gap:var(--space-md);overflow-x:auto;padding-bottom:var(--space-md);-webkit-overflow-scrolling:touch}.pipeline__column{flex:0 0 180px;background:var(--color-bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;max-height:600px}.pipeline__column-header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);border-bottom:1px solid var(--glass-border)}.pipeline__column-dot{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.pipeline__column-dot[data-status=unbuilt]{background:var(--color-text-muted)}.pipeline__column-dot[data-status=assembled]{background:#6a6a7a}.pipeline__column-dot[data-status=primed]{background:#8a8a9a}.pipeline__column-dot[data-status=basecoated]{background:var(--color-blue)}.pipeline__column-dot[data-status=detailed]{background:var(--color-gold)}.pipeline__column-dot[data-status=based]{background:var(--color-green)}.pipeline__column-dot[data-status=finished]{background:var(--color-green-bright)}.pipeline__column-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);margin:0;flex:1}.pipeline__column-count{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm)}.pipeline__column-body{flex:1;overflow-y:auto;padding:var(--space-sm);display:flex;flex-direction:column;gap:var(--space-sm)}.pipeline__empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-xs);padding:var(--space-md)}.pipeline__card{position:relative;background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.pipeline__card:hover{border-color:var(--glass-border-hover);background:var(--color-bg-hover)}.pipeline__card-name{font-size:var(--text-xs);font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:var(--space-lg)}.pipeline__card-qty{font-size:var(--text-xs);color:var(--color-gold);font-weight:700}.pipeline__card-faction{display:block;font-size:.625rem;color:var(--color-text-muted);margin-top:2px}.pipeline__card-advance{position:absolute;top:var(--space-sm);right:var(--space-sm);background:none;border:none;color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;padding:0 2px;line-height:1;transition:color var(--transition-fast)}.pipeline__card-advance:hover{color:var(--color-gold)}.wishlist-panel{border-top:1px solid var(--color-border);padding-top:var(--space-lg)}.wishlist-panel__toggle{display:flex;align-items:center;gap:var(--space-sm);background:none;border:none;color:var(--color-text-primary);cursor:pointer;padding:0;width:100%;text-align:left}.wishlist-panel__toggle-icon{font-size:var(--text-xs);color:var(--color-text-muted);width:16px}.wishlist-panel__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:0;flex:1}.wishlist-panel__count{font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:1px 8px;border-radius:var(--radius-full)}.wishlist-panel__body{margin-top:var(--space-md);display:flex;flex-direction:column;gap:var(--space-md)}.wishlist-panel__form{display:flex;gap:var(--space-sm)}.wishlist-panel__input{flex:1;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.wishlist-panel__input::placeholder{color:var(--color-text-muted)}.wishlist-panel__input:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.wishlist-panel__select{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm);font-size:var(--text-sm)}.wishlist-panel__add-btn{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-md);font-weight:700;cursor:pointer;line-height:1;transition:opacity var(--transition-fast)}.wishlist-panel__add-btn:hover{opacity:.9}.wishlist-panel__empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-md)}.wishlist-panel__list{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm)}.wishlist-panel__item{display:flex;align-items:center;gap:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md)}.wishlist-panel__item-priority{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:var(--radius-sm);flex-shrink:0}.wishlist-panel__item[data-priority="1"] .wishlist-panel__item-priority{background:#c0404026;color:var(--color-red-bright)}.wishlist-panel__item[data-priority="2"] .wishlist-panel__item-priority{background:#c9a84c26;color:var(--color-gold)}.wishlist-panel__item[data-priority="3"] .wishlist-panel__item-priority{background:#6a6a7a26;color:var(--color-text-muted)}.wishlist-panel__item-name{flex:1;font-size:var(--text-sm);color:var(--color-text-primary)}.wishlist-panel__remove-btn{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-md);cursor:pointer;padding:0 var(--space-xs);line-height:1;transition:color var(--transition-fast)}.wishlist-panel__remove-btn:hover{color:var(--color-red-bright)}@media(max-width:768px){.collection-page{padding:var(--space-md)}.collection-page__header{flex-direction:column;align-items:stretch}.collection-page__filters{flex-direction:column}.collection-page__status-chips{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch}.collection-page__grid{grid-template-columns:1fr}.pipeline{gap:var(--space-sm)}.pipeline__column{flex:0 0 150px}.collection-form{max-width:100%;border-radius:var(--radius-lg)}.collection-form__row{flex-direction:column;gap:var(--space-md)}.wishlist-panel__form{flex-wrap:wrap}.wishlist-panel__input{min-width:0}}@media(max-width:480px){.collection-page__stats{flex-direction:row;justify-content:space-around}.collection-page__stat{min-width:80px;padding:var(--space-sm) var(--space-md)}.pipeline__column{flex:0 0 130px}}.recipes-page{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.recipes-page__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.recipes-page__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.recipes-page__add-btn{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.recipes-page__add-btn:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.recipes-page__search{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);width:100%;max-width:400px}.recipes-page__search::placeholder{color:var(--color-text-muted)}.recipes-page__search:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.recipes-page__error{background:#c0404026;color:var(--color-red-bright);border:1px solid rgba(192,64,64,.3);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.recipes-page__loading{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-xl)}.recipes-page__empty{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-muted);font-size:var(--text-md);background:var(--gradient-card);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.recipes-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.recipe-card{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm),var(--shadow-inset);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);animation:fadeInUp .3s ease}.recipe-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md)}.recipe-card--expanded{border-color:var(--color-gold-dim)}.recipe-card__summary{padding:var(--space-md);cursor:pointer}.recipe-card__swatches{display:flex;gap:4px;margin-bottom:var(--space-sm)}.recipe-card__swatch{width:18px;height:18px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.15);flex-shrink:0}.recipe-card__name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin:0 0 4px;color:var(--color-text-primary)}.recipe-card__desc{font-size:var(--text-xs);color:var(--color-text-muted);margin:0 0 var(--space-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-card__meta{display:flex;align-items:center;gap:var(--space-sm)}.recipe-card__step-count{font-size:var(--text-xs);color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:1px 8px;border-radius:var(--radius-sm)}.recipe-card__public-badge{font-size:var(--text-xs);font-weight:600;color:var(--color-gold);background:#c9a84c26;padding:1px 8px;border-radius:var(--radius-sm)}.recipe-card__detail{border-top:1px solid var(--glass-border);padding:var(--space-md)}.recipe-card__steps{display:flex;flex-direction:column;gap:var(--space-sm)}.recipe-card__step{display:flex;align-items:flex-start;gap:var(--space-sm);padding:var(--space-xs) 0}.recipe-card__step-num{width:20px;height:20px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);border:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;font-size:.625rem;font-weight:700;color:var(--color-text-muted);flex-shrink:0}.recipe-card__step-swatch{width:14px;height:14px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.15);flex-shrink:0;margin-top:3px}.recipe-card__step-info{display:flex;flex-direction:column;gap:1px;min-width:0}.recipe-card__step-paint{font-size:var(--text-xs);font-weight:600;color:var(--color-text-primary)}.recipe-card__step-technique{font-size:var(--text-xs);color:var(--color-gold-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.recipe-card__step-area{font-size:var(--text-xs);color:var(--color-text-secondary)}.recipe-card__step-notes{font-size:var(--text-xs);color:var(--color-text-muted);font-style:italic}.recipe-card__actions{display:flex;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-sm);border-top:1px solid var(--glass-border)}.recipe-card__edit-btn{background:#c9a84c1a;color:var(--color-gold-dim);border:1px solid rgba(201,168,76,.2);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.recipe-card__edit-btn:hover{background:#c9a84c33;color:var(--color-gold)}.recipe-card__delete-btn{background:#c040401a;color:var(--color-red);border:1px solid rgba(192,64,64,.2);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-md);font-size:var(--text-xs);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.recipe-card__delete-btn:hover{background:#c0404033;color:var(--color-red-bright)}.recipe-editor{width:100%;max-width:640px;max-height:90vh;overflow-y:auto}.recipe-editor__header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-lg);border-bottom:1px solid var(--color-border)}.recipe-editor__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-gold);margin:0}.recipe-editor__close{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-lg);cursor:pointer;padding:var(--space-xs);line-height:1;transition:color var(--transition-fast)}.recipe-editor__close:hover{color:var(--color-text-primary)}.recipe-editor__body{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg)}.recipe-editor__error{background:#c0404026;color:var(--color-red-bright);border:1px solid rgba(192,64,64,.3);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm)}.recipe-editor__field{display:flex;flex-direction:column;gap:var(--space-xs)}.recipe-editor__label{font-size:var(--text-xs);font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.recipe-editor__input,.recipe-editor__select,.recipe-editor__textarea{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-family:var(--font-body);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.recipe-editor__input:focus,.recipe-editor__select:focus,.recipe-editor__textarea:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.recipe-editor__input::placeholder,.recipe-editor__textarea::placeholder{color:var(--color-text-muted)}.recipe-editor__textarea{resize:vertical;min-height:50px}.recipe-editor__checkbox-label{display:flex;align-items:center;gap:var(--space-sm);font-size:var(--text-sm);color:var(--color-text-secondary);cursor:pointer}.recipe-editor__checkbox-label input[type=checkbox]{accent-color:var(--color-gold)}.recipe-editor__steps-header{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-sm);border-top:1px solid var(--color-border)}.recipe-editor__step-count{font-size:var(--text-xs);color:var(--color-text-muted)}.recipe-editor__steps{display:flex;flex-direction:column;gap:var(--space-md)}.recipe-editor__step{display:flex;gap:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm)}.recipe-editor__step-number{width:24px;height:24px;border-radius:var(--radius-full);background:#c9a84c26;color:var(--color-gold);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs);font-weight:700;flex-shrink:0;margin-top:var(--space-sm)}.recipe-editor__step-fields{flex:1;display:flex;flex-direction:column;gap:var(--space-xs);min-width:0}.recipe-editor__step-row{display:flex;gap:var(--space-sm)}.recipe-editor__step-field{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.recipe-editor__step-field--paint{flex:2}.recipe-editor__step-actions{display:flex;flex-direction:column;gap:2px;flex-shrink:0}.recipe-editor__step-move{background:none;border:none;color:var(--color-text-muted);font-size:.625rem;cursor:pointer;padding:2px 4px;line-height:1;transition:color var(--transition-fast)}.recipe-editor__step-move:hover:not(:disabled){color:var(--color-gold)}.recipe-editor__step-move:disabled{opacity:.3;cursor:default}.recipe-editor__step-remove{background:none;border:none;color:var(--color-text-muted);font-size:var(--text-md);cursor:pointer;padding:2px 4px;line-height:1;transition:color var(--transition-fast)}.recipe-editor__step-remove:hover{color:var(--color-red-bright)}.recipe-editor__add-step{background:#c9a84c14;color:var(--color-gold-dim);border:1px dashed rgba(201,168,76,.3);border-radius:var(--radius-md);padding:var(--space-sm);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.recipe-editor__add-step:hover{background:#c9a84c26;color:var(--color-gold)}.recipe-editor__actions{display:flex;justify-content:flex-end;gap:var(--space-md);padding-top:var(--space-sm)}.recipe-editor__btn--cancel{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.recipe-editor__btn--cancel:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.recipe-editor__btn--save{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:700;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.recipe-editor__btn--save:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.recipe-editor__btn--save:disabled{opacity:.5;cursor:default}.paint-picker{position:relative;width:100%}.paint-picker__trigger{display:flex;align-items:center;justify-content:space-between;width:100%;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-family:var(--font-body);cursor:pointer;text-align:left;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.paint-picker__trigger:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.paint-picker__selected{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.paint-picker__selected-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paint-picker__placeholder{color:var(--color-text-muted)}.paint-picker__arrow{font-size:.625rem;color:var(--color-text-muted);flex-shrink:0;margin-left:var(--space-sm)}.paint-picker__swatch{width:14px;height:14px;border-radius:var(--radius-full);border:1px solid rgba(255,255,255,.15);flex-shrink:0}.paint-picker__dropdown{position:absolute;top:100%;left:0;right:0;z-index:var(--z-dropdown, 100);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);margin-top:4px;animation:fadeIn .15s ease}.paint-picker__search{width:100%;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:none;border-bottom:1px solid var(--color-border);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);font-family:var(--font-body)}.paint-picker__search::placeholder{color:var(--color-text-muted)}.paint-picker__search:focus{outline:none}.paint-picker__list{max-height:240px;overflow-y:auto;padding:var(--space-xs) 0}.paint-picker__empty{text-align:center;color:var(--color-text-muted);font-size:var(--text-xs);padding:var(--space-md)}.paint-picker__group-label{font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-xs) var(--space-md);margin-top:var(--space-xs)}.paint-picker__option{display:flex;align-items:center;gap:var(--space-sm);width:100%;background:none;border:none;color:var(--color-text-primary);padding:var(--space-xs) var(--space-md);font-size:var(--text-sm);font-family:var(--font-body);cursor:pointer;text-align:left;transition:background var(--transition-fast)}.paint-picker__option:hover{background:var(--color-bg-hover)}.paint-picker__option--selected{background:#c9a84c1a}.paint-picker__option-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paint-picker__option-type{font-size:var(--text-xs);color:var(--color-text-muted);background:var(--color-bg-tertiary);padding:1px 6px;border-radius:var(--radius-sm);flex-shrink:0}.paint-picker__metallic{font-size:.625rem;font-weight:700;color:var(--color-gold);background:#c9a84c26;padding:1px 4px;border-radius:var(--radius-sm);flex-shrink:0}@media(max-width:768px){.recipes-page{padding:var(--space-md)}.recipes-page__header{flex-direction:column;align-items:stretch}.recipes-page__search{max-width:100%}.recipes-page__grid{grid-template-columns:1fr}.recipe-editor{max-width:100%;border-radius:var(--radius-lg)}.recipe-editor__step-row{flex-direction:column}}.campaigns-page{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.campaigns-page__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap}.campaigns-page__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.campaigns-page__actions{display:flex;gap:var(--space-sm)}.campaigns-page__create-btn{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.campaigns-page__create-btn:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.campaigns-page__join-btn{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.campaigns-page__join-btn:hover{background:var(--color-bg-hover);border-color:var(--glass-border-hover)}.campaigns-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:var(--space-md)}.campaigns-page__empty{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-muted);font-size:var(--text-md);background:var(--gradient-card);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.campaigns-page__empty-icon{font-size:var(--text-2xl);margin-bottom:var(--space-md);opacity:.4}.campaigns-page__empty-text{margin-bottom:var(--space-md)}.campaign-card{position:relative;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm),var(--shadow-inset);cursor:pointer;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-fast);animation:fadeInUp .3s ease;display:flex;flex-direction:column;gap:var(--space-sm)}.campaign-card:hover{border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.campaign-card__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-sm)}.campaign-card__name{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.04em;color:var(--color-text-primary);margin:0}.campaign-card__status{display:inline-flex;align-items:center;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.campaign-card__status--recruiting{background:#50c05026;color:var(--color-green-bright);border:1px solid rgba(80,192,80,.3)}.campaign-card__status--active{background:#c9a84c26;color:var(--color-gold);border:1px solid rgba(201,168,76,.3)}.campaign-card__status--completed{background:#9a9aaa1a;color:var(--color-text-secondary);border:1px solid rgba(154,154,170,.2)}.campaign-card__status--archived{background:#6a6a7a14;color:var(--color-text-muted);border:1px solid rgba(106,106,122,.15)}.campaign-card__meta{display:flex;gap:var(--space-md);font-size:var(--text-sm);color:var(--color-text-secondary)}.campaign-card__meta-item{display:flex;align-items:center;gap:var(--space-xs)}.campaign-card__players{display:flex;align-items:center;gap:var(--space-xs);font-size:var(--text-sm);color:var(--color-text-secondary);margin-top:auto;padding-top:var(--space-sm);border-top:1px solid var(--glass-border)}.campaign-card__players-count{color:var(--color-text-primary);font-weight:600}.campaign-detail{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.campaign-detail__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap}.campaign-detail__title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.campaign-detail__header-actions{display:flex;gap:var(--space-sm);align-items:center}.campaign-detail__share-code{display:inline-flex;align-items:center;gap:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-md)}.campaign-detail__share-code-text{font-family:Courier New,monospace;font-size:var(--text-md);font-weight:700;letter-spacing:.12em;color:var(--color-gold)}.campaign-detail__share-code-copy{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-xs);border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.campaign-detail__share-code-copy:hover{color:var(--color-gold);background:#c9a84c1a}.campaign-detail__tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);overflow-x:auto;-webkit-overflow-scrolling:touch}.campaign-detail__tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--color-text-secondary);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:var(--space-md) var(--space-lg);cursor:pointer;white-space:nowrap;transition:color var(--transition-fast),border-color var(--transition-fast)}.campaign-detail__tab:hover{color:var(--color-text-primary)}.campaign-detail__tab--active{color:var(--color-gold);border-bottom-color:var(--color-gold)}.campaign-detail__section{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm),var(--shadow-inset)}.campaign-detail__section-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-primary);margin:0 0 var(--space-md)}.campaign-leaderboard{display:flex;flex-direction:column;gap:var(--space-xs)}.campaign-leaderboard__header-row{display:grid;grid-template-columns:48px 1fr 120px 80px;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.campaign-leaderboard__row{display:grid;grid-template-columns:48px 1fr 120px 80px;gap:var(--space-sm);align-items:center;padding:var(--space-sm) var(--space-md);background:var(--glass-bg-light);border:1px solid var(--glass-border);border-radius:var(--radius-md);transition:border-color var(--transition-fast),background var(--transition-fast)}.campaign-leaderboard__row:hover{border-color:var(--glass-border-hover);background:var(--glass-bg)}.campaign-leaderboard__row--first{border-color:#c9a84c33;background:var(--gradient-gold-subtle)}.campaign-leaderboard__rank{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;text-align:center;color:var(--color-text-secondary)}.campaign-leaderboard__row--first .campaign-leaderboard__rank{color:var(--color-gold);text-shadow:var(--shadow-glow-gold)}.campaign-leaderboard__player{font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.campaign-leaderboard__record{font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;color:var(--color-text-secondary);text-align:center}.campaign-leaderboard__record-win{color:var(--color-green-bright)}.campaign-leaderboard__record-loss{color:var(--color-red-bright)}.campaign-leaderboard__record-draw{color:var(--color-text-muted)}.campaign-leaderboard__vp{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-gold);text-align:center}.crusade-roster{max-width:1000px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.crusade-roster__header{display:flex;flex-direction:column;gap:var(--space-sm)}.crusade-roster__name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.crusade-roster__faction{font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em}.crusade-roster__supply-bar{display:flex;flex-direction:column;gap:var(--space-xs)}.crusade-roster__supply-label{display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--color-text-secondary)}.crusade-roster__supply-value{font-family:var(--font-display);font-weight:700;color:var(--color-text-primary)}.crusade-roster__supply-value--over{color:var(--color-red-bright)}.crusade-roster__supply-track{height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden;border:1px solid var(--color-border)}.crusade-roster__supply-fill{height:100%;border-radius:var(--radius-full);background:var(--gradient-gold);transition:width var(--transition-normal)}.crusade-roster__supply-fill--over{background:linear-gradient(135deg,var(--color-red) 0%,var(--color-red-bright) 100%)}.crusade-roster__unit-list{display:flex;flex-direction:column;gap:var(--space-md)}.crusade-roster__add-unit{display:flex;justify-content:center;padding:var(--space-lg);border:2px dashed var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.crusade-roster__add-unit:hover{border-color:var(--color-gold-dim);background:#c9a84c0d}.crusade-roster__add-unit-btn{background:none;border:none;color:var(--color-text-muted);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:color var(--transition-fast)}.crusade-roster__add-unit:hover .crusade-roster__add-unit-btn{color:var(--color-gold)}.crusade-unit-card{position:relative;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm),var(--shadow-inset);display:flex;flex-direction:column;gap:var(--space-sm);transition:border-color var(--transition-normal),box-shadow var(--transition-normal)}.crusade-unit-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md)}.crusade-unit-card--destroyed{opacity:.5;border-color:#c040404d}.crusade-unit-card--destroyed:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,transparent,transparent 10px,rgba(192,64,64,.06) 10px,rgba(192,64,64,.06) 20px);border-radius:var(--radius-lg);pointer-events:none}.crusade-unit-card__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-sm)}.crusade-unit-card__name{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;letter-spacing:.04em;color:var(--color-text-primary);margin:0}.crusade-unit-card--destroyed .crusade-unit-card__name{text-decoration:line-through;color:var(--color-red-bright)}.crusade-unit-card__rank-badge{display:inline-flex;align-items:center;padding:2px var(--space-sm);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.crusade-unit-card__rank-badge--battle_ready{background:#9a9aaa1f;color:var(--color-text-secondary);border:1px solid rgba(154,154,170,.2)}.crusade-unit-card__rank-badge--blooded{background:#50c05026;color:var(--color-green-bright);border:1px solid rgba(80,192,80,.3)}.crusade-unit-card__rank-badge--battle_hardened{background:#4080c026;color:var(--color-blue-bright);border:1px solid rgba(64,128,192,.3)}.crusade-unit-card__rank-badge--heroic{background:#c4a0ff1f;color:var(--color-purple-bright);border:1px solid rgba(196,160,255,.25)}.crusade-unit-card__rank-badge--legendary{background:#c9a84c26;color:var(--color-gold);border:1px solid rgba(201,168,76,.3);box-shadow:var(--shadow-glow-gold)}.crusade-unit-card__stats{display:flex;gap:var(--space-md);padding:var(--space-sm) 0;border-top:1px solid var(--glass-border);border-bottom:1px solid var(--glass-border)}.crusade-unit-card__stat{display:flex;flex-direction:column;align-items:center;gap:2px}.crusade-unit-card__stat-value{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--color-text-primary)}.crusade-unit-card__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.crusade-unit-card__honours,.crusade-unit-card__scars{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.xp-bar{position:relative;display:flex;flex-direction:column;gap:2px}.xp-bar__label{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--color-text-secondary)}.xp-bar__label-value{font-family:var(--font-display);font-weight:700}.xp-bar__track{position:relative;height:6px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:visible;border:1px solid var(--color-border)}.xp-bar__fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.xp-bar__fill--battle_ready{background:linear-gradient(135deg,var(--color-text-secondary) 0%,var(--color-text-muted) 100%)}.xp-bar__fill--blooded{background:linear-gradient(135deg,var(--color-green) 0%,var(--color-green-bright) 100%)}.xp-bar__fill--battle_hardened{background:linear-gradient(135deg,var(--color-blue) 0%,var(--color-blue-bright) 100%)}.xp-bar__fill--heroic{background:linear-gradient(135deg,#9060d0 0%,var(--color-purple-bright) 100%)}.xp-bar__fill--legendary{background:var(--gradient-gold)}.xp-bar__threshold{position:absolute;top:-2px;width:2px;height:calc(100% + 4px);background:var(--color-text-muted);opacity:.5;transform:translate(-50%)}.xp-bar__threshold:after{content:attr(data-xp);position:absolute;top:calc(100% + 4px);left:50%;transform:translate(-50%);font-size:9px;color:var(--color-text-muted);white-space:nowrap}.honour-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);background:#4080c026;color:var(--color-blue-bright);border:1px solid rgba(64,128,192,.25);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.honour-badge__icon{font-size:var(--text-xs);flex-shrink:0}.scar-badge{display:inline-flex;align-items:center;gap:var(--space-xs);padding:2px var(--space-sm);background:#c0404026;color:var(--color-red-bright);border:1px solid rgba(192,64,64,.25);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600}.scar-badge__icon{font-size:var(--text-xs);flex-shrink:0}.post-battle{display:flex;flex-direction:column;gap:var(--space-lg)}.post-battle__steps{display:flex;justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) 0}.post-battle__step{width:12px;height:12px;border-radius:var(--radius-full);background:var(--color-bg-tertiary);border:2px solid var(--color-border);transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.post-battle__step--active{background:var(--color-gold);border-color:var(--color-gold);box-shadow:0 0 8px #c9a84c66}.post-battle__step--completed{background:var(--color-green-bright);border-color:var(--color-green);box-shadow:0 0 8px #50c0504d}.post-battle__step-connector{width:32px;height:2px;background:var(--color-border)}.post-battle__step-connector--completed{background:var(--color-green)}.post-battle__content{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm),var(--shadow-inset);min-height:200px}.post-battle__content-title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-primary);margin:0 0 var(--space-md)}.post-battle__actions{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md)}.post-battle__prev-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:600;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.post-battle__prev-btn:hover{border-color:var(--glass-border-hover);color:var(--color-text-primary)}.post-battle__prev-btn:disabled{opacity:.3;cursor:not-allowed}.post-battle__next-btn{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.post-battle__next-btn:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.post-battle__finish-btn{background:linear-gradient(135deg,var(--color-green) 0%,var(--color-green-bright) 100%);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.post-battle__finish-btn:hover{opacity:.9;box-shadow:var(--shadow-glow-green)}.join-modal__backdrop{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--space-lg);animation:fadeIn .2s ease}.join-modal__content{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-heavy));-webkit-backdrop-filter:blur(var(--glass-blur-heavy));border:1px solid var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-xl);box-shadow:var(--shadow-xl);width:100%;max-width:420px;z-index:var(--z-modal);display:flex;flex-direction:column;gap:var(--space-lg);animation:slideUp .25s ease}.join-modal__title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-gold);text-align:center;margin:0}.join-modal__description{font-size:var(--text-sm);color:var(--color-text-secondary);text-align:center}.join-modal__input{width:100%;background:var(--color-bg-primary);color:var(--color-gold);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);font-family:Courier New,monospace;font-size:var(--text-lg);font-weight:700;letter-spacing:.2em;text-align:center;text-transform:uppercase}.join-modal__input:focus{outline:none;border-color:var(--color-gold-dim);box-shadow:var(--focus-ring)}.join-modal__actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.join-modal__cancel-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:border-color var(--transition-fast),color var(--transition-fast)}.join-modal__cancel-btn:hover{border-color:var(--glass-border-hover);color:var(--color-text-primary)}.join-modal__submit-btn{background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.join-modal__submit-btn:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.join-modal__submit-btn:disabled{opacity:.4;cursor:not-allowed}.requisition-panel{display:flex;flex-direction:column;gap:var(--space-lg)}.requisition-panel__balance{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-lg);background:var(--gradient-gold-subtle);border:1px solid rgba(201,168,76,.2);border-radius:var(--radius-lg)}.requisition-panel__balance-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-gold);text-shadow:var(--shadow-glow-gold)}.requisition-panel__balance-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.requisition-panel__options{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:var(--space-md)}.requisition-panel__option{background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);cursor:pointer;display:flex;flex-direction:column;gap:var(--space-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.requisition-panel__option:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.requisition-panel__option:disabled,.requisition-panel__option--disabled{opacity:.4;cursor:not-allowed;transform:none}.requisition-panel__option-header{display:flex;justify-content:space-between;align-items:center}.requisition-panel__option-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-primary)}.requisition-panel__option-cost{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-gold);white-space:nowrap}.requisition-panel__option-desc{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5}.battle-log{display:flex;flex-direction:column;gap:var(--space-lg)}.battle-log__field{display:flex;flex-direction:column;gap:var(--space-xs)}.battle-log__label{font-family:var(--font-display);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted)}.battle-log__opponent-select,.battle-log__mission-select{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-size:var(--text-base);width:100%}.battle-log__opponent-select:focus,.battle-log__mission-select:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.battle-log__unit-select{display:flex;flex-direction:column;gap:var(--space-xs);max-height:240px;overflow-y:auto;padding:var(--space-sm);background:var(--color-bg-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-md)}.battle-log__unit-select::-webkit-scrollbar{width:6px}.battle-log__unit-select::-webkit-scrollbar-track{background:transparent}.battle-log__unit-select::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:var(--radius-full)}.battle-log__unit-option{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.battle-log__unit-option:hover{background:var(--color-bg-hover)}.battle-log__unit-option input[type=checkbox]{accent-color:var(--color-gold)}.battle-log__unit-option-label{font-size:var(--text-sm);color:var(--color-text-primary)}.battle-log__vp-inputs{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.battle-log__vp-field{display:flex;flex-direction:column;gap:var(--space-xs)}.battle-log__vp-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.battle-log__vp-input{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-display);font-size:var(--text-md);font-weight:700;text-align:center;width:100%}.battle-log__vp-input:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.battle-log__result{display:flex;gap:var(--space-sm)}.battle-log__result-option{flex:1;background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:2px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;text-align:center;cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast),color var(--transition-fast)}.battle-log__result-option:hover{border-color:var(--glass-border-hover);color:var(--color-text-primary)}.battle-log__result-option--win.battle-log__result-option--selected{border-color:var(--color-green);background:#50c0501a;color:var(--color-green-bright)}.battle-log__result-option--loss.battle-log__result-option--selected{border-color:var(--color-red);background:#c040401a;color:var(--color-red-bright)}.battle-log__result-option--draw.battle-log__result-option--selected{border-color:var(--color-text-muted);background:#9a9aaa1a;color:var(--color-text-secondary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.campaigns-page{padding:var(--space-md)}.campaigns-page__header{flex-direction:column;align-items:flex-start}.campaigns-page__grid{grid-template-columns:1fr}.campaign-detail{padding:var(--space-md)}.campaign-detail__header{flex-direction:column}.campaign-detail__tabs{gap:0}.campaign-detail__tab{padding:var(--space-sm) var(--space-md);font-size:var(--text-xs)}.campaign-leaderboard__header-row,.campaign-leaderboard__row{grid-template-columns:36px 1fr 90px 60px;font-size:var(--text-xs)}.crusade-roster{padding:var(--space-md)}.crusade-unit-card__stats{flex-wrap:wrap}.post-battle__actions{flex-direction:column}.post-battle__prev-btn,.post-battle__next-btn,.post-battle__finish-btn{width:100%;text-align:center}.requisition-panel__options,.battle-log__vp-inputs{grid-template-columns:1fr}.battle-log__result{flex-direction:column}.join-modal__content{padding:var(--space-lg)}}@media(min-width:1200px){.campaigns-page__grid{grid-template-columns:repeat(3,1fr)}}.profile-page{max-width:900px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.profile-page__header{display:flex;align-items:center;gap:var(--space-lg);background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md),var(--shadow-inset)}.profile-page__avatar{width:96px;height:96px;border-radius:var(--radius-full);background:var(--gradient-gold-subtle);border:2px solid var(--color-gold-dim);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-gold);text-transform:uppercase;flex-shrink:0;box-shadow:var(--shadow-glow-gold)}.profile-page__info{flex:1;min-width:0}.profile-page__name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0 0 var(--space-xs)}.profile-page__bio{font-size:var(--text-sm);color:var(--color-text-secondary);line-height:1.5;margin:0 0 var(--space-md)}.profile-page__stats-row{display:flex;gap:var(--space-lg);flex-wrap:wrap}.profile-page__stat{display:flex;flex-direction:column;align-items:center}.profile-page__stat-value{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-gold)}.profile-page__stat-value--wins{color:var(--color-green-bright)}.profile-page__stat-value--losses{color:var(--color-red-bright)}.profile-page__stat-value--draws{color:var(--color-text-secondary)}.profile-page__stat-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em}.profile-page__factions{display:flex;gap:var(--space-sm);flex-wrap:wrap;margin-top:var(--space-sm)}.profile-page__faction-badge{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-full);padding:2px var(--space-sm);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em}.profile-page__faction-badge--primary{background:#c9a84c26;color:var(--color-gold);border-color:var(--color-gold-dim)}.profile-page__edit-form{display:flex;flex-direction:column;gap:var(--space-md);background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.profile-page__edit-form label{font-size:var(--text-sm);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:var(--space-xs)}.profile-page__edit-form input,.profile-page__edit-form textarea{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-body);font-size:var(--text-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.profile-page__edit-form input:focus,.profile-page__edit-form textarea:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.profile-page__edit-form textarea{resize:vertical;min-height:80px}.profile-page__edit-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.profile-card{display:flex;align-items:center;gap:var(--space-md);background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm),var(--shadow-inset);cursor:pointer;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-fast)}.profile-card:hover{border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.profile-card__avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gradient-gold-subtle);border:1px solid var(--color-gold-dim);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-gold);text-transform:uppercase;flex-shrink:0}.profile-card__name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-card__record{font-size:var(--text-xs);color:var(--color-text-secondary);font-weight:600;white-space:nowrap}.profile-card__record span{margin:0 2px}.profile-card__record .profile-card__wins{color:var(--color-green-bright)}.profile-card__record .profile-card__losses{color:var(--color-red-bright)}.friends-page{max-width:900px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.friends-page__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap}.friends-page__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.friends-page__tabs{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;width:fit-content}.friends-page__tab{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:none;padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast);position:relative}.friends-page__tab:not(:last-child){border-right:1px solid var(--color-border)}.friends-page__tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.friends-page__tab--active{background:#c9a84c26;color:var(--color-gold)}.friends-page__tab-badge{position:absolute;top:4px;right:6px;background:var(--color-red-bright);color:var(--color-bg-primary);font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 4px}.friends-page__list{display:flex;flex-direction:column;gap:var(--space-sm)}.friends-page__empty{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-muted);font-size:var(--text-md);background:var(--gradient-card);border:1px dashed var(--color-border);border-radius:var(--radius-lg)}.friends-page__empty-icon{font-size:var(--text-2xl);margin-bottom:var(--space-sm);opacity:.4}.friends-page__empty-text{margin-bottom:var(--space-md)}.friend-card{display:flex;align-items:center;gap:var(--space-md);background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-md);box-shadow:var(--shadow-sm),var(--shadow-inset);transition:border-color var(--transition-normal),box-shadow var(--transition-normal);animation:fadeInUp .3s ease}.friend-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md)}.friend-card__info{display:flex;align-items:center;gap:var(--space-md);flex:1;min-width:0}.friend-card__avatar{width:44px;height:44px;border-radius:var(--radius-full);background:var(--gradient-gold-subtle);border:1px solid var(--color-gold-dim);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-gold);text-transform:uppercase;flex-shrink:0}.friend-card__details{flex:1;min-width:0}.friend-card__name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.friend-card__record{font-size:var(--text-xs);color:var(--color-text-muted)}.friend-card__actions{display:flex;gap:var(--space-xs);flex-shrink:0}.friend-card__action-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.friend-card__action-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.friend-card__action-btn--accept{background:#40a04026;color:var(--color-green-bright);border-color:var(--color-green)}.friend-card__action-btn--accept:hover{background:#40a04040}.friend-card__action-btn--decline{background:#c040401a;color:var(--color-red-bright);border-color:#c040404d}.friend-card__action-btn--decline:hover{background:#c0404033}.friend-card__action-btn--danger{color:var(--color-text-muted)}.friend-card__action-btn--danger:hover{color:var(--color-red-bright);border-color:#c040404d;background:#c040401a}.player-search,.player-search__input-wrapper{position:relative}.player-search__icon{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--color-text-muted);font-size:var(--text-sm);pointer-events:none}.player-search__input{width:100%;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md) var(--space-sm) 36px;font-family:var(--font-body);font-size:var(--text-sm);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.player-search__input::placeholder{color:var(--color-text-muted)}.player-search__input:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.player-search__results{position:absolute;top:calc(100% + var(--space-xs));left:0;right:0;background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);max-height:280px;overflow-y:auto}.player-search__result{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);cursor:pointer;transition:background var(--transition-fast)}.player-search__result:hover{background:var(--color-bg-hover)}.player-search__result:not(:last-child){border-bottom:1px solid var(--glass-border)}.player-search__result-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:var(--gradient-gold-subtle);border:1px solid var(--color-gold-dim);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;color:var(--color-gold);text-transform:uppercase;flex-shrink:0}.player-search__result-name{flex:1;font-size:var(--text-sm);color:var(--color-text-primary);font-weight:600}.player-search__result-btn{background:#c9a84c26;color:var(--color-gold);border:1px solid var(--color-gold-dim);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs);font-weight:700;cursor:pointer;transition:background var(--transition-fast)}.player-search__result-btn:hover{background:#c9a84c40}.player-search__empty{padding:var(--space-md);text-align:center;color:var(--color-text-muted);font-size:var(--text-sm)}.head-to-head{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md),var(--shadow-inset)}.head-to-head__players{display:flex;align-items:center;justify-content:center;gap:var(--space-lg)}.head-to-head__player{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);flex:1;min-width:0}.head-to-head__player-avatar{width:64px;height:64px;border-radius:var(--radius-full);background:var(--gradient-gold-subtle);border:2px solid var(--color-gold-dim);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:var(--text-lg);font-weight:700;color:var(--color-gold);text-transform:uppercase}.head-to-head__player-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.head-to-head__vs{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);flex-shrink:0}.head-to-head__record{display:flex;justify-content:center;align-items:center;gap:var(--space-lg);margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--glass-border)}.head-to-head__record-side{display:flex;flex-direction:column;align-items:center}.head-to-head__record-count{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700}.head-to-head__record-count--left{color:var(--color-blue-bright)}.head-to-head__record-count--right{color:var(--color-red-bright)}.head-to-head__record-label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.head-to-head__record-divider{width:1px;height:48px;background:var(--color-border)}.head-to-head__battles{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-sm)}.head-to-head__battles-title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-xs)}.head-to-head__battle{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);background:var(--color-bg-tertiary);border:1px solid var(--glass-border);border-radius:var(--radius-md);font-size:var(--text-sm)}.head-to-head__battle-date{color:var(--color-text-muted);font-size:var(--text-xs)}.head-to-head__battle-score{font-family:var(--font-display);font-weight:700;color:var(--color-text-primary)}.stats-page{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.stats-page__header{display:flex;justify-content:space-between;align-items:center}.stats-page__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.stats-page__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}.stat-card{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm),var(--shadow-inset);text-align:center;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-fast)}.stat-card:hover{border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-card__value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-gold);line-height:1.1}.stat-card__value--green{color:var(--color-green-bright)}.stat-card__value--red{color:var(--color-red-bright)}.stat-card__value--blue{color:var(--color-blue-bright)}.stat-card__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-top:var(--space-xs)}.stat-card__trend{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);font-weight:600;margin-top:var(--space-sm)}.stat-card__trend--up{color:var(--color-green-bright)}.stat-card__trend--down{color:var(--color-red-bright)}.stat-card__trend--neutral{color:var(--color-text-muted)}.win-rate-ring{position:relative;width:160px;height:160px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto}.win-rate-ring__track{position:absolute;inset:0;border-radius:var(--radius-full);background:conic-gradient(var(--color-green-bright) 0deg,var(--color-green-bright) calc(var(--win-pct, 0) * 3.6deg),var(--color-red) calc(var(--win-pct, 0) * 3.6deg),var(--color-red) calc((var(--win-pct, 0) + var(--loss-pct, 0)) * 3.6deg),var(--color-text-muted) calc((var(--win-pct, 0) + var(--loss-pct, 0)) * 3.6deg),var(--color-text-muted) 360deg);mask:radial-gradient(circle,transparent 55%,black 56%);-webkit-mask:radial-gradient(circle,transparent 55%,black 56%)}.win-rate-ring__center{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.win-rate-ring__percentage{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-gold)}.win-rate-ring__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.faction-breakdown{display:flex;flex-direction:column;gap:var(--space-sm);background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.faction-breakdown__title{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-sm)}.faction-breakdown__item{display:flex;align-items:center;gap:var(--space-md)}.faction-breakdown__label{font-size:var(--text-sm);color:var(--color-text-secondary);min-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.faction-breakdown__bar-track{flex:1;height:8px;background:var(--color-bg-tertiary);border-radius:var(--radius-full);overflow:hidden}.faction-breakdown__bar{height:100%;background:var(--gradient-gold);border-radius:var(--radius-full);transition:width var(--transition-slow);min-width:4px}.faction-breakdown__count{font-size:var(--text-xs);color:var(--color-text-muted);font-weight:600;min-width:24px;text-align:right}.tournaments-page{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.tournaments-page__header{display:flex;justify-content:space-between;align-items:center;gap:var(--space-md);flex-wrap:wrap}.tournaments-page__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0}.tournaments-page__header-actions{display:flex;gap:var(--space-sm)}.tournaments-page__btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.tournaments-page__btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.tournaments-page__btn--primary{background:var(--gradient-gold);color:var(--color-bg-primary);border-color:transparent}.tournaments-page__btn--primary:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.tournaments-page__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--space-md)}.tournament-card{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm),var(--shadow-inset);cursor:pointer;transition:border-color var(--transition-normal),box-shadow var(--transition-normal),transform var(--transition-fast);animation:fadeInUp .3s ease}.tournament-card:hover{border-color:var(--glass-border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.tournament-card__header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.tournament-card__name{font-family:var(--font-display);font-size:var(--text-base);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tournament-card__format{background:#c9a84c26;color:var(--color-gold);font-size:var(--text-xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.tournament-card__meta{display:flex;gap:var(--space-md);flex-wrap:wrap;font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-md)}.tournament-card__meta-item{display:flex;align-items:center;gap:4px}.tournament-card__status{display:inline-flex;align-items:center;font-size:var(--text-xs);font-weight:700;padding:2px 10px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.06em}.tournament-card__status--registration{background:#4080c026;color:var(--color-blue-bright)}.tournament-card__status--active{background:#40a04026;color:var(--color-green-bright)}.tournament-card__status--completed{background:#6a6a7a26;color:var(--color-text-secondary)}.tournament-detail{max-width:1200px;margin:0 auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-lg)}.tournament-detail__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-md);flex-wrap:wrap;background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);box-shadow:var(--shadow-md),var(--shadow-inset)}.tournament-detail__title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-gold);text-shadow:var(--shadow-glow-gold);margin:0 0 var(--space-xs)}.tournament-detail__share-code{font-size:var(--text-sm);color:var(--color-text-muted)}.tournament-detail__share-code span{color:var(--color-gold);font-family:var(--font-display);font-weight:700;letter-spacing:.1em}.tournament-detail__controls{display:flex;gap:var(--space-sm);flex-shrink:0}.tournament-detail__tabs{display:flex;gap:0;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;width:fit-content}.tournament-detail__tab{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:none;padding:var(--space-sm) var(--space-lg);font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.tournament-detail__tab:not(:last-child){border-right:1px solid var(--color-border)}.tournament-detail__tab:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.tournament-detail__tab--active{background:#c9a84c26;color:var(--color-gold)}.tournament-detail__section{animation:fadeInUp .2s ease}.standings-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-lg);overflow:hidden}.standings-table__header-row th{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;padding:var(--space-md);text-align:left;background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border)}.standings-table__header-row th:first-child{text-align:center;width:48px}.standings-table__row td{padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--color-text-primary);border-bottom:1px solid var(--glass-border);transition:background var(--transition-fast)}.standings-table__row:hover td{background:#ffffff05}.standings-table__row:last-child td{border-bottom:none}.standings-table__rank{text-align:center;font-family:var(--font-display);font-weight:700;color:var(--color-text-secondary)}.standings-table__name{font-weight:600}.standings-table__record{color:var(--color-text-secondary)}.standings-table__vp{font-family:var(--font-display);font-weight:600;font-size:var(--text-xs)}.standings-table__diff--positive{color:var(--color-green-bright)}.standings-table__diff--negative{color:var(--color-red-bright)}.standings-table__points{font-family:var(--font-display);font-weight:700;color:var(--color-gold)}.standings-table__row--leader td{background:#c9a84c0d}.standings-table__row--leader .standings-table__rank{color:var(--color-gold);text-shadow:var(--shadow-glow-gold)}.standings-table__row--leader .standings-table__name{color:var(--color-gold)}.standings-table__row--dropped td{opacity:.4}.standings-table__row--dropped .standings-table__name:after{content:" (dropped)";font-size:var(--text-xs);color:var(--color-red);font-weight:400;font-style:italic}.tournament-bracket{display:flex;gap:var(--space-xl);overflow-x:auto;padding:var(--space-md);min-height:400px}.tournament-bracket__round{display:flex;flex-direction:column;justify-content:space-around;gap:var(--space-lg);min-width:220px;flex-shrink:0}.tournament-bracket__round-title{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.08em;text-align:center;margin-bottom:var(--space-sm)}.tournament-bracket__match{position:relative;background:var(--gradient-card);border:1px solid var(--glass-border);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm)}.tournament-bracket__match-player{display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-md);font-size:var(--text-sm);color:var(--color-text-secondary);transition:background var(--transition-fast)}.tournament-bracket__match-player:first-child{border-bottom:1px solid var(--glass-border)}.tournament-bracket__match-player--winner{color:var(--color-gold);font-weight:700;background:#c9a84c0d}.tournament-bracket__match-score{font-family:var(--font-display);font-weight:700;font-size:var(--text-xs)}.tournament-bracket__match-player--winner .tournament-bracket__match-score{color:var(--color-gold)}.tournament-bracket__connector{position:relative}.tournament-bracket__connector:before{content:"";position:absolute;right:-16px;top:50%;width:16px;height:1px;background:var(--color-border)}.tournament-bracket__connector:after{content:"";position:absolute;right:-16px;width:1px;background:var(--color-border)}.tournament-bracket__connector--top:after{top:50%;height:50%}.tournament-bracket__connector--bottom:after{bottom:50%;height:50%}.round-robin-grid{width:100%;overflow-x:auto}.round-robin-grid table{border-collapse:separate;border-spacing:0;width:100%;min-width:500px}.round-robin-grid__header th{font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;padding:var(--space-sm);background:var(--color-bg-tertiary);border-bottom:1px solid var(--color-border);text-align:center;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.round-robin-grid__header th:first-child{text-align:left;min-width:100px}.round-robin-grid__row td{padding:var(--space-sm);text-align:center;font-size:var(--text-sm);font-weight:600;border-bottom:1px solid var(--glass-border)}.round-robin-grid__row td:first-child{text-align:left;font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.04em;background:var(--color-bg-tertiary)}.round-robin-grid__cell--win{color:var(--color-green-bright);background:#40a04014}.round-robin-grid__cell--loss{color:var(--color-red-bright);background:#c0404014}.round-robin-grid__cell--draw{color:var(--color-text-secondary);background:#ffffff05}.round-robin-grid__diagonal{background:var(--color-bg-primary);position:relative}.round-robin-grid__diagonal:after{content:"";position:absolute;inset:4px;background:repeating-linear-gradient(-45deg,transparent,transparent 3px,rgba(255,255,255,.03) 3px,rgba(255,255,255,.03) 6px);border-radius:var(--radius-xs)}.pairing-card{background:var(--gradient-card);backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-sm),var(--shadow-inset);transition:border-color var(--transition-normal)}.pairing-card:hover{border-color:var(--glass-border-hover)}.pairing-card__players{display:flex;align-items:center;justify-content:center;gap:var(--space-md)}.pairing-card__player{flex:1;text-align:center;min-width:0}.pairing-card__player-name{font-family:var(--font-display);font-size:var(--text-sm);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pairing-card__player-faction{font-size:var(--text-xs);color:var(--color-text-muted)}.pairing-card__vs{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--color-gold);flex-shrink:0}.pairing-card__vp-input{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--glass-border)}.pairing-card__vp-field{display:flex;flex-direction:column;align-items:center;gap:var(--space-xs)}.pairing-card__vp-field label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.pairing-card__vp-field input{width:64px;background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-xs) var(--space-sm);font-family:var(--font-display);font-size:var(--text-base);font-weight:700;text-align:center;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.pairing-card__vp-field input:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.pairing-card__vp-divider{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:700;padding-top:var(--space-md)}.pairing-card__submit{display:block;width:100%;margin-top:var(--space-md);background:var(--gradient-gold);color:var(--color-bg-primary);border:none;border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast)}.pairing-card__submit:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.pairing-card__submit:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.pairing-card__result{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--glass-border)}.pairing-card__result-score{font-family:var(--font-display);font-size:var(--text-lg);font-weight:700}.pairing-card__result-score--winner{color:var(--color-gold)}.pairing-card__result-score--loser{color:var(--color-text-muted)}.pairing-card__result-divider{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:700}.pairing-card__bye{text-align:center;padding:var(--space-md);font-size:var(--text-sm);color:var(--color-text-muted);font-style:italic;background:#ffffff05;border-radius:var(--radius-md);border:1px dashed var(--color-border)}.tournament-round{display:flex;flex-direction:column;gap:var(--space-md)}.tournament-round__header{display:flex;align-items:center;gap:var(--space-md)}.tournament-round__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--color-text-primary);text-transform:uppercase;letter-spacing:.04em;margin:0}.tournament-round__status{font-size:var(--text-xs);font-weight:700;padding:2px 10px;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.06em}.tournament-round__status--active{background:#40a04026;color:var(--color-green-bright)}.tournament-round__status--completed{background:#6a6a7a26;color:var(--color-text-secondary)}.tournament-round__status--upcoming{background:#4080c026;color:var(--color-blue-bright)}.tournament-round__pairings{display:flex;flex-direction:column;gap:var(--space-md)}.join-modal__overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:var(--z-modal-backdrop);display:flex;align-items:center;justify-content:center;padding:var(--space-lg)}.join-modal{background:var(--color-bg-secondary);border:1px solid var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:400px;width:100%;box-shadow:var(--shadow-xl);z-index:var(--z-modal);animation:fadeInUp .2s ease}.join-modal__title{font-family:var(--font-display);font-size:var(--text-md);font-weight:700;color:var(--color-gold);text-transform:uppercase;letter-spacing:.06em;margin:0 0 var(--space-lg);text-align:center}.join-modal__input-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-lg)}.join-modal__label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.join-modal__input{background:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);font-family:var(--font-display);font-size:var(--text-md);font-weight:700;text-align:center;letter-spacing:.2em;text-transform:uppercase;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.join-modal__input::placeholder{color:var(--color-text-muted);letter-spacing:.1em;font-weight:400}.join-modal__input:focus{outline:none;box-shadow:var(--focus-ring);border-color:var(--color-gold-dim)}.join-modal__actions{display:flex;gap:var(--space-sm)}.join-modal__btn{flex:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-md);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:opacity var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast)}.join-modal__btn--cancel{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.join-modal__btn--cancel:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.join-modal__btn--join{background:var(--gradient-gold);color:var(--color-bg-primary);border:none}.join-modal__btn--join:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.join-modal__btn--join:disabled{opacity:.4;cursor:not-allowed}.join-modal__error{color:var(--color-red-bright);font-size:var(--text-xs);text-align:center;margin-top:var(--space-sm)}.social-btn{background:var(--color-bg-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-lg);font-family:var(--font-display);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast)}.social-btn:hover{background:var(--color-bg-hover);color:var(--color-text-primary)}.social-btn--primary{background:var(--gradient-gold);color:var(--color-bg-primary);border-color:transparent}.social-btn--primary:hover{opacity:.9;box-shadow:var(--shadow-glow-gold)}.social-btn--danger{color:var(--color-text-muted)}.social-btn--danger:hover{color:var(--color-red-bright);border-color:#c040404d;background:#c040401a}.social-btn--small{padding:var(--space-xs) var(--space-sm)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:1024px){.stats-page__grid{grid-template-columns:repeat(2,1fr)}.tournaments-page__grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media(max-width:768px){.profile-page__header{flex-direction:column;align-items:center;text-align:center;padding:var(--space-lg)}.profile-page__stats-row,.profile-page__factions{justify-content:center}.friends-page__header{flex-direction:column;align-items:stretch}.friends-page__tabs{width:100%}.friends-page__tab{flex:1;text-align:center}.head-to-head__players{flex-direction:column;gap:var(--space-sm)}.head-to-head__vs{font-size:var(--text-md)}.head-to-head__record{flex-wrap:wrap;gap:var(--space-md)}.stats-page__grid{grid-template-columns:repeat(2,1fr)}.tournaments-page__header{flex-direction:column;align-items:stretch}.tournaments-page__header-actions{justify-content:stretch}.tournaments-page__btn{flex:1;text-align:center}.tournament-detail__header{flex-direction:column;padding:var(--space-lg)}.tournament-detail__tabs{width:100%}.tournament-detail__tab{flex:1;text-align:center}.tournament-bracket{padding:var(--space-sm);gap:var(--space-md)}.tournament-bracket__round{min-width:180px}.pairing-card__players{flex-direction:column;gap:var(--space-xs)}.pairing-card__vp-input{flex-wrap:wrap}.faction-breakdown__label{min-width:80px}}@media(max-width:480px){.profile-page,.friends-page,.stats-page,.tournaments-page,.tournament-detail{padding:var(--space-md)}.profile-page__avatar{width:72px;height:72px;font-size:var(--text-xl)}.stats-page__grid{grid-template-columns:1fr 1fr;gap:var(--space-sm)}.stat-card{padding:var(--space-md)}.stat-card__value{font-size:var(--text-lg)}.standings-table__header-row th,.standings-table__row td{padding:var(--space-xs) var(--space-sm);font-size:var(--text-xs)}.win-rate-ring{width:120px;height:120px}.win-rate-ring__percentage{font-size:var(--text-md)}.tournament-bracket__round{min-width:150px}}
