/* ============================================================
   SimRace Hub — Public UI Harmony v3.0
   Shared visual language aligned with HOME v2.5.x
   ============================================================ */

:root{
  --srh3-bg:#0a0b10;
  --srh3-panel:#11131a;
  --srh3-panel-2:#151821;
  --srh3-panel-3:#1a1d26;
  --srh3-line:rgba(255,255,255,.08);
  --srh3-line-strong:rgba(255,255,255,.13);
  --srh3-text:#f5f6f8;
  --srh3-soft:#bcc2cf;
  --srh3-muted:#777f91;
  --srh3-orange:#ff5a00;
  --srh3-orange-2:#ff8d52;
  --srh3-green:#13c76d;
  --srh3-blue:#2f8cff;
  --srh3-red:#ef3150;
  --srh3-radius:14px;
  --srh3-radius-sm:10px;
  --srh3-shadow:0 14px 34px rgba(0,0,0,.24);
  --srh3-shadow-hover:0 20px 44px rgba(0,0,0,.32);
}

body[data-page]{
  color:var(--srh3-text);
}

/* ---- shared typography ---- */
body[data-page] h1,
body[data-page] h2,
body[data-page] h3,
body[data-page] .page-title,
body[data-page] .title,
body[data-page] .streams-title,
body[data-page] .replays-hero h1,
body[data-page] .events-showcase-title,
body[data-page] .teams-hero h1,
body[data-page] .recruitment-title,
body[data-page] .div-hero h1,
body[data-page] .hl-hero h2,
body[data-page] .rl-lobby-title{
  font-family:"Saira Condensed","Saira",sans-serif !important;
  font-weight:900 !important;
  letter-spacing:.01em;
}

/* ---- consistent public page gutters ---- */
body[data-page="events"] .events-page-v2,
body[data-page="leagues"] .page-shell,
body[data-page="teams_list"] .teams-page,
body[data-page="replays"] .replays-page,
body[data-page="streams_home"] .streams-page,
body[data-page="divisions_home"] .div-page,
body[data-page="hotlaps_dashboard"] .hl-dash,
body[data-page="hotlaps_records"] .hl-page,
body[data-page="live_chronos"] .hl-page,
body[data-page="race_live"] .rl-lobby-shell,
body[data-page="lmu_schedule"] .lmu-page,
body[data-page="recruitment_home"] .recruitment-page,
body[data-page="about"] .about-srh-page,
body[data-page="contact"] .contact-page,
body[data-page="premium"] .premium-page,
body[data-page="my_account"] .profile-page,
body[data-page="my_account_user"] .profile-page,
body[data-page="edit_my_account"] .edit-profile-container{
  width:100% !important;
  max-width:1880px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* ---- shared hero language ---- */
body[data-page="events"] .events-showcase,
body[data-page="leagues"] .page-hero,
body[data-page="teams_list"] .teams-hero,
body[data-page="replays"] .replays-hero,
body[data-page="streams_home"] .streams-head,
body[data-page="divisions_home"] .div-hero,
body[data-page="hotlaps_dashboard"] .hl-hero,
body[data-page="race_live"] .rl-lobby-head,
body[data-page="league_detail"] .page-hero,
body[data-page="team_profile"] .tp-hero,
body[data-page="event_detail"] .event-hero,
body[data-page="recruitment_home"] .recruitment-hero,
body[data-page="premium"] .page-hero,
body[data-page="contact"] .contact-hero,
body[data-page="lmu_schedule"] .lmu-page-hero{
  border-radius:var(--srh3-radius) !important;
  border:1px solid var(--srh3-line) !important;
  border-top:2px solid rgba(255,90,0,.48) !important;
  background:
    radial-gradient(circle at 88% 10%,rgba(255,90,0,.16),transparent 28%),
    linear-gradient(180deg,rgba(19,22,31,.98),rgba(10,12,18,.99)) !important;
  box-shadow:var(--srh3-shadow) !important;
}

body[data-page="events"] .events-showcase-title,
body[data-page="leagues"] .page-title,
body[data-page="teams_list"] .teams-hero h1,
body[data-page="replays"] .replays-hero h1,
body[data-page="streams_home"] .streams-title,
body[data-page="divisions_home"] .div-hero h1,
body[data-page="hotlaps_dashboard"] .hl-hero h2,
body[data-page="race_live"] .rl-lobby-title,
body[data-page="league_detail"] .page-title,
body[data-page="team_profile"] .tp-title,
body[data-page="event_detail"] .event-title,
body[data-page="recruitment_home"] .recruitment-title,
body[data-page="premium"] .title,
body[data-page="contact"] .contact-hero h1,
body[data-page="lmu_schedule"] .lmu-page-hero h1{
  color:#fff !important;
  text-transform:uppercase;
}

/* ---- kickers / badges ---- */
body[data-page] .page-badge,
body[data-page] .events-kicker,
body[data-page] .teams-badge,
body[data-page] .hero-badge,
body[data-page] .tp-badge,
body[data-page] .recruitment-badge,
body[data-page] .contact-kicker,
body[data-page] .lmu-kicker,
body[data-page] .hl-hero-eyebrow,
body[data-page] .rl-lobby-eyebrow{
  border-radius:6px !important;
  background:rgba(255,90,0,.10) !important;
  border:1px solid rgba(255,90,0,.20) !important;
  color:var(--srh3-orange-2) !important;
  font-family:"Saira Condensed","Saira",sans-serif !important;
  font-weight:900 !important;
  letter-spacing:.10em !important;
  text-transform:uppercase !important;
}

/* ---- cards / panels ---- */
body[data-page="events"] .event-card-v2,
body[data-page="leagues"] .league-card,
body[data-page="teams_list"] .team-card,
body[data-page="replays"] .replay-card,
body[data-page="streams_home"] .featured-player-card,
body[data-page="streams_home"] .featured-sidebar,
body[data-page="streams_home"] .stream-card-grid,
body[data-page="streams_home"] .stream-card-discovery,
body[data-page="streams_home"] .stream-card-youtube,
body[data-page="divisions_home"] .div-rules,
body[data-page="divisions_home"] .div-section,
body[data-page="hotlaps_dashboard"] .hl-card,
body[data-page="race_live"] .rl-session-card,
body[data-page="league_detail"] .surface-card,
body[data-page="league_detail"] .section-card,
body[data-page="league_detail"] .stat-card,
body[data-page="team_profile"] .tp-team-card,
body[data-page="recruitment_home"] .recruitment-card,
body[data-page="replay_detail"] .replay-detail,
body[data-page="my_account"] .profile-card,
body[data-page="my_account"] .profile-section,
body[data-page="my_account_user"] .profile-card,
body[data-page="my_account_user"] .profile-section{
  border-radius:12px !important;
  border:1px solid var(--srh3-line) !important;
  background:linear-gradient(180deg,var(--srh3-panel-2),var(--srh3-panel)) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.20) !important;
}

