/* ============================================================
   OSSTA — Shared Styles
   Edit this file to change colours and fonts site-wide.
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@400;600;700;800&family=Lato:wght@300;400;700&display=swap');

:root {
  --navy:       #0d2b4e;
  --navy-dark:  #071a30;
  --blue:       #1565c0;
  --blue-mid:   #1976d2;
  --blue-light: #e3f0ff;
	--pale-blue:  #90caf9;
  --sky:        #42a5f5;
  --chalk:      #f5f8fc;
  --accent:     #f5a623;
  --accent-dark:#d4871a;
}

/* ── BASE ── */
body { font-family: 'Lato', sans-serif; background: var(--chalk); color: #1a1a1a; }
h1,h2,h3,h4,h5,h6,.display-font { font-family: 'Barlow Condensed', sans-serif; letter-spacing: 0.02em; }

/* ── NAVBAR ── */
.navbar { background: var(--navy-dark); border-bottom: 4px solid var(--accent); }
.navbar-brand { font-family: 'Barlow Condensed', sans-serif; font-size: 1.5rem; font-weight: 800; color: var(--accent) !important; letter-spacing: 0.05em; display: flex; align-items: center; gap: 0.45rem; }
.brand-logo { height: 28px; width: 28px; object-fit: contain; filter: drop-shadow(0 1px 3px rgba(0,0,0,0.4)); flex-shrink: 0; }
.navbar .nav-link { color: #d9ecfd !important; font-weight: 600; }
.navbar .nav-link:hover { color: var(--accent) !important; }
.navbar .nav-link.active { color: var(--accent) !important; }
.navbar .dropdown-menu { background: var(--navy-dark); border: 1px solid #1a3a5a; }
.navbar .dropdown-item { color: #d9ecfd; }
.navbar .dropdown-item:hover { background: rgba(255,255,255,0.1); color: var(--accent); }
.navbar .dropdown-divider { border-color: #1a3a5a; }
.navbar-toggler { border-color: transparent; }
.navbar-toggler-icon { background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(217,236,253,0.9)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"); }

/* ── HERO ── */
.hero {
  background: linear-gradient(135deg, var(--navy-dark) 0%, var(--blue) 55%, var(--sky) 100%);
  position: relative; overflow: hidden; padding: 2.75rem 0 2.25rem;
  border-bottom: 5px solid var(--accent);
}
.hero::before {
  content: ''; position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 60px, rgba(255,255,255,0.03) 60px, rgba(255,255,255,0.03) 61px);
}
.hero .container { position: relative; }
.hero-title-row { display: flex; align-items: center; justify-content: center; gap: 0.85rem; white-space: nowrap; }
.hero-logo { height: 65px; width: 65px; object-fit: contain; filter: drop-shadow(0 2px 8px rgba(0,0,0,0.5)); flex-shrink: 0; }
.hero h1 { font-size: clamp(1.1rem, 3vw, 2.1rem); font-weight: 900; color: #fff; letter-spacing: 0.04em; line-height: 1; text-shadow: 0 2px 8px rgba(0,0,0,0.3); white-space: nowrap; margin: 0; }
.hero p { color: rgba(255,255,255,0.9); font-size: 1.05rem; margin: 0; }
.hero-compact { padding: 1.25rem 0 1rem; }
.hero-compact h1 { font-size: clamp(1.4rem, 3vw, 2rem); }
.hero-compact p { font-size: 0.95rem; }

/* Submit tournament page — slightly smaller hero */
.hero-submit { padding: 2.5rem 0 2rem; }
.hero-submit h1 { font-size: clamp(1.8rem, 4vw, 2.8rem); }

/* Login page layout — only login.ejs uses a <main> wrapper */
.login-layout { min-height: 100vh; display: flex; flex-direction: column; }
.login-layout main { flex: 1; display: flex; align-items: center; justify-content: center; padding: 3rem 1rem; }

/* ── CARDS ── */
.card { border: none; border-radius: 0.5rem; box-shadow: 0 2px 12px rgba(0,0,0,0.07); }
.card-header.grass { background: var(--blue-mid); color: #fff; font-family: 'Barlow Condensed', sans-serif; font-size: 1.1rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.card-header.night { background: var(--navy-dark); color: var(--accent); font-family: 'Barlow Condensed', sans-serif; font-size: 1.1rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }

/* ── DIVISION / GENDER BADGES ── */
.badge-u9  { background: #7b1fa2; }
.badge-u11 { background: #1565c0; }
.badge-u13 { background: #2e7d32; }
.badge-u15 { background: #e65100; }
.badge-u17 { background: #c62828; }
.badge-u21 { background: #263238; }
.badge-u19 { background: #4527a0; }
.badge-u24 { background: #37474f; }
.badge-girls { background: #ad1457; }
.badge-boys  { background: #0277bd; }
.badge-mixed { background: #00695c; }
.badge-provincial { background: #b8860b; color: #fff; }

/* ── TOURNAMENT CARD ── */
.tournament-card { border-left: 5px solid var(--blue-mid); transition: transform 0.15s, box-shadow 0.15s; }
.tournament-card.provincial { border-left-color: #b8860b; }
.tournament-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.12); }

/* ── BUTTONS ── */
.btn-navy { background: var(--navy); color: #fff; border: none; font-family: 'Barlow Condensed', sans-serif; font-weight: 700; letter-spacing: 0.05em; }
.btn-navy:hover { background: var(--navy-dark); color: #fff; }
.btn-navy:disabled { opacity: 0.6; cursor: not-allowed; }
.btn-accent { background: var(--accent); color: var(--navy-dark); border: none; font-family: 'Barlow Condensed', sans-serif; font-weight: 800; }
.btn-accent:hover { background: var(--accent-dark); color: var(--navy-dark); }
.btn-accent:disabled { opacity: 0.6; cursor: not-allowed; }

/* ── FILTER BAR ── */
.filter-bar { background: linear-gradient(135deg, var(--navy-dark) 0%, var(--blue) 45%, var(--sky) 100%); padding: 1rem; border-radius: 0.5rem; }
.filter-bar label { color: #e3f0ff; font-size: 0.85rem; font-weight: 700; }

/* ── SECTION HEADER ── */
.section-header { border-left: 5px solid var(--accent); padding-left: 1rem; margin-bottom: 1.5rem; }
.section-header h2 { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 2rem; margin: 0; color: var(--navy); }
.section-header p { margin: 0.2rem 0 0; color: #666; font-size: 0.88rem; }

/* ── ANNOUNCEMENTS ── */
.announcement { background: #fff; border-left: 5px solid var(--accent); border-radius: 0 0.5rem 0.5rem 0; padding: 1rem 1.25rem; margin-bottom: 1rem; overflow: hidden; }
.announcement-sticky { border-left-color: #e53935; background: #fff9f9; }
.announcement .ann-date { font-size: 0.78rem; color: #888; text-transform: uppercase; letter-spacing: 0.05em; }
.ann-block-text { overflow-wrap: break-word; word-break: break-word; min-width: 0; white-space: normal; }
.ann-block-text h1 { font-family:'Barlow Condensed',sans-serif; font-size:2rem; font-weight:800; color:var(--navy); margin-bottom:0.35rem; letter-spacing:0.02em; }
.ann-block-text h2 { font-family:'Barlow Condensed',sans-serif; font-size:1.05rem; font-weight:700; color:var(--navy); margin-bottom:0.3rem; }
.ann-block-text h3 { font-family:'Barlow Condensed',sans-serif; font-size:0.95rem; font-weight:700; color:var(--navy); margin-bottom:0.25rem; }
.ann-block-text p  { font-size:0.88rem; line-height:1.65; color:#333; margin-bottom:0.45rem; white-space: normal; overflow-wrap: break-word; word-break: break-word; }
.ann-block-text ul, .ann-block-text ol { padding-left:1.3rem; margin-bottom:0.45rem; font-size:0.88rem; line-height:1.65; color:#333; }
.ann-block-text strong { font-weight:700; color:#111; }
.ann-block-text em { font-style:italic; }
.ann-block-text a  { color:var(--blue-mid); }
.ann-block-text a:hover { text-decoration:underline; }
.ann-block-text *:last-child { margin-bottom:0; }
.ann-block-image { margin-bottom:0.65rem; }
.ann-block-image img { width:100%; border-radius:0.35rem; display:block; }
.ann-block-image:last-child { margin-bottom:0; }

/* ── STATUS PILLS ── */
.status-pill-pending      { background: #fff3cd; color: #856404; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.status-pill-provisional  { background: #cfe2ff; color: #084298; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.status-pill-approved     { background: #d1e7dd; color: #0f5132; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.status-pill-rejected     { background: #f8d7da; color: #842029; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.status-pill-revoked      { background: #e2d9f3; color: #4a235a; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.status-pill-inactive     { background: #e2e3e5; color: #41464b; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }
.status-pill-cancelled    { background: #f8d7da; color: #842029; border-radius: 20px; padding: 0.2rem 0.75rem; font-size: 0.8rem; font-weight: 700; white-space: nowrap; }

/* ── FORM STYLES ── */
.section-label { font-family: 'Barlow Condensed', sans-serif; font-size: 1rem; font-weight: 700; color: var(--navy); text-transform: uppercase; letter-spacing: 0.08em; border-bottom: 2px solid var(--accent); padding-bottom: 0.25rem; margin-bottom: 1rem; margin-top: 0.5rem; }
.form-check-input:checked { background-color: var(--blue-mid); border-color: var(--blue-mid); }
.form-check-input:focus { box-shadow: 0 0 0 0.2rem rgba(25,118,210,0.25); }
.invalid-feedback { font-size: 0.8rem; }
.checkbox-group-error { color: #dc3545; font-size: 0.8rem; display: none; }
.checkbox-group-error.show { display: block; }
.date-error { color: #dc3545; font-size: 0.8rem; display: none; }
.date-error.show { display: block; }
.opt { color: #999; font-weight: 400; font-size: 0.85em; }
.alert-server-error { background: #f8d7da; border: 1px solid #f5c2c7; color: #842029; border-radius: 0.4rem; padding: 0.75rem 1rem; font-size: 0.9rem; }

/* ── SPINNER ── */
.spinner-border { color: var(--blue-mid); }

/* ── LOADING SKELETON ── */
.skeleton { background: linear-gradient(90deg, #dce8f5 25%, #eaf2fb 50%, #dce8f5 75%); background-size: 200% 100%; animation: shimmer 1.2s infinite; border-radius: 0.3rem; height: 1rem; }
@keyframes shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

/* ── SUCCESS BOX ── */
.success-box { text-align: center; padding: 2.5rem 1rem; }
.success-box .success-icon { font-size: 4rem; line-height: 1; margin-bottom: 1rem; }
.success-box h3 { font-family: 'Barlow Condensed', sans-serif; font-size: 2rem; color: var(--navy); }

/* ── MEMBER DASHBOARD ── */
.league-detail { display: flex; gap: 0.5rem; margin-bottom: 0.4rem; font-size: 0.9rem; }
.league-detail .label { color: #666; min-width: 80px; }
.league-detail .value { color: #1a1a1a; font-weight: 600; }

/* ── FOOTER ── */
footer { background: var(--navy-dark); color: #7aaed4; padding: 0.9rem 0; margin-top: 2rem; border-top: 3px solid var(--accent); }
footer a { color: var(--accent); text-decoration: none; }

/* ── SIDEBAR (admin panel + dashboard) ── */
.sidebar-wrap { display: flex; min-height: 100vh; }
.sidebar { width: 220px; min-width: 220px; background: var(--navy-dark); display: flex; flex-direction: column; padding: 1.5rem 0.75rem; position: sticky; top: 0; height: 100vh; overflow-y: auto; overflow-x: hidden; transition: width 0.22s ease, min-width 0.22s ease, padding 0.22s ease; }
.sidebar.collapsed { width: 54px; min-width: 54px; padding: 1.5rem 0.35rem; }
.sidebar-header { display: flex; align-items: center; gap: 0.4rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid #1a3a5a; min-width: 0; }
.sidebar-toggle { background: none; border: none; color: #d9ecfd; cursor: pointer; font-size: 1.6rem; padding: 0.2rem 0.4rem; border-radius: 0.3rem; transition: color 0.15s; line-height: 1; flex-shrink: 0; margin-left: auto; }
.sidebar-toggle:hover { color: var(--accent); background: rgba(255,255,255,0.08); }
.sidebar-brand { font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1.1rem; color: var(--accent); letter-spacing: 0.05em; transition: opacity 0.15s; white-space: nowrap; overflow: hidden; display: flex; align-items: center; gap: 0.4rem; }
.sidebar-brand small { display: none; }
a.sidebar-brand { text-decoration: none; }
a.sidebar-brand:hover { color: #fff; }
.sidebar.collapsed .sidebar-header { justify-content: center; border-bottom: 1px solid #1a3a5a; padding-bottom: 0.5rem; margin-bottom: 1rem; }
.sidebar.collapsed .sidebar-brand { opacity: 0; pointer-events: none; width: 0; flex: 0; padding: 0; margin: 0; }
.sidebar.collapsed .sidebar-toggle { margin-left: 0; }
.sidebar .nav-link { color: #d9ecfd; font-family: 'Barlow Condensed', sans-serif; font-size: 1rem; font-weight: 600; letter-spacing: 0.04em; padding: 0.5rem 0.75rem; border-radius: 0.3rem; margin-bottom: 0.15rem; display: flex; align-items: center; gap: 0.5rem; text-decoration: none; white-space: nowrap; overflow: hidden; }
.sidebar .nav-link:hover { background: rgba(255,255,255,0.08); color: var(--accent); }
.sidebar .nav-link.active { background: rgba(255,255,255,0.12); color: var(--accent); }
.sidebar.collapsed .nav-link { padding: 0.5rem; justify-content: center; }
.sidebar.collapsed .nav-link .nav-label { display: none; }
.sidebar.collapsed .nav-link .badge { display: none; }
.sidebar.collapsed .nav-link span:first-child { font-size: 1.2rem; background: rgba(25,118,210,0.88); border-radius: 0.4rem; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; }
.sidebar .nav-link span:first-child { font-size: 1.1rem; background: rgba(25,118,210,0.88); border-radius: 0.4rem; width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sidebar-footer { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid #1a3a5a; }
.sidebar-user-card { background: rgba(255,255,255,0.06); border-radius: 0.4rem; padding: 0.6rem 0.75rem; display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.5rem; overflow: hidden; }
.sidebar-avatar { width: 34px; height: 34px; border-radius: 50%; background: linear-gradient(135deg, #1976d2, #0d47a1); display: flex; align-items: center; justify-content: center; font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 1rem; color: #fff; flex-shrink: 0; }
.sidebar-user-info { min-width: 0; }
.sidebar-user-name { color: #d9ecfd; font-family: 'Barlow Condensed', sans-serif; font-size: 0.95rem; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-user-role { color: #f5a623; font-size: 0.7rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.06em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sidebar-footer-links { display: flex; gap: 0.35rem; }
.sidebar-footer-links a { flex: 1; text-align: center; color: #7aaed4; font-family: 'Barlow Condensed', sans-serif; font-size: 0.82rem; font-weight: 600; letter-spacing: 0.03em; padding: 0.35rem 0.25rem; border-radius: 0.3rem; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); text-decoration: none; display: flex; flex-direction: column; align-items: center; gap: 0.1rem; }
.sidebar-footer-links a:hover { background: rgba(255,255,255,0.1); color: #d9ecfd; }
.sidebar-footer-links .btn-logout { color: #e07070; background: rgba(220,80,80,0.08); border-color: rgba(220,80,80,0.2); }
.sidebar-footer-links .btn-logout:hover { background: rgba(220,80,80,0.18); color: #f08080; }
.sidebar-footer-links .btn-icon { font-size: 1rem; }
.sidebar.collapsed .sidebar-footer { padding-top: 0.5rem; }
.sidebar.collapsed .sidebar-user-card { padding: 0.4rem; justify-content: center; }
.sidebar.collapsed .sidebar-user-info { display: none; }
.sidebar.collapsed .sidebar-footer-links { flex-direction: column; gap: 0.25rem; }
.sidebar.collapsed .sidebar-footer-links a { padding: 0.4rem; }
.sidebar.collapsed .sidebar-footer-links .nav-label { display: none; }
.sidebar-main { flex: 1; overflow-y: auto; min-width: 0; }
@media (max-width: 768px) {
  .sidebar-wrap { flex-direction: column; }

  /* Mobile top bar */
  .mobile-nav-bar { display: flex; align-items: center; justify-content: space-between; background: var(--navy-dark); padding: 0.6rem 1rem; position: sticky; top: 0; z-index: 200; }
  .mobile-nav-brand { color: #d9ecfd; font-family: 'Barlow Condensed', sans-serif; font-size: 1.2rem; font-weight: 800; letter-spacing: 0.04em; text-decoration: none; display: flex; align-items: center; gap: 0.4rem; }
  .mobile-hamburger { background: none; border: none; color: #d9ecfd; font-size: 1.6rem; cursor: pointer; padding: 0.2rem 0.4rem; line-height: 1; border-radius: 0.3rem; }
  .mobile-hamburger:hover { background: rgba(255,255,255,0.1); }

  /* Sidebar becomes a slide-in drawer */
  .sidebar, .sidebar.collapsed {
    position: fixed; top: 0; left: -260px; width: 240px; min-width: 240px;
    height: 100vh; z-index: 300; flex-direction: column; flex-wrap: nowrap;
    padding: 1.25rem 0.75rem; gap: 0; transition: left 0.22s ease;
    overflow-y: auto;
  }
  .sidebar.mobile-open, .sidebar.collapsed.mobile-open { left: 0; }

  /* Overlay behind open drawer */
  .sidebar-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.45); z-index: 299; }
  .sidebar-overlay.active { display: block; }

  /* Restore normal sidebar internals */
  .sidebar-brand { display: flex; opacity: 1; pointer-events: auto; width: auto; flex: unset; padding: unset; margin: unset; }
  .sidebar-toggle { display: none; }
  .sidebar-footer { display: flex; flex-direction: column; }
  .sidebar .nav-link, .sidebar.collapsed .nav-link { font-size: 0.92rem; padding: 0.5rem 0.6rem; justify-content: flex-start; }
  .sidebar.collapsed .nav-label { display: inline; }
  .sidebar.collapsed .nav-link span:first-child { background: none; width: auto; height: auto; font-size: inherit; display: inline; border-radius: 0; }

  .sidebar-main { padding: 1rem; }
}

/* ── ADMIN PANEL ── */
.admin-tab { display: none; }
.admin-tab.active { display: block; }
.item-row { background: #fff; border-radius: 0.4rem; padding: 1rem 1.1rem; margin-bottom: 0.6rem; box-shadow: 0 1px 4px rgba(0,0,0,0.05); }
.item-title { font-family: 'Barlow Condensed', sans-serif; font-size: 1.3rem; font-weight: 700; color: var(--navy); margin-bottom: 0.15rem; }
.item-meta { font-size: 0.92rem; color: #555; }
.editable-field { border-bottom: 1px dashed transparent; cursor: text; border-radius: 0.15rem; }
.editable-field:hover { border-bottom-color: currentColor; background: rgba(128,128,128,0.12); }
.editable-empty { color: #aaa; font-style: italic; }
.filter-tabs { display: flex; gap: 0.5rem; margin-bottom: 1rem; flex-wrap: wrap; }
.filter-tab { background: #fff; border: 1px solid #b3cde8; color: #555; font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 0.9rem; padding: 0.3rem 1rem; border-radius: 20px; cursor: pointer; white-space: nowrap; }
.filter-tab:hover { border-color: var(--blue-mid); color: var(--blue-mid); }
.filter-tab.active { background: var(--blue-mid); color: #fff; border-color: var(--blue-mid); }
.filter-tab .count { background: rgba(255,255,255,0.3); border-radius: 10px; padding: 0 0.4rem; font-size: 0.78rem; margin-left: 4px; }
.filter-tab:not(.active) .count { background: #eee; color: #555; }
.member-status-description { background: #f0f6ff; border-left: 4px solid var(--blue-mid); border-radius: 0 0.35rem 0.35rem 0; padding: 0.6rem 1rem; margin-bottom: 1rem; font-size: 0.88rem; color: #2a2a2a; }
.compose-box { background: #fff; border-radius: 0.5rem; padding: 1.25rem; box-shadow: 0 2px 10px rgba(0,0,0,0.07); margin-bottom: 1.25rem; }
.compose-box textarea { border: 1px solid #b3cde8; border-radius: 0.4rem; padding: 0.6rem 0.75rem; width: 100%; font-family: 'Lato', sans-serif; font-size: 0.95rem; resize: vertical; }
.compose-box textarea:focus { outline: none; border-color: var(--blue-mid); box-shadow: 0 0 0 0.2rem rgba(25,118,210,0.2); }
@keyframes livepulse { 0%,100%{opacity:1} 50%{opacity:0.3} }
.btn-approve { background: var(--blue-mid); color: #fff; border: none; font-size: 0.82rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 0.3rem; white-space: nowrap; cursor: pointer; }
.btn-approve:hover { background: var(--blue); }
.btn-reject { background: #fff; color: #842029; border: 1px solid #f5c2c7; font-size: 0.82rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 0.3rem; white-space: nowrap; cursor: pointer; }
.btn-delete { background: #fff; color: #842029; border: 1px solid #f5c2c7; font-size: 0.78rem; padding: 0.2rem 0.6rem; border-radius: 0.3rem; white-space: nowrap; cursor: pointer; }
.btn-reject:hover, .btn-delete:hover { background: #f8d7da; }
.btn-edit { background: #fff; color: var(--navy); border: 1px solid #b3cde8; font-size: 0.82rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 0.3rem; white-space: nowrap; cursor: pointer; }
.btn-edit:hover { background: #eaf2fb; }
.btn-save { background: var(--navy); color: #fff; border: none; font-size: 0.82rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 0.3rem; white-space: nowrap; cursor: pointer; }
.btn-save:hover { background: var(--navy-dark); }
.btn-results { background: #1565c0; color: #fff; border: none; font-size: 0.82rem; font-weight: 700; padding: 0.25rem 0.75rem; border-radius: 0.3rem; white-space: nowrap; cursor: pointer; }
.btn-results:hover { background: var(--navy); }
.results-panel { display: none; background: #f0faff; border: 1px solid #9dccec; border-radius: 0.4rem; padding: 1rem 1.1rem; margin-top: 0.75rem; }
.results-panel .form-label { font-size: 0.82rem; font-weight: 700; color: var(--navy); margin-bottom: 0.2rem; }
.radmin-row { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 0.5rem; }
.radmin-place { width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 0.82rem; flex-shrink: 0; }
.radmin-1 { background: #fff8e1; color: #b8860b; border: 2px solid #f5a623; }
.radmin-2 { background: #f5f5f5; color: #666; border: 2px solid #9e9e9e; }
.radmin-3 { background: #fdf3ea; color: #8b5e3c; border: 2px solid #c07a3a; }
.radmin-n { background: #f5f8fc; color: #aaa; border: 2px solid #e0e0e0; }
.radmin-input { width: 52px; flex-shrink: 0; padding: 0.35rem 0.4rem; border: 1px solid #b3cde8; border-radius: 0.3rem; font-size: 0.88rem; text-align: center; }
.radmin-input:focus { outline: none; border-color: var(--blue-mid); box-shadow: 0 0 0 0.15rem rgba(25,118,210,0.18); }
.radmin-remove { background: none; border: none; color: #ccc; cursor: pointer; font-size: 1rem; padding: 0 0.2rem; }
.radmin-remove:hover { color: #e53935; }
.edit-panel { display: none; background: #f0f6ff; border: 1px solid #b3cde8; border-radius: 0.4rem; padding: 1rem 1.1rem; margin-top: 0.75rem; }
.edit-panel.open { display: block; }
.edit-panel .form-label { font-size: 0.82rem; font-weight: 700; color: var(--navy); margin-bottom: 0.2rem; }
.edit-panel .form-control, .edit-panel .form-select { font-size: 0.88rem; }
.edit-actions { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid #dee2e6; align-items: center; }
.comment-field { background: #fff8e6; border: 1px solid #ffe082; border-radius: 0.4rem; padding: 0.5rem 0.75rem; width: 100%; font-family: 'Lato', sans-serif; font-size: 0.88rem; resize: vertical; }
.comment-field:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 0.15rem rgba(245,166,35,0.25); }
.comment-label { font-size: 0.82rem; font-weight: 700; color: #856404; }
.comment-hint { font-size: 0.75rem; color: #999; }
.comment-display { background: #fff8e6; border-left: 3px solid var(--accent); padding: 0.4rem 0.75rem; border-radius: 0 0.3rem 0.3rem 0; margin-top: 0.5rem; font-size: 0.82rem; }
.comment-display .clabel { font-weight: 700; color: #856404; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; display: block; margin-bottom: 0.1rem; }
.toast-wrap { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 9999; display: flex; flex-direction: column; gap: 0.5rem; }
.toast-msg { background: var(--navy-dark); color: #fff; padding: 0.65rem 1.1rem; border-radius: 0.4rem; font-size: 0.88rem; box-shadow: 0 4px 16px rgba(0,0,0,0.25); animation: slideIn 0.2s ease; border-left: 4px solid var(--accent); }
.toast-msg.error { border-left-color: #dc3545; background: #1a0505; }
@keyframes slideIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
.empty-state { text-align: center; padding: 2.5rem 1rem; color: #999; }
.empty-state .empty-icon { font-size: 2.5rem; margin-bottom: 0.5rem; }

/* ── RESULTS PAGE ── */
.results-filter-bar { background: linear-gradient(135deg, var(--navy-dark) 0%, var(--blue) 45%, var(--sky) 100%); padding: 0.75rem 0; position: sticky; top: 0; z-index: 100; box-shadow: 0 2px 8px rgba(0,0,0,0.18); }
.results-filter-bar .container { display:flex; gap:0.4rem; flex-wrap:wrap; align-items:center; }
.filter-label { color:rgba(255,255,255,0.5); font-size:0.8rem; margin-right:0.25rem; white-space:nowrap; }
.filter-sep { width:1px; height:1.2rem; background:rgba(255,255,255,0.15); margin:0 0.25rem; }
.fchip { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.25); color: rgba(255,255,255,0.75); border-radius:20px; padding:0.2rem 0.85rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:0.85rem; cursor:pointer; white-space:nowrap; letter-spacing:0.04em; transition:all 0.15s; }
.fchip:hover  { background:rgba(255,255,255,0.2); color:#fff; }
.fchip.active { background:#fff; color:var(--navy); border-color:#fff; }
.results-card { background:#fff; border-radius:0.5rem; box-shadow:0 2px 14px rgba(13,43,78,0.09); margin-bottom:1.5rem; overflow:hidden; }
.results-card-header { background: var(--navy); padding:0.6rem 1.25rem; display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; flex-wrap:wrap; }
.rc-name  { font-family:'Barlow Condensed',sans-serif; font-size:1.35rem; font-weight:800; color:#fff; }
.rc-sub   { font-size:0.8rem; color:rgba(255,255,255,0.6); margin-top:0.2rem; }
.rc-host  { font-size:0.82rem; color:rgba(255,255,255,0.55); text-align:right; }
.rc-host strong { color:rgba(255,255,255,0.9); display:block; }
.results-no-standings { padding:1.25rem; color:#888; font-size:0.9rem; font-style:italic; }
.podium { display:grid; grid-template-columns:1fr 1fr 1fr 1fr; }
.podium-slot { display:flex; flex-direction:column; align-items:center; min-height:110px; padding:0.6rem 0.75rem; text-align:center; border-right:1px solid #e8f0fb; justify-content:flex-start; }
.podium-slot:last-child { border-right:none; }
.podium-slot.p1 { background:linear-gradient(180deg,#fffbee,#fff8d6); border-bottom:5px solid #f5a623; }
.podium-slot.p2 { background:#fafafa; border-bottom:5px solid #9e9e9e; }
.podium-slot.p3 { background:linear-gradient(180deg,#fdf8f2,#faede0); border-bottom:5px solid #c07a3a; }
.podium-slot.p4 { background:#f8f8f8; border-bottom:5px solid #bdbdbd; }
.podium-trophy { font-size:1.9rem; display:block; margin-bottom:0.25rem; }
.podium-rank { font-family:'Barlow Condensed',sans-serif; font-size:0.68rem; font-weight:700; letter-spacing:0.12em; text-transform:uppercase; margin-bottom:0.25rem; }
.p1 .podium-rank { color:#b8860b; }
.p2 .podium-rank { color:#888; }
.p3 .podium-rank { color:#a0622a; }
.p4 .podium-rank { color:#999; }
.podium-name { font-family:'Barlow Condensed',sans-serif; font-size:1.05rem; font-weight:800; color:var(--navy); line-height:1.2; }
.standings { padding:0.6rem 1.25rem 0.75rem; }
.standings-label { font-family:'Barlow Condensed',sans-serif; font-size:0.7rem; font-weight:700; letter-spacing:0.1em; text-transform:uppercase; color:#bbb; margin-bottom:0.35rem; }
.standings-row { display:inline-flex; align-items:center; gap:0.25rem; padding:0.25rem 0.75rem 0.25rem 0; font-size:0.88rem; }
.standings-row:last-child { border-bottom:none; }
.standings-place { text-align:center; font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:0.88rem; color:#aaa; flex-shrink:0; }
.standings-name { font-weight:700; color:var(--navy); }

/* ── GALLERY ── */
.year-nav { display:flex; gap:0.5rem; flex-wrap:wrap; margin-bottom:2rem; }
.year-chip { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:0.95rem; letter-spacing:0.05em; padding:0.35rem 1.1rem; border-radius:20px; border:2px solid #d0dff0; background:#fff; color:var(--navy); cursor:pointer; transition:all 0.15s; text-decoration:none; }
.year-chip:hover { border-color:var(--blue-mid); color:var(--blue-mid); }
.year-chip.active { background:var(--navy); border-color:var(--navy); color:#fff; }
.year-heading { display:flex; align-items:center; gap:1rem; margin-bottom:1.25rem; margin-top:2.5rem; }
.year-heading:first-of-type { margin-top:0; }
.year-heading h2 { font-size:2rem; font-weight:900; color:var(--navy); margin:0; letter-spacing:0.04em; }
.year-heading .yr-line { flex:1; height:2px; background:linear-gradient(90deg,#d0dff0,transparent); }
.year-heading .yr-count { font-size:0.8rem; color:#aaa; white-space:nowrap; }
.lightbox-viewer { background:var(--navy-dark); border-radius:0.5rem; overflow:hidden; margin-bottom:0.85rem; position:relative; }
.lb-main { width:100%; height:480px; position:relative; cursor:zoom-in; user-select:none; }
.lb-main img { width:100%; height:100%; object-fit:contain; background:var(--navy-dark); display:block; }
.lb-main .lb-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,0.2); font-size:3rem; }
.lb-controls { position:absolute; inset:0; display:flex; align-items:center; justify-content:space-between; padding:0 1rem; pointer-events:none; }
.lb-btn { width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.12); backdrop-filter:blur(4px); border:none; color:#fff; font-size:1.3rem; cursor:pointer; display:flex; align-items:center; justify-content:center; pointer-events:all; transition:background 0.15s; }
.lb-btn:hover { background:rgba(255,255,255,0.28); }
.lb-btn:disabled { opacity:0.2; cursor:default; }
.lb-info { position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(7,26,48,0.88)); padding:2.5rem 1.5rem 1.1rem; }
.lb-title { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:1.15rem; color:#fff; }
.lb-title.empty { color:rgba(255,255,255,0.3); font-style:italic; font-weight:400; }
.lb-counter { position:absolute; top:1rem; right:1rem; background:rgba(0,0,0,0.45); color:#fff; font-size:0.78rem; font-family:'Barlow Condensed',sans-serif; font-weight:700; padding:0.2rem 0.65rem; border-radius:10px; }
.thumb-strip { display:grid; grid-template-columns:repeat(auto-fill,minmax(90px,1fr)); gap:0.5rem; margin-bottom:3rem; }
.thumb-item { aspect-ratio:1; border-radius:0.3rem; overflow:hidden; cursor:pointer; border:2.5px solid transparent; transition:all 0.15s; position:relative; background:var(--navy-dark); }
.thumb-item img { width:100%; height:100%; object-fit:cover; display:block; }
.thumb-item:hover { border-color:rgba(245,166,35,0.6); }
.thumb-item.active { border-color:var(--accent); box-shadow:0 0 0 2px rgba(245,166,35,0.3); }
.lb-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.94); z-index:9999; align-items:center; justify-content:center; flex-direction:column; }
.lb-overlay.open { display:flex; }
.lb-overlay img { max-width:92vw; max-height:85vh; border-radius:0.4rem; object-fit:contain; }
.lb-overlay-close { position:fixed; top:1.25rem; right:1.75rem; background:none; border:none; color:rgba(255,255,255,0.6); font-size:2rem; cursor:pointer; line-height:1; }
.lb-overlay-close:hover { color:#fff; }
.lb-overlay-caption { color:rgba(255,255,255,0.6); font-family:'Barlow Condensed',sans-serif; font-size:1rem; margin-top:0.75rem; text-align:center; }
.lb-overlay-nav { position:fixed; top:50%; transform:translateY(-50%); background:rgba(255,255,255,0.1); border:none; color:#fff; font-size:1.8rem; cursor:pointer; padding:0.5rem 0.9rem; border-radius:0.3rem; }
.lb-overlay-nav:hover { background:rgba(255,255,255,0.25); }
.lb-overlay-nav.prev { left:1.5rem; }
.lb-overlay-nav.next { right:1.5rem; }
.gallery-empty { text-align:center; padding:5rem 1rem; color:#aaa; }
.gallery-empty .icon { font-size:3rem; display:block; margin-bottom:1rem; }
@media (max-width:768px) {
  .lb-main { height:280px; }
  .thumb-strip { grid-template-columns:repeat(auto-fill,minmax(70px,1fr)); }
}

/* ── FAQ ── */
.faq-item { border: 1px solid #dde6f0; border-radius: 0.4rem; margin-bottom: 0.6rem; overflow: hidden; }
.faq-q { display: flex; justify-content: space-between; align-items: center; padding: 0.9rem 1.1rem; cursor: pointer; font-family: 'Barlow Condensed', sans-serif; font-size: 1.1rem; font-weight: 700; color: var(--navy); background: #f8fbff; user-select: none; gap: 1rem; border: none; width: 100%; text-align: left; }
.faq-q:hover { background: #edf4ff; }
.faq-q .chevron { font-size: 0.9rem; color: var(--blue-mid); transition: transform 0.2s; flex-shrink: 0; }
.faq-item.open .faq-q { background: var(--navy); color: #fff; }
.faq-item.open .faq-q .chevron { color: var(--accent); transform: rotate(180deg); }
.faq-a { display: none; padding: 1rem 1.1rem; background: #fff; border-top: 1px solid #dde6f0; }
.faq-item.open .faq-a { display: block; }
.faq-a .ann-block-text p { font-size: 0.92rem; line-height: 1.7; color: #333; margin-bottom: 0.5rem; }
.faq-a .ann-block-text ul, .faq-a .ann-block-text ol { padding-left: 1.4rem; font-size: 0.92rem; line-height: 1.7; color: #333; margin-bottom: 0.5rem; }
.faq-a .ann-block-text *:last-child { margin-bottom: 0; }

/* ── LOGIN ── */
.login-box { background: var(--navy-dark); color: #fff; border-radius: 0.75rem; padding: 2.5rem 2rem; width: 100%; max-width: 460px; box-shadow: 0 8px 32px rgba(0,0,0,0.25); }
.login-box h2 { color: var(--accent); font-size: 2rem; font-weight: 800; }
.login-box .subtitle { color: #8aa8c8; font-size: 0.9rem; }
.login-box label { color: #b3cde8; font-weight: 600; font-size: 0.9rem; }
.login-box .form-control { background: #071a30; border: 1px solid #1a3a5a; color: #fff; }
.login-box .form-control:focus { background: #071a30; border-color: var(--accent); color: #fff; box-shadow: 0 0 0 0.2rem rgba(245,166,35,0.25); }
.login-box .form-control::placeholder { color: #3a5a7a; }
.login-divider { border-color: #1a3a5a; }
.step-icon { font-size: 3rem; line-height: 1; }
.alert-login-error { background: #1a0a0a; border: 1px solid #5a1a1a; color: #ffaaaa; border-radius: 0.4rem; padding: 0.75rem 1rem; font-size: 0.9rem; }

/* ── DASHBOARD ── */
.admin-comment-box { background:#fff8e6; border-left:3px solid var(--accent); padding:0.5rem 0.75rem; border-radius:0 0.3rem 0.3rem 0; margin-top:0.5rem; font-size:0.85rem; }
.admin-comment-box .label { font-weight:700; color:#856404; font-size:0.75rem; text-transform:uppercase; letter-spacing:0.04em; display:block; margin-bottom:0.15rem; }
.action-panel { display:none; background:#f0f6ff; border:1px solid #b3cde8; border-radius:0.4rem; padding:1rem 1.1rem; margin-top:0.75rem; }
.action-panel.open { display:block; }
.action-panel .form-label { font-size:0.82rem; font-weight:700; color:var(--navy); margin-bottom:0.2rem; }
.panel-actions { display:flex; gap:0.5rem; flex-wrap:wrap; margin-top:0.75rem; padding-top:0.75rem; border-top:1px solid #dee2e6; }
.result-entry-row { display:flex; align-items:center; gap:0.6rem; margin-bottom:0.5rem; }
.re-place { width:30px; height:30px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:0.82rem; flex-shrink:0; }
.re-1 { background:#fff8e1; color:#b8860b; border:2px solid #f5a623; }
.re-2 { background:#f5f5f5; color:#666; border:2px solid #9e9e9e; }
.re-3 { background:#fdf3ea; color:#8b5e3c; border:2px solid #c07a3a; }
.re-n { background:#f5f8fc; color:#aaa; border:2px solid #e0e0e0; }
.re-input { width: 52px; flex-shrink: 0; padding: 0.35rem 0.4rem; border: 1px solid #b3cde8; border-radius: 0.3rem; font-family:'Lato',sans-serif; font-size: 0.88rem; color: var(--navy); text-align: center; }
.re-input:focus { outline: none; border-color: var(--blue-mid); box-shadow: 0 0 0 0.15rem rgba(25,118,210,0.18); }
.re-input::placeholder { color:#bbb; }
.re-remove { background:none; border:none; color:#ccc; cursor:pointer; font-size:1rem; padding:0 0.2rem; line-height:1; }
.re-remove:hover { color:#e53935; }
.add-placing-btn { background:none; border:1px dashed #9dccec; border-radius:0.3rem; width:100%; padding:0.35rem; color:#7ab; font-size:0.82rem; cursor:pointer; font-family:'Lato',sans-serif; margin-top:0.1rem; transition:all 0.15s; }
.add-placing-btn:hover { background:#e8f6ff; border-color:var(--blue-mid); color:var(--blue-mid); }

/* ── DASHBOARD ── */
.dash-section { /* sections shown/hidden by JS — no base styles needed */ }
.results-badge { background:#d1e7dd; color:#0f5132; border-radius:20px; padding:0.12rem 0.6rem; font-size:0.75rem; font-weight:700; white-space:nowrap; }

/* Files grid */
.files-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1rem; }
.files-cat-section { margin-bottom:2rem; }
.files-cat-heading { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem; text-transform:uppercase; letter-spacing:0.07em; color:var(--navy); border-bottom:2px solid var(--accent); padding-bottom:0.3rem; margin-bottom:1rem; }
.file-card { background:#fff; border-radius:0.5rem; box-shadow:0 2px 12px rgba(13,43,78,0.08); overflow:hidden; transition:box-shadow 0.15s,transform 0.15s; display:flex; flex-direction:column; }
.file-card:hover { box-shadow:0 5px 20px rgba(13,43,78,0.13); transform:translateY(-2px); }
.fc-head { background:var(--navy); padding:0.85rem 1rem; display:flex; align-items:center; gap:0.6rem; }
.fc-head-link { text-decoration:none; cursor:pointer; }
.fc-head-link:hover { background:#0f3a6e; }
.fc-icon { font-size:1.5rem; flex-shrink:0; }
.fc-title { font-family:'Barlow Condensed',sans-serif; font-size:1.05rem; font-weight:800; color:#fff; line-height:1.2; }
.fc-body { padding:0.85rem 1rem 1rem; flex:1; display:flex; flex-direction:column; }
.fc-desc { font-size:0.84rem; color:#555; margin-bottom:0.75rem; flex:1; }
.fc-meta { font-size:0.75rem; color:#aaa; margin-bottom:0.75rem; }
.fc-actions { display:flex; gap:0.5rem; }

/* Member directory */
.dir-toolbar { display:flex; align-items:center; justify-content:space-between; margin-bottom:0.75rem; flex-wrap:wrap; gap:0.5rem; }
.dir-count { font-size:0.85rem; color:#666; }
.dir-search { display:flex; align-items:center; gap:0.5rem; background:#fff; border:1px solid #b3cde8; border-radius:0.4rem; padding:0.45rem 0.75rem; margin-bottom:1rem; }
.dir-search input { border:none; outline:none; flex:1; font-size:0.9rem; font-family:'Lato',sans-serif; background:transparent; }
.sicon { color:#aaa; font-size:1rem; flex-shrink:0; }
.dir-actions { display:flex; gap:0.5rem; flex-wrap:wrap; }
.btn-dl { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:0.85rem; padding:0.3rem 0.85rem; border-radius:0.3rem; text-decoration:none; white-space:nowrap; cursor:pointer; }
.btn-excel { background:#1e7e34; color:#fff; }
.btn-excel:hover { background:#155d27; color:#fff; }
.btn-csv { background:#fff; color:var(--navy); border:1px solid #b3cde8; }
.btn-csv:hover { background:#eaf2fb; }
.dir-empty { text-align:center; padding:2rem; color:#999; font-size:0.9rem; }
.member-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:1rem; align-items:start; }
.member-card { background:#fff; border-radius:0.5rem; box-shadow:0 2px 10px rgba(13,43,78,0.08); overflow:hidden; }
.mc-head { background:var(--navy); padding:0.85rem 1rem; cursor:pointer; user-select:none; display:flex; justify-content:space-between; align-items:flex-start; gap:0.5rem; }
.mc-head:hover { background: #0f3a6e; }
.mc-league { font-family:'Barlow Condensed',sans-serif; font-size:1.25rem; font-weight:800; color:#fff; line-height:1.2; }
.mc-town { font-size:0.85rem; color:rgba(255,255,255,0.6); margin-top:0.2rem; }
.mc-body { padding:0.85rem 1rem; display:none; }
.member-card.open .mc-body { display:block; }
.mc-chevron { font-size:0.85rem; color:rgba(255,255,255,0.5); transition:transform 0.2s; flex-shrink:0; margin-top:0.2rem; }
.member-card.open .mc-chevron { transform:rotate(180deg); color:var(--accent); }
.mc-contact { margin-bottom:0.5rem; font-size:0.92rem; }
.mc-name { font-weight:700; color:var(--navy); }
.mc-badges { display:flex; flex-wrap:wrap; gap:0.3rem; margin-top:0.5rem; }

/* ── DASHBOARD QUESTIONNAIRE VIEW ── */
.dq-table { width: 100%; border-collapse: collapse; margin-top: 0.5rem; font-size: 0.82rem; border: 1px solid #e0eaf5; border-radius: 0.3rem; overflow: hidden; }
.q-section { background: #f8fbff; border: 1px solid #d0e4f8; border-radius: 0.4rem; padding: 1.1rem 1.25rem; margin-bottom: 1rem; }
.q-section-title { font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--navy); text-transform: uppercase; letter-spacing: 0.06em; margin-bottom: 0.75rem; }
.q-table-wrap { overflow-x: auto; }
.q-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; min-width: 540px; }
.q-table th { background: var(--navy); color: #fff; padding: 0.4rem 0.6rem; font-family: 'Barlow Condensed', sans-serif; font-weight: 700; font-size: 0.78rem; letter-spacing: 0.05em; text-align: center; }
.q-table th.div-col { background: #1565c0; text-align: left; }
.q-table td { padding: 0.3rem 0.4rem; border-bottom: 1px solid #e8f0fb; text-align: center; }
.q-table tr.na-row td { background: #f5f5f5; }
.q-table input[type="number"] { width: 60px; border: 1px solid #b3cde8; border-radius: 0.25rem; padding: 0.2rem 0.3rem; font-size: 0.82rem; text-align: center; }
.q-table input[type="number"]:focus { outline: none; border-color: var(--blue-mid); }
.q-table .na-cell { color: #bbb; font-size: 0.78rem; }
.conditional-field { display: none; }
.conditional-field.show { display: block; }
.dq-label { padding: 0.3rem 0.6rem; background: #f5f8fc; font-weight: 700; width: 40%; vertical-align: top; color: #444; }
.dq-value { padding: 0.3rem 0.6rem; color: #222; }
.dq-section-head { padding: 0.3rem 0.6rem; background: #e3effc; font-weight: 700; font-size: 0.75rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--navy); }


/* ── SHARED BLOCK EDITOR (announcements + FAQ) ── */
.block-editor-row { background:#f8fbff; border:1.5px solid #d0e4f8; border-radius:0.4rem; padding:0.6rem 0.7rem; }
.block-type-label { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:0.72rem; letter-spacing:0.06em; text-transform:uppercase; padding:0.12rem 0.45rem; border-radius:3px; color:#fff; }
.block-thumb { width:72px; height:54px; border-radius:0.3rem; overflow:hidden; background:#e8f0fb; border:1px solid #d0e4f8; display:flex; align-items:center; justify-content:center; color:#aaa; font-size:1.2rem; flex-shrink:0; }
.block-thumb img { width:100%; height:100%; object-fit:cover; }
.blocks-empty-notice { text-align:center; padding:0.75rem; color:#bbb; font-size:0.82rem; border:2px dashed #e0eaf5; border-radius:0.35rem; }
.preview-placeholder { color:#bbb; font-size:0.82rem; text-align:center; padding:1.5rem; border:2px dashed #e0eaf5; border-radius:0.4rem; }
.upload-confirm { color:#27ae60; font-size:0.75rem; }
.upload-none { color:#aaa; font-size:0.75rem; }

/* ── ADMIN HEADINGS ── */
.admin-div-heading { font-family:'Barlow Condensed',sans-serif; font-weight:800; font-size:1.05rem; color:var(--navy); border-bottom:2px solid #e8f0fb; padding-bottom:0.3rem; margin-bottom:0.6rem; }
.panel-sub-heading { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:1rem; color:var(--navy); margin-bottom:0.6rem; text-transform:uppercase; letter-spacing:0.05em; }
.table-loading-cell { text-align:center; color:#bbb; padding:2rem; }

/* ── TEAMS TAB VIEW TOGGLE & REPORTS ── */
.teams-view-toggle { display:flex; border:1px solid #b3cde8; border-radius:0.35rem; overflow:hidden; width:fit-content; margin-bottom:0.75rem; }
.teams-view-btn { padding:0.35rem 1rem; font-size:0.82rem; background:#fff; border:none; border-right:1px solid #b3cde8; cursor:pointer; color:#555; transition:background 0.1s; }
.teams-view-btn:last-child { border-right:none; }
.teams-view-btn.active { background:var(--navy); color:#fff; font-weight:700; }
.teams-view-btn:hover:not(.active) { background:#f0f5fb; }
.report-table { width:100%; border-collapse:collapse; font-size:0.85rem; }
.report-table th { text-align:left; padding:0.45rem 0.65rem; font-size:0.75rem; font-weight:700; color:#666; border-bottom:1px solid #d0e0f0; background:#f5f9ff; white-space:nowrap; }
.report-table td { padding:0.45rem 0.65rem; border-bottom:1px solid #edf3fb; vertical-align:middle; }
.report-table tr:last-child td { border-bottom:none; }
.report-table tr:hover td { background:#f5f9ff; }
.report-place-pill { display:inline-block; min-width:32px; text-align:center; padding:0.1rem 0.55rem; border-radius:20px; font-size:0.78rem; font-weight:700; }
.report-place-1 { background:#fff8e1; color:#b8860b; }
.report-place-2 { background:#f5f5f5; color:#555; }
.report-place-3 { background:#fdf3ea; color:#8b5e3c; }
.report-place-other { background:#e8f0fb; color:var(--navy); }
.report-place-5 { background:#f0f0f0; color:#888; border:1px solid #ddd; }
.report-legend { display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; padding:0.5rem 0.85rem; background:#f5f9ff; border:1px solid #d0e0f0; border-radius:0.35rem; font-size:0.82rem; }
.report-legend-label { color:#666; margin-right:0.25rem; font-weight:600; }
.report-legend-item { display:inline-flex; align-items:center; gap:0.3rem; }
.report-dl-btn { padding:0.35rem 0.85rem; font-size:0.82rem; background:#fff; border:1px solid #b3cde8; border-radius:0.3rem; color:var(--navy); cursor:pointer; font-weight:600; }
.report-dl-btn:hover { background:#e8f0fb; }

/* ── EMAIL CHANGE MODAL ── */
.psta-modal { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.55); z-index: 1050; align-items: center; justify-content: center; }
.psta-modal.show { display: flex; }
.modal-box { background: #fff; border-radius: 0.5rem; padding: 2rem; max-width: 440px; width: 90%; text-align: center; box-shadow: 0 8px 32px rgba(0,0,0,0.2); }
.modal-icon { font-size: 2.5rem; margin-bottom: 0.75rem; }
.modal-title { font-family: 'Barlow Condensed', sans-serif; font-size: 1.4rem; font-weight: 800; color: var(--navy); margin-bottom: 0.75rem; }
.modal-box p { font-size: 0.9rem; color: #444; margin-bottom: 0.75rem; }
.modal-actions { margin-top: 1.25rem; }
