
:root{
  --bg:#f7f8fa;
  --panel:#ffffff;
  --panel-2:#fbfbfc;
  --text:#17191f;
  --text-2:#3e4451;
  --muted:#777f8f;
  --line:#e7e9ee;
  --line-strong:#d9dde5;
  --sidebar:#f0f1f4;
  --accent:#7657ff;
  --accent-2:#9a7cff;
  --accent-soft:#eeeaff;
  --accent-text:#5d40df;
  --success:#24a46d;
  --shadow:0 18px 50px rgba(20,24,35,.08);
  --shadow-soft:0 8px 24px rgba(20,24,35,.05);
  --radius:18px;
  --radius-sm:12px;
  --sidebar-w:292px;
}

html[data-theme="dark"]{
  --bg:#0d0f14;
  --panel:#13161c;
  --panel-2:#171a21;
  --text:#f4f5f7;
  --text-2:#d0d4dc;
  --muted:#8f96a6;
  --line:#252a34;
  --line-strong:#313846;
  --sidebar:#101319;
  --accent:#9d83ff;
  --accent-2:#b9a6ff;
  --accent-soft:#221c3b;
  --accent-text:#c2b3ff;
  --success:#4fc68e;
  --shadow:0 18px 50px rgba(0,0,0,.28);
  --shadow-soft:0 8px 24px rgba(0,0,0,.2);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Aptos,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:var(--bg);
  color:var(--text);
  -webkit-font-smoothing:antialiased;
}
button,input{font:inherit}
button{color:inherit}
a{color:inherit}
kbd{
  border:1px solid var(--line-strong);
  border-bottom-width:2px;
  border-radius:7px;
  padding:2px 6px;
  font-size:11px;
  line-height:1.4;
  color:var(--muted);
  background:var(--panel);
}

.app-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:var(--sidebar-w) minmax(0,1fr);
}

.sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--sidebar-w);
  display:flex;
  flex-direction:column;
  background:var(--sidebar);
  border-right:1px solid var(--line);
  z-index:50;
}
.sidebar-head{
  height:72px;
  padding:14px 16px 10px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  display:flex;
  align-items:center;
  gap:11px;
  text-decoration:none;
  min-width:0;
}
.brand-mark{
  width:38px;
  height:38px;
  border-radius:12px;
  display:grid;
  place-items:center;
  color:#fff;
  font-size:13px;
  font-weight:800;
  letter-spacing:.02em;
  background:linear-gradient(145deg,var(--accent),#5c3fd9 78%);
  box-shadow:0 7px 18px rgba(118,87,255,.28);
}
.brand-copy{
  display:grid;
  min-width:0;
}
.brand-copy strong{
  font-size:14px;
  line-height:1.25;
  letter-spacing:-.01em;
}
.brand-copy span{
  margin-top:2px;
  font-size:12px;
  color:var(--muted);
}

.sidebar-search{padding:6px 12px 14px}
.search-trigger{
  width:100%;
  min-height:42px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:9px;
  align-items:center;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:11px;
  color:var(--muted);
  background:var(--panel);
  cursor:pointer;
  box-shadow:var(--shadow-soft);
}
.search-trigger:hover{
  border-color:var(--line-strong);
  color:var(--text-2);
}
.search-trigger span:nth-child(2){
  text-align:left;
  font-size:13px;
}
.search-icon{font-size:18px;transform:translateY(-1px)}

.nav{
  padding:0 9px 20px;
  overflow-y:auto;
  flex:1;
}
.nav-group{margin:10px 0 19px}
.nav-group-title{
  margin:0 9px 6px;
  font-size:10.5px;
  line-height:1.2;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:800;
  color:var(--muted);
}
.nav-link{
  width:100%;
  display:flex;
  gap:9px;
  align-items:center;
  border:0;
  border-radius:10px;
  padding:9px 10px;
  background:transparent;
  color:var(--text-2);
  cursor:pointer;
  text-align:left;
  font-size:13px;
  line-height:1.35;
}
.nav-link:hover{background:color-mix(in srgb,var(--panel) 70%,transparent)}
.nav-link.active{
  background:var(--panel);
  color:var(--text);
  box-shadow:0 1px 0 var(--line),0 4px 14px rgba(20,24,35,.04);
}
.nav-icon{
  flex:0 0 auto;
  width:24px;height:24px;
  border-radius:7px;
  display:grid;place-items:center;
  background:var(--panel-2);
  color:var(--muted);
  font-size:11px;
  font-weight:800;
}
.nav-link.active .nav-icon{
  color:var(--accent-text);
  background:var(--accent-soft);
}
.sidebar-foot{
  padding:14px 16px 18px;
  border-top:1px solid var(--line);
}
.season-pill{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--text-2);
  font-size:12px;
  font-weight:650;
}
.dot{
  width:7px;height:7px;border-radius:50%;
  background:var(--success);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 16%,transparent);
}
.sidebar-foot p{margin:7px 0 0;font-size:11px;color:var(--muted)}

.workspace{
  grid-column:2;
  min-width:0;
  min-height:100vh;
}
.topbar{
  position:sticky;
  top:0;
  z-index:30;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 24px;
  background:color-mix(in srgb,var(--bg) 90%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--line) 86%,transparent);
  backdrop-filter:blur(16px);
}
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:10px}
.breadcrumb{
  font-size:13px;
  color:var(--muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:min(56vw,650px);
}
.icon-button{
  width:38px;height:38px;
  display:grid;place-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel);
  cursor:pointer;
}
.icon-button:hover{border-color:var(--line-strong)}
.top-search{
  height:38px;
  display:flex;
  gap:8px;
  align-items:center;
  padding:0 9px 0 11px;
  border:1px solid var(--line);
  border-radius:10px;
  color:var(--muted);
  background:var(--panel);
  cursor:pointer;
}
.top-search:hover{border-color:var(--line-strong);color:var(--text-2)}

.canvas{
  max-width:1240px;
  margin:0 auto;
  padding:28px 32px 64px;
}
.welcome-card{
  position:relative;
  overflow:hidden;
  min-height:250px;
  border:1px solid var(--line);
  border-radius:24px;
  background:
    radial-gradient(circle at 78% 20%, color-mix(in srgb,var(--accent) 17%,transparent) 0, transparent 34%),
    linear-gradient(135deg,var(--panel),var(--panel-2));
  box-shadow:var(--shadow-soft);
  margin-bottom:24px;
}
.welcome-glow{
  position:absolute;
  width:420px;height:420px;
  right:-150px;top:-180px;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 26%,transparent),transparent 68%);
  filter:blur(8px);
}
.welcome-content{
  position:relative;
  z-index:1;
  padding:34px 38px;
  max-width:800px;
}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--accent-text);
}
.welcome-content h1{
  margin:10px 0 12px;
  max-width:720px;
  font-size:clamp(30px,4vw,48px);
  line-height:1.02;
  letter-spacing:-.045em;
}
.welcome-content p{
  max-width:720px;
  margin:0;
  color:var(--muted);
  font-size:16px;
  line-height:1.65;
}
.welcome-actions{display:flex;gap:10px;margin-top:23px;flex-wrap:wrap}
.primary-button,.secondary-button{
  border-radius:11px;
  padding:11px 15px;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
}
.primary-button{
  border:1px solid var(--accent);
  background:var(--accent);
  color:#fff;
  box-shadow:0 8px 20px rgba(118,87,255,.22);
}
.secondary-button{
  border:1px solid var(--line);
  background:var(--panel);
  color:var(--text-2);
}

.content-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 220px;
  gap:24px;
  align-items:start;
}
.document-panel{
  min-width:0;
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow-soft);
  padding:34px 38px 42px;
}
.doc-header{
  padding-bottom:26px;
  margin-bottom:26px;
  border-bottom:1px solid var(--line);
}
.doc-kicker{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}
.badge{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  color:var(--accent-text);
  background:var(--accent-soft);
  font-size:11px;
  font-weight:800;
}
.doc-header h2{
  margin:0;
  font-size:clamp(28px,3vw,39px);
  line-height:1.05;
  letter-spacing:-.035em;
}
.doc-summary{
  margin:13px 0 0;
  max-width:770px;
  color:var(--muted);
  font-size:15px;
  line-height:1.65;
}
.doc-actions{
  display:flex;
  gap:9px;
  margin-top:19px;
  flex-wrap:wrap;
}
.download,.copy-link{
  display:inline-flex;
  gap:7px;
  align-items:center;
  min-height:38px;
  padding:0 12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel-2);
  color:var(--text-2);
  text-decoration:none;
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
}
.download:hover,.copy-link:hover{border-color:var(--line-strong)}

.section{
  scroll-margin-top:90px;
  padding:3px 0 23px;
}
.section + .section{
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  padding-top:22px;
}
.section h3{
  margin:0 0 10px;
  font-size:19px;
  line-height:1.25;
  letter-spacing:-.015em;
}
.section-body{
  white-space:pre-line;
  color:var(--text-2);
  line-height:1.72;
  font-size:14.5px;
}
.section-body a{color:var(--accent-text)}

