@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Barlow+Condensed:wght@500;600;700&display=swap";
:root{--color-bg-primary:#05070a;--color-bg-secondary:#0a0f14;--color-bg-tertiary:#ffffff0a;--color-bg-elevated:#ffffff12;--color-text-primary:#ffffffeb;--color-text-secondary:#ffffffb8;--color-text-tertiary:#ffffff8c;--color-border-primary:#ffffff1a;--color-border-secondary:#ffffff2e;--color-border-hover:#ffffff42;--color-accent-primary:#38bdf8;--color-accent-dim:#38bdf826;--color-accent-glow:#38bdf84d;--gradient-primary:linear-gradient(90deg,#38bdf8,#60a5fa);--color-win:#4ade80;--color-loss:#f87171;--color-win-dim:#4ade801f;--color-loss-dim:#f871711f;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:999px;--transition-fast:.15s ease;--transition-base:.25s ease;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:12px;--spacing-lg:18px;--spacing-xl:24px;--spacing-2xl:32px;--spacing-3xl:48px;--font-display:"Barlow Condensed",sans-serif;--font-mono:"DM Mono",monospace;--font-body:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--color-bg-primary);height:100%;color:var(--color-text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:13px;line-height:1.5}button{cursor:pointer;font:inherit;background:0 0;border:none}a{color:var(--color-accent-primary);text-decoration:none}a:hover{text-decoration:underline}.loading-screen{justify-content:center;align-items:center;gap:var(--spacing-lg);flex-direction:column;height:100vh;display:flex}.spinner{border:2px solid var(--color-border-primary);border-top-color:var(--color-accent-primary);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}.loading-text{color:var(--color-text-tertiary);font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}.btn{align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;padding:6px 14px;font-size:12px;font-weight:500;display:inline-flex}.btn--primary{color:#fff;cursor:pointer;background:linear-gradient(90deg,#3bb2d0,#5b8def);border:none;border-radius:10px;padding:14px;font-weight:600;transition:all .2s}.btn--primary:hover:not(:disabled){opacity:.9}.btn--primary:disabled{opacity:.4;cursor:not-allowed}.btn--secondary{color:#5b8def;cursor:pointer;background:0 0;border:1px solid #5b8def;border-radius:10px;padding:14px;font-weight:600;transition:all .2s}.btn--secondary:hover{background:#5b8def1a}.btn--ghost{border:1px solid var(--color-border-secondary);color:var(--color-text-secondary)}.btn--ghost:hover:not(:disabled){border-color:var(--color-border-hover);color:var(--color-text-primary);background:var(--color-bg-elevated)}.btn--full{justify-content:center;width:100%;padding:10px}.app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.app-header{border-bottom:1px solid var(--color-border-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;background:#05070af2;flex-shrink:0}.header-inner{padding:var(--spacing-md)var(--spacing-xl);justify-content:space-between;align-items:center;gap:var(--spacing-xl);display:flex}.header-brand{align-items:center;gap:var(--spacing-sm);flex-shrink:0;display:flex}.header-icon{font-size:20px}.header-title{font-family:var(--font-display);letter-spacing:.03em;text-transform:uppercase;font-size:20px;font-weight:700}.header-year{color:var(--color-accent-primary)}.tournament-switcher{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);flex-shrink:0;gap:2px;padding:2px;display:flex}.tournament-tab{border-radius:calc(var(--radius-md) - 2px);font-family:var(--font-display);color:var(--color-text-tertiary);transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:5px;padding:5px 12px;font-size:12px;font-weight:600;display:flex}.tournament-tab:hover{color:var(--color-text-secondary)}.tournament-tab--active{background:var(--color-bg-elevated);color:var(--color-text-primary);box-shadow:0 1px 3px #0000004d}.tournament-tab-icon{opacity:.7;font-size:11px}.countdown{align-items:center;gap:var(--spacing-sm);border-radius:var(--radius-md);background:#fbbf2414;border:1px solid #fbbf2440;flex-shrink:0;padding:5px 12px;display:flex}.countdown-label{letter-spacing:.06em;text-transform:uppercase;color:#fbbf24;opacity:.8;font-size:10px;font-weight:600}.countdown-segments{align-items:center;gap:2px;display:flex}.countdown-seg{align-items:baseline;gap:1px;display:flex}.countdown-val{font-family:var(--font-mono);color:#fbbf24;text-align:center;min-width:18px;font-size:13px;font-weight:500}.countdown-unit{color:#fbbf2499;letter-spacing:.04em;font-size:9px}.countdown-sep{font-family:var(--font-mono);color:#fbbf2466;margin:0 1px;font-size:12px;line-height:1}.user-status{align-items:center;gap:var(--spacing-xl);flex:1;justify-content:flex-end;display:flex}.status-left{align-items:center;gap:var(--spacing-lg);display:flex}.status-username{color:var(--color-text-primary);font-size:13px;font-weight:600}.status-stats{align-items:center;gap:var(--spacing-lg);display:flex}.stat{align-items:baseline;gap:4px;display:flex}.stat-value{font-family:var(--font-mono);color:var(--color-accent-primary);font-size:14px;font-weight:500}.stat-label{color:var(--color-text-tertiary);font-size:11px}.status-right{align-items:center;gap:var(--spacing-md);display:flex}.progress-bar{background:var(--color-bg-elevated);border-radius:var(--radius-full);width:80px;height:3px;overflow:hidden}.progress-fill{background:var(--gradient-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-base)}.status-badge{border-radius:var(--radius-full);padding:4px 10px;font-size:11px;font-weight:600}.status-badge--submitted{background:var(--color-win-dim);color:var(--color-win);border:1px solid #4ade8033}.status-badge--locked{background:var(--color-bg-elevated);color:var(--color-text-tertiary);border:1px solid var(--color-border-primary)}.leaderboard-link{color:var(--color-text-tertiary);transition:color var(--transition-fast);font-size:11px}.leaderboard-link:hover{color:var(--color-accent-primary);text-decoration:none}.error-banner{padding:var(--spacing-sm)var(--spacing-xl);background:var(--color-loss-dim);color:var(--color-loss);border-bottom:1px solid #f8717133;justify-content:space-between;align-items:center;font-size:12px;display:flex}.page-body{flex:1;display:flex;overflow:hidden}.bracket-canvas{padding:var(--spacing-lg);background:var(--color-bg-primary);flex:1;overflow:auto}.bracket-canvas svg{display:block}.sim-sidebar{border-left:1px solid var(--color-border-primary);background:var(--color-bg-secondary);flex-shrink:0;width:300px;overflow-y:auto}.sim-panel{padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;display:flex}.sim-header{align-items:center;gap:var(--spacing-sm);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-primary);display:flex}.sim-badge{border-radius:var(--radius-full);color:#fbbf24;letter-spacing:.05em;background:#fbbf2426;border:1px solid #fbbf2440;flex-shrink:0;padding:2px 7px;font-size:10px;font-weight:700}.sim-title{font-family:var(--font-display);color:var(--color-text-primary);flex:1;font-size:13px;font-weight:600}.sim-reset-btn{color:var(--color-text-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);padding:3px 8px;font-size:11px}.sim-reset-btn:hover:not(:disabled){color:var(--color-loss);border-color:#f871714d}.sim-reset-btn:disabled{opacity:.4;cursor:not-allowed}.sim-rounds{gap:var(--spacing-sm);grid-template-columns:repeat(3,1fr);display:grid}.sim-round-btn{font-family:var(--font-mono);border-radius:var(--radius-md);border:1px solid var(--color-border-primary);color:var(--color-text-secondary);background:var(--color-bg-tertiary);transition:all var(--transition-fast);padding:8px 4px;font-size:11px;font-weight:500}.sim-round-btn--next{color:#fbbf24;background:#fbbf2414;border-color:#fbbf2466;box-shadow:0 0 12px #fbbf241a}.sim-round-btn--next:hover:not(:disabled){background:#fbbf2426}.sim-round-btn--done{color:var(--color-win);background:var(--color-win-dim);cursor:default;border-color:#4ade8040}.sim-round-btn:disabled:not(.sim-round-btn--done){opacity:.3;cursor:not-allowed}.sim-status{align-items:center;gap:var(--spacing-sm);color:var(--color-text-tertiary);font-size:12px;display:flex}.sim-spinner{border:2px solid var(--color-border-primary);border-top-color:#fbbf24;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin}.sim-error{color:var(--color-loss);padding:var(--spacing-sm);background:var(--color-loss-dim);border-radius:var(--radius-md);border:1px solid #f8717133;font-size:11px}.sim-result{border:1px solid var(--color-border-primary);border-radius:var(--radius-md);overflow:hidden}.sim-result-header{color:var(--color-text-secondary);padding:var(--spacing-sm)var(--spacing-md);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-primary);font-size:11px;font-weight:500}.sim-points{color:var(--color-win);font-weight:600}.sim-winners{flex-direction:column;max-height:280px;display:flex;overflow-y:auto}.sim-winner-row{align-items:center;gap:var(--spacing-xs);padding:4px var(--spacing-md);border-bottom:1px solid var(--color-border-primary);font-size:10px;display:flex}.sim-winner-row:last-child{border-bottom:none}.sim-team{font-family:var(--font-mono);white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.sim-team--winner{color:var(--color-win);font-weight:500}.sim-team--loser{color:var(--color-text-tertiary);text-decoration:line-through}.sim-vs{color:var(--color-text-tertiary);flex-shrink:0;font-size:9px}.sim-complete{color:var(--color-accent-primary);text-align:center;padding:var(--spacing-md);background:var(--color-accent-dim);border-radius:var(--radius-md);border:1px solid #38bdf833;font-size:12px}.bracket-switcher{background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-display);transition:all var(--transition-fast);align-items:center;gap:6px;max-width:220px;padding:6px 12px;font-size:13px;font-weight:600;display:flex}.bracket-switcher:hover{border-color:var(--color-border-secondary);background:var(--color-bg-elevated)}.bracket-switcher-name{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.bracket-switcher-icon{color:var(--color-text-tertiary);flex-shrink:0;font-size:16px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;padding:var(--spacing-lg);background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-panel{background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:500px;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 24px 64px #0009}.modal-header{padding:var(--spacing-lg)var(--spacing-xl);border-bottom:1px solid var(--color-border-primary);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.modal-header-info{flex-direction:column;gap:2px;display:flex}.modal-title{font-family:var(--font-display);color:var(--color-text-primary);letter-spacing:.04em;font-size:16px;font-weight:700}.modal-tournament-label{color:var(--color-text-tertiary);letter-spacing:.04em;font-size:11px}.modal-close{color:var(--color-text-tertiary);border-radius:var(--radius-md);transition:color var(--transition-fast);padding:4px 8px;font-size:16px}.modal-close:hover{color:var(--color-text-primary)}.modal-error{margin:var(--spacing-md)var(--spacing-xl)0;padding:var(--spacing-sm)var(--spacing-md);background:var(--color-loss-dim);border-radius:var(--radius-md);color:var(--color-loss);border:1px solid #f8717133;flex-shrink:0;font-size:12px}.modal-loading{padding:var(--spacing-3xl);justify-content:center;display:flex}.modal-footer{padding:var(--spacing-lg)var(--spacing-xl);border-top:1px solid var(--color-border-primary);flex-shrink:0}.modal-body{text-align:center;padding:20px}.bracket-list{padding:var(--spacing-sm)0;flex:1;overflow-y:auto}.bracket-list-empty{padding:var(--spacing-2xl)var(--spacing-xl);text-align:center;color:var(--color-text-tertiary);font-size:13px}.bracket-list-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md)var(--spacing-xl);border-bottom:1px solid var(--color-border-primary);transition:background var(--transition-fast);cursor:pointer;display:flex}.bracket-list-item:last-child{border-bottom:none}.bracket-list-item:hover{background:var(--color-bg-elevated)}.bracket-list-item--active{background:var(--color-accent-dim);border-left:2px solid var(--color-accent-primary)}.bracket-list-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.bracket-list-name{font-family:var(--font-display);color:var(--color-text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.bracket-rename-input{background:var(--color-bg-primary);border:1px solid var(--color-accent-primary);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:var(--font-display);outline:none;width:100%;padding:4px 8px;font-size:13px;font-weight:600}.bracket-list-meta{align-items:center;gap:var(--spacing-md);display:flex}.bracket-list-status{letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-tertiary);border-radius:var(--radius-full);border:1px solid var(--color-border-primary);padding:2px 6px;font-size:10px;font-weight:600}.bracket-list-status--submitted{color:var(--color-win);background:var(--color-win-dim);border-color:#4ade8040}.bracket-list-score{font-family:var(--font-mono);color:var(--color-accent-primary);font-size:11px;font-weight:500}.bracket-list-picks{font-family:var(--font-mono);color:var(--color-text-tertiary);font-size:11px}.bracket-list-actions{gap:var(--spacing-xs);flex-shrink:0;display:flex}.bracket-action-btn{border-radius:var(--radius-md);border:1px solid var(--color-border-primary);color:var(--color-text-tertiary);transition:all var(--transition-fast);white-space:nowrap;background:0 0;padding:4px 10px;font-size:11px}.bracket-action-btn:hover{color:var(--color-text-primary);border-color:var(--color-border-secondary)}.bracket-action-btn--confirm{color:var(--color-accent-primary);border-color:#38bdf84d}.create-form{gap:var(--spacing-sm);flex-direction:column;display:flex}.create-input{background:var(--color-bg-primary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);transition:border-color var(--transition-fast);outline:none;padding:10px 14px;font-size:14px}.create-input:focus{border-color:var(--color-accent-primary)}.create-input::placeholder{color:var(--color-text-tertiary)}.create-actions{gap:var(--spacing-sm);justify-content:flex-end;display:flex}.no-bracket-prompt{justify-content:center;align-items:center;gap:var(--spacing-lg);color:var(--color-text-tertiary);flex-direction:column;flex:1;font-size:14px;display:flex}.login-container{background:radial-gradient(ellipse at 50% 0%,#38bdf80f 0%,transparent 70%),var(--color-bg-primary);justify-content:center;align-items:center;height:100vh;display:flex}.login-card{width:100%;max-width:380px;padding:var(--spacing-3xl)var(--spacing-2xl);background:var(--color-bg-secondary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md)}.login-header{text-align:center;margin-bottom:var(--spacing-2xl)}.login-logo{margin-bottom:var(--spacing-md);font-size:36px}.login-title{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;margin-bottom:var(--spacing-sm);font-size:28px;font-weight:700}.login-subtitle{color:var(--color-text-tertiary);font-size:13px;line-height:1.5}.login-form{gap:var(--spacing-lg);flex-direction:column;display:flex}.form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-label{color:var(--color-text-secondary);font-size:12px;font-weight:500}.form-input{background:var(--color-bg-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:13px;font-family:var(--font-body);transition:border-color var(--transition-fast);outline:none;padding:9px 12px}.form-input:focus{border-color:var(--color-accent-primary)}.form-input::placeholder{color:var(--color-text-tertiary)}.form-error{padding:var(--spacing-sm)var(--spacing-md);background:var(--color-loss-dim);border-radius:var(--radius-md);color:var(--color-loss);border:1px solid #f8717133;font-size:12px}.login-footer{margin-top:var(--spacing-xl);text-align:center;color:var(--color-text-tertiary);font-size:12px}.logout-btn{color:var(--color-text-tertiary);border:1px solid var(--color-border-primary);border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap;padding:4px 10px;font-size:11px}.logout-btn:hover{color:var(--color-loss);background:var(--color-loss-dim);border-color:#f871714d}.payment-options{flex-direction:column;gap:12px;display:flex}.promo-container{align-items:center;gap:10px;display:flex}.promo-label{color:#8b9bb4;text-transform:uppercase;letter-spacing:.5px;font-size:12px}.promo-code-box{cursor:pointer;background:#ffffff0d;border:1px solid #5b8def4d;border-radius:8px;align-items:center;gap:8px;padding:6px 12px;transition:all .2s;display:flex}.promo-code-box:hover{background:#5b8def26;border-color:#5b8def;box-shadow:0 0 10px #5b8def4d}.promo-code{color:#e6edf7;letter-spacing:1px;font-size:13px;font-weight:600}.copy-icon{opacity:.7;font-size:14px;transition:all .2s}.promo-code-box:hover .copy-icon{opacity:1}.promo-text{color:#aaa;margin-bottom:10px;font-size:14px}.promo-box{text-align:center;background:#111;border:1px solid #2a2a2a;border-radius:10px;justify-content:center;align-items:center;gap:10px;padding:10px 12px;display:flex}.promo-link{color:#0fc;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.credits-box{text-align:center;background:#0f172a;border:1px solid #1e293b;border-radius:12px;padding:12px}.credits-text{color:#cbd5f5;margin-bottom:8px;font-size:14px}
