@import url("/ui/athletic-buttons.css?v=2026-10-19");
@import url("/ui/material-icons.css?v=rail-shell-1");
/* Shared header, account menu, and collapsible navigation. */
.lp-header { display:grid; grid-template-columns:minmax(240px,1fr) minmax(0,2fr) minmax(48px,1fr); align-items:center; gap:20px; min-height:88px; padding:12px clamp(16px,3vw,40px); background:#fff; color:#172033; border-bottom:1px solid #e3e7ef; }
.lp-header-start { display:flex; align-items:center; gap:12px; min-width:0; }
.lp-brand { display:flex; align-items:center; gap:10px; min-width:0; color:#281156; text-decoration:none; }
.lp-brand img { width:44px; height:44px; flex:none; object-fit:contain; }
.lp-brand strong,.lp-brand small { display:block; }
.lp-brand strong { font-size:1rem; }
.lp-brand small { color:#687386; margin-top:3px; font-size:.75rem; overflow-wrap:anywhere; }
.lp-header-center { min-width:0; }
.lp-context-selectors { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:end; }
.lp-context-selectors .season-picker { min-width:0; padding:0; margin:0; }
.lp-context-selectors select { width:100%; min-width:0; text-overflow:ellipsis; }
.lp-nav-toggle { display:inline-flex; align-items:center; justify-content:center; flex:none; width:44px; height:44px; padding:10px; border:1px solid #e3e7ef; border-radius:10px; background:#f3edff; color:#281156; cursor:pointer; }
.lp-account { display:flex; align-items:center; justify-content:flex-end; min-width:0; }
.lp-account-menu { position:relative; }
.lp-account-menu > summary { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:8px; border:1px solid #e3e7ef; border-radius:50%; background:#f3edff; color:#281156; cursor:pointer; list-style:none; }
.lp-account-menu > summary::-webkit-details-marker { display:none; }
.lp-account-menu > summary .material-symbols-outlined { width:28px; height:28px; font-size:28px; }
.lp-account-menu-panel { position:absolute; right:0; top:calc(100% + 12px); z-index:100; width:min(320px,calc(100vw - 32px)); max-height:calc(100dvh - 120px); overflow:auto; padding:16px; background:white; border:1px solid #e3e7ef; border-radius:12px; box-shadow:0 12px 32px #17203333; }
.lp-session-status { display:block; padding:0 0 12px; margin-bottom:6px; border-bottom:1px solid #e3e7ef; overflow-wrap:anywhere; color:#687386; font-size:.8rem; }
.lp-account-button { font:inherit; cursor:pointer; border:1px solid #e3e7ef; border-radius:10px; padding:10px 16px; background:#f1ebfa; color:#281156; min-height:44px; }
.lp-account-menu-panel #logout-button { width:100%; margin-top:12px; }
.lp-account-button:disabled { opacity:.65; cursor:wait; }
.lp-disclosure { font-size:.85rem; }
.lp-disclosure summary { display:flex; cursor:pointer; align-items:center; gap:8px; padding:12px 6px; min-height:44px; }
.lp-disclosure > div { padding:8px 6px 12px; overflow-wrap:anywhere; line-height:1.6; }
:is(.lp-header,.access-card) :is(a,button,summary,select):focus-visible { outline:3px solid #f9b515; outline-offset:3px; }
[hidden] { display:none !important; }
.access-card { max-width:600px; margin:40px auto; padding:24px; overflow-wrap:anywhere; }
.access-card .lp-account-button { margin:8px; }
.selection-summary { color:var(--muted); overflow-wrap:anywhere; text-align:left; }
.admin-shell-v2.lp-nav-collapsed .admin-layout { grid-template-columns:minmax(0,1fr); }
.admin-shell-v2 .admin-sidebar { background:var(--surface); color:var(--ink); border-right:1px solid var(--line); }
.admin-shell-v2 .admin-sidebar a { color:var(--muted); min-height:44px; }
.admin-shell-v2 .admin-sidebar a:hover,.admin-shell-v2 .admin-sidebar a.is-active { color:var(--purple); background:var(--purple-soft); }
.admin-shell-v2 .admin-sidebar-heading { color:var(--purple); }
.pgs-admin .status-card { flex-wrap:wrap; }
.pgs-admin .hero p { color:#eee6fa; }
.pgs-global-nav a { min-width:0; overflow-wrap:anywhere; }
@media(max-width:1100px) {
 .lp-header { grid-template-columns:minmax(0,1fr) auto; gap:12px; }
 .lp-header-center { grid-row:2; grid-column:1/-1; }
 .lp-header-center:empty { display:none; }
 .lp-account { grid-column:2; grid-row:1; }
}
@media(max-width:850px) {
 .admin-shell-v2 .admin-sidebar, .pgs-admin #pgs-sidebar { display:none; }
 .admin-shell-v2 .admin-sidebar.is-mobile-open, .pgs-admin #pgs-sidebar.is-mobile-open { display:flex; flex-direction:column; }
 .admin-shell-v2 .admin-sidebar-nav, .pgs-admin .sidebar nav { display:flex; flex-direction:column; overflow:visible; }
 .pgs-admin .shell { display:block; }
 .pgs-admin .sidebar { width:100%; }
 .lp-context-selectors { gap:10px; }
 .lp-context-selectors select { padding:8px 4px; font-size:.75rem; }
}
@media(prefers-reduced-motion:reduce) { .auth-spinner { animation:none; } }

/* One stationary drawer and content frame for administrators and members. */
body.lp-universal-shell { --lp-drawer-width:248px; --lp-header-height:88px; }
body.lp-universal-shell.lp-nav-collapsed { --lp-drawer-width:64px; }
.lp-universal-shell .lp-header { position:sticky; top:0; z-index:60; }
.lp-universal-shell :is(.shell,.layout,.admin-layout) { display:block !important; min-height:calc(100dvh - var(--lp-header-height)); padding-left:var(--lp-drawer-width); }
.lp-universal-shell :is(#pgs-sidebar,#member-sidebar,.admin-sidebar) { position:fixed; inset:var(--lp-header-height) auto 0 0; width:var(--lp-drawer-width); min-width:0; height:calc(100dvh - var(--lp-header-height)); display:flex !important; flex-direction:column; gap:0; padding:8px; background:#fff; color:#172033; border-right:1px solid #e3e7ef; overflow:hidden; z-index:50; }
.lp-universal-shell :is(#pgs-sidebar,#member-sidebar,.admin-sidebar)[hidden] { display:none !important; }
.lp-drawer-head { display:flex; align-items:center; gap:12px; flex:none; min-height:48px; margin-bottom:6px; color:#281156; }
.lp-drawer-head strong { font-size:.8rem; }
.lp-universal-shell :is(#admin-nav,#side-nav,.admin-sidebar-nav) { display:flex; flex-direction:column; gap:2px; padding:0; min-height:0; overflow-x:hidden; overflow-y:auto; scrollbar-width:thin; flex:1; overscroll-behavior:contain; }
.lp-universal-shell :is(#admin-nav,#side-nav,.admin-sidebar-nav) > :is(a,button) { display:flex; flex:none; align-items:center; justify-content:flex-start; gap:10px; min-height:32px; width:100%; margin:0; padding:6px 10px; font-size:.8rem; text-align:left; white-space:normal; text-decoration:none; border-radius:8px; }
.lp-universal-shell :is(#admin-nav,#side-nav,.admin-sidebar-nav) .material-symbols-outlined { width:22px; min-width:22px; height:22px; margin:0; font-size:22px; }
.lp-universal-shell :is(.admin-sidebar-heading,.pgs-global-nav,.mobile-nav) { display:none !important; }
.lp-universal-shell.lp-nav-collapsed :is(#admin-nav,#side-nav,.admin-sidebar-nav) > :is(a,button) { justify-content:center; padding:6px 10px; min-height:34px; }
.lp-universal-shell.lp-nav-collapsed :is(#admin-nav,#side-nav,.admin-sidebar-nav) > :is(a,button) > span:not(.material-symbols-outlined),
.lp-universal-shell.lp-nav-collapsed .lp-drawer-head strong { display:none; }
.lp-universal-shell :is(main.main,main.admin-main,main.programs-main,main[data-shell-main]) { width:100%; max-width:none; min-width:0; margin:0; padding:16px clamp(16px,2.5vw,36px) 48px; }
.lp-main-topline { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:12px 24px; margin-bottom:4px; }
.lp-main-topline :is(.selection-summary,.crumbs) { flex:1 1 240px; min-width:0; margin:0; font-size:.8rem; text-align:left; }
.lp-page-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-left:auto; }
.lp-page-actions:empty { display:none; }
.lp-page-actions > .actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin:0; }
.lp-universal-shell :is(.page-head,.page-heading) { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; gap:12px; margin:0 auto 28px; }
.lp-universal-shell :is(.page-head,.page-heading) > div { width:100%; }
.lp-universal-shell :is(.page-head,.page-heading) p { margin-inline:auto; }
.lp-universal-shell #workspace-title { text-align:center; }
.lp-account-link { display:flex; align-items:center; gap:10px; min-height:44px; color:#281156; text-decoration:none; padding:10px 6px; }
@media(max-width:850px) {
 .lp-universal-shell:not(.lp-nav-collapsed) { --lp-drawer-width:232px; }
 .lp-universal-shell:not(.lp-nav-collapsed) :is(#pgs-sidebar,#member-sidebar,.admin-sidebar) { box-shadow:8px 0 24px #17203322; }
 .lp-universal-shell :is(.shell,.layout,.admin-layout) { padding-left:64px; }
 .lp-universal-shell .layout { padding-bottom:0; }
 .lp-universal-shell .lp-main-topline { gap:12px; }
 .lp-universal-shell .lp-main-topline :is(.selection-summary,.crumbs) { flex-basis:100%; }
 .lp-universal-shell .lp-page-actions .button { max-width:100%; font-size:.8rem; padding:10px 12px; }
}
/* Session and permission visibility always takes precedence over shell layout. */
body.lp-universal-shell [hidden] { display:none !important; }
.lp-universal-shell :is(#admin-nav,#side-nav,.admin-sidebar-nav) > :is(a,button) { color:var(--muted,#687386); font-weight:750; }
.lp-universal-shell :is(#admin-nav,#side-nav,.admin-sidebar-nav) > :is(a,button):is(:hover,:focus-visible,.is-active,[aria-current=page]) { color:#281156; background:#f3edff; }
/* Group labels stay compact; the collapsed drawer keeps only icon links. */
.lp-nav-group { flex:none; margin:9px 10px 3px; color:#796c8e; font-size:.62rem; font-weight:850; line-height:1.3; letter-spacing:.08em; text-transform:uppercase; }
.lp-nav-group:first-child { margin-top:0; }
.lp-nav-collapsed .lp-nav-group { height:1px; margin:7px 10px; overflow:hidden; color:transparent; border-top:1px solid #e3e7ef; font-size:0; }
.lp-universal-shell :is(#admin-nav,.admin-sidebar-nav) > :is(a,button) { min-height:30px; padding:4px 10px; }
.lp-universal-shell.lp-nav-collapsed :is(#admin-nav,.admin-sidebar-nav) > :is(a,button) { min-height:32px; padding:5px 10px; }

#admin-navigation-status { position:fixed; inset:80px 16px auto auto; max-width:calc(100vw - 32px); z-index:1000; padding:10px 16px; border-radius:10px; color:#281156; background:#f3edff; box-shadow:0 4px 18px #21113b22; font-size:14px; }
#admin-navigation-status.is-error { background:#fff2e3; color:#753900; }