.document-outline{
  position:sticky;
  top:88px;
  max-height:calc(100vh - 112px);
  overflow:auto;
  padding:8px 0 10px 10px;
}
.outline-title{
  margin:0 0 9px;
  color:var(--muted);
  font-size:10.5px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.outline-link{
  display:block;
  padding:6px 8px;
  border-left:2px solid var(--line);
  color:var(--muted);
  font-size:12px;
  line-height:1.35;
  text-decoration:none;
}
.outline-link:hover{color:var(--text-2)}
.outline-link.active{
  border-left-color:var(--accent);
  color:var(--accent-text);
}

.footer{
  max-width:1240px;
  margin:0 auto;
  padding:0 32px 34px;
  display:flex;
  justify-content:space-between;
  color:var(--muted);
  font-size:11.5px;
}

.search-modal{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:start center;
  padding:9vh 20px 30px;
}
.search-modal.hidden{display:none}
.search-backdrop{
  position:absolute;
  inset:0;
  background:rgba(9,10,14,.48);
  backdrop-filter:blur(4px);
}
.search-dialog{
  position:relative;
  z-index:1;
  width:min(760px,96vw);
  max-height:76vh;
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:18px;
  background:var(--panel);
  box-shadow:0 26px 80px rgba(0,0,0,.3);
}
.search-input-wrap{
  min-height:62px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:11px;
  align-items:center;
  padding:0 16px;
  border-bottom:1px solid var(--line);
}
.search-large-icon{font-size:22px;color:var(--muted)}
.search-input-wrap input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font-size:17px;
}
.search-meta{
  padding:10px 16px;
  color:var(--muted);
  background:var(--panel-2);
  border-bottom:1px solid var(--line);
  font-size:11.5px;
}
.modal-results{
  max-height:calc(76vh - 104px);
  overflow:auto;
  padding:8px;
}
.result{
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  padding:11px 10px;
  border-radius:11px;
  cursor:pointer;
}
.result:hover,.result.selected{background:var(--panel-2)}
.result-symbol{
  width:32px;height:32px;
  border-radius:9px;
  display:grid;place-items:center;
  background:var(--accent-soft);
  color:var(--accent-text);
  font-size:11px;
  font-weight:800;
}
.result-title{
  font-size:13px;
  font-weight:800;
  color:var(--text);
}
.result-context{
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
.empty-state{
  padding:34px 18px;
  text-align:center;
  color:var(--muted);
  font-size:13px;
}
.mobile-menu,.mobile-only{display:none}
.scrim{display:none}

@media(max-width:1050px){
  .content-layout{grid-template-columns:minmax(0,1fr)}
  .document-outline{display:none}
}

@media(max-width:820px){
  .app-shell{display:block}
  .sidebar{
    transform:translateX(-102%);
    transition:transform .2s ease;
    box-shadow:20px 0 50px rgba(0,0,0,.18);
  }
  .sidebar.open{transform:translateX(0)}
  .scrim{
    position:fixed;
    inset:0;
    z-index:40;
    background:rgba(9,10,14,.38);
  }
  .scrim.open{display:block}
  .workspace{min-height:100vh}
  .mobile-menu,.mobile-only{display:grid}
  .topbar{padding:0 14px}
  .canvas{padding:18px 14px 42px}
  .welcome-content{padding:28px 24px}
  .document-panel{padding:26px 22px 32px;border-radius:16px}
  .footer{padding:0 16px 26px}
}

@media(max-width:540px){
  .top-search-label,.top-search kbd{display:none}
  .welcome-card{min-height:auto}
  .welcome-content h1{font-size:31px}
  .welcome-content p{font-size:14px}
  .document-panel{padding:23px 18px 29px}
  .doc-header h2{font-size:29px}
  .footer{display:grid;gap:5px}
}


/* ---------- Landing page ---------- */
.home-view.hidden,.content-layout.hidden{display:none}
.home-search{
  max-width:720px;
  min-height:54px;
  margin-top:24px;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:10px;
  padding:0 15px;
  border:1px solid var(--line-strong);
  border-radius:14px;
  background:var(--panel);
  box-shadow:0 12px 30px rgba(20,24,35,.07);
}
.home-search input{
  width:100%;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font-size:15px;
}
.home-search-results{
  margin:-6px 0 24px;
  padding:10px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel);
  box-shadow:var(--shadow-soft);
}
.home-search-results.hidden{display:none}
.home-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
}
.home-card{
  min-height:160px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:8px;
  padding:20px;
  border:1px solid var(--line);
  border-radius:17px;
  background:var(--panel);
  color:var(--text);
  text-align:left;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
}
.home-card:hover{
  transform:translateY(-1px);
  border-color:var(--line-strong);
}
.home-card-icon{
  width:34px;height:34px;
  border-radius:10px;
  display:grid;place-items:center;
  color:var(--accent-text);
  background:var(--accent-soft);
  font-weight:800;
  font-size:12px;
}
.home-card strong{font-size:15px}
.home-card span:last-child{
  color:var(--muted);
  font-size:12.5px;
  line-height:1.5;
}

/* ---------- Link cards ---------- */
.link-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.link-card{
  display:block;
  padding:16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:var(--panel-2);
  text-decoration:none;
}
.link-card:hover{border-color:var(--accent-2);text-decoration:none}
.link-card-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  font-weight:800;
  font-size:13.5px;
}
.link-card p{
  margin:7px 0 0;
  color:var(--muted);
  font-size:12.5px;
  line-height:1.5;
}
.link-card-meta{
  margin-top:9px;
  font-size:11px;
  color:var(--accent-text);
  font-weight:700;
}
.policy-link-card{padding:0;overflow:hidden}.policy-card-main{padding:16px;border:0;background:transparent}.policy-owner{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:0;padding:0 16px 16px}.policy-owner .contact-role-button{padding:5px 8px;font-size:10.5px}

/* ---------- RACI ---------- */
.raci-legend{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin:14px 0 18px;
}
.raci-key{
  display:inline-flex;
  gap:6px;
  align-items:center;
  padding:5px 8px;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:11px;
  color:var(--muted);
}
.raci-key b{color:var(--text)}
.raci-wrap{
  overflow:auto;
  border:1px solid var(--line);
  border-radius:14px;
}
.raci-table{
  width:max-content;
  min-width:100%;
  border-collapse:separate;
  border-spacing:0;
  font-size:11px;
}
.raci-table th,.raci-table td{
  padding:9px 8px;
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  text-align:center;
  white-space:nowrap;
}
.raci-table th{
  position:sticky;
  top:0;
  z-index:2;
  background:var(--panel-2);
  color:var(--muted);
  font-weight:800;
}
.raci-table th>span{display:block}.raci-table th .contact-role-button{display:flex;margin:5px auto 0;padding:4px 6px;font-size:9px}
.raci-table th:first-child,.raci-table td:first-child{
  position:sticky;
  left:0;
  z-index:3;
  min-width:250px;
  max-width:250px;
  white-space:normal;
  text-align:left;
  background:var(--panel);
}
.raci-table th:first-child{z-index:4;background:var(--panel-2)}
.raci-table td:last-child,.raci-table th:last-child{border-right:0}
.raci-table tr:last-child td{border-bottom:0}
.raci-cell{
  display:inline-flex;
  min-width:27px;
  justify-content:center;
  padding:3px 5px;
  border-radius:7px;
  font-weight:800;
}
.raci-A,.raci-AR{background:var(--accent-soft);color:var(--accent-text)}
.raci-R{background:color-mix(in srgb,var(--success) 14%,transparent);color:var(--success)}
.raci-C{background:var(--panel-2);color:var(--text-2)}
.raci-I{color:var(--muted)}

/* ---------- Roles / people ---------- */
.roles-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:14px 0 24px;
}
.summary-stat{
  padding:14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--panel-2);
}
.summary-stat strong{display:block;font-size:23px;letter-spacing:-.03em}
.summary-stat span{font-size:11.5px;color:var(--muted)}
.role-list{display:grid;gap:14px}
.role-card{
  padding:19px;
  border:1px solid var(--line);
  border-radius:16px;
  background:var(--panel-2);
}
.role-card-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:14px;
  align-items:start;
}
.role-card-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.role-title{font-size:16px;font-weight:850;letter-spacing:-.01em}
.role-person{margin-top:4px;font-size:13px;color:var(--accent-text);font-weight:750}
.role-category{margin-top:3px;color:var(--muted);font-size:11.5px}
.role-link{
  border:1px solid var(--line);
  border-radius:9px;
  padding:7px 9px;
  background:var(--panel);
  font-size:11.5px;
  font-weight:700;
  cursor:pointer;
}
.time-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin:15px 0 16px;
}
.time-track{
  height:8px;
  overflow:hidden;
  border-radius:99px;
  background:var(--line);
}
.time-bar{
  height:100%;
  min-width:5px;
  border-radius:99px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
}
.time-label{font-size:11.5px;color:var(--muted);white-space:nowrap}
.perspective-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}
.perspective{
  padding:12px;
  border-radius:12px;
  background:var(--panel);
  border:1px solid var(--line);
}
.perspective strong{
  display:block;
  margin-bottom:5px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
}
.perspective p{
  margin:0;
  color:var(--text-2);
  font-size:12.5px;
  line-height:1.55;
}