body[data-page="events"] .event-card-v2:hover,
body[data-page="leagues"] .league-card:hover,
body[data-page="teams_list"] .team-card:hover,
body[data-page="replays"] .replay-card:hover,
body[data-page="streams_home"] .stream-card-grid:hover,
body[data-page="streams_home"] .stream-card-discovery:hover,
body[data-page="streams_home"] .stream-card-youtube:hover,
body[data-page="race_live"] .rl-session-card:hover,
body[data-page="recruitment_home"] .recruitment-card:hover{
  border-color:rgba(255,90,0,.42) !important;
  box-shadow:var(--srh3-shadow-hover) !important;
}

/* ---- toolbars / filters ---- */
body[data-page="events"] .events-filterbar-v2,
body[data-page="leagues"] .filters-panel,
body[data-page="replays"] .toolbar-card,
body[data-page="streams_home"] .streams-meta,
body[data-page="lmu_schedule"] .lmu-panel{
  border-radius:12px !important;
  border:1px solid var(--srh3-line) !important;
  background:linear-gradient(180deg,rgba(18,21,29,.98),rgba(10,12,18,.99)) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.20) !important;
}

/* ---- form controls ---- */
body[data-page] input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),
body[data-page] select,
body[data-page] textarea{
  border-radius:8px !important;
}

body[data-page="events"] .events-filterbar-v2 input,
body[data-page="events"] .events-filterbar-v2 select,
body[data-page="leagues"] .filter-input,
body[data-page="leagues"] .filter-select,
body[data-page="replays"] .search-input,
body[data-page="teams_list"] .teams-search-wrap input,
body[data-page="recruitment_home"] .form-field input,
body[data-page="recruitment_home"] .form-field select,
body[data-page="recruitment_home"] .form-field textarea,
body[data-page="edit_my_account"] input,
body[data-page="edit_my_account"] select,
body[data-page="edit_my_account"] textarea{
  background:#0b0d13 !important;
  border:1px solid rgba(255,255,255,.10) !important;
  color:#fff !important;
  outline:none !important;
}

body[data-page] input:focus,
body[data-page] select:focus,
body[data-page] textarea:focus{
  border-color:rgba(255,90,0,.55) !important;
  box-shadow:0 0 0 3px rgba(255,90,0,.10) !important;
}

