:root {
  --ink: #07111f;
  --navy: #0b1d33;
  --panel: #10263e;
  --panel-2: #15314e;
  --line: #29445f;
  --muted: #91a6ba;
  --white: #f7fbff;
  --cyan: #55d6be;
  --yellow: #ffd166;
  --red: #ff6b6b;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; background: radial-gradient(circle at 75% -10%, #1c4163 0, transparent 38%), var(--ink); color: var(--white); font: 15px/1.45 Inter, ui-sans-serif, system-ui, sans-serif; }
button, input { font: inherit; }
button { cursor: pointer; }
.auth-screen { min-height:100vh; display:grid; place-items:center; padding:24px; }
.auth-card { width:min(520px,100%); padding:30px; border:1px solid var(--line); border-radius:16px; background:rgba(16,38,62,.94); box-shadow:0 25px 80px #0009; }
.auth-card h1 { margin-bottom:10px; }
.auth-tabs { display:flex; gap:8px; margin:22px 0 14px; }
.auth-tabs button { flex:1; border:1px solid var(--line); border-radius:8px; padding:10px; color:var(--muted); background:var(--navy); font-weight:800; }
.auth-tabs button.active { color:var(--ink); background:var(--cyan); border-color:var(--cyan); }
.auth-form { display:grid; gap:10px; }
.auth-form input { width:100%; border:1px solid var(--line); border-radius:8px; padding:12px; color:var(--white); background:var(--ink); }
.auth-form button { border:0; border-radius:8px; padding:12px; color:var(--ink); background:var(--cyan); font-weight:900; text-transform:uppercase; }
.auth-message { min-height:22px; margin-top:10px; color:var(--yellow); font-size:12px; }
.topbar { padding: 28px clamp(20px,4vw,64px); display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid var(--line); background: rgba(7,17,31,.82); backdrop-filter: blur(15px); position: sticky; top: 0; z-index: 10; }
h1,h2,p { margin: 0; }
h1 { font-size: clamp(30px,4vw,52px); line-height: 1; letter-spacing: -.06em; text-transform: uppercase; }
h1 span { color: var(--cyan); }
h1 small { color:var(--white); font-size:11px; letter-spacing:.03em; vertical-align:top; opacity:.85; }
h2 { font-size: 22px; letter-spacing: -.03em; }
.eyebrow { color: var(--cyan); font-size: 10px; font-weight: 800; letter-spacing: .18em; margin-bottom: 5px; }
.header-actions,.profile-area,.updated,.control-deck,.week-control,nav,.panel-heading,.yellow-key { display: flex; align-items: center; gap: 12px; }
.updated { color: var(--muted); font-size: 12px; }
.auto-status { max-width:260px; }
.status-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cyan); box-shadow: 0 0 12px var(--cyan); }
.status-dot.running { background: var(--yellow); box-shadow: 0 0 12px var(--yellow); animation: pulse 1s infinite; }
.refresh-button { border: 0; border-radius: 8px; padding: 12px 18px; color: var(--ink); background: var(--cyan); font-weight: 900; text-transform: uppercase; letter-spacing: .05em; }
.refresh-button:disabled { opacity: .6; cursor: wait; }
.refresh-button span { font-size: 19px; }
.profile-select-label,.projection-select-label { display:flex; flex-direction:column; gap:3px; color:var(--muted); font-size:9px; font-weight:900; letter-spacing:.12em; }
.profile-select-label select,.projection-select-label select { min-width:190px; border:1px solid var(--line); border-radius:7px; padding:8px 28px 8px 10px; background:var(--navy); color:var(--white); font-weight:800; }
.projection-select-label select { min-width:118px; }
.icon-button { width:37px; height:37px; border:1px solid var(--line); border-radius:7px; background:var(--panel); color:var(--cyan); font-size:22px; }
main { max-width: 1600px; margin: auto; padding: 24px clamp(16px,3vw,48px) 60px; }
.control-deck { justify-content: space-between; padding: 12px; background: var(--navy); border: 1px solid var(--line); border-radius: 12px; margin-bottom: 20px; }
.week-rail { display:flex; gap:3px; overflow:auto; padding:3px; max-width:570px; scrollbar-width:thin; }
.week-rail button { flex:0 0 29px; height:29px; border:0; border-radius:5px; color:var(--muted); background:transparent; font-weight:800; }
.week-rail button.active { color:var(--ink); background:var(--yellow); }
.week-control { background: var(--ink); border-radius: 8px; padding: 4px; }
.week-control button { color: var(--white); background: transparent; border: 0; font-size: 24px; width: 36px; }
.week-control div { min-width: 95px; text-align: center; display: flex; gap: 8px; align-items: baseline; justify-content: center; }
.week-control span { color: var(--muted); font-size: 10px; letter-spacing: .12em; }
.week-control strong { color: var(--yellow); font-size: 22px; }
.nav-button { padding: 9px 14px; border: 1px solid transparent; color: var(--muted); background: transparent; border-radius: 6px; font-weight: 700; }
.nav-button.active { background: var(--panel-2); border-color: var(--line); color: var(--white); }
.toggle { display: flex; gap: 8px; color: var(--muted); align-items: center; font-size: 12px; }
.toggle input { display: none; }
.toggle span { width: 34px; height: 19px; background: #31465a; border-radius: 20px; position: relative; }
.toggle span::after { content:""; position:absolute; width:13px; height:13px; border-radius:50%; background:white; left:3px; top:3px; transition:.2s; }
.toggle input:checked + span { background: var(--yellow); }
.toggle input:checked + span::after { transform: translateX(15px); background: var(--ink); }
.hidden { display: none !important; }
.message-card,.panel { background: rgba(16,38,62,.92); border: 1px solid var(--line); border-radius: 12px; }
.message-card { padding: 35px; text-align: center; color: var(--muted); }
.error { color: #ffd5d5; border-color: var(--red); }
.kpi-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 16px; }
.kpi { padding: 16px 18px; border-left: 3px solid var(--cyan); background: var(--navy); border-radius: 8px; }
.kpi.yellow { border-color: var(--yellow); }
.kpi.for { border-color:var(--cyan); }
.kpi.against { border-color:var(--red); }
.kpi span { display:block; color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.12em; }
.kpi strong { display:block; margin-top:4px; font-size:28px; }
.split-grid { display: grid; grid-template-columns: minmax(420px, .85fr) 1.15fr; gap: 16px; margin-bottom: 16px; }
.panel { overflow: hidden; }
.panel-heading { min-height: 72px; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.yellow-key { color: var(--muted); font-size: 11px; }
.yellow-key i { width: 10px; height: 10px; background: var(--yellow); border-radius: 2px; }
.threat-row { display:grid; grid-template-columns: 38px 1.2fr 50px 2fr; gap:10px; align-items:center; padding:12px 16px; border-bottom:1px solid rgba(41,68,95,.7); }
.threat-row:last-child { border-bottom:0; }
.threat-row.owned { background: linear-gradient(90deg,rgba(255,209,102,.18),transparent); }
.rank { color:var(--muted); font-weight:800; }
.player-name { font-weight:800; }
.proj { display:inline-block; margin-left:6px; padding:1px 5px; border-radius:5px; background:#3b1724; color:#ff9c9c; font-size:10px; font-weight:900; vertical-align:middle; }
.proj-range { color:#ff9c9c; font-size:10px; font-weight:900; white-space:nowrap; }
.injury-badge { display:inline-block; margin-left:5px; padding:1px 5px; border-radius:5px; color:#ffd5d5; background:#5a1720; font-size:10px; font-weight:900; text-transform:uppercase; vertical-align:middle; }
.sub-note { display:block; margin-top:2px; color:#ffb0b0 !important; font-size:10px; font-weight:800; }
.sub-note s { opacity:.85; margin-right:4px; }
.position { color:var(--cyan); font-size:11px; font-weight:800; }
.count-badge { justify-self:center; min-width:30px; padding:4px; text-align:center; background:var(--cyan); color:var(--ink); font-weight:900; border-radius:15px; }
.league-pills { display:flex; flex-wrap:wrap; gap:4px; }
.pill { padding:3px 7px; border:1px solid var(--line); border-radius:12px; color:var(--muted); font-size:10px; white-space:nowrap; }
.pill.owned { color:var(--ink); background:var(--yellow); border-color:var(--yellow); }
.matchup-cards { display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); }
.matchup-card { min-height:100px; padding:14px; background:var(--panel); }
.matchup-card .league { color:var(--cyan); font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.matchup-card h3 { margin:6px 0 2px; font-size:16px; }
.matchup-card p { color:var(--muted); font-size:11px; }
.matchup-card.empty { opacity:.45; }
.matrix-panel input,.season-search-panel input { background:var(--ink); color:var(--white); border:1px solid var(--line); border-radius:7px; padding:10px 13px; outline:none; }
.matrix-panel input:focus,.season-search-panel input:focus { border-color:var(--cyan); }
.matrix-wrap { overflow:auto; max-height:70vh; }
.matrix { border-collapse:separate; border-spacing:0; min-width:100%; font-size:12px; }
.matrix th { position:sticky; top:0; z-index:2; padding:11px 12px; color:var(--cyan); background:var(--navy); border-bottom:1px solid var(--line); white-space:nowrap; }
.matrix th:first-child { left:0; z-index:3; }
.matrix td { min-width:150px; height:34px; padding:5px 9px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:#0d2137; }
.matrix td.position-cell { min-width:60px; position:sticky; left:0; color:var(--white); background:var(--navy); font-weight:900; text-align:center; }
.matrix td.owned { color:var(--ink); background:var(--yellow); font-weight:800; }
.suggestions { max-width:650px; margin:8px auto 0; text-align:left; }
.suggestion { display:flex; justify-content:space-between; width:100%; padding:10px; border:0; border-bottom:1px solid var(--line); background:var(--panel-2); color:var(--white); }
.player-profile { padding:22px; }
.player-profile h2 { font-size:32px; }
.player-profile.owned { border-color:var(--yellow); box-shadow:0 0 0 1px var(--yellow); }
.appearance-list { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:10px; margin-top:18px; }
.appearance { background:var(--navy); border:1px solid var(--line); padding:12px; border-radius:7px; }
.appearance strong { color:var(--cyan); }
.season-grid { grid-template-columns:1.2fr .8fr; }
.season-search-panel { margin-bottom:16px; }
.season-player-card { padding:16px; border-top:1px solid var(--line); }
.season-player-card h3 { margin:0; font-size:22px; }
.league-row { padding:13px 16px; display:grid; grid-template-columns:1fr auto auto; gap:14px; border-bottom:1px solid var(--line); }
.league-row span { color:var(--muted); }
.toast { position:fixed; right:25px; bottom:25px; padding:13px 18px; color:var(--ink); background:var(--cyan); border-radius:8px; font-weight:800; transform:translateY(100px); opacity:0; transition:.25s; z-index:20; }
.toast.show { transform:translateY(0); opacity:1; }
.empty-state { padding:28px; color:var(--muted); text-align:center; }
.section-title { display:flex; align-items:end; justify-content:space-between; margin:25px 2px 12px; }
.support-strip { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:28px; padding:14px 16px; border:1px solid var(--line); border-radius:10px; background:rgba(16,38,62,.55); color:var(--muted); font-size:12px; }
.support-strip a { flex:0 0 auto; border:1px solid var(--cyan); border-radius:7px; padding:9px 12px; color:var(--cyan); text-decoration:none; font-weight:900; text-transform:uppercase; letter-spacing:.04em; }
.support-strip a:hover { color:var(--ink); background:var(--cyan); }
.legend { display:flex; align-items:center; gap:7px; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.legend b { width:8px; height:8px; border-radius:50%; }
.for-dot { background:var(--cyan); }.against-dot { background:var(--red); margin-left:8px; }
.nfl-games { display:grid; gap:9px; }
.nfl-game { background:var(--navy); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.nfl-game.relevant { border-color:#3d6685; box-shadow:inset 3px 0 var(--cyan); }
.nfl-game summary { list-style:none; min-height:84px; display:grid; grid-template-columns:135px 1fr 390px; align-items:center; gap:18px; padding:12px 18px; cursor:pointer; }
.nfl-game summary::-webkit-details-marker { display:none; }
.kickoff { display:flex; flex-direction:column; gap:3px; color:var(--white); font-weight:800; }
.kickoff small { color:var(--muted); font-size:10px; font-weight:600; }
.teams { display:grid; grid-template-columns:1fr 20px 1fr; align-items:center; gap:10px; }
.teams>div { display:grid; grid-template-columns:32px 45px 1fr; align-items:center; gap:8px; }
.teams img { width:28px; height:28px; object-fit:contain; }
.teams strong { font-size:18px; }
.teams span { color:var(--muted); font-size:11px; }
.teams>b { color:var(--muted); text-align:center; }
.game-counts { display:grid; grid-template-columns:1fr 1fr 20px; gap:8px; align-items:center; }
.game-counts span { display:flex; flex-direction:column; padding:8px 10px; background:var(--ink); border-radius:6px; color:var(--muted); font-size:10px; }
.game-counts b { font-size:11px; text-transform:uppercase; letter-spacing:.08em; }
.for-count b { color:var(--cyan); }.against-count b { color:var(--red); }
.game-counts i { font-size:18px; color:var(--muted); transition:.2s; }
.nfl-game[open] .game-counts i { transform:rotate(180deg); }
.game-details { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); background:#0a1a2c; }
.game-details section { padding:16px; }
.game-details section+section { border-left:1px solid var(--line); }
.game-details h3 { display:flex; justify-content:space-between; margin:0 0 10px; color:var(--cyan); }
.game-details section+section h3 { color:var(--red); }
.game-details h3 span { color:var(--muted); font-size:11px; font-weight:500; }
.game-player { min-height:48px; display:flex; justify-content:space-between; align-items:center; gap:10px; padding:7px 0; border-top:1px solid rgba(41,68,95,.55); }
.game-player.auto-subbed { background:linear-gradient(90deg,rgba(255,107,107,.10),transparent); }
.game-player:first-of-type { border-top:0; }
.game-player strong,.game-player span { display:block; }
.game-player span { color:var(--muted); font-size:10px; }
.pill.for { border-color:var(--cyan); color:var(--cyan); }.pill.against { border-color:var(--red); color:#ff9c9c; }
.empty-side { color:var(--muted); padding:12px 0; font-style:italic; }
.fantasy-games { display:grid; gap:10px; }
.fantasy-card { background:var(--navy); border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.fantasy-card.dragging { opacity:.45; }
.fantasy-card details summary { list-style:none; display:grid; grid-template-columns:34px minmax(220px,1fr) minmax(300px,440px) 104px; align-items:center; gap:14px; padding:15px 18px; cursor:pointer; }
.fantasy-card details summary::-webkit-details-marker { display:none; }
.drag-handle { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line); border-radius:7px; color:var(--muted); cursor:grab; }
.fantasy-card h3 { margin:0 0 3px; font-size:19px; }
.fantasy-subline { color:var(--muted); font-size:11px; }
.fantasy-scoreboard { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.fantasy-scoreboard div { padding:9px 10px; border-radius:7px; background:var(--ink); }
.fantasy-scoreboard span { display:block; color:var(--muted); font-size:10px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }
.fantasy-scoreboard strong { display:block; margin-top:2px; font-size:22px; }
.card-actions { display:flex; align-items:center; justify-content:flex-end; gap:5px; }
.card-actions button { width:27px; height:27px; border:1px solid var(--line); border-radius:6px; color:var(--cyan); background:transparent; font-weight:900; }
.card-actions i { color:var(--muted); font-size:18px; transition:.2s; }
.fantasy-card details[open] .card-actions i { transform:rotate(180deg); }
.fantasy-details { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--line); background:#0a1a2c; }
.fantasy-details section { padding:16px; }
.fantasy-details section+section { border-left:1px solid var(--line); }
.fantasy-details h3 { margin:0 0 10px; color:var(--cyan); }
.fantasy-details section+section h3 { color:var(--red); }
.fantasy-player { min-height:48px; display:flex; justify-content:space-between; align-items:center; gap:12px; padding:8px 0; border-top:1px solid rgba(41,68,95,.55); }
.fantasy-player.auto-subbed { background:linear-gradient(90deg,rgba(255,107,107,.10),transparent); }
.fantasy-player:first-of-type { border-top:0; }
.fantasy-player strong,.fantasy-player span { display:block; }
.fantasy-player span { color:var(--muted); font-size:10px; }
.player-score { min-width:84px; text-align:right; }
.player-score .actual { color:var(--white); font-size:16px; font-weight:900; }
.player-score .projected { color:var(--muted); font-size:10px; }
.appearance-columns { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }
.appearance-columns h3 { color:var(--cyan); }.appearance-columns section+section h3 { color:var(--red); }
dialog { width:min(600px,calc(100% - 30px)); padding:0; border:1px solid var(--line); border-radius:12px; color:var(--white); background:var(--panel); box-shadow:0 25px 80px #000b; }
dialog::backdrop { background:#020913cc; backdrop-filter:blur(5px); }
.dialog-card { position:relative; padding:26px; }
.dialog-close { position:absolute; right:12px; top:10px; color:var(--muted); background:transparent; border:0; font-size:25px; }
.dialog-copy { margin:7px 0 20px; color:var(--muted); }
.add-profile { display:flex; gap:8px; margin-bottom:8px; }
.add-profile input { flex:1; border:1px solid var(--line); border-radius:7px; padding:11px; color:var(--white); background:var(--ink); }
.add-profile button,.profile-row button { border:0; border-radius:7px; padding:9px 12px; color:var(--ink); background:var(--cyan); font-weight:800; }
#profileMessage { min-height:24px; color:var(--yellow); font-size:11px; }
.profile-list { margin-top:10px; border-top:1px solid var(--line); }
.profile-row { display:flex; justify-content:space-between; align-items:center; padding:12px 0; border-bottom:1px solid var(--line); }
.profile-row strong,.profile-row span { display:block; }.profile-row span { color:var(--muted); font-size:10px; }
.profile-row.disabled-user { opacity:.55; }
.profile-row button { color:#ffb0b0; background:transparent; border:1px solid #743f4a; }
.profile-actions { display:flex; gap:6px; }
.profile-actions [data-main] { color:var(--cyan); border-color:var(--line); }
.profile-actions [data-share],.profile-actions [data-share-account],.profile-actions [data-disable-invite] { color:var(--cyan); border-color:var(--line); }
.profile-actions [data-reset-user] { color:var(--cyan); border-color:var(--line); }
.admin-subtitle { margin-top:24px; }
@keyframes pulse { 50% { opacity:.35; } }
@media (max-width:900px) {
  .topbar,.control-deck { align-items:flex-start; flex-direction:column; }
  .header-actions,.profile-area { width:100%; justify-content:space-between; flex-wrap:wrap; }
  .split-grid,.season-grid,.kpi-grid { grid-template-columns:1fr 1fr; }
  .split-grid { grid-template-columns:1fr; }
  .toggle { display:none; }
  .nfl-game summary { grid-template-columns:1fr; }
  .fantasy-card details summary { grid-template-columns:34px 1fr; }
  .fantasy-scoreboard,.card-actions { grid-column:1 / -1; }
  .game-counts { grid-template-columns:1fr 1fr; }
  .game-counts i { display:none; }
  .teams>div { grid-template-columns:28px 42px 1fr; }
}
@media (max-width:560px) { .kpi-grid,.game-details,.appearance-columns,.fantasy-details { grid-template-columns:1fr; } .game-details section+section,.fantasy-details section+section { border-left:0;border-top:1px solid var(--line); } nav { overflow:auto; width:100%; } .updated { display:none; } .profile-select-label { flex:1; }.profile-select-label select{width:100%;}.add-profile{flex-direction:column;} .support-strip{align-items:flex-start;flex-direction:column;} }