@media(max-width:980px){
  .home-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:650px){
  .home-grid,.link-grid,.perspective-grid,.roles-summary{grid-template-columns:1fr}
  .home-card{min-height:auto}
}

.help-section{margin:0 0 24px;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--panel);box-shadow:var(--shadow-soft)}
.section-heading-row h2{margin:7px 0 5px;font-size:25px;letter-spacing:-.025em}
.section-heading-row p{margin:0;color:var(--muted);font-size:13.5px}
.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}
.help-card{display:grid;border:1px solid var(--line);border-radius:13px;background:var(--panel-2);overflow:hidden}
.help-card-guidance{width:100%;display:grid;grid-template-columns:36px minmax(0,1fr) auto;gap:11px;align-items:start;padding:14px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}
.help-card:hover{border-color:var(--accent-2)}
.help-card.urgent{background:color-mix(in srgb,var(--accent-soft) 55%,var(--panel))}
.help-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:var(--accent-soft);color:var(--accent-text);font-size:12px;font-weight:800}
.help-card-guidance strong{display:block;font-size:13.5px}
.help-card-guidance p{margin:4px 0 0;color:var(--muted);font-size:11.8px;line-height:1.45}
.help-route{margin-top:6px;color:var(--accent-text);font-size:11px;font-weight:750}
.help-arrow{color:var(--muted);font-size:16px;padding-top:5px}

.role-nav{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 24px}
.role-nav-link{border:1px solid var(--line);border-radius:999px;padding:7px 10px;background:var(--panel-2);color:var(--text-2);font-size:11.5px;cursor:pointer}
.role-nav-link:hover{color:var(--accent-text);border-color:var(--accent-2)}
.role-card{scroll-margin-top:86px}
.role-registry-note{margin:0 0 18px;padding:13px 15px;border-left:3px solid var(--accent);border-radius:0 10px 10px 0;background:var(--accent-soft);color:var(--text-2);font-size:12.5px;line-height:1.55}
.time-row{display:flex;align-items:center;gap:11px;margin:15px 0 16px}
.time-track,.time-bar{display:none!important}
.time-clock{position:relative;width:42px;height:42px;flex:0 0 42px;border:2px solid var(--accent-2);border-radius:50%;background:var(--panel)}
.time-clock::before{content:"";position:absolute;left:19px;top:8px;width:2px;height:12px;border-radius:2px;background:var(--accent);transform-origin:bottom center}
.time-clock::after{content:"";position:absolute;left:19px;top:19px;width:10px;height:2px;border-radius:2px;background:var(--accent);transform-origin:left center;transform:rotate(24deg)}
.time-copy{display:grid;gap:2px}
.time-copy strong{font-size:13px;font-weight:800}
.time-copy span{font-size:11.5px;color:var(--muted)}
.low-commitment{display:inline-flex;width:max-content;margin-top:3px;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--success) 12%,transparent);color:var(--success)!important;font-size:10.5px!important;font-weight:800}
.summary-stat strong.small-value{font-size:17px;line-height:1.2}
@media(max-width:700px){.help-grid{grid-template-columns:1fr}}

/* v6 navigation/search fixes */
.internal-link-card{
  width:100%;
  color:inherit;
  font:inherit;
  text-align:left;
  cursor:pointer;
}
.outline-button{
  width:100%;
  border-top:0;
  border-right:0;
  border-bottom:0;
  background:transparent;
  font:inherit;
  cursor:pointer;
}
.search-close-button{
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel-2);
  color:var(--muted);
  font-size:20px;
  line-height:1;
  cursor:pointer;
}
.search-close-button:hover{
  color:var(--text);
  border-color:var(--line-strong);
}
body.search-open{
  overflow:hidden;
}

/* v8 UX / navigation */
.document-outline,
.outline-link,
.outline-button{
  text-align:left !important;
}
.outline-link,
.outline-button{
  justify-content:flex-start;
}
.topbar-actions{
  margin-left:auto;
}

/* clearer help router */
.help-input-wrap{
  width:100%;
  min-height:50px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin-top:18px;
  padding:0 13px;
  border:1px solid var(--line-strong);
  border-radius:13px;
  background:var(--panel-2);
}
.help-input-wrap:focus-within{
  border-color:var(--accent-2);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);
}
.help-input-wrap input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--text);
  font-size:14px;
}
.help-clear{
  border:0;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  font-size:12px;
  font-weight:700;
}
.help-clear.hidden,
.help-suggestion.hidden{display:none}
.help-suggestion{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  margin-top:10px;
  padding:13px 14px;
  border:1px solid var(--accent-2);
  border-radius:12px;
  background:var(--accent-soft);
}
.help-suggestion strong{
  display:block;
  margin-bottom:3px;
  font-size:13px;
}
.help-suggestion span{
  color:var(--muted);
  font-size:12px;
  line-height:1.45;
}
.help-suggestion button{
  white-space:nowrap;
  border:1px solid var(--accent);
  border-radius:9px;
  padding:8px 10px;
  background:var(--accent);
  color:#fff;
  cursor:pointer;
  font-size:11.5px;
  font-weight:800;
}
.help-suggestion-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.help-card{
  position:relative;
}
.help-card::after{content:none}
.help-card .help-arrow{
  display:none;
}
.help-card{padding-bottom:0}
.help-card>.contact-role-button{margin:0 14px 14px;justify-self:start}
.help-card-guidance:focus-visible,
.contact-card-main:focus-visible,
.policy-card-main:focus-visible,
.contact-dialog-close:focus-visible,
.role-link:focus-visible,
.role-nav-link:focus-visible,
.internal-link-card:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}

/* v9 Netball Hub public portal */
.season-snapshot{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:0 0 14px}.snapshot-item{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}.snapshot-item span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.snapshot-item strong{display:block;margin-top:5px;font-size:14px}.snapshot-item small{display:block;margin-top:4px;color:var(--muted);font-size:11.5px;line-height:1.4}
.snapshot-action{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer}.snapshot-action:hover{border-color:var(--accent-2);transform:translateY(-1px)}.snapshot-action:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.registration-open-card{background:var(--accent-soft);border-color:var(--accent-2)}
.hub-shortcuts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 24px}.hub-shortcut{display:grid;gap:4px;min-height:112px;padding:15px;border:1px solid var(--line);border-radius:14px;background:var(--panel);text-align:left;text-decoration:none;cursor:pointer}.hub-shortcut:hover{border-color:var(--accent-2);transform:translateY(-1px)}.hub-shortcut span{color:var(--accent-text);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.hub-shortcut strong{font-size:14px}.hub-shortcut small{color:var(--muted);font-size:11.5px;line-height:1.4}
.info-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:12px 0}.info-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}.info-card span{display:block;color:var(--muted);font-size:11px}.info-card strong{display:block;margin-top:5px;font-size:14px}.source-note{color:var(--muted);font-size:11.5px;line-height:1.55}.status-banner{padding:18px;border:1px solid var(--accent-2);border-radius:14px;background:var(--accent-soft)}.status-banner>strong{text-transform:capitalize;color:var(--accent-text);font-size:12px}.status-banner p{color:var(--text-2);line-height:1.55}.primary-action{border:0;border-radius:9px;padding:9px 12px;background:var(--accent);color:#fff;cursor:pointer;font-weight:800;font-size:12px;text-decoration:none}.inline-action{display:inline-block;margin-top:5px}
.announcement-list{display:grid;gap:10px}.announcement-card{padding:15px;border:1px solid var(--line);border-radius:13px;background:var(--panel-2)}.announcement-card.important{border-color:var(--accent-2);background:var(--accent-soft)}.announcement-card h4{margin:5px 0 6px;font-size:15px}.announcement-card p{margin:0 0 8px;color:var(--text-2);line-height:1.55;font-size:13px}.announcement-meta{color:var(--muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:14px}.contact-card{display:grid;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);overflow:hidden}.contact-card:hover{border-color:var(--accent-2)}.contact-card-main{display:grid;gap:4px;width:100%;padding:14px;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.contact-card-main span{color:var(--muted);font-size:11px}.contact-card-main strong{font-size:14px}.contact-card-main small{color:var(--muted);font-size:11.5px;line-height:1.45}.contact-card>.contact-role-button{margin:0 14px 14px;justify-self:start}.empty-state{padding:18px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--muted);font-size:13px}
.contact-role-button{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--accent-2);border-radius:9px;padding:7px 10px;background:var(--accent-soft);color:var(--accent-text);font:inherit;font-size:11.5px;font-weight:800;cursor:pointer}.contact-role-button:hover{background:var(--accent);border-color:var(--accent);color:#fff}.contact-role-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.section>.contact-role-button{margin-top:12px}
.contact-dialog{width:min(680px,calc(100vw - 28px));max-height:calc(100vh - 28px);padding:0;border:1px solid var(--line-strong);border-radius:18px;background:var(--panel);color:var(--text);box-shadow:0 28px 90px rgba(0,0,0,.35);overflow:auto}.contact-dialog::backdrop{background:rgba(5,7,11,.68);backdrop-filter:blur(4px)}.committee-contact-form{position:relative;padding:22px}.contact-dialog-header{display:flex;justify-content:space-between;gap:18px;margin-bottom:16px}.contact-dialog-header h2{margin:5px 0 5px;font-size:25px}.contact-dialog-header p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}.contact-dialog-close{width:36px;height:36px;flex:0 0 auto;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--muted);font-size:22px;cursor:pointer}.contact-dialog-recipient{display:grid;gap:2px;margin-bottom:16px;padding:12px 14px;border:1px solid var(--line);border-radius:11px;background:var(--accent-soft)}.contact-dialog-recipient span{color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.contact-dialog-recipient strong{font-size:14px}.contact-dialog-recipient small{color:var(--muted);font-size:11.5px}.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.contact-form-field{display:grid;gap:6px}.contact-form-field.full{grid-column:1/-1}.contact-form-field>span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.contact-form-field input,.contact-form-field select,.contact-form-field textarea{width:100%;padding:11px 12px;border:1px solid var(--line-strong);border-radius:10px;background:var(--panel-2);color:var(--text);font:inherit}.contact-form-field textarea{resize:vertical;line-height:1.5}.contact-form-field input:focus,.contact-form-field select:focus,.contact-form-field textarea:focus{outline:2px solid var(--accent);outline-offset:2px}.contact-form-field small,.contact-form-status{color:var(--muted);font-size:11.5px;line-height:1.45}.contact-form-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:14px}.contact-form-actions button:disabled{cursor:wait;opacity:.65}.contact-form-status{flex:1 1 220px}.contact-honeypot{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:900px){.hub-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr))}.season-snapshot{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr}}
@media(max-width:560px){
  .hub-shortcuts,.info-cards,.contact-form-grid{grid-template-columns:1fr}
  .contact-form-field.full{grid-column:auto}
  .committee-contact-form{padding:17px}
  .contact-dialog-header h2{font-size:22px}
  .contact-dialog-header p{font-size:11.5px}
  .role-card-head{grid-template-columns:1fr}
  .role-card-actions{justify-content:flex-start}
  .contact-form-actions{align-items:stretch}
  .contact-form-actions>button{flex:1 1 auto}
  .contact-form-status{flex-basis:100%}
}

