:root{--color-bg: #0a0e17;--color-bg-elevated: #0f1524;--color-surface: #141b2d;--color-surface-hover: #1a2338;--color-border: #232c42;--color-border-strong: #2f3a56;--color-text: #eef1f8;--color-text-muted: #8f9ab3;--color-text-faint: #5c6784;--color-accent: #22c55e;--color-accent-strong: #16a34a;--color-accent-soft: rgba(34, 197, 94, .14);--color-blue: #3b82f6;--color-blue-soft: rgba(59, 130, 246, .14);--color-red: #ef4444;--color-red-soft: rgba(239, 68, 68, .14);--color-amber: #eab308;--color-amber-soft: rgba(234, 179, 8, .14);--color-purple: #a855f7;--color-gold: #f6c945;--color-silver: #c9d2e0;--color-bronze: #d98a4c;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 8px 24px -12px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-bg);color:var(--color-text);font-family:Segoe UI,system-ui,-apple-system,Inter,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.01em}ul,ol{margin:0;padding:0;list-style:none}select{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:.45rem .6rem;font-size:.85rem}.page-container{max-width:1280px;margin:0 auto;padding:1.5rem 1.25rem 4rem}@media (min-width: 768px){.page-container{padding:2rem 2rem 5rem}}.page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}.page-header-eyebrow{display:block;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:700;color:var(--color-accent);margin-bottom:.35rem}.page-header-title{font-size:clamp(1.5rem,3vw,2.1rem)}.page-header-subtitle{margin:.35rem 0 0;color:var(--color-text-muted);font-size:.9rem}.page-header-actions{display:flex;align-items:center;gap:.75rem}.navbar{position:sticky;top:0;z-index:40;background:#0a0e17eb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border)}.navbar-inner{max-width:1280px;margin:0 auto;padding:.85rem 1.25rem;display:flex;align-items:center;gap:1.5rem}@media (min-width: 768px){.navbar-inner{padding:.85rem 2rem}}.navbar-brand{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.05rem;flex-shrink:0}.navbar-brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-accent),var(--color-blue));color:#06110b;font-weight:800;font-size:.8rem}.navbar-toggle{display:flex;flex-direction:column;gap:4px;margin-left:auto;background:none;border:none;cursor:pointer;padding:.4rem}.navbar-toggle span{width:20px;height:2px;background:var(--color-text);border-radius:2px}.navbar-links{display:none;gap:.25rem;flex-wrap:wrap}.navbar-links-open{display:flex;flex-direction:column;width:100%;padding-top:.75rem}.navbar-link{padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:.88rem;font-weight:600;color:var(--color-text-muted);transition:color .15s,background .15s}.navbar-link:hover{color:var(--color-text);background:var(--color-surface)}.navbar-link-active{color:var(--color-accent);background:var(--color-accent-soft)}@media (min-width: 960px){.navbar-toggle{display:none}.navbar-links{display:flex;margin-left:auto}}.btn{border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text);padding:.55rem 1rem;border-radius:var(--radius-sm);font-size:.85rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}.btn:hover:not(:disabled){background:var(--color-surface-hover)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--color-accent);border-color:var(--color-accent);color:#06110b}.btn-primary:hover:not(:disabled){background:var(--color-accent-strong)}.btn-icon{padding:.35rem .65rem;font-size:1rem;line-height:1}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow-card)}.panel h2{font-size:1.05rem;margin-bottom:.9rem}.panel-note{color:var(--color-text-muted);font-size:.8rem;margin:-.5rem 0 .9rem}.panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.9rem}.panel-header h2{margin:0}.panel-link{font-size:.8rem;font-weight:600;color:var(--color-accent)}.sync-status-line{margin:-.75rem 0 1.5rem;font-size:.78rem;color:var(--color-text-faint)}.sync-status-warning{color:var(--color-red)}.dashboard-grid{display:grid;grid-template-columns:1fr;gap:0}@media (min-width: 1000px){.dashboard-grid{grid-template-columns:1.7fr 1fr;gap:1.5rem;align-items:start}}.state-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:.6rem;padding:3.5rem 1.5rem;color:var(--color-text-muted)}.state-panel-error{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.state-title{font-size:1.05rem;font-weight:700;color:var(--color-text);margin:0}.state-message{margin:0;max-width:420px}.state-actions{margin-top:.5rem}.empty-note{color:var(--color-text-muted);font-size:.85rem;padding:.5rem 0}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--color-border-strong);border-top-color:var(--color-accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.avatar{width:var(--avatar-size, 40px);height:var(--avatar-size, 40px);border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--color-bg-elevated);border:1px solid var(--color-border)}.avatar-fallback{display:grid;place-items:center;font-weight:700;color:var(--color-text);background:linear-gradient(135deg,#232c42,#171e30)}.rank-badge{display:inline-grid;place-items:center;min-width:28px;height:28px;padding:0 6px;border-radius:50%;font-weight:800;font-size:.8rem;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);color:var(--color-text-muted)}.rank-badge-sm{min-width:24px;height:24px;font-size:.72rem}.rank-badge-gold{background:#f6c9452e;border-color:var(--color-gold);color:var(--color-gold)}.rank-badge-silver{background:#c9d2e024;border-color:var(--color-silver);color:var(--color-silver)}.rank-badge-bronze{background:#d98a4c29;border-color:var(--color-bronze);color:var(--color-bronze)}.rank-change{font-size:.75rem;font-weight:700;white-space:nowrap}.rank-change-up{color:var(--color-accent)}.rank-change-down{color:var(--color-red)}.rank-change-same{color:var(--color-text-faint)}.rank-change-new{color:var(--color-blue)}.tag{display:inline-block;font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.2rem .5rem;border-radius:999px;white-space:nowrap;background:var(--color-bg-elevated);border:1px solid var(--color-border-strong);color:var(--color-text-muted)}.tag-survivor-safe{background:var(--color-accent-soft);border-color:var(--color-accent);color:var(--color-accent)}.tag-survivor-danger{background:var(--color-red-soft);border-color:var(--color-red);color:var(--color-red)}.tag-survivor-eliminated{background:var(--color-bg-elevated);border-color:var(--color-border-strong);color:var(--color-text-faint)}.tag-survivor-champion{background:#f6c94529;border-color:var(--color-gold);color:var(--color-gold)}.team-card{display:flex;align-items:center;gap:.85rem;padding:.85rem 1rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);transition:border-color .15s,transform .1s}.team-card:hover{border-color:var(--color-border-strong);transform:translateY(-1px)}.team-card-rank{font-weight:800;color:var(--color-text-faint);min-width:1.4rem}.team-card-info{display:flex;flex-direction:column;flex:1;min-width:0}.team-card-name{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.team-card-manager,.team-card-subtitle{font-size:.78rem;color:var(--color-text-muted)}.team-card-stats{display:flex;flex-direction:column;align-items:flex-end;font-size:.8rem;gap:.15rem}.team-card-record{font-weight:700}.team-card-points{color:var(--color-text-muted)}.team-card-power-score{font-weight:800;font-size:1.1rem;color:var(--color-accent);margin-left:.5rem}.team-card-list{display:flex;flex-direction:column;gap:.6rem}.team-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.matchup-grid{display:grid;grid-template-columns:1fr;gap:.85rem}.matchup-grid-wide{grid-template-columns:repeat(auto-fit,minmax(480px,1fr))}.matchup-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);overflow:hidden}.matchup-card-header{display:flex;justify-content:space-between;padding:.5rem .85rem;border-bottom:1px solid var(--color-border)}.matchup-status{font-size:.68rem;font-weight:800;letter-spacing:.05em;color:var(--color-text-faint)}.matchup-status-final{color:var(--color-text-muted)}.matchup-status-live{color:var(--color-red);animation:pulse 1.6s ease-in-out infinite}.matchup-status-tie{color:var(--color-amber)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.matchup-card-body{display:flex;align-items:center}.matchup-side{flex:1;display:flex;flex-direction:column;gap:.55rem;padding:.85rem;min-width:0}.matchup-side-bye{flex-direction:row;align-items:center;justify-content:center;color:var(--color-text-faint)}.matchup-side-winner .matchup-side-name{color:var(--color-accent)}.matchup-side-top{display:flex;align-items:center;gap:.6rem;min-width:0}.matchup-side-names{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.matchup-side-name{font-weight:700;font-size:.9rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matchup-side-manager{font-size:.72rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.matchup-side-tags{display:flex;flex-wrap:wrap;gap:.3rem}.matchup-side-tags .tag{font-size:.62rem;padding:.15rem .45rem}.matchup-side-score{font-weight:800;font-size:1.15rem;flex-shrink:0}.matchup-vs{font-size:.7rem;font-weight:800;color:var(--color-text-faint);padding:0 .25rem}.stat-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem;margin-bottom:1.25rem}.stat-tile{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem}.stat-tile-accent{border-color:var(--color-accent);background:linear-gradient(160deg,var(--color-accent-soft),var(--color-surface) 60%)}.stat-tile-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:700}.stat-tile-value{font-size:1.4rem;font-weight:800}.stat-tile-sublabel{font-size:.75rem;color:var(--color-text-muted)}.highlight-team{display:flex;align-items:center;gap:.85rem}.highlight-team-name{font-weight:700}.highlight-team-manager{font-size:.78rem;color:var(--color-text-muted)}.highlight-team-score{margin-left:auto;font-size:1.6rem;font-weight:800;color:var(--color-accent)}.power-rank-list li{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;border-bottom:1px solid var(--color-border)}.power-rank-list li:last-child{border-bottom:none}.power-rank-list-name{flex:1;font-weight:600;font-size:.88rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.power-rank-list-score{font-weight:800;color:var(--color-accent)}.survivor-widget{display:flex;flex-direction:column;gap:.75rem}.survivor-widget-stat{display:flex;align-items:baseline;gap:.5rem}.survivor-widget-count{font-size:2rem;font-weight:800;color:var(--color-accent)}.survivor-widget-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;font-size:.85rem}.survivor-widget-row-muted{color:var(--color-text-muted);font-size:.78rem}.transaction-list{display:flex;flex-direction:column;gap:.6rem}.transaction-item{display:flex;flex-direction:column;gap:.25rem;padding-bottom:.6rem;border-bottom:1px solid var(--color-border);font-size:.82rem}.transaction-item:last-child{border-bottom:none}.transaction-type{text-transform:capitalize;font-weight:700;color:var(--color-blue);font-size:.75rem}.transaction-detail{color:var(--color-text-muted)}.transaction-week{font-size:.72rem;color:var(--color-text-faint)}.transaction-item-full{flex-direction:row;align-items:center;flex-wrap:wrap;gap:.75rem}.transaction-type-tag{flex-shrink:0}.transaction-teams{font-weight:600;font-size:.85rem;min-width:140px}.transaction-adds{color:var(--color-accent)}.transaction-drops{color:var(--color-red);margin-left:.5rem}.transaction-list-full .transaction-week{margin-left:auto}.table-scroll{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th{text-align:left;padding:.6rem .75rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted);border-bottom:1px solid var(--color-border-strong);white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table th.sortable{cursor:pointer}.data-table th.sortable:hover{color:var(--color-text)}.data-table td{padding:.6rem .75rem;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:var(--color-surface-hover)}.sort-indicator{margin-left:.3rem;font-size:.65rem}.col-right{text-align:right}.table-team-cell{display:flex;align-items:center;gap:.6rem}.table-team-name{font-weight:700}.table-team-manager{font-size:.72rem;color:var(--color-text-muted)}.power-score-cell{font-weight:800;font-size:1rem;color:var(--color-accent)}.power-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.power-breakdown-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-elevated);padding:.9rem 1rem}.power-breakdown-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.75rem}.power-breakdown-name{font-weight:700;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.power-breakdown-score{font-weight:800;font-size:1.15rem;color:var(--color-accent)}.power-breakdown-row{display:grid;grid-template-columns:90px 1fr 70px;align-items:center;gap:.5rem;font-size:.75rem;margin-bottom:.4rem}.power-breakdown-label{color:var(--color-text-muted)}.power-breakdown-track{height:6px;border-radius:999px;background:var(--color-bg);overflow:hidden}.power-breakdown-fill{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-blue));border-radius:999px}.power-breakdown-value{text-align:right;color:var(--color-text-muted)}.week-selector{display:flex;align-items:center;gap:.4rem}.survivor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.85rem;margin-bottom:1.25rem}.survivor-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.5rem;padding:1.1rem .85rem;border-radius:var(--radius-lg);border:1px solid var(--color-border);background:var(--color-surface)}.survivor-card-safe{border-color:var(--color-border)}.survivor-card-danger{border-color:var(--color-red);background:linear-gradient(160deg,var(--color-red-soft),var(--color-surface) 65%)}.survivor-card-champion{border-color:var(--color-gold);background:linear-gradient(160deg,rgba(246,201,69,.16),var(--color-surface) 65%)}.survivor-card-status{font-size:.68rem;font-weight:800;letter-spacing:.05em;color:var(--color-text-muted)}.survivor-card-danger .survivor-card-status{color:var(--color-red)}.survivor-card-champion .survivor-card-status{color:var(--color-gold)}.survivor-card-provisional{color:var(--color-text-faint);font-weight:600}.survivor-card-name{font-weight:700;font-size:.92rem}.survivor-card-manager{font-size:.75rem;color:var(--color-text-muted);margin-top:-.35rem}.survivor-card-score{display:flex;flex-direction:column;font-weight:800;margin-top:.25rem}.survivor-card-score-sub{font-size:.65rem;font-weight:600;color:var(--color-text-faint);text-transform:none;letter-spacing:0}.survivor-status-block{display:flex;flex-direction:column;gap:.6rem;align-items:flex-start}.survivor-status-block p{margin:0;color:var(--color-text-muted);font-size:.85rem}.survivor-timeline{display:flex;flex-direction:column;gap:.6rem}.survivor-timeline-item{display:grid;grid-template-columns:2.5rem auto 1fr;align-items:center;gap:.85rem;padding:.6rem 0;border-bottom:1px solid var(--color-border)}.survivor-timeline-item:last-child{border-bottom:none}.survivor-timeline-position{font-weight:800;color:var(--color-text-faint);text-align:center}.survivor-timeline-champion .survivor-timeline-position{color:var(--color-gold)}.survivor-timeline-team{display:flex;align-items:center;gap:.6rem}.survivor-timeline-name{font-weight:700;font-size:.88rem}.survivor-timeline-week{font-size:.72rem;color:var(--color-text-muted)}.survivor-timeline-score{font-weight:700;justify-self:end}.survivor-timeline-escape{grid-column:2 / -1;font-size:.72rem;color:var(--color-text-faint)}.roster-groups{display:grid;grid-template-columns:1fr;gap:1.5rem}@media (min-width: 700px){.roster-groups{grid-template-columns:1fr 1fr}}.roster-group h3{font-size:.85rem;color:var(--color-text-muted);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.04em}.roster-list li{display:grid;grid-template-columns:3rem 1fr auto;gap:.6rem;padding:.4rem 0;border-bottom:1px solid var(--color-border);font-size:.85rem}.roster-position{font-weight:700;color:var(--color-blue);font-size:.72rem}.roster-team{color:var(--color-text-muted);font-size:.75rem}.history-note{color:var(--color-text-muted);font-size:.82rem;max-width:60ch}