/* ---- buttons ---- */
body[data-page="events"] .btn,
body[data-page="leagues"] .btn,
body[data-page="teams_list"] .btn-add-team,
body[data-page="replays"] .filter-chip,
body[data-page="recruitment_home"] .btn-primary,
body[data-page="recruitment_home"] .btn-secondary,
body[data-page="recruitment_home"] .btn-ghost,
body[data-page="league_detail"] .join-btn,
body[data-page="league_detail"] .leave-btn,
body[data-page="league_detail"] .action-btn,
body[data-page="team_profile"] .srh-btn,
body[data-page="edit_my_account"] .btn-save,
body[data-page="edit_my_account"] .btn-back,
body[data-page="edit_my_account"] .btn-danger,
body[data-page="streams_home"] .stream-link-btn,
body[data-page="lmu_schedule"] .lmu-filters button{
  border-radius:7px !important;
  font-family:"Saira Condensed","Saira",sans-serif !important;
  font-weight:900 !important;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* ---- tables ---- */
body[data-page="divisions_home"] table,
body[data-page="hotlaps_records"] table,
body[data-page="live_chronos"] table{
  border-collapse:separate !important;
  border-spacing:0 !important;
  overflow:hidden;
  border-radius:10px;
}
body[data-page="divisions_home"] thead th,
body[data-page="hotlaps_records"] thead th,
body[data-page="live_chronos"] thead th{
  background:#171a22 !important;
  color:#aeb5c2 !important;
  text-transform:uppercase;
  font-family:"Saira Condensed","Saira",sans-serif !important;
  letter-spacing:.06em;
}
body[data-page="divisions_home"] tbody tr,
body[data-page="hotlaps_records"] tbody tr,
body[data-page="live_chronos"] tbody tr{
  background:#101219;
}
body[data-page="divisions_home"] tbody tr:hover,
body[data-page="hotlaps_records"] tbody tr:hover,
body[data-page="live_chronos"] tbody tr:hover{
  background:#161923 !important;
}

/* ============================================================
   PAGE-SPECIFIC COMPACTION / ALIGNMENT
   ============================================================ */

/* Events */
body[data-page="events"] .events-page-v2{padding:18px 14px 36px !important;}
body[data-page="events"] .events-showcase{margin-bottom:16px !important;}
body[data-page="events"] .events-showcase-grid{padding:18px !important;gap:12px !important;}
body[data-page="events"] .events-showcase-main{padding:8px 10px !important;}
body[data-page="events"] .events-showcase-stats{margin-top:14px !important;}
body[data-page="events"] .events-stat-card,
body[data-page="events"] .events-side-card,
body[data-page="events"] .events-calendar-card{border-radius:10px !important;background:#11131a !important;border:1px solid var(--srh3-line) !important;}
body[data-page="events"] .event-card-v2{grid-template-rows:220px auto !important;}
body[data-page="events"] .events-grid-v2{gap:12px !important;}

/* Leagues */
body[data-page="leagues"] .page-shell{padding:18px 14px 36px !important;max-width:1880px !important;}
body[data-page="leagues"] .page-hero{margin-bottom:16px !important;}
body[data-page="leagues"] .page-hero-content{padding:22px !important;gap:14px !important;}
body[data-page="leagues"] .hero-stat{border-radius:9px !important;background:rgba(255,255,255,.035) !important;border:1px solid var(--srh3-line) !important;}
body[data-page="leagues"] .league-card{overflow:hidden !important;}
body[data-page="leagues"] .league-card-link:hover .league-card{transform:translateY(-3px) !important;}

/* Teams */
body[data-page="teams_list"] .teams-page{padding:18px 14px 40px !important;max-width:1880px !important;}
body[data-page="teams_list"] .teams-hero{border-radius:14px !important;margin-bottom:14px !important;padding:22px !important;}
body[data-page="teams_list"] .team-stat-card{border-radius:9px !important;background:#11131a !important;border:1px solid var(--srh3-line) !important;}
body[data-page="teams_list"] .team-card{overflow:hidden !important;}

/* Replays */
body[data-page="replays"] .replays-page{max-width:1880px !important;padding:18px 14px 40px !important;}
body[data-page="replays"] .replays-hero{margin-bottom:14px !important;padding:22px !important;}
body[data-page="replays"] .hero-stat{border-radius:9px !important;background:rgba(255,255,255,.035) !important;border:1px solid var(--srh3-line) !important;}
body[data-page="replays"] .toolbar-card{margin-bottom:12px !important;}
body[data-page="replays"] .replays-grid{gap:12px !important;}

/* Streams */
body[data-page="streams_home"] .streams-page{padding:18px 14px 40px !important;max-width:1880px !important;}
body[data-page="streams_home"] .streams-head{min-height:130px !important;margin-bottom:14px !important;padding:22px !important;}
body[data-page="streams_home"] .stream-card-grid,
body[data-page="streams_home"] .stream-card-discovery,
body[data-page="streams_home"] .stream-card-youtube,
body[data-page="streams_home"] .featured-player-card,
body[data-page="streams_home"] .featured-sidebar{border-radius:12px !important;}

/* Divisions */
body[data-page="divisions_home"] .div-page{padding:18px 14px 42px !important;max-width:1880px !important;}
body[data-page="divisions_home"] .div-hero{border-radius:14px !important;padding:22px !important;margin-bottom:12px !important;}
body[data-page="divisions_home"] .div-rule{border-radius:7px !important;}
body[data-page="divisions_home"] .div-section{overflow:hidden !important;margin-top:12px !important;}

/* Hotlaps */
body[data-page="hotlaps_dashboard"] .hl-dash{padding:18px 14px 40px !important;max-width:1880px !important;}
body[data-page="hotlaps_dashboard"] .hl-hero{border-radius:14px !important;padding:22px !important;margin-bottom:14px !important;}
body[data-page="hotlaps_dashboard"] .hl-card{overflow:hidden !important;}

/* RaceLive sessions */
body[data-page="race_live"] .rl-lobby-shell{padding:18px 14px 40px !important;max-width:1880px !important;}
body[data-page="race_live"] .rl-lobby-panel{background:transparent !important;border:0 !important;box-shadow:none !important;}
body[data-page="race_live"] .rl-lobby-head{padding:22px !important;margin-bottom:12px !important;}
body[data-page="race_live"] .rl-session-list{gap:9px !important;}
body[data-page="race_live"] .rl-session-card{border-radius:11px !important;}

/* League detail */
body[data-page="league_detail"] .page-shell{max-width:1680px !important;padding:18px 14px 40px !important;}
body[data-page="league_detail"] .page-hero{margin-bottom:14px !important;padding:22px !important;}
body[data-page="league_detail"] .league-layout{gap:12px !important;}
body[data-page="league_detail"] .surface-card,
body[data-page="league_detail"] .section-card,
body[data-page="league_detail"] .stat-card{border-radius:11px !important;}

/* Event detail */
body[data-page="event_detail"] .fullwidth-wrapper{width:100% !important;margin-left:0 !important;padding:18px 14px 40px !important;}
body[data-page="event_detail"] .event-hero{margin-bottom:12px !important;padding:22px !important;}
body[data-page="event_detail"] .event-card{border-radius:11px !important;background:linear-gradient(180deg,#151821,#11131a) !important;border:1px solid var(--srh3-line) !important;}

/* Team detail */
body[data-page="team_profile"] .tp-page{max-width:1680px !important;margin:0 auto !important;padding:18px 14px 40px !important;}
body[data-page="team_profile"] .tp-hero{margin-bottom:14px !important;padding:22px !important;}
body[data-page="team_profile"] .tp-team-card{border-radius:12px !important;}

/* Replay detail */
body[data-page="replay_detail"] .container-main{max-width:1500px !important;}
body[data-page="replay_detail"] .replay-title{margin:18px auto 12px !important;max-width:1200px;text-transform:uppercase;font-family:"Saira Condensed","Saira",sans-serif !important;font-weight:900 !important;}
body[data-page="replay_detail"] .replay-detail{max-width:1200px !important;border-top:2px solid rgba(255,90,0,.45) !important;}
body[data-page="replay_detail"] .info-box,
body[data-page="replay_detail"] .replay-description-box,
body[data-page="replay_detail"] .replay-meta-box{border-radius:9px !important;background:#0f1118 !important;border:1px solid var(--srh3-line) !important;}

/* Recruitment */
body[data-page="recruitment_home"] .recruitment-page{max-width:1880px !important;margin:0 auto !important;padding:18px 14px 40px !important;}
body[data-page="recruitment_home"] .recruitment-hero{border-radius:14px !important;margin-bottom:14px !important;}
body[data-page="recruitment_home"] .recruitment-card{border-radius:11px !important;}

/* Profile */
body[data-page="my_account"] .profile-page,
body[data-page="my_account_user"] .profile-page{max-width:1680px !important;padding:18px 14px 42px !important;}
body[data-page="my_account"] .profile-card,
body[data-page="my_account"] .profile-section,
body[data-page="my_account_user"] .profile-card,
body[data-page="my_account_user"] .profile-section{border-radius:12px !important;}

/* About / Contact / Premium keep their unique content, adopt shell geometry */
body[data-page="about"] .about-srh-page{padding:18px 14px 42px !important;}
body[data-page="about"] .about-hero-main,
body[data-page="about"] .about-side-panel,
body[data-page="about"] .about-card,
body[data-page="about"] .about-timeline,
body[data-page="about"] .about-quote,
body[data-page="about"] .about-final{border-radius:12px !important;border:1px solid var(--srh3-line) !important;background:linear-gradient(180deg,#151821,#11131a) !important;}
body[data-page="contact"] .contact-page{padding:18px 14px 42px !important;background:transparent !important;}
body[data-page="contact"] .contact-wrap{width:min(1500px,100%) !important;}
body[data-page="premium"] .premium-page{padding:18px 14px 42px !important;max-width:1680px !important;}

/* LMU schedule */
body[data-page="lmu_schedule"] .lmu-page{padding-top:18px !important;}
body[data-page="lmu_schedule"] .lmu-page-hero{border-radius:14px !important;}
body[data-page="lmu_schedule"] .lmu-card{border-radius:10px !important;background:#11131a !important;border:1px solid var(--srh3-line) !important;}
body[data-page="lmu_schedule"] .lmu-toolbar{border-bottom:1px solid var(--srh3-line) !important;}

/* Messages / support: retain layout, align panels */
body[data-page="messages_home"] .messages-page,
body[data-page="support_home"] .messages-layout{max-width:1880px;margin:0 auto;}
body[data-page="messages_home"] .messages-sidebar,
body[data-page="messages_home"] .messages-main,
body[data-page="support_home"] .messages-sidebar,
body[data-page="support_home"] .support-main{background:#11131a !important;border-color:var(--srh3-line) !important;}

/* responsive harmony */
@media(max-width:1100px){
  body[data-page="events"] .events-showcase-grid{grid-template-columns:1fr !important;}
  body[data-page="league_detail"] .league-layout{grid-template-columns:1fr !important;}
}

@media(max-width:720px){
  body[data-page="events"] .events-page-v2,
  body[data-page="leagues"] .page-shell,
  body[data-page="teams_list"] .teams-page,
  body[data-page="replays"] .replays-page,
  body[data-page="streams_home"] .streams-page,
  body[data-page="divisions_home"] .div-page,
  body[data-page="hotlaps_dashboard"] .hl-dash,
  body[data-page="race_live"] .rl-lobby-shell,
  body[data-page="recruitment_home"] .recruitment-page,
  body[data-page="team_profile"] .tp-page,
  body[data-page="event_detail"] .fullwidth-wrapper{
    padding-left:8px !important;
    padding-right:8px !important;
  }
  body[data-page="events"] .events-showcase,
  body[data-page="leagues"] .page-hero,
  body[data-page="teams_list"] .teams-hero,
  body[data-page="replays"] .replays-hero,
  body[data-page="streams_home"] .streams-head,
  body[data-page="divisions_home"] .div-hero,
  body[data-page="hotlaps_dashboard"] .hl-hero,
  body[data-page="race_live"] .rl-lobby-head{
    border-radius:11px !important;
  }
}

/* Hotlaps records / live chronos */
body[data-page="hotlaps_records"] .rec-shell,
body[data-page="live_chronos"] .lc-shell{
  width:100% !important;
  max-width:1880px !important;
  margin:0 auto !important;
  padding:18px 14px 42px !important;
}
body[data-page="hotlaps_records"] .rec-filters-wrap,
body[data-page="live_chronos"] .lc-filters-wrap,
body[data-page="hotlaps_records"] .rec-table-wrap,
body[data-page="live_chronos"] .lc-table-wrap{
  border-radius:12px !important;
  border:1px solid var(--srh3-line) !important;
  background:linear-gradient(180deg,#151821,#11131a) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.20) !important;
}
body[data-page="hotlaps_records"] .rec-submit-btn,
body[data-page="live_chronos"] .lc-submit-btn{
  border-radius:7px !important;
  background:var(--srh3-orange) !important;
  font-family:"Saira Condensed","Saira",sans-serif !important;
  font-weight:900 !important;
  text-transform:uppercase;
}

/* Public members */
body[data-page="public_members_list"] .pm-page,
body[data-page="public_member_profile"] .mp-page{
  max-width:1880px !important;
  margin:0 auto !important;
  padding:18px 14px 42px !important;
}
body[data-page="public_members_list"] .pm-hero{
  border-radius:14px !important;
  border:1px solid var(--srh3-line) !important;
  border-top:2px solid rgba(255,90,0,.48) !important;
  background:radial-gradient(circle at 88% 10%,rgba(255,90,0,.16),transparent 28%),linear-gradient(180deg,#151821,#11131a) !important;
  box-shadow:var(--srh3-shadow) !important;
}
body[data-page="public_members_list"] .pm-title,
body[data-page="public_member_profile"] .mp-section-title,
body[data-page="public_member_profile"] .mp-username{
  font-family:"Saira Condensed","Saira",sans-serif !important;
  font-weight:900 !important;
}
body[data-page="public_members_list"] .pm-badge{
  border-radius:6px !important;
  background:rgba(255,90,0,.10) !important;
  border:1px solid rgba(255,90,0,.20) !important;
  color:var(--srh3-orange-2) !important;
}
body[data-page="public_members_list"] .pm-toolbar,
body[data-page="public_members_list"] .pm-card,
body[data-page="public_member_profile"] .mp-side-card,
body[data-page="public_member_profile"] .mp-main-card,
body[data-page="public_member_profile"] .mp-section-card,
body[data-page="public_member_profile"] .mp-stat,
body[data-page="public_member_profile"] .mp-team-box,
body[data-page="public_member_profile"] .mp-event-card{
  border-radius:12px !important;
  background:linear-gradient(180deg,#151821,#11131a) !important;
  border:1px solid var(--srh3-line) !important;
  box-shadow:0 12px 28px rgba(0,0,0,.18) !important;
}
body[data-page="public_members_list"] .pm-card:hover{
  border-color:rgba(255,90,0,.42) !important;
  transform:translateY(-3px) !important;
}

/* Edit profile */
body[data-page="edit_my_account"] .edit-profile-container{
  max-width:1500px !important;
  margin:18px auto 42px !important;
  padding:18px !important;
  border-radius:14px !important;
  border:1px solid var(--srh3-line) !important;
  border-top:2px solid rgba(255,90,0,.48) !important;
  background:linear-gradient(180deg,#151821,#11131a) !important;
  box-shadow:var(--srh3-shadow) !important;
}
body[data-page="edit_my_account"] .avatar-section,
body[data-page="edit_my_account"] .info-section{
  border-radius:11px !important;
  border:1px solid var(--srh3-line) !important;
  background:#0f1118 !important;
}

/* Signup */
body[data-page="signup"] .shell{
  max-width:1500px !important;
  margin:18px auto 42px !important;
  border-radius:14px !important;
  overflow:hidden !important;
  border:1px solid var(--srh3-line) !important;
  border-top:2px solid rgba(255,90,0,.48) !important;
  box-shadow:var(--srh3-shadow) !important;
}

/* Messages */
body[data-page="messages_home"] .messages-page{
  max-width:1880px !important;
  margin:0 auto !important;
  padding:18px 14px 42px !important;
}
body[data-page="messages_home"] .messages-layout,
body[data-page="messages_home"] .messages-sidebar,
body[data-page="messages_home"] .messages-main,
body[data-page="messages_home"] .chat-panel,
body[data-page="messages_home"] .private-panel{
  border-color:var(--srh3-line) !important;
}

/* Common orange active states */
body[data-page] .active:not(.navbar):not(.nav-links),
body[data-page] .is-active{
  --srh-active-orange:var(--srh3-orange);
}


/* ============================================================
   SimRace Hub — Public UI Compact/Wide v3.1
   Same visual width and density as HOME v2.5.x
   ============================================================ */
:root{
  --srh-page-max:1880px;
  --srh-page-gutter:14px;
  --srh-page-gap:10px;
}

/* The old default parent was 1200px. Public pages now use the same
   effective canvas as the home. Admin/manage screens keep their own layout. */
body[data-page]:not([data-page=""]):not([data-page="home"]):not([data-page^="admin"]):not([data-page^="manage_"])
main.content > .container-main,
body[data-page]:not([data-page=""]):not([data-page="home"]):not([data-page^="admin"]):not([data-page^="manage_"])
main.content > .container-main--full{
  width:100% !important;
  max-width:100% !important;
  padding-left:var(--srh-page-gutter) !important;
  padding-right:var(--srh-page-gutter) !important;
}

/* Main public shells: match the home's 1880px canvas and compact gutters. */
body[data-page] :is(
  .events-page-v2,.events-page,.page-shell,.teams-page,.replays-page,.streams-page,
  .watch-page,.div-page,.hl-dash,.hl-page,.msr-shell,.lc-shell,.rec-shell,
  .rl-lobby-shell,.rl-shell,.lmu-page,.recruitment-page,.recruitment-detail-page,
  .about-srh-page,.contact-page,.premium-page,.profile-page,.edit-profile-container,
  .tp-page,.replay-detail,.event-editor-page,.create-league-page,.add-replay-page,
  .user-replays-page,.bridge-download-page,.donation-shell,.messages-page,
  .cookie-page,.privacy-page,.terms-page,.results-page
){
  width:100% !important;
  max-width:var(--srh-page-max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-top:10px !important;
  padding-left:0 !important;
  padding-right:0 !important;
  padding-bottom:24px !important;
}

/* Detail pages without a dedicated outer shell still fill the same canvas. */
body[data-page] :is(.event-detail-grid,.contact-grid,.profile-layout,.recruitment-detail-card){
  width:100% !important;
  max-width:none !important;
}

/* Compact heroes — same height philosophy as the home. */
body[data-page] :is(
  .events-showcase,.page-hero,.teams-hero,.replays-hero,.streams-head,.div-hero,
  .hl-hero,.rl-lobby-head,.event-hero,.tp-hero,.recruitment-hero,.contact-hero,
  .lmu-page-hero
){
  min-height:0 !important;
  margin-top:0 !important;
  margin-bottom:12px !important;
  border-radius:14px !important;
}
body[data-page] :is(
  .page-hero,.teams-hero,.replays-hero,.streams-head,.div-hero,.hl-hero,
  .rl-lobby-head,.event-hero,.tp-hero,.recruitment-hero,.contact-hero
){
  padding:16px 18px !important;
}
body[data-page] .events-showcase-grid{
  padding:14px 16px !important;
  gap:12px !important;
}
body[data-page] .events-showcase-main{
  padding:6px 4px !important;
}
body[data-page] .page-hero-content,
body[data-page] .lmu-page-hero-content{
  padding:0 !important;
}
body[data-page] :is(.events-showcase-title,.page-title,.teams-hero h1,.replays-hero h1,.streams-title,.div-hero h1,.hl-hero h2,.rl-lobby-title,.contact-hero h1,.lmu-page-hero h1){
  font-size:clamp(1.85rem,2.8vw,3rem) !important;
  line-height:.94 !important;
  margin-top:6px !important;
  margin-bottom:8px !important;
}
body[data-page] :is(.page-subtitle,.events-showcase-text,.streams-subtitle,.div-hero p,.contact-hero p){
  font-size:.84rem !important;
  line-height:1.45 !important;
  margin-top:6px !important;
}
body[data-page] :is(.events-showcase-stats,.page-hero-stats,.hero-stats,.streams-meta){
  margin-top:10px !important;
  gap:8px !important;
}
body[data-page] :is(.events-stat-card,.hero-stat,.stat-card){
  padding:9px 11px !important;
  border-radius:10px !important;
}

/* Section rhythm. */
body[data-page] :is(
  .events-topbar,.section-head,.section-header,.streams-section,.div-section,
  .recruitment-section,.content-section
){
  margin-top:10px !important;
  margin-bottom:10px !important;
}
body[data-page] :is(.events-section-title,.section-title,.streams-section-title){
  font-size:1.2rem !important;
  margin-bottom:8px !important;
}

/* Filters/toolbars: less vertical space. */
body[data-page] :is(.events-filterbar-v2,.filters-panel,.toolbar-card,.lmu-panel){
  padding:9px 10px !important;
  margin-bottom:10px !important;
  border-radius:10px !important;
}
body[data-page] :is(.events-filters-v2,.filters-grid,.toolbar-row,.lmu-filters){
  gap:7px !important;
}
body[data-page] :is(.events-filterbar-v2 input,.events-filterbar-v2 select,.filter-input,.filter-select,.search-input){
  min-height:36px !important;
  height:36px !important;
  padding-top:0 !important;
  padding-bottom:0 !important;
}

/* Dense card grids on large screens. */
body[data-page="events"] .events-grid-v2{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:10px !important;
}
body[data-page="leagues"] .leagues-grid,
body[data-page="teams_list"] :is(.teams-grid,.teams-list-grid),
body[data-page="replays"] .replays-grid,
body[data-page="streams_home"] :is(.stream-grid-standard,.stream-grid-discovery,.stream-grid-youtube){
  gap:10px !important;
}
@media (min-width:1500px){
  body[data-page="leagues"] .leagues-grid,
  body[data-page="teams_list"] :is(.teams-grid,.teams-list-grid),
  body[data-page="replays"] .replays-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  }
}

/* Event list cards are intentionally much shorter than before. */
body[data-page="events"] .event-card-v2{
  grid-template-rows:190px auto !important;
  border-radius:12px !important;
}
body[data-page="events"] .event-body{
  gap:8px !important;
  padding:10px 11px !important;
}
body[data-page="events"] .event-desc{
  min-height:0 !important;
  font-size:.78rem !important;
  line-height:1.4 !important;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
body[data-page="events"] :is(.event-info-panel,.events-side-card){
  padding:9px 10px !important;
  border-radius:10px !important;
}
body[data-page="events"] .event-main-title{
  font-size:.92rem !important;
}
body[data-page="events"] .event-track-pill,
body[data-page="events"] .event-organizer-badge-v2{
  padding:6px 8px !important;
  border-radius:8px !important;
}

/* General cards/panels: smaller radii, padding and gaps. */
body[data-page] :is(
  .league-card,.team-card,.replay-card,.stream-card-grid,.stream-card-discovery,
  .stream-card-youtube,.div-rules,.div-section,.hl-card,.rl-session-card,
  .surface-card,.section-card,.tp-team-card,.recruitment-card,.profile-card,
  .profile-section,.replay-detail
){
  border-radius:10px !important;
}
body[data-page] :is(
  .league-card-content,.team-card-body,.replay-card-body,.stream-card-grid__body,
  .div-section,.hl-card,.surface-card,.section-card,.recruitment-card,.profile-section
){
  padding:10px 12px !important;
}
body[data-page] :is(.cards-grid,.grid,.content-grid,.profile-grid,.stats-grid){
  gap:10px !important;
}

/* Streams: reduce oversized header/featured spacing while keeping video usable. */
body[data-page="streams_home"] .streams-page{
  padding-top:10px !important;
}
body[data-page="streams_home"] .streams-head{
  min-height:0 !important;
  padding:14px 16px !important;
  margin-bottom:12px !important;
}
body[data-page="streams_home"] .featured-player-layout{
  gap:10px !important;
  grid-template-columns:minmax(0,1.7fr) 330px !important;
}
body[data-page="streams_home"] .streams-section{
  margin-top:14px !important;
}
body[data-page="streams_home"] .stream-card-grid__body{
  padding:9px !important;
}

/* Divisions / hotlaps / RaceLive tables: home-like density. */
body[data-page] table th,
body[data-page] table td{
  padding:7px 9px !important;
  line-height:1.2 !important;
}
body[data-page] table th{
  font-size:.7rem !important;
}
body[data-page] table td{
  font-size:.76rem !important;
}
body[data-page="divisions_home"] .div-hero{
  min-height:0 !important;
  padding:16px 18px !important;
}
body[data-page="divisions_home"] .div-page{
  padding-bottom:24px !important;
}

/* Forms/profile pages: reduce oversized white space but keep readability. */
body[data-page] :is(.form-card,.form-section,.profile-card,.profile-section,.edit-section){
  margin-bottom:10px !important;
}
body[data-page] :is(.form-card,.form-section,.edit-section){
  padding:12px 14px !important;
}
body[data-page] form :is(input:not([type="checkbox"]):not([type="radio"]),select,textarea){
  min-height:36px;
}

/* Responsive: 2 columns before mobile, then 1. */
@media (max-width:1450px){
  body[data-page="events"] .events-grid-v2{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
}
@media (max-width:1120px){
  body[data-page="events"] .events-grid-v2,
  body[data-page="leagues"] .leagues-grid,
  body[data-page="teams_list"] :is(.teams-grid,.teams-list-grid),
  body[data-page="replays"] .replays-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
  body[data-page="streams_home"] .featured-player-layout{
    grid-template-columns:1fr !important;
  }
}
@media (max-width:720px){
  :root{--srh-page-gutter:8px;}
  body[data-page] :is(
    .events-page-v2,.events-page,.page-shell,.teams-page,.replays-page,.streams-page,
    .watch-page,.div-page,.hl-dash,.hl-page,.msr-shell,.lc-shell,.rec-shell,
    .rl-lobby-shell,.rl-shell,.lmu-page,.recruitment-page,.about-srh-page,
    .contact-page,.premium-page,.profile-page,.edit-profile-container,.tp-page
  ){
    padding-top:8px !important;
    padding-bottom:16px !important;
  }
  body[data-page="events"] .events-grid-v2,
  body[data-page="leagues"] .leagues-grid,
  body[data-page="teams_list"] :is(.teams-grid,.teams-list-grid),
  body[data-page="replays"] .replays-grid{
    grid-template-columns:1fr !important;
  }
  body[data-page="events"] .event-card-v2{
    grid-template-rows:170px auto !important;
  }
}
