/* Portal styles (kept separate so the main landing page remains unchanged) */

.portal-shell{ padding-bottom: 32px; }

.portal-hero{
  position:relative;
  min-height: 46vh;
  display:flex;
  align-items:flex-end;
  padding: 34px 0 26px;
  overflow:hidden;
  border-bottom:1px solid var(--line);
}
.portal-hero-media{
  position:absolute;
  inset:0;
  background-image: url("/assets/hero.jpg");
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  filter: saturate(1.05) contrast(1.05);
}
.portal-hero-overlay{
  position:absolute;
  inset:0;
  background:
    radial-gradient(900px 700px at 35% 35%, rgba(0,0,0,.18), rgba(0,0,0,.88) 72%),
    linear-gradient(to top, rgba(10,10,10,.98), rgba(10,10,10,.25));
}
.portal-hero-content{ position:relative; z-index:1; padding-bottom: 10px; }

.portal-toprow{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}

.portal-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-weight:700;
  font-size:12px;
  letter-spacing:.18em;
  color:rgba(244,245,246,.86);
  text-transform:uppercase;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  background:rgba(0,0,0,.25);
}

.week-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:10px 12px;
  border-radius:999px;
  font-weight:800;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  border:1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.06);
  color: rgba(244,245,246,.92);
}
.week-badge.is-aw{
  border-color: rgba(255,62,62,.32);
  background: rgba(255,62,62,.12);
}
.week-badge.is-ip{
  border-color: rgba(255,255,255,.18);
  background: rgba(255,255,255,.06);
}

.portal-title{
  margin:14px 0 8px;
  font-family: "Bebas Neue", Inter, system-ui, sans-serif;
  font-size: clamp(42px, 5.6vw, 78px);
  letter-spacing:.02em;
  line-height:.96;
}

.portal-sub{
  margin:0 0 10px;
  max-width: 920px;
  color: rgba(244,245,246,.86);
  letter-spacing:.04em;
}

.portal-actions{ display:flex; flex-wrap:wrap; gap:12px; margin-top: 16px; }
.portal-note{ margin-top: 14px; color: rgba(244,245,246,.78); font-weight:600; }

.portal-section{ padding-top: 34px; padding-bottom: 34px; }

.portal-grid{
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:16px;
}

.portal-card{
  background: rgba(255,255,255,.04);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:18px;
  box-shadow: var(--shadow);
}
.portal-card-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; }
.portal-card-index{
  font-weight:900;
  letter-spacing:.16em;
  font-size:12px;
  color: rgba(244,245,246,.8);
  text-transform:uppercase;
}
.portal-card-title{
  margin-top:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-size:16px;
}
.portal-card-desc{ margin-top:8px; color: rgba(183,188,197,.94); font-weight:500; }

.portal-card.is-loading,
.scoreboard.is-loading{
  min-height: 170px;
  position:relative;
  overflow:hidden;
}
.portal-card.is-loading::after,
.scoreboard.is-loading::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(90deg, rgba(255,255,255,.02), rgba(255,255,255,.08), rgba(255,255,255,.02));
  transform: translateX(-100%);
  animation: shimmer 1.1s infinite;
}
@keyframes shimmer{ 100%{ transform: translateX(100%);} }

/* Scoreboards */
.scoreboards{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:16px; }
.scoreboard{
  background: rgba(0,0,0,.25);
  border:1px solid rgba(255,255,255,.12);
  border-radius: var(--radius);
  overflow:hidden;
  box-shadow: var(--shadow);
}
.scoreboard-head{
  padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
}
.scoreboard-title{
  font-weight: 900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.scoreboard-sub{ margin-top:4px; color: rgba(183,188,197,.9); font-weight:600; }

.score-table{ padding: 8px 0; }
.score-row{
  display:grid;
  grid-template-columns: 1.4fr 1.2fr .7fr;
  gap:12px;
  padding: 10px 18px;
  border-top:1px solid rgba(255,255,255,.06);
}
.score-row:first-child{ border-top:none; }
.score-header{ background: rgba(255,255,255,.03); }
.score-header .score-metric,
.score-header .score-player,
.score-header .score-value{
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color: rgba(244,245,246,.82);
  font-size:12px;
}
.score-metric{ font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.score-player{ color: rgba(244,245,246,.92); font-weight:700; }
.score-value{ text-align:right; font-weight:900; }

/* Tiles */
.tiles{ display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:16px; }
.tile{
  background: rgba(255,255,255,.035);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:18px;
}
.tile-icon{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 14px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.20);
  font-weight:900;
}
.tile-title{ margin-top:12px; font-weight:900; letter-spacing:.12em; text-transform:uppercase; font-size:12px; }
.tile-desc{ margin-top:8px; color: rgba(183,188,197,.94); font-weight:500; }
.tile-actions{ margin-top:14px; display:flex; flex-wrap:wrap; gap:10px; }

.nav-logout{
  background: transparent;
  cursor:pointer;
}

@media (max-width: 980px){
  .portal-grid{ grid-template-columns: 1fr; }
  .scoreboards{ grid-template-columns: 1fr; }
  .tiles{ grid-template-columns: 1fr; }
  .brand{ min-width: unset; }
}
