.app-shell {min-height: 100vh;}
.content-shell {min-width: 0;min-height: 100vh;margin-left: calc(var(--sidebar-width) + 28px);}
.main-content {min-width: 0;width: min(100%,1480px);margin: 0 auto;padding: var(--space-6);}
.app-shell.sidebar-collapsed > .content-shell {margin-left: calc(var(--sidebar-collapsed-width) + 28px);}
.skip-content:focus {position: fixed;top: 8px;left: 8px;z-index: 1100;padding: 12px;color: var(--text);background: var(--surface);}
.brand-lockup {display: flex;align-items: center;gap: 9px;min-width: 0;min-height: 44px;color: var(--text);}
.brand-lockup:hover {color: inherit;}
.brand-symbol {width: 36px;height: 36px;flex: 0 0 auto;}
.brand-lockup > span {min-width: 0;}
.brand-lockup strong {display: block;overflow: hidden;text-overflow: ellipsis;font-size: 1rem;font-weight: 800;line-height: 1.2;letter-spacing: .01em;white-space: nowrap;}
.brand-lockup small {display: block;color: var(--text-muted);}
:is(.sidebar, #mobileMenu) {--sidebar-bg: var(--shell-nav-bg);--sidebar-bg-elevated: var(--shell-nav-hover);--sidebar-text: var(--shell-nav-text);--sidebar-muted: var(--shell-nav-muted);--sidebar-border: var(--shell-nav-border);box-sizing: border-box;color: var(--sidebar-text);background: var(--sidebar-bg);max-width: 100%;overflow-x: hidden;}
:is(.sidebar, #mobileMenu) :focus-visible {outline-color: var(--shell-nav-focus);}
:is(.sidebar, #mobileMenu) .brand-lockup {color: var(--sidebar-text);}
.sidebar {position: fixed;inset: 0 auto 0 0;z-index: 1030;display: flex;flex-direction: column;gap: var(--space-3);width: var(--sidebar-width);min-width: var(--sidebar-width);max-width: var(--sidebar-width);padding: var(--space-4) var(--space-3);border-right: 1px solid var(--sidebar-border);}
.sidebar-header {display: flex;align-items: center;justify-content: space-between;gap: var(--space-1);flex: 0 0 auto;min-width: 0;min-height: 44px;}
.sidebar-toggle,
.nav-favorite-toggle,
.sidebar-icon-action {display: inline-flex;align-items: center;justify-content: center;flex: 0 0 44px;width: 44px;min-width: 44px;height: 44px;min-height: 44px;padding: 0;border: 0;border-radius: var(--radius);background: transparent;color: var(--sidebar-muted, var(--text-muted));}
:is(.sidebar-toggle, .nav-favorite-toggle, .sidebar-icon-action):hover {color: var(--sidebar-text, var(--text));background: var(--sidebar-bg-elevated, var(--surface-secondary));}
.nav-favorite-toggle.is-favorite {color: var(--shell-nav-favorite);}
.sidebar-navigation {flex: 1 1 auto;min-height: 0;width: 100%;overflow-y: auto;overflow-x: hidden;scrollbar-width: thin;scrollbar-color: var(--sidebar-border) var(--sidebar-bg);}
.sidebar-navigation > .sidebar-nav,
.sidebar-favorites {flex: 0 0 auto;}
.sidebar-nav {flex-wrap: nowrap;gap: 3px;width: 100%;min-width: 0;max-width: 100%;}
.sidebar-nav .nav-item {position: relative;min-width: 0;max-width: 100%;}
.sidebar-nav .nav-item:not(.nav-group),
.nav-group-trigger-row {display: grid;grid-template-columns: minmax(0,1fr) 44px;align-items: center;min-width: 0;}
.sidebar-nav .nav-group {display: block;}
.sidebar-nav .nav-link {display: flex;align-items: center;gap: var(--space-2);width: 100%;min-width: 0;min-height: 44px;padding: 8px;color: var(--sidebar-muted, var(--text-secondary));background: transparent;border: 0;border-radius: var(--radius);text-align: left;font: inherit;font-size: .8125rem;font-weight: 500;white-space: normal;}
.sidebar-nav .nav-label {min-width: 0;overflow-wrap: anywhere;}
.sidebar-nav .nav-link i:first-child {flex: 0 0 20px;width: 20px;font-size: 1rem;text-align: center;color: inherit;}
.sidebar-nav .nav-link:hover {color: var(--sidebar-text, var(--text));background: var(--sidebar-bg-elevated, var(--surface-secondary));}
.sidebar-nav .nav-link.active,
.app-shell .sidebar-nav .nav-link.active {color: var(--shell-nav-active-text);background: var(--shell-nav-active-bg);font-weight: 650;box-shadow: inset 3px 0 0 var(--shell-nav-focus);}
.sidebar-nav :is(.nav-group-trigger-row,.nav-item:not(.nav-group)) {border-bottom: 1px solid var(--sidebar-border, var(--border));}
.nav-group-chevron {flex: 0 0 auto;margin-left: auto;font-size: .7rem;}
.nav-group.is-open > .nav-group-trigger-row .nav-group-chevron {transform: rotate(180deg);}
.nav-submenu {display: none;flex-direction: column;position: static;width: calc(100% - 12px);min-width: 0;margin: 4px 0 8px 12px;padding-left: 8px;border-left: 1px solid var(--sidebar-border, var(--border));}
.nav-group.is-open > .nav-submenu {display: flex;}
.nav-submenu .nav-item {width: 100%;}
.nav-submenu .nav-link {font-size: .78125rem;}
.nav-section {display: flex;align-items: center;gap: 8px;margin: 16px 8px 6px;color: var(--sidebar-muted, var(--text-muted));font-size: .6875rem;font-weight: 600;letter-spacing: .08em;text-transform: uppercase;}
.sidebar-favorites {margin-bottom: 8px;}
.sidebar-favorites-list {width: 100%;min-width: 0;}
.application-version {flex: 0 0 auto;margin-top: auto;padding: 8px 4px 0;color: var(--sidebar-muted, var(--text-muted));font-size: .6875rem;text-align: center;overflow-wrap: anywhere;}
.sidebar.is-collapsed {width: var(--sidebar-collapsed-width);min-width: var(--sidebar-collapsed-width);max-width: var(--sidebar-collapsed-width);padding-inline: 10px;}
.sidebar.is-collapsed .sidebar-header {flex-direction: column;}
.sidebar.is-collapsed .brand-lockup {justify-content: center;}
.sidebar.is-collapsed :is(.brand-lockup > span,.nav-label,.nav-section span,.nav-group-chevron,.nav-favorite-toggle,.sidebar-context,.sidebar-user-meta,.sidebar-user-action,.application-version-label) {display: none;}
.sidebar.is-collapsed .sidebar-nav .nav-link {justify-content: center;padding-inline: 0;}
.sidebar.is-collapsed :is(.nav-item:not(.nav-group),.nav-group-trigger-row) {display: block;}
.sidebar.is-collapsed .nav-submenu {margin-left: 0;padding-left: 0;width: 100%;border: 0;}
.sidebar.is-collapsed .application-version {font-size: .5625rem;padding-inline: 0;}
.sidebar-context {flex: 0 0 auto;min-width: 0;width: 100%;}
.sidebar-context-picker {min-width: 0;}
.sidebar-context-summary {display: flex;align-items: center;gap: 8px;min-height: 44px;padding: 8px;border: 1px solid var(--border-strong);border-radius: var(--radius);color: var(--text);background: var(--surface);cursor: pointer;list-style: none;}
.sidebar-context-summary::-webkit-details-marker {display: none;}
.sidebar-context-summary::marker {content: "";}
.sidebar-context-summary:hover {border-color: var(--primary);}
.sidebar-context-current {flex: 1;display: grid;gap: 2px;min-width: 0;font-size: .8125rem;line-height: 1.4;}
.sidebar-context-current > * {min-width: 0;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.sidebar-context-current strong {font-weight: 600;}
.sidebar-context-current > span {color: var(--text-secondary);}
.sidebar-context-summary > i {flex: 0 0 16px;font-size: .7rem;}
.sidebar-context-picker[open] > summary > i {transform: rotate(180deg);}
.sidebar-context-form {position: relative;display: grid;gap: 8px;width: 100%;min-width: 0;margin: 8px 0 0;padding: 16px;border: 1px solid var(--border);border-radius: var(--radius-lg);background: var(--surface);color: var(--text);max-height: min(400px,60dvh);overflow: auto;}
.sidebar-context-form label {color: var(--text-secondary);font-size: var(--font-size-label);font-weight: var(--font-weight-control);}
.sidebar-context-description {margin: 0;color: var(--text-secondary);font-size: .8125rem;overflow-wrap: anywhere;}
.sidebar-context-form .form-select {width: 100%;min-width: 0;height: auto;}
.sidebar-context-form .btn {min-height: var(--control-height);white-space: normal;}
.sidebar-context-form.has-club-identity::before,
.sidebar-context-form.has-club-identity::after {content: "";position: absolute;top: 0;height: 3px;}
.sidebar-context-form.has-club-identity::before {left: 0;width: 70%;background: var(--workspace-club-primary);}
.sidebar-context-form.has-club-identity::after {right: 0;width: 30%;background: var(--workspace-club-secondary);}
.sidebar-club-mark {display: flex;align-items: center;gap: 8px;color: var(--sidebar-text, var(--text));}
.sidebar-club-mark strong {min-width: 0;overflow-wrap: anywhere;}
.sidebar-user {display: grid;grid-template-columns: minmax(0,1fr) auto;gap: 8px;align-items: center;padding: 8px;border: 1px solid var(--sidebar-border);border-radius: var(--radius);color: var(--sidebar-text);background: var(--sidebar-bg-elevated);}
.sidebar-user-profile {display: flex;align-items: center;gap: 8px;min-width: 0;color: inherit;}
.sidebar-user-profile:hover {color: inherit;text-decoration: underline;}
.sidebar-user-avatar {display: grid;place-items: center;flex: 0 0 36px;width: 36px;height: 36px;border-radius: 50%;background: var(--shell-nav-active-bg);color: var(--shell-nav-active-text);font-weight: 600;}
.sidebar-user-meta {min-width: 0;}
.sidebar-user-meta :is(strong,small) {display: block;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.sidebar-user-meta strong {font-size: .875rem;}
.sidebar-user-meta small {color: var(--sidebar-muted);font-size: .75rem;}
.sidebar-user-action {margin: 0;}
.sidebar.is-collapsed .sidebar-user {display: flex;justify-content: center;padding: 4px 0;border: 0;background: transparent;}
body.native-shell {--sidebar-width: var(--sidebar-width-native);background: var(--background);}
.native-shell [data-native-sticky-offset] {top: calc(var(--native-header-height,62px) + 8px);}
.native-shell main :is(input,select,textarea,button,[id]) {scroll-margin-top: calc(var(--native-header-height,62px) + 12px);}
.native-app-header {position: sticky;top: 0;z-index: 1020;display: grid;grid-template-columns: minmax(0,1fr) minmax(180px,420px) auto;align-items: center;gap: 16px;min-height: 62px;padding: 8px 24px;background: var(--surface);border-bottom: 1px solid var(--border);}
.native-breadcrumb {display: flex;align-items: center;gap: 8px;min-width: 0;color: var(--text-secondary);font-size: .8125rem;}
.native-breadcrumb > span {overflow: hidden;text-overflow: ellipsis;white-space: nowrap;}
.native-breadcrumb > span:last-child {color: var(--text);}
.native-breadcrumb i {flex: 0 0 auto;font-size: .65rem;}
.native-menu-toggle,
.native-mobile-brand {display: none;}
.native-context {min-width: 0;}
.native-context .sidebar-context-picker {position: relative;}
.native-context .sidebar-context-current {display: flex;flex-wrap: wrap;column-gap: 6px;}
.native-context .sidebar-context-form {position: absolute;top: calc(100% + 8px);right: 0;z-index: 1050;width: min(460px,calc(100vw - 32px));margin: 0;max-height: min(400px,calc(100dvh - 160px));box-shadow: var(--shadow-soft);}
.native-account {position: relative;min-width: 0;}
.native-account > summary {display: flex;align-items: center;gap: 8px;min-height: 44px;list-style: none;cursor: pointer;border-radius: var(--radius);}
.native-account > summary::-webkit-details-marker {display: none;}
.native-avatar {display: grid;place-items: center;flex: 0 0 32px;width: 32px;height: 32px;border-radius: 50%;background: var(--button-fill);color: var(--button-ink);font-size: .75rem;font-weight: 650;}
.native-account-name {max-width: 160px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;font-size: .8125rem;}
.native-account > summary > i {font-size: .65rem;}
.native-account-menu {position: absolute;top: calc(100% + 8px);right: 0;z-index: 1050;width: min(260px,calc(100vw - 32px));max-height: calc(100dvh - 90px);overflow: auto;padding: 8px;border: 1px solid var(--border);border-radius: var(--radius-lg);color: var(--text);background: var(--surface);box-shadow: var(--shadow-soft);}
.native-account-menu > strong {display: block;padding: 8px;overflow-wrap: anywhere;font-size: .875rem;}
.native-account-menu a,
.native-account-menu button {display: flex;align-items: center;gap: 8px;width: 100%;min-height: 44px;padding: 8px;border: 0;border-radius: var(--radius);color: var(--text);background: transparent;font: inherit;font-size: .875rem;text-align: left;}
.native-account-menu form {margin: 0;}
.native-account-menu :is(a,button):hover {background: var(--primary-light);}
.native-shell [data-native-context-duplicate],
.native-shell [data-native-filtered-out] {display: none !important;}
.native-menu-search {flex: 0 0 auto;min-width: 0;}
.native-search-field {display: flex;align-items: center;gap: 8px;min-height: 44px;padding: 0 10px;border: 1px solid var(--shell-nav-control-border);border-radius: var(--radius);color: var(--sidebar-muted);background: var(--sidebar-bg-elevated);}
.native-search-field > i {flex: 0 0 auto;font-size: .875rem;}
.native-search-field input {width: 100%;min-width: 0;min-height: 42px;padding: 6px 0;border: 0;color: var(--sidebar-text);background: transparent;font: inherit;font-size: .8125rem;}
.native-search-field input::placeholder {color: var(--sidebar-muted);opacity: 1;}
.native-search-expand {display: none;align-items: center;justify-content: center;width: 44px;min-height: 44px;padding: 8px;border: 0;border-radius: var(--radius);background: transparent;color: var(--sidebar-text);}
.native-search-status {margin: 8px 0 0;font-size: .75rem;color: var(--sidebar-muted);}
.native-search-status[hidden] {display: none;}
.native-shell .sidebar.is-collapsed :is(.native-search-field,.native-search-status) {display: none;}
.native-shell .sidebar.is-collapsed .native-search-expand {display: flex;margin: 0 auto;}
.native-shell .sidebar.is-collapsed .sidebar-navigation > .sidebar-nav > .nav-group > .nav-submenu {display: none !important;}
.native-nav-flyout {position: fixed;z-index: 1035;width: 290px;max-width: calc(100vw - 110px);padding: 12px;overflow: auto;overscroll-behavior: contain;border: 1px solid var(--border);border-radius: var(--radius-lg);color: var(--text);background: var(--surface);box-shadow: var(--shadow-soft);}
.native-nav-flyout > strong {display: block;padding: 4px 8px 12px;font-size: .875rem;}
.native-nav-flyout > .nav-submenu {display: flex;width: 100%;margin: 0;padding: 0;border: 0;}
.native-nav-flyout .nav-item:not(.nav-group),
.native-nav-flyout .nav-group-trigger-row {display: grid;grid-template-columns: minmax(0,1fr) 44px;align-items: center;}
.native-nav-flyout .nav-link {display: flex;align-items: center;gap: 8px;width: 100%;min-width: 0;min-height: 44px;padding: 8px;border: 0;border-radius: var(--radius);background: transparent;color: var(--text);font: inherit;font-size: .8125rem;text-align: left;white-space: normal;}
.native-nav-flyout .nav-link i:first-child {flex: 0 0 20px;text-align: center;}
.native-nav-flyout .nav-link.active,
.app-shell .native-nav-flyout .nav-link.active {background: var(--primary-light);color: var(--primary-strong);}
.native-nav-flyout .nav-link:hover {background: var(--surface-secondary);}
.native-nav-flyout .nav-label {min-width: 0;overflow-wrap: anywhere;}
.native-nav-flyout .nav-favorite-toggle {color: var(--text-secondary);}
.native-nav-flyout .nav-favorite-toggle.is-favorite {color: var(--warning);}
.mobile-topbar {min-height: var(--topbar-height);background: var(--surface);padding-block: 4px;}
#mobileMenu {width: min(340px,94vw);}
#mobileMenu .offcanvas-header {flex: 0 0 auto;min-height: 64px;padding: max(8px,env(safe-area-inset-top)) 12px 8px;border-bottom: 1px solid var(--sidebar-border);}
#mobileMenu .btn-close {filter: none;opacity: 1;}
#mobileMenu .offcanvas-body {display: flex;flex-direction: column;gap: 12px;min-height: 0;padding: 12px 12px max(12px,env(safe-area-inset-bottom));overflow: hidden;}
.app-shell.auth-shell > .sidebar,
.app-shell.auth-shell > .mobile-topbar {display: none !important;}
.app-shell.auth-shell > .content-shell {margin: 0;}
.auth-shell .main-content {width: 100%;padding: 0;}
.auth-page {display: grid;grid-template-columns: minmax(0,1.1fr) minmax(360px,.9fr);min-height: 100vh;min-height: 100dvh;background: var(--background);}
.auth-visual {position: relative;display: flex;align-items: center;padding: clamp(32px,5vw,80px);color: var(--auth-visual-text);background-color: var(--auth-visual-bg);}
.auth-visual-content {position: relative;max-width: 480px;}
.auth-visual-content h2 {margin: 48px 0 16px;color: var(--auth-visual-text);font-size: clamp(2rem,3.4vw,3rem);font-weight: 750;line-height: 1.15;letter-spacing: -.03em;}
.auth-visual-content p {max-width: 420px;color: var(--auth-visual-muted);font-size: 1rem;line-height: 1.7;}
.auth-panel {display: flex;align-items: center;justify-content: center;padding: clamp(24px,4vw,64px);color: var(--text);background: var(--surface);}
.auth-card {width: min(100%,390px);padding: 0;background: var(--surface);border: 0;border-radius: 0;box-shadow: none;}
.auth-logo {display: block;width: 264px;max-width: 100%;height: auto;margin-bottom: 32px;}
.auth-logo-default {display: var(--brand-default-display);}
.auth-logo-inverse {display: var(--brand-inverse-display);}
.auth-card h1 {margin: 0 0 8px;}
.auth-intro {color: var(--text-secondary);margin: 0 0 28px;font-size: .9375rem;}
.password-field {position: relative;}
.password-field .form-control {padding-right: 60px;}
.password-toggle {position: absolute;top: 50%;right: 4px;transform: translateY(-50%);width: 44px;height: 44px;min-height: 44px;padding: 0;}
.password-toggle i {margin: 0;}
@media screen and (min-width: 992px) {
.native-shell > .content-shell {margin-left: var(--sidebar-width);}
.native-shell.sidebar-collapsed > .content-shell {margin-left: var(--sidebar-collapsed-width);}
.auth-visual {background-image: url("../../img/brand/login-tactical-background.webp");background-position: center;background-size: cover;}
}
@media screen and (min-width: 992px) and (max-width: 1199.98px) {
.native-app-header {grid-template-columns: minmax(0,1fr) minmax(180px,300px) 44px;gap: 10px;padding-inline: 14px;}
.native-account-name,
.native-account > summary > i {display: none;}
}
@media screen and (max-width: 991.98px) {
.app-shell > .content-shell,
.app-shell.sidebar-collapsed > .content-shell {margin-left: 0;}
.main-content {padding: var(--space-4);}
.native-app-header {grid-template-columns: 44px minmax(0,1fr) 44px;grid-template-rows: 44px auto;gap: 4px 8px;min-height: 0;padding: max(4px,env(safe-area-inset-top)) 12px 8px;}
.native-menu-toggle {display: grid;place-items: center;grid-column: 1;grid-row: 1;width: 44px;min-height: 44px;padding: 8px;border: 0;border-radius: var(--radius);background: transparent;color: var(--text);font-size: 1.5rem;}
.native-mobile-brand {display: block;grid-column: 2;grid-row: 1;justify-self: center;min-width: 0;max-width: 100%;}
.native-mobile-brand .brand-symbol {width: 30px;height: 30px;}
.native-mobile-brand .brand-lockup strong {font-size: .9375rem;}
.native-breadcrumb {display: none;}
.native-context {grid-column: 1 / -1;grid-row: 2;}
.native-context .sidebar-context-current {flex-wrap: nowrap;}
.native-context .sidebar-context-current > strong {flex: 1 1 auto;}
.native-context .sidebar-context-current > span {flex: 0 1 auto;}
.native-account {grid-column: 3;grid-row: 1;}
.native-account > summary {justify-content: center;min-width: 44px;}
.native-account-name,
.native-account > summary > i {display: none;}
#mobileMenu .nav-link,
#mobileMenu .native-search-field input {font-size: .875rem;}
.auth-page {grid-template-columns: minmax(0,1fr);}
.auth-visual {display: none;}
.auth-panel {min-height: 100vh;min-height: 100dvh;padding: 32px 24px;}
}
@media print {
.sidebar,
#mobileMenu,
.mobile-topbar,
.native-app-header,
.native-menu-search,
.native-nav-flyout {display: none !important;}
.app-shell > .content-shell,
.app-shell.sidebar-collapsed > .content-shell {margin: 0 !important;}
.main-content {padding: 0;}
.auth-page {display: block;min-height: 0;}
.auth-visual {display: none;}
.auth-panel {min-height: 0;padding: 0;}
}
/* Short viewports, including 200% zoom, need the full vertical reading area. */
@media screen and (max-height: 500px) {
  .mobile-topbar.sticky-top { position: static; }
}