/* v10 markdown posts */
.announcement-summary{font-weight:600}
.markdown-content{color:var(--text-2);font-size:13.5px;line-height:1.65}
.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{color:var(--text);margin:1em 0 .45em;letter-spacing:-.015em}
.markdown-content h1{font-size:1.55em}.markdown-content h2{font-size:1.35em}.markdown-content h3{font-size:1.18em}
.markdown-content p{margin:.55em 0}.markdown-content ul,.markdown-content ol{padding-left:1.45em}
.markdown-content blockquote{margin:1em 0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0}
.markdown-content code{padding:2px 5px;border-radius:5px;background:var(--panel);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em}
.markdown-content a{color:var(--accent-text)}
.markdown-content hr{border:0;border-top:1px solid var(--line);margin:1.1em 0}

/* v11 authentication/admin access */
.admin-access-control{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:80;
}
.floating-admin-button{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border:1px solid var(--line-strong);
  border-radius:999px;
  background:color-mix(in srgb,var(--panel) 94%,transparent);
  color:var(--text-2);
  text-decoration:none;
  box-shadow:0 10px 28px rgba(20,24,35,.14);
  backdrop-filter:blur(12px);
}
.floating-admin-button:hover{
  border-color:var(--accent-2);
  color:var(--accent-text);
  text-decoration:none;
  transform:translateY(-1px);
}
.admin-cog{
  width:44px;
  height:44px;
  font-size:19px;
}
.sign-in-button{
  padding:0 14px;
  font-size:12px;
  font-weight:800;
}
.signin-icon{font-size:16px}
.floating-auth-state{
  min-height:38px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:0 11px;
  border:1px solid var(--line);
  border-radius:999px;
  background:color-mix(in srgb,var(--panel) 94%,transparent);
  color:var(--muted);
  box-shadow:0 8px 22px rgba(20,24,35,.09);
  font-size:11px;
  backdrop-filter:blur(10px);
}
.auth-dot{
  width:7px;height:7px;border-radius:50%;background:var(--success);
}
@media(max-width:540px){
  .admin-access-control{right:12px;bottom:12px}
}

/* ============================================================
   v13 Challow Netball Club visual identity
   Pink / black / white, based on the current club dress colours
   ============================================================ */

:root{
  --accent:#ee1768;
  --accent-2:#ff4b91;
  --accent-soft:#fff0f6;
  --accent-text:#d80e58;
  --sidebar:#0d0f12;
  --black:#0a0b0d;
  --pink:#ee1768;
  --pink-2:#ff4b91;
  --pink-soft:#fff0f6;
}

html[data-theme="dark"]{
  --accent:#ff2c7b;
  --accent-2:#ff6aa2;
  --accent-soft:#31101f;
  --accent-text:#ff7eac;
  --sidebar:#090a0c;
}

