
:root{
  --bg:#241d38;
  --bg-deep:#1b162b;
  --surface:#2d2543;
  --surface-2:#352c4e;
  --surface-3:#40355d;
  --lime:#d4d82a;
  --lime-bright:#e1e63b;
  --text:#faf9f5;
  --muted:#bcb5c8;
  --line:rgba(255,255,255,.12);
  --line-lime:rgba(212,216,42,.35);
  --shadow:0 18px 55px rgba(0,0,0,.30);
  --radius:18px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg-deep);
  color:var(--text);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}

.site-header{
  position:sticky;top:0;z-index:50;
  min-height:76px;
  padding:10px clamp(18px,5vw,70px);
  display:flex;align-items:center;justify-content:space-between;
  background:rgba(27,22,43,.96);
  border-bottom:1px solid var(--line);
  backdrop-filter:blur(14px);
}
.brand{display:flex;align-items:center;gap:12px}
.brand img{width:50px;height:50px;object-fit:contain;border-radius:8px}
.brand strong{display:block;font-size:17px;line-height:1;text-transform:uppercase;letter-spacing:.03em}
.brand span{display:block;margin-top:4px;font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:750}
.nav a{transition:.2s;color:#eeeaf3}
.nav a:hover{color:var(--lime)}
.login-btn{
  border:1px solid var(--line-lime);
  background:var(--lime);
  color:var(--bg-deep);
  padding:11px 18px;border-radius:999px;font-weight:850;cursor:pointer;
}
.menu-toggle{display:none;background:transparent;border:0;color:#fff;font-size:28px}

.hero{
  min-height:650px;
  position:relative;overflow:hidden;
  display:grid;grid-template-columns:1.08fr .92fr;align-items:center;
  padding:78px clamp(22px,8vw,120px);
  background:
    radial-gradient(circle at 82% 44%,rgba(212,216,42,.12),transparent 28%),
    linear-gradient(135deg,#1b162b 0%,#2a2140 55%,#211a33 100%);
}
.hero:after{
  content:"";position:absolute;right:-170px;top:-220px;
  width:620px;height:620px;border:1px solid rgba(212,216,42,.22);
  border-radius:50%;box-shadow:0 0 110px rgba(212,216,42,.08);
}
.hero-copy{position:relative;z-index:2;max-width:700px}
.eyebrow{
  margin:0 0 12px;
  color:var(--lime);
  font-size:11px;font-weight:900;
  letter-spacing:.20em;text-transform:uppercase;
}
.hero h1{
  margin:0 0 24px;
  font-size:clamp(58px,8vw,106px);
  line-height:.90;letter-spacing:-.065em;
}
.hero h1 span{color:var(--lime)}
.hero-text{max-width:570px;color:#d0cbd6;font-size:18px}
.hero-actions{display:flex;gap:12px;margin-top:30px;flex-wrap:wrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:13px 21px;
  border-radius:999px;border:0;font-size:14px;font-weight:900;
  cursor:pointer;transition:.2s;
}
.btn:hover{transform:translateY(-1px)}
.primary{background:var(--lime);color:var(--bg-deep)}
.ghost{border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.05);color:#fff}
.light{background:#fff;color:var(--bg-deep)}
.hero-mark{position:relative;z-index:2;display:flex;align-items:center;flex-direction:column}
.hero-mark .orb{
  position:absolute;width:380px;height:380px;border-radius:50%;
  background:rgba(212,216,42,.07);border:1px solid rgba(212,216,42,.18);
}
.hero-mark img{
  position:relative;width:min(350px,65vw);height:380px;
  object-fit:contain;filter:drop-shadow(0 22px 22px rgba(0,0,0,.28));
}
.hero-mark p{
  margin:0 0 0 12px;color:var(--lime);
  font-weight:900;letter-spacing:.36em;text-transform:uppercase;font-size:12px;
}

.stats{
  display:grid;grid-template-columns:repeat(3,1fr);
  background:#211a33;border-bottom:1px solid var(--line);
}
.stats div{padding:25px;text-align:center;border-right:1px solid var(--line)}
.stats div:last-child{border-right:0}
.stats strong{display:block;font-size:35px;color:var(--lime);letter-spacing:-.05em}
.stats span{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.14em;font-weight:800}

.section{padding:88px clamp(20px,7vw,100px);position:relative}
.section-heading{
  display:flex;justify-content:space-between;align-items:end;
  gap:20px;margin-bottom:32px;
}
.section-heading h2{
  margin:0;font-size:clamp(38px,5vw,64px);
  line-height:1;letter-spacing:-.055em;
}
.text-btn{
  border:0;background:transparent;color:var(--lime);
  font-weight:900;cursor:pointer;
}
.count{font-size:11px;font-weight:900;letter-spacing:.15em;color:var(--muted)}

.news-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:16px}
.news-card{
  min-height:270px;
  display:flex;flex-direction:column;
  padding:28px;border-radius:var(--radius);
  background:linear-gradient(145deg,var(--surface-2),var(--surface));
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.news-card.featured{
  background:linear-gradient(145deg,#40355d,#2d2543);
  border-color:var(--line-lime);
}
.tag{font-size:10px;font-weight:900;letter-spacing:.15em;text-transform:uppercase;color:var(--lime)}
.news-card h3{margin:35px 0 10px;font-size:25px;line-height:1.06;letter-spacing:-.03em}
.news-card p{color:var(--muted)}
.date{margin-top:auto;color:#aaa2b7;font-size:10px;font-weight:900;letter-spacing:.15em}

.teams-section{
  background:linear-gradient(180deg,#211a33,#2a2140);
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)
}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.team-card{
  min-height:220px;padding:24px;position:relative;overflow:hidden;
  border:1px solid var(--line);border-radius:18px;
  background:linear-gradient(145deg,var(--surface-2),var(--surface));
  transition:.2s;box-shadow:0 10px 30px rgba(0,0,0,.16);
}
.team-card:hover{transform:translateY(-4px);border-color:var(--line-lime);box-shadow:0 18px 40px rgba(0,0,0,.25)}
.team-card h3{margin:10px 0 8px;color:#fff}
.team-card p{color:var(--muted)}
.team-card .tag{color:var(--lime)}

.availability-section{
  padding:90px clamp(20px,7vw,100px);
  display:grid;grid-template-columns:1fr 1fr;gap:45px;
  background:#1d172d;
}
.availability-intro h2{font-size:clamp(42px,5vw,68px);line-height:.95;letter-spacing:-.055em;margin:0 0 18px}
.availability-intro p{max-width:580px;color:var(--muted)}
.availability-demo{
  padding:25px;border-radius:20px;
  background:var(--surface);border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.availability-head{display:flex;justify-content:space-between;color:var(--muted);font-size:11px;font-weight:900;letter-spacing:.1em}
.match-row{
  display:flex;justify-content:space-between;align-items:center;
  gap:20px;padding:20px 0;border-bottom:1px solid var(--line);
}
.match-row b{display:block}.match-row small{color:var(--muted)}
.status{font-size:10px;font-weight:900;letter-spacing:.1em}
.status.available{color:var(--lime)}
.status.unsure{color:#e5c65a}
.status.unavailable{color:#ef8c8c}
.demo-note{font-size:12px;color:var(--muted)}

.fixture-list{display:grid;gap:10px}
.fixture{
  display:grid;grid-template-columns:70px 1fr auto;align-items:center;
  gap:20px;padding:18px 20px;border-radius:14px;
  background:var(--surface);border:1px solid var(--line);
}
.fixture-date{text-align:center;color:var(--lime)}
.fixture-date b{display:block;font-size:27px;line-height:1}
.fixture-date span{font-size:9px;font-weight:900;letter-spacing:.12em}
.fixture strong{display:block}.fixture span{color:var(--muted);font-size:13px}
.fixture em{font-style:normal;color:var(--lime);font-size:10px;font-weight:900;letter-spacing:.12em}

.cta{
  margin:0;
  padding:70px clamp(20px,7vw,100px);
  display:flex;align-items:center;justify-content:space-between;gap:30px;
  background:var(--lime);color:var(--bg-deep);
}
.cta .eyebrow{color:var(--bg-deep)}
.cta h2{margin:0;font-size:clamp(40px,5vw,65px);line-height:.98;letter-spacing:-.055em}

footer{
  padding:45px clamp(20px,7vw,100px);
  background:#171226;color:var(--muted);
  border-top:1px solid var(--line);
}
.footer-brand{display:flex;align-items:center;gap:12px;color:#fff}
.footer-brand img{width:48px;height:48px;object-fit:contain}
.footer-brand strong{display:block}.footer-brand span{font-size:11px;color:var(--muted)}
.footer-links{display:flex;gap:22px;flex-wrap:wrap;margin:25px 0}
.footer-links a:hover{color:var(--lime)}

.modal-backdrop{
  position:fixed;inset:0;z-index:100;
  display:none;align-items:center;justify-content:center;
  padding:20px;background:rgba(10,7,17,.78);backdrop-filter:blur(10px);
}
.modal{
  width:min(500px,100%);position:relative;
  padding:32px;border-radius:22px;
  background:var(--surface-2);border:1px solid var(--line-lime);
  box-shadow:var(--shadow);
}
.close{position:absolute;right:15px;top:12px;background:transparent;border:0;color:#fff;font-size:28px;cursor:pointer}
.modal-logo{display:block;width:70px;height:70px;object-fit:contain;margin-bottom:18px}
.modal h2{margin:0 0 8px;color:var(--lime)}
.modal p{color:var(--muted)}
.modal label{display:block;margin-top:15px;font-size:13px;font-weight:800}
.modal input,.modal select,.modal textarea{
  display:block;width:100%;margin-top:7px;
  padding:12px 13px;border-radius:10px;
  background:#211a33;border:1px solid var(--line);
  color:#fff;outline:none;
}
.modal input:focus,.modal select:focus{border-color:var(--lime)}
.full{width:100%;margin-top:18px}
.switch-auth{border:0;background:transparent;color:var(--lime);cursor:pointer;margin-top:15px;font-weight:800}

@media (max-width:900px){
  .nav{display:none}
  .menu-toggle{display:block}
  .hero{grid-template-columns:1fr;padding-top:62px}
  .hero-mark{margin-top:40px}
  .stats{grid-template-columns:1fr}
  .stats div{border-right:0;border-bottom:1px solid var(--line)}
  .stats div:last-child{border-bottom:0}
  .news-grid{grid-template-columns:1fr}
  .team-grid{grid-template-columns:repeat(2,1fr)}
  .availability-section{grid-template-columns:1fr}
}
@media (max-width:600px){
  .site-header{padding:9px 15px}
  .brand img{width:43px;height:43px}
  .hero{min-height:600px;padding:58px 20px}
  .hero h1{font-size:58px}
  .hero-mark img{height:280px}
  .section{padding:65px 18px}
  .team-grid{grid-template-columns:1fr}
  .section-heading{align-items:flex-start;flex-direction:column}
  .fixture{grid-template-columns:55px 1fr}
  .fixture em{display:none}
  .cta{padding:55px 20px;display:block}
  .cta .btn{margin-top:25px}
}

/* Waiuku — mobile-first refinements */
@media (max-width: 720px){
  body{overflow-x:hidden}
  .site-header{
    min-height:64px;
    padding:8px 14px;
  }
  .brand strong{font-size:14px}
  .brand span{font-size:8px;letter-spacing:.12em}
  .brand img{width:42px;height:42px}
  .hero{
    min-height:auto;
    padding:52px 18px 45px;
    display:block;
  }
  .hero h1{
    font-size:clamp(48px,16vw,70px);
    line-height:.9;
  }
  .hero-text{font-size:15px}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .btn{width:100%;min-height:50px}
  .hero-mark{margin-top:35px}
  .hero-mark img{height:230px;width:230px}
  .stats{grid-template-columns:repeat(3,1fr)}
  .stats div{padding:16px 6px;border-right:1px solid var(--line)}
  .stats div:last-child{border-right:0}
  .stats strong{font-size:25px}
  .stats span{font-size:8px;letter-spacing:.06em}
  .section{padding:52px 16px}
  .section-heading h2{font-size:42px}
  .news-grid{grid-template-columns:1fr;gap:12px}
  .news-card{min-height:220px;padding:22px}
  .news-card h3{margin-top:25px;font-size:23px}
  .team-grid{grid-template-columns:1fr;gap:12px}
  .team-card{
    min-height:0;
    padding:20px;
    border-radius:15px;
  }
  .team-card h3{font-size:20px}
  .availability-section{
    padding:55px 16px;
    display:block;
  }
  .availability-intro h2{font-size:43px}
  .availability-demo{margin-top:25px;padding:18px}
  .match-row{gap:10px;padding:16px 0}
  .fixture{
    grid-template-columns:54px 1fr;
    gap:12px;
    padding:15px;
  }
  .fixture em{display:none}
  .cta{padding:48px 18px}
  .cta h2{font-size:43px}
  footer{padding:35px 18px}
}
@media (max-width:420px){
  .stats strong{font-size:22px}
  .stats span{font-size:7px}
  .hero h1{font-size:52px}
  .hero-mark img{height:200px;width:200px}
}


/* Robust mobile navigation */
.mobile-menu-panel{
  display:none;
  position:fixed;
  top:64px;
  left:0;
  right:0;
  z-index:9999;
  background:#211a33;
  border-bottom:1px solid rgba(212,216,42,.35);
  box-shadow:0 18px 40px rgba(0,0,0,.35);
  padding:12px 16px 18px;
}
.mobile-menu-panel.open{display:block}
.mobile-menu-panel a{
  display:block;
  padding:14px 10px;
  color:#fff;
  border-bottom:1px solid rgba(255,255,255,.09);
  font-weight:800;
}
.mobile-menu-panel a:last-child{border-bottom:0}
.menu-toggle{
  position:relative;
  z-index:10001;
  display:none;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid rgba(212,216,42,.35);
  border-radius:10px;
  background:#2d2543;
  color:#d4d82a;
  cursor:pointer;
  align-items:center;
  justify-content:center;
  font-size:24px;
  line-height:1;
}
@media (max-width:900px){
  .nav{display:none !important}
  .menu-toggle{display:flex !important}
}

/* =========================================================
   WAIUKU — MOBILE FRIENDLY ALL PAGES
   ========================================================= */
img{max-width:100%;height:auto}
table{width:100%;border-collapse:collapse}
pre{max-width:100%;overflow:auto}
.page-container,.container,.content,.dashboard,.portal,.admin-page{
  width:min(1200px,100%);
  margin-left:auto;margin-right:auto;
}

@media (max-width:900px){
  .site-header{
    padding:8px 14px !important;
    min-height:64px !important;
  }
  .nav{display:none !important}
  .menu-toggle{display:flex !important}

  main,.main-content{
    width:100% !important;
    max-width:100% !important;
  }

  .container,.page-container,.content,.dashboard,.portal,.admin-page{
    width:100% !important;
    padding-left:16px !important;
    padding-right:16px !important;
  }

  /* Turn common desktop grids into phone layouts */
  .grid,.cards,.team-grid,.news-grid,.fixture-grid,
  .dashboard-grid,.portal-grid,.admin-grid,
  .two-column,.three-column,.four-column{
    grid-template-columns:1fr !important;
  }

  .section{
    padding:48px 16px !important;
  }

  .section-heading{
    display:flex !important;
    flex-direction:column !important;
    align-items:flex-start !important;
    gap:10px !important;
  }

  /* Cards */
  .card,.team-card,.news-card,.fixture-card,.admin-card,
  .dashboard-card,.portal-card,.panel{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }

  /* Fixtures */
  .fixture,.fixture-row{
    grid-template-columns:54px 1fr !important;
    gap:12px !important;
    padding:15px !important;
  }

  .fixture-actions,.actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:8px !important;
    width:100% !important;
  }

  .fixture-actions a,.fixture-actions button,
  .actions a,.actions button,
  .btn{
    width:100% !important;
    min-height:46px !important;
  }

  /* Forms */
  form{
    width:100% !important;
  }
  input,select,textarea{
    width:100% !important;
    max-width:100% !important;
    min-height:44px;
    box-sizing:border-box;
  }

  .form-row,.form-grid,.field-row{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:12px !important;
  }

  /* Admin/captain tables become horizontally scrollable rather than breaking */
  .table-wrap,.table-container,.admin-table-wrap{
    width:100% !important;
    overflow-x:auto !important;
    -webkit-overflow-scrolling:touch;
  }

  table{
    min-width:650px;
  }

  /* Announcement cards */
  .announcement-admin-item{
    flex-direction:column !important;
    align-items:stretch !important;
  }

  .announcement-delete-btn{
    width:100% !important;
    min-height:44px;
  }

  /* Login/portal panels */
  .modal{
    width:calc(100% - 28px) !important;
    max-height:90vh;
    overflow:auto;
  }

  .hero{
    display:block !important;
    padding:52px 18px 42px !important;
  }

  .hero-copy{
    width:100% !important;
    max-width:none !important;
  }

  .hero-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .hero-actions .btn{
    width:100% !important;
  }

  .hero-mark{
    margin-top:30px !important;
  }

  .hero-mark img{
    width:210px !important;
    height:210px !important;
  }

  footer{
    padding:36px 16px !important;
  }
}

@media (max-width:480px){
  .brand strong{font-size:13px !important}
  .brand span{font-size:7px !important}
  .brand img{width:40px !important;height:40px !important}

  h1{font-size:clamp(38px,13vw,58px) !important}
  h2{font-size:clamp(32px,10vw,46px) !important}
  h3{font-size:20px !important}

  .section{padding:42px 14px !important}

  .team-card,.news-card,.card,.panel{
    padding:18px !important;
  }

  .stats{
    grid-template-columns:repeat(3,1fr) !important;
  }

  .stats div{
    padding:14px 4px !important;
  }

  .stats strong{font-size:22px !important}
  .stats span{font-size:7px !important}

  .mobile-menu-panel{
    top:64px !important;
  }
}
