/* ═══════════════════════════════════════════════
   LAYOUT.CSS — Shell, Sidebar, Ticker v2 (Light)
   PropBetEdge NFL
═══════════════════════════════════════════════ */

/* ── TICKER ── */
.ticker{
  position:fixed;top:0;left:0;right:0;z-index:600;
  height:var(--ticker-h);background:var(--nfl-d);
  display:flex;align-items:center;overflow:hidden;
  border-bottom:1px solid rgba(255,255,255,.06);
}
.ticker-pill{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:0 14px;border-right:1px solid rgba(255,255,255,.08);height:100%}
.ticker-dot{width:5px;height:5px;border-radius:50%;background:var(--nfl-vivid);animation:blink 1.6s infinite}
.ticker-label{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--nfl-vivid)}
.ticker-track{flex:1;overflow:hidden;position:relative}
.ticker-fade{position:absolute;top:0;bottom:0;width:32px;z-index:1;pointer-events:none}
.ticker-fade-l{left:0;background:linear-gradient(to right,var(--nfl-d),transparent)}
.ticker-fade-r{right:0;background:linear-gradient(to left,var(--nfl-d),transparent)}
.ticker-belt{display:flex;animation:roll 90s linear infinite;width:max-content}
.ticker-belt:hover{animation-play-state:paused}
.tk{display:inline-flex;align-items:center;gap:8px;padding:0 18px;border-right:1px solid rgba(255,255,255,.06);white-space:nowrap}
.tk-tag{font-size:8px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:2px 7px;border-radius:3px;flex-shrink:0}
.tkt-nfl{background:rgba(34,197,94,.18);color:#4ade80}
.tkt-mlb{background:rgba(251,191,36,.14);color:#fbbf24}
.tk-text{font-family:var(--font-display);font-size:13px;font-weight:600;color:rgba(255,255,255,.7)}
.tk-val{font-size:12px;color:rgba(255,255,255,.35)}
.tk-val.hi{color:var(--nfl-vivid);font-weight:600}

/* ── SHELL ── */
.shell{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;padding-top:var(--ticker-h)}

/* ── SIDEBAR ── */
.sidebar{
  position:fixed;top:var(--ticker-h);left:0;bottom:0;
  width:var(--sidebar-w);z-index:500;
  background:var(--sidebar-bg);
  border-right:1px solid var(--line);
  overflow-y:auto;overflow-x:hidden;
  box-shadow:var(--shadow-sm);
}
.sidebar::-webkit-scrollbar{width:2px}
.sidebar-inner{display:flex;flex-direction:column;min-height:100%}

/* Logo */
.sidebar-logo{
  display:flex;align-items:center;gap:10px;
  padding:1rem;border-bottom:1px solid var(--line);flex-shrink:0;
}
.sl-brand{font-family:var(--font-display);font-size:17px;font-weight:900;letter-spacing:1px;text-transform:uppercase;color:var(--ink);line-height:1}
.sl-brand em{color:var(--nfl-bright);font-style:normal}
.sl-sport{font-size:9px;font-weight:600;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink4);margin-top:2px}

/* Search */
.sidebar-search{padding:.65rem 1rem;border-bottom:1px solid var(--line);position:relative;flex-shrink:0}
.sidebar-search input{
  width:100%;background:var(--surface-3);border:1px solid var(--line);
  border-radius:var(--r-sm);padding:7px 10px 7px 28px;font-size:12px;color:var(--ink);
  outline:none;transition:all .15s;
}
.sidebar-search::before{content:'⌕';position:absolute;left:1.6rem;top:50%;transform:translateY(-50%);font-size:14px;color:var(--ink4);pointer-events:none}
.sidebar-search input::placeholder{color:var(--ink4)}
.sidebar-search input:focus{border-color:var(--nfl-bright);background:var(--surface);box-shadow:0 0 0 3px var(--nfl-glow)}
.search-results{position:absolute;top:calc(100% - .5rem);left:1rem;right:1rem;background:var(--surface);border:1px solid var(--line2);border-radius:var(--r-md);z-index:50;display:none;max-height:300px;overflow-y:auto;box-shadow:var(--shadow-lg)}
.search-results.open{display:block;animation:slideUp .15s ease}
.sr-item{padding:9px 12px;cursor:pointer;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:9px;transition:background .1s}
.sr-item:hover{background:var(--surface-3)}
.sr-item:last-child{border-bottom:none}
.sr-tag{font-size:8px;font-weight:700;letter-spacing:1px;text-transform:uppercase;padding:2px 7px;border-radius:3px;background:var(--nfl-ll);color:var(--nfl-b);flex-shrink:0}
.sr-name{font-size:13px;font-weight:500;color:var(--ink)}
.sr-sub{font-size:11px;color:var(--ink4)}

/* Nav */
.sidebar-nav{flex:1;padding:.5rem 0}
.nav-group{margin-bottom:.25rem}
.nav-group-label{font-size:9px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ink5);padding:.6rem 1rem .25rem}
.nav-item{
  display:flex;align-items:center;gap:9px;padding:8px 1rem;
  font-size:13px;font-weight:500;color:var(--ink3);
  transition:all .12s;cursor:pointer;border-radius:0;
  border-left:3px solid transparent;-webkit-tap-highlight-color:transparent;
}
.nav-item:hover{color:var(--ink);background:var(--surface-3)}
.nav-item.active{color:var(--nfl-b);background:var(--nfl-l);border-left-color:var(--nfl-bright);font-weight:600}
.nav-item.ext{font-size:12px;color:var(--ink4)}
.nav-item.ext:hover{color:var(--ink3)}
.ni-icon{font-size:14px;flex-shrink:0;width:18px;text-align:center}
.nav-badge{font-size:9px;font-weight:700;background:var(--nfl-ll);color:var(--nfl-b);padding:1px 7px;border-radius:99px;margin-left:auto}
.nav-badge.live{background:var(--success-l);color:var(--success);animation:pulse 2s infinite}