/* Brand / left navigation */
.sidebar{
  background:linear-gradient(180deg,#090a0c 0%,#111318 100%);
  color:#fff;
  border-right:1px solid #23262d;
}
.brand-copy strong{color:#fff}
.brand-copy span{color:#aeb4c0}
.brand-logo-wrap{
  width:46px;height:46px;
  display:grid;place-items:center;
  flex:0 0 46px;
}
.brand-logo{
  width:46px;height:46px;
  border-radius:50%;
  object-fit:cover;
  background:#fff;
  box-shadow:0 6px 18px rgba(238,23,104,.25);
}
.sidebar .search-trigger{
  background:#17191e;
  border-color:#2b2f37;
  color:#c8cdd6;
  box-shadow:none;
}
.sidebar .search-trigger kbd{background:#0d0f12;border-color:#363a43;color:#aeb4c0}
.sidebar .nav-group-title{color:#7e8796}
.sidebar .nav-link{color:#c8cdd6}
.sidebar .nav-link:hover{background:#17191e;color:#fff}
.sidebar .nav-link.active{
  background:linear-gradient(90deg,rgba(238,23,104,.22),rgba(238,23,104,.08));
  color:#fff;
  box-shadow:inset 3px 0 0 var(--pink);
}
.sidebar .nav-icon{
  background:#17191e;
  color:#c8cdd6;
}
.sidebar .nav-link.active .nav-icon{
  background:var(--pink);
  color:#fff;
}
.sidebar-foot{border-top-color:#252830}
.sidebar-foot p,.sidebar .season-pill{color:#9aa2af}

/* Top bar */
.topbar{
  background:color-mix(in srgb,var(--black) 94%,transparent);
  border-bottom:1px solid #22252b;
}
.breadcrumb{color:#aeb4c0}
.topbar .icon-button{
  background:#17191e;
  border-color:#2b2f37;
  color:#fff;
}

/* Home hero */
.welcome-card{
  min-height:330px;
  background:
    radial-gradient(circle at 84% 26%, rgba(238,23,104,.45) 0, rgba(238,23,104,.15) 22%, transparent 50%),
    linear-gradient(120deg,#08090b 0%,#12141a 56%,#220a16 100%);
  border-color:#24272e;
  color:#fff;
  overflow:hidden;
}
.welcome-card::after{
  content:"";
  position:absolute;
  right:4%;
  bottom:-14%;
  width:320px;height:320px;
  border:2px solid rgba(255,255,255,.08);
  border-radius:50%;
  box-shadow:
    inset 0 0 0 28px rgba(238,23,104,.06),
    inset 0 0 0 56px rgba(255,255,255,.025);
}
.welcome-content{max-width:850px}
.welcome-content .eyebrow{color:#ff6aa2}
.welcome-content h1{
  max-width:780px;
  font-size:clamp(36px,5vw,60px);
}
.welcome-content h1::first-line{color:#fff}
.welcome-content p{color:#d4d8df;max-width:700px}
.home-search{
  border-color:#3a3e47;
  background:#15171c;
  box-shadow:0 12px 34px rgba(0,0,0,.25);
}
.home-search input{color:#fff}
.home-search input::placeholder{color:#969dab}
.home-search kbd{background:#0d0f12;border-color:#3a3e47;color:#c0c5cf}

/* Primary buttons */
.primary-button,.primary-action{
  background:linear-gradient(135deg,var(--pink),#ff3980);
  border-color:var(--pink);
  box-shadow:0 8px 20px rgba(238,23,104,.22);
}
.primary-button:hover,.primary-action:hover{filter:brightness(1.05)}
.secondary-button{
  background:transparent;
  color:inherit;
  border-color:color-mix(in srgb,var(--line-strong) 85%,#fff);
}

/* Snapshot / shortcuts */
.season-snapshot{margin-top:4px}
.snapshot-item{
  border-top:3px solid var(--pink);
}
.snapshot-item span{color:var(--pink)}
.hub-shortcut{
  position:relative;
  overflow:hidden;
}
.hub-shortcut::after{
  content:"→";
  position:absolute;
  right:14px;bottom:12px;
  color:var(--pink);
  font-weight:900;
}
.hub-shortcut span{color:var(--pink)}

/* Homepage latest updates */
.home-latest-section{
  margin:0 0 24px;
  padding:24px;
  border:1px solid var(--line);
  border-radius:20px;
  background:var(--panel);
  box-shadow:var(--shadow-soft);
}
.home-section-heading{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.home-section-heading h2{
  margin:6px 0 0;
  font-size:26px;
  letter-spacing:-.025em;
}
.home-text-link{
  border:0;
  background:transparent;
  color:var(--pink);
  cursor:pointer;
  font-size:12px;
  font-weight:800;
}
.home-update-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.home-update-card{
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--panel-2);
}
.home-update-image{
  position:relative;
  min-height:160px;
  overflow:hidden;
  background:
    radial-gradient(circle at 72% 34%,rgba(255,255,255,.18),transparent 28%),
    linear-gradient(135deg,#0a0b0d,#191015 55%,var(--pink));
}
.home-update-image img{
  width:100%;height:170px;display:block;object-fit:cover;
}
.home-update-fallback{
  height:170px;
  display:grid;
  align-content:center;
  padding:20px;
  color:#fff;
  background:
    linear-gradient(145deg,transparent 0 48%,rgba(238,23,104,.52) 49% 66%,transparent 67%),
    linear-gradient(135deg,#090a0c,#1b1117);
}
.home-update-fallback span{font-size:13px;letter-spacing:.18em}
.home-update-fallback strong{font-size:29px;letter-spacing:-.04em}
.home-update-type{
  position:absolute;
  left:12px;top:12px;
  padding:5px 8px;
  border-radius:999px;
  background:var(--pink);
  color:#fff;
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.home-update-body{padding:15px}
.home-update-date{color:var(--muted);font-size:10.5px}
.home-update-body h3{margin:6px 0 7px;font-size:15px}
.home-update-body p{margin:0 0 8px;color:var(--muted);font-size:12.5px;line-height:1.5}

/* Help area gets subtle pink treatment */
.help-section{
  background:
    radial-gradient(circle at 94% 50%,rgba(238,23,104,.09),transparent 24%),
    var(--panel);
}
.help-icon{background:var(--pink-soft);color:var(--pink)}
.help-route{color:var(--pink)}
.help-card:hover{border-color:var(--pink-2)}

/* Public content panels */
.badge{background:var(--pink-soft);color:var(--pink)}
.link-card:hover{border-color:var(--pink-2)}
.link-card-meta{color:var(--pink)}
.role-person{color:var(--pink)}
.role-link:hover,.role-nav-link:hover{border-color:var(--pink-2);color:var(--pink)}
.time-clock{border-color:var(--pink)}
.time-clock::before,.time-clock::after{background:var(--pink)}

/* Public announcement images */
.announcement-card{
  overflow:hidden;
  padding:0;
}
.announcement-image{
  width:100%;
  max-height:320px;
  overflow:hidden;
  background:#0b0c0f;
}
.announcement-image img{
  width:100%;
  max-height:320px;
  display:block;
  object-fit:cover;
}
.announcement-content{padding:16px}
.announcement-card.important{
  border-color:var(--pink-2);
  background:var(--pink-soft);
}
.registration-post-status{color:var(--accent-text);font-weight:900;text-transform:capitalize}
.registration-post.important{background:var(--panel-2)}

/* Floating admin/auth */
.floating-admin-button{
  border-color:rgba(238,23,104,.6);
}
.admin-cog{
  background:var(--pink);
  color:#fff;
  border-color:var(--pink);
}
.sign-in-button{
  background:var(--black);
  color:#fff;
  border-color:#2c2f36;
}
.sign-in-button:hover{color:#fff;border-color:var(--pink)}

/* Search modal */
.search-dialog{border-color:#353942}
.search-input-wrap{border-bottom-color:var(--line)}
.result-symbol{background:var(--pink-soft);color:var(--pink)}
.result:hover,.result.selected{background:var(--pink-soft)}

/* Home responsive */
@media(max-width:980px){
  .home-update-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:650px){
  .home-update-grid{grid-template-columns:1fr}
  .home-section-heading{align-items:start;display:grid}
}

/* ============================================================
   v14: source-code implementation of requested hero + sidebar
   ============================================================ */

/* Main app left sidebar: white/pink club identity */
.sidebar{
  background:#fff !important;
  color:#111318 !important;
  border-right:1px solid #e8e8ec !important;
}

.club-sidebar-brand{
  position:relative;
  padding:20px 18px 16px;
  text-align:center;
  border-bottom:1px solid #ececf0;
  background:
    radial-gradient(circle at 50% 5%, rgba(238,23,104,.09), transparent 45%),
    #fff;
}

.club-brand-link{
  display:inline-block;
  text-decoration:none;
}

.club-sidebar-logo{
  width:176px;
  max-width:80%;
  height:auto;
  aspect-ratio:1/1;
  border-radius:50%;
  object-fit:cover;
  background:#fff;
  box-shadow:0 8px 26px rgba(238,23,104,.14);
}

.club-sidebar-tagline{
  margin:12px auto 14px;
  max-width:235px;
  color:var(--pink);
  font-size:12px;
  line-height:1.45;
  font-style:italic;
  letter-spacing:.01em;
}

.club-values{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin:14px 0;
}

.club-value{
  display:grid;
  justify-items:center;
  gap:5px;
  min-width:0;
}

.club-value-icon{
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  color:var(--pink);
  font-size:14px;
  font-weight:900;
}

.club-value strong{
  font-size:9px;
  line-height:1.1;
  color:#111318;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.club-sidebar-motto{
  margin:16px -4px 14px;
  padding:12px 10px;
  color:var(--pink);
  background:#0a0b0d;
  font-size:11px;
  font-weight:900;
  font-style:italic;
  letter-spacing:.04em;
  transform:rotate(-.5deg);
}

.club-social{
  display:grid;
  gap:6px;
  padding:4px 4px 0;
  text-align:left;
}

.club-social-title{
  color:#111318;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.club-social a{
  color:#5c6472;
  font-size:10.5px;
  line-height:1.35;
  text-decoration:none;
}

.club-social a:hover{
  color:var(--pink);
}

.sidebar-brand-close{
  position:absolute;
  top:10px;
  right:10px;
  background:#fff !important;
  color:#111318 !important;
  border-color:#e4e5e9 !important;
}

/* Search and navigation now sit below the club identity panel */
.sidebar-search{
  padding:14px 12px 12px !important;
  background:#fff;
}

.sidebar .search-trigger{
  background:#f8f8fa !important;
  border-color:#e3e5e9 !important;
  color:#6b7280 !important;
  box-shadow:none !important;
}

.sidebar .search-trigger:hover{
  border-color:#ff8ab4 !important;
  color:#111318 !important;
}

.sidebar .search-trigger kbd{
  background:#fff !important;
  color:#7c8491 !important;
  border-color:#dfe2e7 !important;
}

.sidebar .nav{
  background:#fff;
  padding-top:4px;
}

.sidebar .nav-group-title{
  color:#9aa1ad !important;
}

.sidebar .nav-link{
  color:#4c5564 !important;
}

.sidebar .nav-link:hover{
  background:#fff2f7 !important;
  color:#111318 !important;
}

.sidebar .nav-link.active{
  color:#111318 !important;
  background:linear-gradient(90deg,#fff0f6,#fff8fb) !important;
  box-shadow:inset 3px 0 0 var(--pink) !important;
}

.sidebar .nav-icon{
  background:#f6f6f8 !important;
  color:#8b93a0 !important;
}

.sidebar .nav-link.active .nav-icon{
  background:var(--pink) !important;
  color:#fff !important;
}

.sidebar-foot{
  background:#fff !important;
  border-top-color:#ececf0 !important;
}

.sidebar .season-pill,
.sidebar-foot p{
  color:#7c8491 !important;
}

/* Real hero background from the user-shared image */
.welcome-card{
  position:relative;
  min-height:340px;
  background:
    linear-gradient(90deg,
      #08090b 0%,
      #08090b 42%,
      rgba(8,9,11,.96) 52%,
      rgba(8,9,11,.68) 66%,
      rgba(8,9,11,.12) 100%
    ),
    url("./images/hero-netball-background.jpg") right center / auto 100% no-repeat !important;
  border-color:#24272e !important;
}

.welcome-card::after{
  display:none !important;
}

.welcome-glow{
  display:none !important;
}

.welcome-content{
  max-width:760px !important;
  padding:42px 42px 38px !important;
}

.welcome-content h1{
  max-width:740px !important;
  color:#fff !important;
}

.welcome-content h1{
  text-wrap:balance;
}

.welcome-content .eyebrow{
  color:#fff !important;
  font-size:13px !important;
  letter-spacing:.08em !important;
}

.welcome-content p{
  color:#e2e5e9 !important;
  max-width:620px !important;
}

.welcome-actions{
  margin-top:22px !important;
}

@media(max-width:820px){
  .club-sidebar-logo{width:150px}
  .club-sidebar-brand{padding-top:16px}
}

@media(max-width:720px){
  .welcome-card{
    min-height:420px;
    background:
      linear-gradient(180deg,
        rgba(8,9,11,.98) 0%,
        rgba(8,9,11,.94) 48%,
        rgba(8,9,11,.48) 72%,
        rgba(8,9,11,.10) 100%
      ),
      url("./images/hero-netball-background.jpg") 72% bottom / auto 68% no-repeat !important;
  }

  .welcome-content{
    padding:30px 24px 190px !important;
  }

  .club-values{
    grid-template-columns:repeat(2,1fr);
  }
}

/* ============================================================
   v16: restore light/dark theme support for the left sidebar
   ============================================================ */

/* Light mode */
html:not([data-theme="dark"]) .sidebar{
  background:#fff !important;
  color:#111318 !important;
  border-right-color:#e8e8ec !important;
}

html:not([data-theme="dark"]) .club-sidebar-brand,
html:not([data-theme="dark"]) .sidebar-search,
html:not([data-theme="dark"]) .sidebar .nav,
html:not([data-theme="dark"]) .sidebar-foot{
  background:#fff !important;
}

html:not([data-theme="dark"]) .club-sidebar-brand{
  border-bottom-color:#ececf0 !important;
}

html:not([data-theme="dark"]) .club-value strong,
html:not([data-theme="dark"]) .club-social-title{
  color:#111318 !important;
}

html:not([data-theme="dark"]) .club-social a,
html:not([data-theme="dark"]) .sidebar .season-pill,
html:not([data-theme="dark"]) .sidebar-foot p{
  color:#7c8491 !important;
}

/* Dark mode */
html[data-theme="dark"] .sidebar{
  background:linear-gradient(180deg,#08090b 0%,#111318 100%) !important;
  color:#fff !important;
  border-right-color:#23262d !important;
}

html[data-theme="dark"] .club-sidebar-brand{
  background:
    radial-gradient(circle at 50% 5%, rgba(238,23,104,.12), transparent 45%),
    #0b0d10 !important;
  border-bottom-color:#252830 !important;
}

html[data-theme="dark"] .sidebar-search,
html[data-theme="dark"] .sidebar .nav,
html[data-theme="dark"] .sidebar-foot{
  background:#0b0d10 !important;
}

html[data-theme="dark"] .club-sidebar-logo{
  background:#fff !important;
  box-shadow:0 8px 26px rgba(238,23,104,.20) !important;
}

html[data-theme="dark"] .club-sidebar-tagline{
  color:#ff6aa2 !important;
}

html[data-theme="dark"] .club-value strong,
html[data-theme="dark"] .club-social-title{
  color:#fff !important;
}

html[data-theme="dark"] .club-social a{
  color:#b3bac6 !important;
}

html[data-theme="dark"] .club-social a:hover{
  color:#ff6aa2 !important;
}

html[data-theme="dark"] .club-sidebar-motto{
  background:#16181d !important;
  color:#ff4b91 !important;
}

html[data-theme="dark"] .sidebar .search-trigger{
  background:#17191e !important;
  border-color:#2b2f37 !important;
  color:#c8cdd6 !important;
}

html[data-theme="dark"] .sidebar .search-trigger:hover{
  border-color:#ff4b91 !important;
  color:#fff !important;
}

html[data-theme="dark"] .sidebar .search-trigger kbd{
  background:#0d0f12 !important;
  border-color:#363a43 !important;
  color:#aeb4c0 !important;
}

html[data-theme="dark"] .sidebar .nav-group-title{
  color:#7e8796 !important;
}

html[data-theme="dark"] .sidebar .nav-link{
  color:#c8cdd6 !important;
}

html[data-theme="dark"] .sidebar .nav-link:hover{
  background:#17191e !important;
  color:#fff !important;
}

html[data-theme="dark"] .sidebar .nav-link.active{
  background:linear-gradient(90deg,rgba(238,23,104,.22),rgba(238,23,104,.08)) !important;
  color:#fff !important;
  box-shadow:inset 3px 0 0 #ee1768 !important;
}

html[data-theme="dark"] .sidebar .nav-icon{
  background:#17191e !important;
  color:#c8cdd6 !important;
}

html[data-theme="dark"] .sidebar .nav-link.active .nav-icon{
  background:#ee1768 !important;
  color:#fff !important;
}

html[data-theme="dark"] .sidebar-foot{
  border-top-color:#252830 !important;
}

html[data-theme="dark"] .sidebar .season-pill,
html[data-theme="dark"] .sidebar-foot p{
  color:#9aa2af !important;
}

html[data-theme="dark"] .sidebar-brand-close{
  background:#17191e !important;
  color:#fff !important;
  border-color:#2b2f37 !important;
}

/* ============================================================
   v17: restore light/dark theme support for the top header
   ============================================================ */

/* Light header */
html:not([data-theme="dark"]) .topbar{
  background:color-mix(in srgb,#ffffff 94%,transparent) !important;
  border-bottom-color:#e7e9ee !important;
  color:#17191f !important;
}

html:not([data-theme="dark"]) .topbar .breadcrumb{
  color:#6f7785 !important;
}

html:not([data-theme="dark"]) .topbar .icon-button{
  background:#ffffff !important;
  border-color:#e1e4e9 !important;
  color:#17191f !important;
}

html:not([data-theme="dark"]) .topbar .icon-button:hover{
  border-color:#ff8ab4 !important;
  color:#ee1768 !important;
}

/* Dark header */
html[data-theme="dark"] .topbar{
  background:color-mix(in srgb,#090a0c 95%,transparent) !important;
  border-bottom-color:#23262d !important;
  color:#ffffff !important;
}

html[data-theme="dark"] .topbar .breadcrumb{
  color:#aeb4c0 !important;
}

html[data-theme="dark"] .topbar .icon-button{
  background:#17191e !important;
  border-color:#2b2f37 !important;
  color:#ffffff !important;
}

html[data-theme="dark"] .topbar .icon-button:hover{
  border-color:#ff4b91 !important;
  color:#ff6aa2 !important;
}

/* ============================================================
   v18: club identity rail + launcher/flyout navigation
   ============================================================ */

:root{
  --sidebar-w:292px;
}

/* The permanent left rail is now branding/social only. */
.club-rail{
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  overflow-x:hidden;
  background:var(--panel) !important;
}

.club-rail-top{
  position:sticky;
  top:0;
  z-index:3;
  padding:12px;
  background:color-mix(in srgb,var(--panel) 96%,transparent);
  backdrop-filter:blur(12px);
}

.nav-launcher{
  width:100%;
  min-height:48px;
  display:grid;
  grid-template-columns:34px minmax(0,1fr) auto;
  gap:9px;
  align-items:center;
  padding:6px 10px 6px 7px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--panel-2);
  color:var(--text);
  text-align:left;
  cursor:pointer;
  box-shadow:var(--shadow-soft);
}

.nav-launcher:hover,
.nav-launcher[aria-expanded="true"]{
  border-color:var(--pink-2);
  box-shadow:0 8px 24px rgba(238,23,104,.12);
}

.nav-launcher-logo{
  width:32px;height:32px;
  display:grid;place-items:center;
  border-radius:50%;
  background:#fff;
  overflow:hidden;
}

.nav-launcher-logo img{
  width:30px;height:30px;object-fit:contain;
}

.nav-launcher-copy{
  display:grid;
  min-width:0;
}

.nav-launcher-copy strong{
  font-size:12.5px;
  line-height:1.15;
}

.nav-launcher-copy small{
  margin-top:2px;
  color:var(--muted);
  font-size:9.5px;
}

.nav-launcher-chevron{
  color:var(--muted);
  font-size:16px;
}

.club-identity-panel{
  display:flex;
  flex-direction:column;
  flex:1;
  padding:6px 16px 18px;
}

.club-sidebar-logo{
  width:176px;
  max-width:82%;
}

.club-sidebar-tagline{
  margin-top:10px;
  font-size:12px;
}

.club-values{
  margin:10px 0 16px;
  gap:7px;
}

.club-value-icon{
  width:auto;height:auto;
  font-size:22px;
  line-height:1;
}

.club-value strong{
  font-size:8.5px;
}

.club-team-photo{
  margin:4px -16px 0;
  overflow:hidden;
  background:#111;
}

.club-team-photo img{
  width:100%;
  height:245px;
  display:block;
  object-fit:cover;
  object-position:center;
}

.club-social-panel{
  margin:0 -16px -18px;
  padding:20px 18px 22px;
  display:grid;
  gap:10px;
  color:#fff;
  background:
    radial-gradient(circle at 95% 20%,rgba(255,255,255,.10),transparent 28%),
    linear-gradient(145deg,#e90d5c,#f42673);
}

.club-social-panel .club-social-title{
  color:#fff !important;
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.club-social-panel a{
  display:grid;
  grid-template-columns:27px minmax(0,1fr);
  gap:9px;
  align-items:center;
  color:#fff !important;
  font-size:11px;
  line-height:1.25;
  text-decoration:none;
}

.club-social-panel a:hover{
  opacity:.85;
}

.club-social-panel a small{
  display:block;
  margin-top:2px;
  opacity:.78;
  font-size:9px;
}

.social-icon{
  width:27px;height:27px;
  display:grid;place-items:center;
  border:2px solid rgba(255,255,255,.9);
  border-radius:8px;
  font-weight:900;
}

.club-social-panel p{
  margin:2px 0 0;
  color:rgba(255,255,255,.86);
  font-size:10px;
  line-height:1.45;
}

.rail-close{
  position:absolute;
  top:8px;
  right:8px;
}

/* Floating navigation panel modelled after the supplied working example. */
.nav-flyout{
  position:fixed;
  left:16px;
  top:72px;
  z-index:70;
  width:min(390px,calc(100vw - 32px));
  max-height:calc(100vh - 92px);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line-strong);
  border-radius:20px;
  background:var(--panel);
  color:var(--text);
  box-shadow:0 24px 70px rgba(0,0,0,.28);
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px) scale(.98);
  transform-origin:top left;
  transition:opacity .16s ease,transform .16s ease,visibility .16s;
}

.nav-flyout.open{
  opacity:1;
  visibility:visible;
  transform:translateY(0) scale(1);
}

.nav-flyout-head{
  display:flex;
  align-items:start;
  justify-content:space-between;
  gap:12px;
  padding:17px 17px 12px;
}

.nav-flyout-head strong{
  display:block;
  margin-top:4px;
  font-size:15px;
}

.nav-flyout-search{
  padding:0 12px 10px;
}

.nav-flyout .search-trigger{
  width:100%;
  background:var(--panel-2) !important;
  color:var(--muted) !important;
  border-color:var(--line) !important;
}

.flyout-nav{
  flex:1;
  overflow:auto;
  padding:3px 9px 12px;
  background:var(--panel) !important;
}

.nav-flyout .nav-group{
  margin:8px 0 14px;
}

.nav-flyout .nav-group-title{
  color:var(--muted) !important;
}

.nav-flyout .nav-link{
  color:var(--text-2) !important;
}

.nav-flyout .nav-link:hover{
  background:var(--panel-2) !important;
  color:var(--text) !important;
}

.nav-flyout .nav-link.active{
  background:var(--pink-soft) !important;
  color:var(--text) !important;
  box-shadow:inset 3px 0 0 var(--pink) !important;
}

.nav-flyout-foot{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:12px 15px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:10px;
}

/* Scrim supports flyout as well as mobile rail. */
.scrim.open{
  display:block;
}

/* Light/dark behaviour for rail */
html[data-theme="dark"] .club-rail{
  background:#0b0d10 !important;
}

html[data-theme="dark"] .club-rail-top{
  background:color-mix(in srgb,#0b0d10 96%,transparent);
}

html[data-theme="dark"] .nav-launcher{
  background:#17191e;
  border-color:#2b2f37;
  color:#fff;
}

html[data-theme="dark"] .club-identity-panel{
  background:#0b0d10;
}

html[data-theme="dark"] .club-sidebar-tagline{
  color:#ff6aa2 !important;
}

html[data-theme="dark"] .club-value strong{
  color:#fff !important;
}

html[data-theme="dark"] .nav-flyout{
  background:#15171c;
  border-color:#30343d;
}

html[data-theme="dark"] .flyout-nav{
  background:#15171c !important;
}

html[data-theme="dark"] .nav-flyout .nav-link:hover{
  background:#1d2026 !important;
}

html[data-theme="dark"] .nav-flyout .nav-link.active{
  background:rgba(238,23,104,.16) !important;
  color:#fff !important;
}

@media(max-width:820px){
  .club-rail{
    width:min(292px,86vw);
  }

  .nav-flyout{
    left:12px;
    top:68px;
    width:min(390px,calc(100vw - 24px));
  }

  .club-team-photo img{
    height:220px;
  }
}

/* ============================================================
   v19: no top header, centered identity, bottom-pinned photo/social
   ============================================================ */

/* Header removed: workspace begins at top */
.workspace{
  min-height:100vh;
}

.canvas{
  padding-top:28px;
}

/* Sidebar layout */
.club-rail{
  display:flex;
  flex-direction:column;
  min-height:100vh;
}

.club-rail-top{
  flex:0 0 auto;
}

.club-identity-panel{
  flex:1 1 auto;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  min-height:0;
}

/* Center logo and copy */
.club-brand-link{
  display:flex;
  justify-content:center;
  align-items:center;
  width:100%;
}

.club-sidebar-logo{
  display:block;
  margin:0 auto;
}

.club-sidebar-tagline{
  width:100%;
  max-width:240px;
  margin-left:auto !important;
  margin-right:auto !important;
  text-align:center !important;
}

.club-values{
  width:100%;
  text-align:center;
}

/* Lower visual/social block pins to bottom if there is extra vertical room */
.club-team-photo{
  margin-top:auto !important;
}

.club-social-panel{
  flex:0 0 auto;
}

/* Navigation flyout tools */
.nav-flyout-foot-expanded{
  display:block !important;
  padding:0 !important;
}

.nav-tools{
  padding:13px 15px;
  border-top:1px solid var(--line);
}

.nav-tool-row{
  display:grid;
  gap:8px;
}

.nav-tool-label{
  color:var(--muted);
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.theme-switcher{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:5px;
  padding:4px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--panel-2);
}

.theme-choice{
  min-height:32px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:var(--muted);
  cursor:pointer;
  font-size:10.5px;
  font-weight:700;
}

.theme-choice:hover{
  color:var(--text);
}

.theme-choice.active{
  background:var(--panel);
  color:var(--text);
  box-shadow:0 1px 4px rgba(0,0,0,.08);
}

.menu-account-area{
  margin-top:12px;
}

.menu-account-status{
  color:var(--muted);
  font-size:11px;
}

.menu-user-block{
  display:grid;
  gap:9px;
  padding-top:10px;
  border-top:1px solid var(--line);
}

.menu-user-block>div:first-child{
  display:grid;
  gap:2px;
}

.menu-user-block strong{
  font-size:12px;
}

.menu-user-block span{
  color:var(--muted);
  font-size:10.5px;
}

.menu-user-actions{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
}

.menu-account-button{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:0 10px;
  border:1px solid var(--line);
  border-radius:9px;
  background:var(--panel-2);
  color:var(--text-2);
  text-decoration:none;
  font-size:10.5px;
  font-weight:800;
}

.menu-account-button:hover{
  border-color:var(--pink-2);
  color:var(--pink);
  text-decoration:none;
}

.menu-account-button.primary{
  background:var(--pink);
  border-color:var(--pink);
  color:#fff;
}

.nav-flyout-meta{
  display:flex;
  justify-content:space-between;
  gap:10px;
  align-items:center;
  padding:10px 15px 12px;
  border-top:1px solid var(--line);
  color:var(--muted);
  font-size:10px;
}

/* old floating auth control no longer needed */
.admin-access-control{
  display:none !important;
}

/* Dark theme menu switch */
html[data-theme="dark"] .theme-switcher{
  background:#101217;
  border-color:#2c3038;
}

html[data-theme="dark"] .theme-choice.active{
  background:#1d2026;
  color:#fff;
}

/* Without header, nav flyout can sit higher */
.nav-flyout{
  top:66px;
}

@media(max-width:820px){
  .canvas{padding-top:18px}
  .club-team-photo{margin-top:18px !important}
}

/* ============================================================
   v20: app-shell layout guard
   ============================================================ */

@media(min-width:821px){
  .app-shell{
    display:grid !important;
    grid-template-columns:var(--sidebar-w) minmax(0,1fr) !important;
    grid-template-rows:auto !important;
    align-items:start !important;
    min-height:100vh;
  }

  .club-rail{
    grid-column:1;
    grid-row:1;
    position:sticky;
    top:0;
    height:100vh;
    min-height:100vh;
  }

  .workspace{
    grid-column:2;
    grid-row:1;
    align-self:start;
    min-width:0;
    width:100%;
    min-height:100vh;
  }

  .workspace > .canvas{
    margin-top:0 !important;
  }
}

/* v21 security/accessibility review fixes */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.raci-note{margin-top:14px}.preview-placeholder{color:var(--muted)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}
html:not([data-theme="dark"]) .snapshot-item span,html:not([data-theme="dark"]) .hub-shortcut span,html:not([data-theme="dark"]) .home-text-link,html:not([data-theme="dark"]) .help-route,html:not([data-theme="dark"]) .link-card-meta,html:not([data-theme="dark"]) .role-person,html:not([data-theme="dark"]) .badge,html:not([data-theme="dark"]) .menu-account-button:hover{color:#d80e58}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}

/* ============================================================
   v23: compact role contact controls and themed message dialog
   ============================================================ */

.contact-role-button{
  appearance:none;
  min-height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  padding:4px 9px;
  border:1px solid var(--accent-2);
  border-radius:999px;
  background:var(--accent-soft);
  color:var(--accent-text);
  box-shadow:none;
  font:inherit;
  font-size:11px;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
  cursor:pointer;
}

.contact-role-icon{
  width:13px;
  height:13px;
  flex:0 0 13px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.contact-role-button:hover{
  border-color:#d80e58;
  background:#d80e58;
  color:#fff;
}

.contact-role-button:active{transform:translateY(1px)}
.contact-role-button:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}

.raci-table th .contact-role-button{
  min-height:26px;
  display:inline-flex;
  margin:7px auto 0;
  padding:3px 7px;
  border-radius:999px;
  font-size:9.5px;
}

.raci-table th .contact-role-icon{width:11px;height:11px;flex-basis:11px}
.raci-table th .contact-role-button>span{display:none}
.policy-owner .contact-role-button{padding:4px 8px;border-radius:999px;font-size:10.5px}
.help-card>.contact-role-button{margin:0 14px 14px;justify-self:start}
.section>.contact-role-button{margin-top:10px}

.contact-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:17px;
  border:1px solid var(--line);
  border-radius:15px;
  background:var(--panel-2);
  overflow:visible;
}

.contact-card:hover{border-color:var(--accent-2)}
.contact-card-copy{display:grid;gap:5px;min-width:0}
.contact-card-role{color:var(--accent-text);font-size:11px;font-weight:800;letter-spacing:.02em}
.contact-card-copy strong{color:var(--text);font-size:15px;line-height:1.3}
.contact-card-copy p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.contact-card-actions{display:flex;align-items:center;gap:9px;margin-top:auto;padding-top:14px}

.contact-card-guidance{
  appearance:none;
  min-height:30px;
  padding:3px 0;
  border:0;
  background:transparent;
  color:var(--text-2);
  font:inherit;
  font-size:11.5px;
  font-weight:750;
  cursor:pointer;
}

.contact-card-guidance:hover{color:var(--accent-text)}
.contact-card-guidance:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px;border-radius:5px}

.contact-dialog{
  width:min(560px,calc(100vw - 28px));
  max-height:calc(100dvh - 28px);
  padding:0;
  border:1px solid var(--line-strong);
  border-radius:20px;
  background:var(--panel);
  color:var(--text);
  color-scheme:light;
  box-shadow:0 28px 90px rgba(0,0,0,.38);
  font-family:Aptos,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow:auto;
}

html[data-theme="dark"] .contact-dialog{
  background:#13161c;
  color:#f4f5f7;
  border-color:#313846;
  color-scheme:dark;
}

.contact-dialog::backdrop{background:rgba(5,7,11,.74);backdrop-filter:blur(5px)}
.committee-contact-form{position:relative;padding:24px}
.contact-dialog-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:18px}
.contact-dialog-header h2{margin:5px 0 5px;color:var(--text);font-size:24px;line-height:1.15;letter-spacing:-.025em}
.contact-dialog-header p{max-width:410px;margin:0;color:var(--muted);font-size:12.5px;line-height:1.5}

.contact-dialog-close{
  appearance:none;
  width:34px;
  height:34px;
  flex:0 0 34px;
  display:grid;
  place-items:center;
  padding:0 0 2px;
  border:1px solid var(--line);
  border-radius:50%;
  background:var(--panel-2);
  color:var(--text-2);
  font:inherit;
  font-size:21px;
  line-height:1;
  cursor:pointer;
}

.contact-dialog-close:hover{border-color:var(--accent-2);color:var(--accent-text)}

.contact-dialog-recipient{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  align-items:center;
  gap:11px;
  margin-bottom:18px;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:13px;
  background:var(--accent-soft);
}

.contact-dialog-recipient>svg{
  width:34px;
  height:34px;
  padding:8px;
  border-radius:50%;
  background:var(--panel);
  color:var(--accent-text);
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.contact-dialog-recipient>div{display:grid;gap:2px;min-width:0}
.contact-dialog-recipient span{color:var(--muted);font-size:9.5px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.contact-dialog-recipient strong{display:block;color:var(--text);font-size:14px;line-height:1.25}
.contact-dialog-recipient small{display:block;color:var(--muted);font-size:11.5px;line-height:1.35}
.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.contact-form-field{display:grid;align-content:start;gap:6px;min-width:0}
.contact-form-field.full{grid-column:1/-1}
.contact-form-field>span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}

.contact-form-field input,
.contact-form-field textarea{
  appearance:none;
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid var(--line-strong);
  border-radius:11px;
  background:var(--panel-2);
  color:var(--text);
  font:inherit;
  font-size:13px;
}

.contact-form-field textarea{min-height:142px;resize:vertical;line-height:1.5}
.contact-form-field input:focus,.contact-form-field textarea:focus{outline:3px solid var(--accent-2);outline-offset:2px;border-color:transparent}
.contact-form-field small,.contact-form-status{color:var(--muted);font-size:11px;line-height:1.45}
.contact-remember-details{display:grid;gap:5px;margin-top:14px;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:var(--panel-2)}
.contact-remember-details label{display:flex;align-items:flex-start;gap:9px;color:var(--text-2);font-size:12px;font-weight:750;line-height:1.4;cursor:pointer}
.contact-remember-details input{width:16px;height:16px;flex:0 0 16px;margin:1px 0 0;accent-color:var(--accent-text)}
.contact-remember-details input:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}
.contact-remember-details p{margin:0 0 0 25px;color:var(--muted);font-size:10.5px;line-height:1.45}
.contact-remember-details button{justify-self:start;margin:2px 0 0 25px;padding:0;border:0;background:transparent;color:var(--accent-text);font:inherit;font-size:10.5px;font-weight:800;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.contact-remember-details button[hidden]{display:none}
.contact-form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:16px}
.contact-dialog .primary-action,.contact-dialog .secondary-button{min-height:40px;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800}
.contact-dialog .primary-action{background:#d80e58;border:1px solid #d80e58;color:#fff;box-shadow:none}
.contact-dialog .secondary-button{background:transparent;border:1px solid var(--line-strong);color:var(--text-2)}
.contact-dialog .secondary-button:hover{border-color:var(--accent-2);color:var(--accent-text)}
.contact-form-status{flex:1 1 210px}

@media(max-width:560px){
  .committee-contact-form{padding:18px}
  .contact-dialog-header h2{font-size:21px}
  .contact-dialog-header p{font-size:11.5px}
  .contact-form-grid{grid-template-columns:1fr}
  .contact-form-field.full{grid-column:auto}
  .contact-form-actions{align-items:stretch}
  .contact-form-actions>button{flex:1 1 auto}
  .contact-form-status{flex-basis:100%}
}

/* ============================================================
   v26: public mobile navigation launcher
   ============================================================ */

.mobile-nav-bar{display:none}

@media(max-width:820px){
  .mobile-nav-bar{
    position:sticky;
    top:0;
    z-index:35;
    min-height:64px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    padding:calc(10px + env(safe-area-inset-top)) 14px 10px;
    border-bottom:1px solid var(--line);
    background:color-mix(in srgb,var(--panel) 94%,transparent);
    backdrop-filter:blur(14px);
  }

  .mobile-nav-button{
    min-height:44px;
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:0 16px;
    border:1px solid var(--line-strong);
    border-radius:999px;
    background:var(--panel-2);
    color:var(--text);
    box-shadow:var(--shadow-soft);
    font-size:13px;
    font-weight:800;
    cursor:pointer;
  }

  .mobile-nav-button:hover,
  .mobile-nav-button[aria-expanded="true"]{
    border-color:var(--pink-2);
    color:var(--accent-text);
  }

  .mobile-nav-button-icon{font-size:18px;line-height:1}
  .mobile-nav-title{color:var(--muted);font-size:12px;font-weight:750;text-align:right}
  .nav-flyout{top:calc(68px + env(safe-area-inset-top));max-height:calc(100dvh - 84px - env(safe-area-inset-top))}
}

@media(max-width:380px){
  .mobile-nav-title{font-size:11px}
}

/* v2 public governance, sponsor and minutes surfaces */
.sidebar-sponsors{display:grid;gap:8px;margin-top:12px;text-align:center}.sidebar-sponsor{display:flex;align-items:center;justify-content:center;padding:7px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.sidebar-sponsor img{display:block;width:auto;max-width:100%;object-fit:contain}.sidebar-sponsor-gold img{max-height:78px}.sidebar-sponsor-silver img{max-height:58px}.sidebar-sponsor-bronze img{max-height:42px}.public-event-list,.public-sponsor-grid{display:grid;gap:15px}.public-sponsor-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.public-sponsor{display:grid;gap:12px;padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--panel-2)}.public-sponsor img{max-width:100%;width:auto;object-fit:contain}.public-sponsor.sponsor-gold{grid-column:1/-1}.public-sponsor.sponsor-gold img{max-height:220px}.public-sponsor.sponsor-silver img{max-height:150px}.public-sponsor.sponsor-bronze img{max-height:100px}.sponsor-offer{padding:10px;border-left:3px solid var(--accent);background:var(--accent-soft)}.public-minutes{margin-bottom:12px;padding:14px;border:1px solid var(--line);border-radius:10px}.public-minutes summary{display:flex;justify-content:space-between;gap:14px;cursor:pointer}.public-minutes summary span{color:var(--muted);font-size:12px}@media(max-width:700px){.public-sponsor-grid{grid-template-columns:1fr}.public-sponsor.sponsor-gold{grid-column:auto}}