/* Sidebar footer */
.sidebar-foot{padding:.75rem 1rem;border-top:1px solid var(--line);flex-shrink:0;background:var(--surface-2)}
.sf-season{font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--ink2);text-transform:uppercase;letter-spacing:.5px}
.sf-status{font-size:10px;color:var(--warning);margin:.15rem 0}
.sf-api{font-size:10px;color:var(--ink5)}

/* ── MOBILE HEADER ── */
.mobile-header{
  display:none;position:fixed;top:var(--ticker-h);left:0;right:0;z-index:500;
  height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--line);
  align-items:center;justify-content:space-between;padding:0 1rem;
  box-shadow:var(--shadow-sm);
}
.hamburger{display:flex;flex-direction:column;gap:4px;padding:4px}
.hamburger span{display:block;width:20px;height:2px;background:var(--ink3);border-radius:1px;transition:all .2s}
.mobile-logo{font-family:var(--font-display);font-size:17px;font-weight:900;color:var(--ink);text-transform:uppercase;letter-spacing:1px}
.mobile-logo em{color:var(--nfl-bright);font-style:normal}
.mobile-logo strong{color:var(--nfl-bright)}
.mobile-picks-btn{font-size:12px;font-weight:600;background:var(--nfl-b);color:#fff;padding:6px 14px;border-radius:var(--r-sm)}
.mobile-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:490;backdrop-filter:blur(2px)}

/* ── MAIN CONTENT ── */
.main-content{grid-column:2;min-height:calc(100vh - var(--ticker-h));background:var(--bg);overflow-y:auto}
.view-container{min-height:100%;animation:fadeIn .2s ease}

/* Loading */
.view-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:1rem}
.loading-mark{width:36px;height:36px;border:3px solid var(--line2);border-top-color:var(--nfl-bright);border-radius:50%;animation:spin 1s linear infinite}
.loading-text{font-size:13px;color:var(--ink4)}

/* ── PAGE HEADERS ── */
.page-header{padding:1.75rem 2rem 1.25rem;border-bottom:1px solid var(--line);background:var(--surface)}
.page-eyebrow{font-size:10px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--nfl-bright);margin-bottom:.35rem}
.page-title{font-family:var(--font-display);font-size:clamp(26px,4vw,40px);font-weight:900;color:var(--ink);text-transform:uppercase;letter-spacing:-1px;line-height:.95}
.page-title em{color:var(--nfl-bright);font-style:italic}
.page-subtitle{font-size:13px;color:var(--ink3);margin-top:.4rem;line-height:1.6}

.page-body{padding:1.5rem 2rem}

/* ── TABS ── */
.view-tabs{display:flex;gap:0;border-bottom:1px solid var(--line);background:var(--surface);overflow-x:auto;padding:0 2rem}
.view-tabs::-webkit-scrollbar{display:none}
.view-tab{padding:10px 16px;font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--ink4);cursor:pointer;border-bottom:2px solid transparent;transition:all .12s;white-space:nowrap;flex-shrink:0}
.view-tab:hover{color:var(--ink2)}
.view-tab.active{color:var(--nfl-b);border-bottom-color:var(--nfl-bright);font-weight:700}

/* ── SECTION BLOCKS ── */
.section-block{margin-bottom:2rem}
.section-block-title{font-family:var(--font-display);font-size:16px;font-weight:800;text-transform:uppercase;letter-spacing:.5px;color:var(--ink);margin-bottom:.875rem;padding-bottom:.5rem;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.section-block-title span{font-size:12px;color:var(--ink4);font-weight:400;font-family:var(--font-body);text-transform:none;letter-spacing:0}

/* ── RESPONSIVE ── */
@media(max-width:900px){
  .shell{grid-template-columns:1fr}
  .sidebar{transform:translateX(-100%)}
  .sidebar.open{transform:translateX(0);box-shadow:var(--shadow-xl)}
  .mobile-header{display:flex}
  .main-content{grid-column:1;padding-top:var(--header-h)}
  .mobile-overlay.open{display:block}
  .page-header,.page-body{padding:1.25rem 1rem}
  .view-tabs{padding:0 1rem}
}
