/* Theme and base layout */
        :root { color-scheme:light; font-size:112.5%; --sidebar-collapsed:76px; --sidebar-expanded:244px; --gym-primary:#0d1b2a; --gym-primary-hover:#162b40; --gym-muted:#71808c; }
        * { box-sizing:border-box; }
        body { margin:0; background:#f3f6f8; color:#0d1b2a; font-family:"Plus Jakarta Sans",Arial,Helvetica,sans-serif; }
        .app-layout { display:grid; grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr); min-height:100vh; transition:grid-template-columns .42s cubic-bezier(.2,.8,.2,1); }
        .app-layout.sidebar-expanded { grid-template-columns:var(--sidebar-expanded) minmax(0,1fr); }

/* Sidebar navigation */
        .sidebar { position:sticky; top:0; display:flex; flex-direction:column; gap:.75rem; width:100%; height:100vh; min-height:100vh; overflow:hidden; padding:1.25rem .5rem 1rem; background:var(--gym-primary); color:#fff; box-shadow:3px 0 22px rgba(0,0,0,.12); }
        .sidebar-brand { display:flex; align-items:center; gap:.7rem; min-height:58px; margin:0 .35rem .25rem; padding:.5rem .3rem .85rem; border-bottom:1px solid rgba(255,255,255,.11); color:#fff; text-decoration:none; white-space:nowrap; }
        .brand-icon { display:grid; flex:0 0 42px; width:42px; height:42px; place-items:center; border:1px solid rgba(255,255,255,.13); border-radius:14px; background:rgba(255,255,255,.13); box-shadow:inset 0 1px rgba(255,255,255,.12); font-size:1.2rem; transition:background-color .25s ease, border-color .25s ease, transform .35s cubic-bezier(.2,.8,.2,1); }
        .sidebar-brand:hover .brand-icon { transform:translateY(-2px); border-color:#71859a; background:#263d52; }
        .brand-copy,.nav-label { max-width:0; overflow:hidden; opacity:0; transform:translateX(-5px); transition:max-width .32s cubic-bezier(.2,.8,.2,1),opacity .22s ease,transform .32s cubic-bezier(.2,.8,.2,1); }
        .brand-copy { display:flex; flex-direction:column; line-height:1.2; }
        .brand-copy strong { font-size:.95rem; font-weight:800; letter-spacing:.08em; }
        .brand-copy small { margin-top:.2rem; color:rgba(255,255,255,.62); font-size:.62rem; letter-spacing:.05em; }
        .sidebar-expanded .brand-copy,.sidebar-expanded .nav-label { max-width:180px; opacity:1; transform:translateX(0); transition-delay:.06s; }
        .sidebar nav { display:grid; gap:.5rem; }
        .sidebar nav a { position:relative; display:flex; align-items:center; gap:.75rem; min-height:46px; padding:.68rem .8rem; border:1px solid transparent; border-radius:12px; background:transparent; color:rgba(255,255,255,.78); text-decoration:none; font-size:.8rem; font-weight:600; white-space:nowrap; transition:background-color .22s ease,color .22s ease,transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease; }
        .sidebar nav a::before { position:absolute; left:-.5rem; width:3px; height:22px; content:""; border-radius:0 4px 4px 0; background:#fff; opacity:0; transform:scaleY(.4); transition:opacity .2s ease,transform .2s ease; }
        .sidebar nav a i { flex:0 0 22px; width:22px; color:rgba(255,255,255,.72); text-align:center; font-size:1.15rem; transition:color .2s ease,transform .2s ease; }
        .sidebar nav a.active,.sidebar nav a:hover { border-color:rgba(255,255,255,.88); background:#fff; color:var(--gym-primary); box-shadow:0 7px 16px rgba(0,0,0,.16); }
        .sidebar nav a:hover { transform:translateX(2px); }
        .sidebar nav a.active { font-weight:800; }
        .sidebar nav a.active::before { opacity:1; transform:scaleY(1); }
        .sidebar nav a:hover i,.sidebar nav a.active i { color:var(--gym-primary); transform:scale(1.08); }
        .app-layout:not(.sidebar-expanded) .sidebar-brand { justify-content:center; margin-right:0; margin-left:0; padding-right:0; padding-left:0; }
        .app-layout:not(.sidebar-expanded) .sidebar nav a { justify-content:center; padding-right:.5rem; padding-left:.5rem; }
        .sidebar nav a:focus-visible,.sidebar-brand:focus-visible { outline:2px solid #91c5ff; outline-offset:3px; }
        .main-panel { min-width:0; }

/* Top bar and profile menu */
        .topbar { position:sticky; top:0; z-index:5; min-height:76px; padding:0 2rem !important; box-shadow:0 2px 10px rgba(0,0,0,.08); }
        .topbar-heading { display:flex; align-items:center; }
        .topbar-kicker,.section-label { display:block; color:var(--gym-muted); font-size:.62rem; font-weight:700; letter-spacing:.14em; }
        .topbar h4 { margin:2px 0 0; color:var(--gym-primary); font-size:1.18rem; font-weight:800; letter-spacing:-.03em; }
        .user-info { display:flex; align-items:center; gap:.65rem; }
        .notification-icon,.user-avatar { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; border-radius:50%; }
        .notification-icon,.user-avatar { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; border-radius:50%; }
        .notification-icon { background:#edf1f4; color:var(--gym-primary); }
        .user-avatar { background:var(--gym-primary); color:#fff; transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .25s ease,background-color .25s ease; }
        .user-name { margin-left:.15rem; color:#334653; font-size:.8rem; font-weight:700; transition:color .2s ease; }
        .profile-menu { position:relative; }
        .profile-trigger { display:flex; align-items:center; gap:.6rem; padding:.25rem .45rem .25rem .35rem; border:1px solid transparent; border-radius:999px; background:transparent; color:inherit; cursor:pointer; list-style:none; transition:background-color .22s ease,border-color .22s ease,box-shadow .25s ease,transform .28s cubic-bezier(.2,.8,.2,1); }
        .profile-trigger::-webkit-details-marker { display:none; }
        .profile-trigger::marker { content:""; }
        .profile-trigger:hover,.profile-menu[open] .profile-trigger { transform:translateY(-1px); border-color:#e0e7ec; background:#f7f9fa; box-shadow:0 5px 14px rgba(13,27,42,.08); }
        .profile-trigger:hover .user-avatar,.profile-menu[open] .user-avatar { transform:scale(1.06); background:#162b40; box-shadow:0 0 0 3px rgba(22,43,64,.1); }
        .profile-trigger:hover .user-name,.profile-menu[open] .user-name { color:#0d1b2a; }
        .profile-trigger:focus-visible { outline:3px solid rgba(13,110,253,.3); outline-offset:2px; }
        .profile-chevron { color:#71808c; font-size:.75rem; transition:transform .2s ease; }
        .profile-menu[open] .profile-chevron { transform:rotate(180deg); }
        .profile-dropdown { position:absolute; top:calc(100% + .65rem); right:0; z-index:20; width:min(280px,calc(100vw - 2rem)); padding:.5rem; transform-origin:top right; border:1px solid #e3e9ee; border-radius:14px; background:#fff; box-shadow:0 14px 36px rgba(13,27,42,.16); animation:profile-menu-in .24s cubic-bezier(.2,.8,.2,1) both; }
        .profile-dropdown-meta { padding:.7rem .75rem .85rem; animation:profile-content-in .28s .03s ease-out both; }
        .profile-dropdown-meta strong,.profile-dropdown-meta span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
        .profile-dropdown-meta strong { color:var(--gym-primary); font-size:.85rem; }
        .profile-dropdown-meta span { margin-top:.2rem; color:var(--gym-muted); font-size:.75rem; }
        .profile-dropdown-divider { height:1px; margin:.15rem 0 .45rem; background:#e9edf0; }
        .profile-menu-action { display:flex; align-items:center; gap:.65rem; width:100%; padding:.65rem .75rem; border-radius:9px; color:#334653; text-decoration:none; font-size:.8rem; font-weight:700; transition:background-color .2s ease,color .2s ease,transform .24s cubic-bezier(.2,.8,.2,1); }
        .profile-menu-action i { color:#52697d; font-size:.95rem; transition:transform .24s cubic-bezier(.2,.8,.2,1); }
        .profile-menu-action:hover { transform:translateY(-1px); background:#f1f5f8; color:#102033; }
        .profile-menu-action:hover i { transform:scale(1.08); color:#102033; }
        .profile-menu-action:focus-visible { outline:3px solid rgba(48,94,132,.25); outline-offset:2px; }
        .profile-logout { display:flex; align-items:center; gap:.65rem; width:100%; padding:.65rem .75rem; border:0; border-radius:9px; background:transparent; color:#a23535; font:inherit; font-size:.8rem; font-weight:700; text-align:left; cursor:pointer; transition:background-color .2s ease,color .2s ease,transform .24s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease; }
        .profile-logout i { transition:transform .24s cubic-bezier(.2,.8,.2,1); }
        .profile-logout:hover { transform:translateY(-1px); background:#fff1f1; color:#842626; box-shadow:0 4px 10px rgba(162,53,53,.08); }
        .profile-logout:hover i { transform:translateX(3px); }
        .profile-logout:focus-visible { outline:3px solid rgba(162,53,53,.22); outline-offset:2px; }
        @keyframes profile-menu-in { from { opacity:0; transform:translateY(-8px) scale(.97); } to { opacity:1; transform:translateY(0) scale(1); } }
        @keyframes profile-content-in { from { opacity:0; transform:translateY(-3px); } to { opacity:1; transform:translateY(0); } }

/* Main content and shared components */
        .main-content { padding:2.25rem 2rem; }
        .main-content h1 { margin:4px 0 6px; color:var(--gym-primary); font-size:1.9rem; font-weight:800; letter-spacing:-.03em; }
        .page-header { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin-bottom:1.75rem; }
        .page-header p { margin:0; color:var(--gym-muted); }
        .main-panel h1,.main-panel h2,.main-panel h3 { letter-spacing:-.025em; }
        .main-panel .btn { transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s ease,background-color .18s ease,border-color .18s ease,color .18s ease; }
        .main-panel .btn:not(:disabled):not(.disabled):hover { transform:translateY(-2px); box-shadow:0 .45rem 1rem rgba(13,27,42,.15); }
        .main-panel .btn:not(:disabled):not(.disabled):active { transform:translateY(0) scale(.98); box-shadow:0 .15rem .35rem rgba(13,27,42,.12); }
        .main-panel .btn:focus-visible { outline:3px solid rgba(13,110,253,.3); outline-offset:2px; }
        .main-panel .btn {
            min-height:40px;
            padding:.58rem .9rem;
            border-radius:10px;
            font-size:.78rem;
            font-weight:700;
            letter-spacing:.005em;
        }
        .main-panel .btn.btn-sm { min-height:34px; padding:.42rem .68rem; border-radius:8px; font-size:.72rem; }
        .main-panel .btn-dark {
            border-color:#102033;
            background:linear-gradient(145deg,#162b40,#0d1b2a);
            box-shadow:0 5px 12px rgba(13,27,42,.14);
        }
        .main-panel .btn-dark:hover:not(:disabled) { border-color:#263f56; background:linear-gradient(145deg,#203a52,#14283b); }
        .main-panel .btn-outline-dark { border-color:#cbd5dd; color:#23384a; }
        .main-panel .btn-outline-dark:hover:not(:disabled) { border-color:#19334a; background:#19334a; color:#fff; }
        .main-panel .btn-success,.main-panel .btn-danger,.main-panel .btn-primary { box-shadow:0 4px 10px rgba(13,27,42,.1); }
        .main-panel .btn-warning { border-color:#e4bd61; color:#302409; }
        .main-panel .btn:disabled { cursor:not-allowed; opacity:.58; box-shadow:none; }
        .row-actions { display:inline-flex; align-items:center; gap:.45rem; white-space:nowrap; }
        .main-panel .row-action-btn { display:inline-grid; flex:0 0 38px; width:38px; height:38px; min-height:38px; padding:0; place-items:center; border:1px solid transparent; border-radius:10px; font-size:.9rem; box-shadow:none; }
        .main-panel .row-action-btn:hover:not(:disabled) { transform:translateY(-2px); }
        .main-panel .edit-action { border-color:#d8e5f0; background:#edf4fa; color:#285c83; }
        .main-panel .edit-action:hover:not(:disabled) { border-color:#b8cfe1; background:#dceaf5; color:#193f5f; box-shadow:0 5px 12px rgba(40,92,131,.13); }
        .main-panel .delete-action { border-color:#f0d9d9; background:#fff2f1; color:#a53e3e; }
        .main-panel .delete-action:hover:not(:disabled) { border-color:#e8bcbc; background:#ffe3e1; color:#842d2d; box-shadow:0 5px 12px rgba(165,62,62,.13); }
        .report-hero { position:relative; display:flex; align-items:center; justify-content:space-between; gap:1.5rem; padding:1.5rem 1.65rem; overflow:hidden; border:1px solid rgba(255,255,255,.12); border-radius:18px; color:#fff; background:radial-gradient(circle at 88% 18%,rgba(255,255,255,.12),transparent 27%),linear-gradient(115deg,#0d1b2a,#203a52); box-shadow:0 14px 30px rgba(13,27,42,.14); }
        .report-hero-copy { position:relative; z-index:1; }
        .report-eyebrow,.report-section-kicker { display:inline-flex; align-items:center; gap:.45rem; color:#8ea7bb; font-size:.65rem; font-weight:800; letter-spacing:.14em; }
        .report-eyebrow { color:rgba(255,255,255,.68); }
        .report-hero h2 { margin:.5rem 0 .35rem; color:#fff; font-size:1.55rem; font-weight:800; letter-spacing:-.04em; }
        .report-hero p { max-width:560px; margin:0; color:rgba(255,255,255,.72); font-size:.84rem; }
        .report-actions { display:flex; flex:0 0 auto; align-items:center; gap:.6rem; }
        .main-panel .report-actions .btn { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-height:44px; padding:.68rem 1rem; }
        .main-panel .btn-report-print { border:1px solid #d4dee6; background:#fff; color:#263e52; box-shadow:0 3px 9px rgba(13,27,42,.06); }
        .main-panel .btn-report-print:hover:not(:disabled) { border-color:#aebfcd; background:#f5f8fa; color:#142d42; }
        .main-panel .btn-report-export { border-color:#102033; background:linear-gradient(145deg,#162b40,#0d1b2a); color:#fff; box-shadow:0 5px 12px rgba(13,27,42,.14); }
        .main-panel .btn-report-export:hover:not(:disabled) { border-color:#263f56; background:linear-gradient(145deg,#203a52,#14283b); color:#fff; }
        .main-panel .report-actions i { font-size:1rem; }
        .report-metrics-scroll { overflow-x:auto; padding:2px 1px 10px; -webkit-overflow-scrolling:touch; scrollbar-color:#b8c6d0 #edf1f4; scrollbar-width:thin; }
        .report-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; min-width:0; margin:0; }
        .report-metrics .metric { min-width:0; border:1px solid #e5ebef; box-shadow:0 7px 18px rgba(13,27,42,.045); }
        .report-metrics .metric .card-body { gap:12px; }
        .report-metrics .metric .card-body > i { flex-basis:42px; width:42px; height:42px; }
        .report-metrics .metric h2 { font-size:1.65rem; }
        .report-metrics .metric .card-caption { display:block; margin-top:.22rem; color:#82909a; font-size:.68rem; }
        .report-table-card { overflow:hidden; border:1px solid #e3e9ee; border-radius:16px; background:#fff; box-shadow:0 8px 22px rgba(13,27,42,.055); }
        .report-table-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; padding:1.25rem 1.4rem 1rem; }
        .report-table-heading h3 { margin:.35rem 0 .2rem; color:#102337; font-size:1rem; font-weight:800; letter-spacing:-.02em; }
        .report-table-heading p { margin:0; color:#7c8993; font-size:.73rem; }
        .report-updated { display:inline-flex; align-items:center; gap:.4rem; color:#71808c; font-size:.7rem; white-space:nowrap; }
        .report-toolbar { display:flex; align-items:center; gap:.7rem; padding:.85rem 1.4rem; border-top:1px solid #edf1f4; border-bottom:1px solid #edf1f4; background:#f8fafb; }
        .report-search,.report-status-filter { display:flex; align-items:center; min-height:40px; border:1px solid #dce4e9; border-radius:10px; background:#fff; }
        .report-search { flex:1 1 280px; gap:.55rem; max-width:390px; padding:0 .75rem; color:#778793; }
        .report-search:focus-within,.report-status-filter:focus-within { border-color:#8ba6ba; box-shadow:0 0 0 3px rgba(76,119,151,.12); }
        .report-search input,.report-status-filter select { width:100%; min-height:38px; border:0; outline:0; background:transparent; color:#203547; font:inherit; font-size:.76rem; }
        .report-search input::placeholder { color:#9aa6ae; }
        .report-status-filter { flex:0 0 180px; padding:0 .65rem; }
        .report-status-filter select { cursor:pointer; }
        .report-result-count { margin-left:auto; color:#71808c; font-size:.72rem; font-weight:700; white-space:nowrap; }
        .report-table-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; }
        .report-table-scroll .table { min-width:760px; }
        .report-table-scroll thead th { padding:.78rem 1rem; border-bottom:1px solid #e5ebef; background:#f5f8fa; color:#70808b; font-size:.63rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; white-space:nowrap; }
        .report-table-scroll tbody td { padding:.78rem 1rem; border-bottom:1px solid #edf1f4; color:#344958; font-size:.76rem; vertical-align:middle; }
        .report-table-scroll tbody tr:last-child td { border-bottom:0; }
        .report-table-scroll tbody tr:hover { background:#f8fafb; }
        .report-member-name { display:inline-flex; align-items:center; gap:.65rem; color:#1a3042; font-weight:700; white-space:nowrap; }
        .report-member-avatar { display:grid; flex:0 0 32px; width:32px; height:32px; place-items:center; border:1px solid #dce6ed; border-radius:10px; background:#eef4f8; color:#34566f; font-size:.74rem; font-weight:800; }
        .report-status-badge { display:inline-flex; align-items:center; gap:.35rem; padding:.3rem .58rem; border-radius:999px; font-size:.65rem; font-weight:800; white-space:nowrap; }
        .report-status-badge::before { width:6px; height:6px; border-radius:50%; background:currentColor; content:""; }
        .report-status-badge.is-active { background:#eaf6ef; color:#287447; }
        .report-status-badge.is-inactive { background:#f1f3f5; color:#697984; }
        .report-empty { display:grid; justify-items:center; gap:.4rem; padding:2.5rem 1rem; color:#74838e; text-align:center; }
        .report-empty[hidden] { display:none; }
        .report-empty-icon { display:grid; width:42px; height:42px; margin-bottom:.2rem; place-items:center; border-radius:14px; background:#eff4f7; color:#526e82; font-size:1.1rem; }
        .report-empty strong { color:#263e50; font-size:.85rem; }
        .report-empty p { margin:0; font-size:.75rem; }
/* Admin dashboard */
        .dashboard-clock { display:inline-flex; align-items:center; gap:.65rem; max-width:100%; padding:.75rem 1rem; border:1px solid #e1e8ed; border-radius:.75rem; background:#fff; box-shadow:0 .4rem 1.2rem rgba(13,27,42,.06); font-variant-numeric:tabular-nums; white-space:nowrap; transition:transform .28s cubic-bezier(.2,.8,.2,1),border-color .22s ease,box-shadow .22s ease; }
        .dashboard-clock:hover { transform:translateY(-2px); border-color:#c7d5e0; box-shadow:0 .7rem 1.5rem rgba(13,27,42,.1); }
        .dashboard-clock i { flex:0 0 auto; }
        .dashboard-welcome { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; margin:1.4rem 0 1.2rem; padding:1.5rem 1.7rem; overflow:hidden; border-radius:18px; color:#fff; background:linear-gradient(115deg,#0d1b2a,#162b40); box-shadow:0 16px 30px rgba(13,27,42,.18); }
        .dashboard-welcome .section-label { color:rgba(255,255,255,.62); }
        .dashboard-welcome h2 { margin:6px 0; font-size:1.35rem; font-weight:800; letter-spacing:-.02em; }
        .dashboard-welcome p { max-width:610px; margin:0; color:rgba(255,255,255,.72); font-size:.88rem; }
        .welcome-badge { display:inline-flex; flex:0 0 auto; align-items:center; gap:.5rem; padding:.65rem .8rem; border:1px solid rgba(255,255,255,.18); border-radius:10px; background:rgba(255,255,255,.1); font-size:.75rem; font-weight:700; }
        .dashboard-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr)); gap:18px; margin-top:20px; }
        .metric { position:relative; display:flex; align-items:flex-start; gap:16px; min-height:148px; padding:22px; overflow:hidden; border:1px solid #e4eaee; border-radius:18px; background:#fff; box-shadow:0 8px 22px rgba(13,27,42,.06); transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease,border-color .22s ease; }
        .metric::after { position:absolute; right:0; bottom:0; left:0; height:3px; content:""; background:var(--gym-primary); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
        .metric:hover { transform:translateY(-4px); border-color:#d5dfe5; box-shadow:0 16px 30px rgba(13,27,42,.12); }
        .metric:hover::after { transform:scaleX(1); }
        .metric .card-body { display:flex; align-items:flex-start; gap:16px; width:100%; padding:0; }
        .metric .card-body > i { display:grid; flex:0 0 48px; width:48px; height:48px; place-items:center; border-radius:14px; background:#e8eef2; color:var(--gym-primary); font-size:1.3rem; transition:transform .32s cubic-bezier(.2,.8,.2,1),background-color .22s ease,color .22s ease; }
        .metric:hover .card-body > i { transform:scale(1.06) rotate(-3deg); background:#dce8f0; color:#18344c; }
        .metric .card-body > div { min-width:0; }
        .metric p { margin:0; color:#526370; font-size:.82rem; font-weight:700; }
        .metric h2 { margin:4px 0 0; color:var(--gym-primary); font-size:1.9rem; font-weight:800; }
        .metric .card-caption { display:block; margin-top:3px; color:#8996a0; font-size:.75rem; }
        .dashboard-section { margin-top:1.35rem; padding:1.2rem 1.35rem; border:1px solid #e3e9ed; border-radius:16px; background:#fff; box-shadow:0 .25rem .9rem rgba(13,27,42,.035); }
        .dashboard-section-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1rem; }
        .dashboard-section-heading h2 { margin:.2rem 0 0; color:#172d40; font-size:1rem; font-weight:800; }
        .dashboard-section-heading > p { margin:0; color:#71808c; font-size:.75rem; }
        .dashboard-section-heading > a { color:#315e7d; font-size:.75rem; font-weight:700; text-decoration:none; }
        .dashboard-action-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.75rem; }
        .dashboard-action { display:flex; align-items:center; gap:.75rem; min-width:0; padding:.85rem; border:1px solid #e5ebef; border-radius:12px; background:#fff; color:#263e50; text-align:left; text-decoration:none; box-shadow:0 2px 7px rgba(13,27,42,.025); transition:border-color .22s ease,background-color .22s ease,box-shadow .25s ease,transform .25s cubic-bezier(.2,.8,.2,1); }
        .dashboard-action:hover,.dashboard-action:focus-visible { transform:translateY(-3px); border-color:#c4d4df; background:#fbfcfd; color:#172d40; box-shadow:0 10px 20px rgba(13,27,42,.09); }
        .dashboard-action:focus-visible { outline:3px solid rgba(48,94,132,.3); outline-offset:2px; }
        .dashboard-action:disabled { cursor:not-allowed; opacity:.55; }
        .dashboard-action:disabled:hover { transform:none; border-color:#e5ebef; background:#fff; }
        .dashboard-action-icon { display:grid; flex:0 0 40px; width:40px; height:40px; place-items:center; border-radius:11px; background:#edf3f6; color:#315e7a; font-size:1.1rem; transition:transform .25s cubic-bezier(.2,.8,.2,1),background-color .22s ease,color .22s ease; }
        .dashboard-action:hover .dashboard-action-icon,.dashboard-action:focus-visible .dashboard-action-icon { transform:scale(1.07); background:#dfeaf0; color:#193850; }
        .dashboard-action > span:nth-child(2) { display:grid; min-width:0; gap:.15rem; }
        .dashboard-action strong { font-size:.78rem; }
        .dashboard-action small { overflow:hidden; color:#74838e; font-size:.67rem; text-overflow:ellipsis; white-space:nowrap; }
        .dashboard-action > i:last-child { flex:0 0 auto; margin-left:auto; color:#84939d; font-size:.82rem; transition:transform .22s ease,color .22s ease; }
        .dashboard-action:hover > i:last-child,.dashboard-action:focus-visible > i:last-child { transform:translateX(3px); color:#315e7a; }
        .dashboard-activity-list { display:grid; margin:0; padding:0; list-style:none; }
        .dashboard-activity-item { display:flex; align-items:center; gap:.75rem; min-width:0; padding:.72rem 0; border-top:1px solid #edf0f2; }
        .dashboard-activity-icon { display:grid; flex:0 0 36px; width:36px; height:36px; place-items:center; border-radius:50%; background:#edf3f6; color:#315e7a; transition:transform .22s ease,box-shadow .22s ease; }
        .dashboard-activity-item:hover .dashboard-activity-icon { transform:scale(1.06); box-shadow:0 3px 9px rgba(13,27,42,.1); }
        .dashboard-activity-icon.is-checkin { background:#eaf5ef; color:#28714a; }
        .dashboard-activity-copy { display:flex; flex:1 1 auto; flex-wrap:wrap; align-items:baseline; gap:.25rem .4rem; min-width:0; color:#657681; font-size:.76rem; }
        .dashboard-activity-copy strong { color:#263e50; font-size:.77rem; }
        .dashboard-activity-item time { flex:0 0 auto; color:#7c8992; font-size:.67rem; }
        .dashboard-activity-empty { margin:0; padding:.8rem 0 .2rem; color:#74838e; font-size:.78rem; }
        .main-panel .card:not(.metric) { border-color:#e6ebef; box-shadow:0 .25rem .9rem rgba(13,27,42,.035); transition:border-color .2s ease,box-shadow .25s ease; }
        .main-panel .card:not(.metric):hover { border-color:#d4dfe7; box-shadow:0 .55rem 1.4rem rgba(13,27,42,.07); }
        .main-panel .table tbody tr { transition:background-color .18s ease,box-shadow .2s ease; }
        .main-panel .table-hover > tbody > tr:hover > * { --bs-table-bg-state:#f3f7fa; color:inherit; }
        .main-panel .table tbody tr:hover { box-shadow:inset 3px 0 #8eacc3; }
        .main-panel .form-control,.main-panel .form-select,.main-panel textarea { transition:border-color .2s ease,box-shadow .2s ease,background-color .2s ease; }
        .main-panel .form-control:hover,.main-panel .form-select:hover,.main-panel textarea:hover { border-color:#b8c8d5; }
        .main-panel .form-control:focus,.main-panel .form-select:focus,.main-panel textarea:focus { border-color:#7fa6c4; box-shadow:0 0 0 .22rem rgba(75,125,164,.14); }
        .main-panel a:not(.btn) { text-underline-offset:.2em; transition:color .18s ease,text-decoration-color .18s ease; }
        .main-panel a:not(.btn):hover { color:#315e7d; }
        .main-panel :focus-visible { outline-color:#5283a6; }
        .admin-form-modal { position:fixed; inset:0; z-index:1060; display:flex !important; align-items:center; justify-content:center; padding:1.25rem; overflow-y:auto; background:rgba(8,18,28,.58); backdrop-filter:blur(5px); }
        .admin-form-modal .modal-dialog { width:min(100%,760px); max-width:760px; margin:auto; }
        .admin-form-modal .modal-content { max-height:calc(100vh - 2.5rem); max-height:calc(100dvh - 2.5rem); overflow:hidden; border:1px solid rgba(255,255,255,.82); border-radius:18px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.24); }
        .admin-form-modal-form { display:flex; min-height:0; flex-direction:column; padding:0 !important; }
        .admin-form-modal-header { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1.35rem 1.5rem 1.1rem; border-bottom:1px solid #edf0f2; background:linear-gradient(120deg,#fff,#f8fafb); }
        .admin-form-modal-header h2 { margin:.3rem 0 .25rem; color:#102337; font-size:1.3rem; font-weight:800; letter-spacing:-.035em; }
        .admin-form-modal-header p { margin:0; color:#71808c; font-size:.8rem; line-height:1.5; }
        .admin-form-modal-close { display:grid; flex:0 0 38px; width:38px; height:38px; place-items:center; border:1px solid #e3e9ed; border-radius:11px; background:#fff; color:#526572; cursor:pointer; transition:background-color .18s ease,color .18s ease,border-color .18s ease; }
        .admin-form-modal-close:hover { border-color:#d5dfe5; background:#edf3f6; color:#102337; }
        .admin-form-modal-close:focus-visible { outline:3px solid rgba(48,94,132,.3); outline-offset:2px; }
        .admin-form-modal-body { min-height:0; padding:1.2rem 1.5rem; overflow-y:auto; overscroll-behavior:contain; }
        .admin-form-section + .admin-form-section { margin-top:.35rem; padding-top:1.1rem; border-top:1px solid #edf0f2; }
        .admin-form-section h3 { margin:0 0 .85rem; color:#365064; font-size:.75rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
        .admin-form-modal-body .form-label { margin-bottom:.4rem; color:#334958; font-size:.76rem; font-weight:700; }
        .admin-form-modal-body .form-control,.admin-form-modal-body .form-select { min-height:44px; border-color:#dce4e9; border-radius:10px; background-color:#fff; font-size:.84rem; }
        .admin-form-modal-body textarea.form-control { min-height:86px; }
        .admin-form-notice { display:flex; align-items:flex-start; gap:.65rem; margin-bottom:1.1rem; padding:.8rem .9rem; border:1px solid #dce8ef; border-radius:11px; background:#f2f7fa; color:#526b7b; font-size:.76rem; line-height:1.5; }
        .admin-form-notice i { flex:0 0 auto; color:#315e7a; font-size:1rem; }
        .admin-form-modal-footer { display:flex; justify-content:flex-end; gap:.6rem; padding:.9rem 1.5rem; border-top:1px solid #edf0f2; background:#fbfcfd; }
        .admin-form-modal-footer .btn { min-height:42px; padding:.55rem .95rem; border-radius:10px; font-size:.8rem; font-weight:700; }
        .hidden { display:none !important; }
        .table td,.table th { vertical-align:middle; }

/* Confirm dialogs and action notifications */
        .confirm-overlay { position:fixed; inset:0; z-index:1100; display:grid; padding:1rem; place-items:center; background:rgba(8,18,28,.56); backdrop-filter:blur(4px); animation:confirm-overlay-in .18s ease-out both; }
        .confirm-dialog { width:min(100%,420px); padding:1.6rem; border:1px solid rgba(255,255,255,.8); border-radius:20px; background:#fff; box-shadow:0 24px 70px rgba(0,0,0,.24); animation:confirm-dialog-in .24s cubic-bezier(.2,.8,.2,1) both; }
        .confirm-icon { display:grid; width:48px; height:48px; margin-bottom:1rem; place-items:center; border-radius:15px; background:#fff1ef; color:#b33e38; font-size:1.2rem; }
        .confirm-dialog h2 { margin:0; color:#13283a; font-size:1.15rem; font-weight:800; letter-spacing:-.02em; }
        .confirm-dialog p { margin:.55rem 0 1.35rem; color:#667783; font-size:.88rem; line-height:1.6; }
        .confirm-actions { display:flex; justify-content:flex-end; gap:.65rem; }
        .confirm-actions .btn { min-height:42px; padding:.55rem .9rem; border-radius:10px; font-size:.8rem; font-weight:700; }
        .confirm-actions .confirm-accept { border-color:#ae3434; background:#b83d3d; box-shadow:0 5px 12px rgba(184,61,61,.17); }
        .confirm-actions .confirm-accept:hover { border-color:#962e2e; background:#a83232; }
        .confirm-dialog button:focus-visible,.app-toast-close:focus-visible { outline:3px solid rgba(48,94,132,.3); outline-offset:2px; }
        .toast-stack { position:fixed; top:1rem; right:1rem; z-index:1080; display:grid; width:min(390px,calc(100vw - 2rem)); gap:.7rem; pointer-events:none; }
        .app-toast { display:flex; align-items:flex-start; gap:.8rem; padding:.95rem 1rem; border:1px solid #dce8df; border-left:4px solid #268553; border-radius:14px; background:#fff; box-shadow:0 12px 34px rgba(13,27,42,.16); color:#254234; pointer-events:auto; animation:toast-enter .3s cubic-bezier(.2,.8,.2,1) both; }
        .app-toast > i { margin-top:.08rem; color:#268553; font-size:1.1rem; }
        .app-toast-content { display:grid; min-width:0; flex:1; gap:.15rem; }
        .app-toast-content strong { color:#193b2a; font-size:.8rem; font-weight:800; }
        .app-toast-content span { color:#53665b; font-size:.78rem; line-height:1.5; overflow-wrap:anywhere; }
        .app-toast-close { display:grid; flex:0 0 28px; width:28px; height:28px; margin:-.35rem -.35rem 0 0; padding:0; place-items:center; border:0; border-radius:8px; background:transparent; color:#718078; cursor:pointer; font-size:1.2rem; }
        .app-toast-close:hover { background:#f0f4f1; color:#263d30; }
        .app-toast-warning { border-color:#f0e3bd; border-left-color:#ca8a12; color:#664c16; }
        .app-toast-warning > i { color:#b77a0c; }
        .app-toast-warning .app-toast-content strong { color:#684a0d; }
        .app-toast-warning .app-toast-content span { color:#74633f; }
        .app-toast-danger { border-color:#f0d7d7; border-left-color:#c43f3f; color:#6b2d2d; }
        .app-toast-danger > i { color:#c43f3f; }
        .app-toast-danger .app-toast-content strong { color:#792f2f; }
        .app-toast-danger .app-toast-content span { color:#765050; }
        .app-toast-attendance-checkout { border-color:#dbe5ed; border-left-color:#305e7d; }
        .app-toast-attendance-checkout > i { color:#305e7d; }
        .app-toast-attendance-checkout .app-toast-content strong { color:#193b55; }
        .app-toast-attendance-checkout .app-toast-content span { color:#526779; }
        @keyframes confirm-overlay-in { from { opacity:0; } to { opacity:1; } }
        @keyframes confirm-dialog-in { from { opacity:0; transform:translateY(10px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
        @keyframes toast-enter { from { opacity:0; transform:translateY(-8px) translateX(8px); } to { opacity:1; transform:translateY(0) translateX(0); } }

/* Member AI fitness recommendations */
        .recommendation-intro { display:flex; align-items:center; gap:1.1rem; margin:1rem 0 1.2rem; padding:1.35rem 1.5rem; border:1px solid #dce5eb; border-radius:17px; background:linear-gradient(115deg,#f8fafb,#edf3f6); }
        .recommendation-intro-icon { display:grid; flex:0 0 52px; width:52px; height:52px; place-items:center; border:1px solid rgba(255,255,255,.15); border-radius:16px; background:linear-gradient(145deg,#203d55,#102337); box-shadow:0 8px 18px rgba(13,27,42,.16); color:#fff; font-size:1.35rem; }
        .recommendation-intro .section-label { color:#667987; }
        .recommendation-intro h2 { margin:.25rem 0; color:#102337; font-size:1.15rem; font-weight:800; letter-spacing:-.02em; }
        .recommendation-intro p { margin:0; color:#657682; font-size:.8rem; line-height:1.55; }
        .recommendation-panel { padding:1.35rem 1.5rem; border:1px solid #e1e8ed; border-radius:17px; background:#fff; box-shadow:0 .35rem 1.1rem rgba(13,27,42,.045); }
        .recommendation-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; }
        .recommendation-panel-heading h2 { margin:0; color:#172d40; font-size:1rem; font-weight:800; }
        .recommendation-panel-heading p { margin:.28rem 0 0; color:#687985; font-size:.82rem; line-height:1.5; }
        .recommendation-panel-heading > i { color:#305e7d; font-size:1.35rem; }
        .recommendation-consent { margin:1rem 0; padding:.9rem 1rem; border:1px solid #e4eaf0; border-radius:12px; background:#f7f9fa; }
        .recommendation-consent label { display:flex; align-items:flex-start; gap:.75rem; color:#465b69; cursor:pointer; font-size:.86rem; line-height:1.65; }
        .recommendation-consent input { flex:0 0 20px; width:20px; height:20px; margin-top:.12rem; accent-color:#193850; }
        .recommendation-consent input:focus-visible { outline:3px solid rgba(48,94,132,.3); outline-offset:2px; }
        .recommendation-generate { display:inline-flex; align-items:center; justify-content:center; gap:.55rem; min-width:215px; min-height:46px; }
        .recommendation-generate:disabled { cursor:not-allowed; opacity:.52; }
        .recommendation-generate.is-loading i { animation:recommendation-spin .8s linear infinite; }
        @keyframes recommendation-spin { to { transform:rotate(360deg); } }
        .recommendation-safety { display:flex; align-items:flex-start; gap:.45rem; margin:1rem 0 0; color:#657681; font-size:.78rem; line-height:1.6; }
        .recommendation-safety i { flex:0 0 auto; margin-top:.08rem; color:#526d82; }
        .recommendation-status { margin-top:1rem; padding:.9rem 1rem; border:1px solid #dce5eb; border-radius:12px; background:#f3f7f9; color:#334f62; font-size:.86rem; line-height:1.55; }
        .recommendation-status.is-loading::before { display:inline-block; width:.75rem; height:.75rem; margin-right:.55rem; border:2px solid #bbcad4; border-top-color:#315e7a; border-radius:50%; content:""; vertical-align:-.1rem; animation:recommendation-spin .8s linear infinite; }
        .recommendation-status.is-error { border-color:#f0d7d7; background:#fff6f5; color:#842f2f; }
        .recommendation-result { margin-top:1.1rem; padding:1.35rem; border:1px solid #dfe8ed; border-radius:17px; background:#fff; box-shadow:0 .4rem 1.2rem rgba(13,27,42,.055); animation:confirm-dialog-in .25s ease-out both; }
        .recommendation-result-header { display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding-bottom:.9rem; border-bottom:1px solid #edf0f2; }
        .recommendation-result-header span { display:flex; align-items:center; gap:.45rem; color:#254861; font-size:.7rem; font-weight:800; letter-spacing:.09em; }
        .recommendation-result-header small { color:#8a969e; font-size:.65rem; }
        .recommendation-focus { margin:1rem 0; padding:1rem 1.1rem; border-left:3px solid #315e7a; border-radius:0 11px 11px 0; background:#f2f6f8; }
        .recommendation-focus .section-label { color:#627987; font-size:.58rem; }
        .recommendation-focus p { margin:.35rem 0 0; color:#1c3447; font-size:.9rem; font-weight:700; line-height:1.6; }
        .recommendation-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
        .recommendation-result-card { padding:1rem; border:1px solid #e6ebef; border-radius:13px; background:#fff; }
        .recommendation-result-card h3 { display:flex; align-items:center; gap:.45rem; margin:0 0 .7rem; color:#243c50; font-size:.8rem; font-weight:800; }
        .recommendation-result-card h3 i { color:#476c87; }
        .recommendation-result-card ul { display:grid; gap:.6rem; margin:0; padding-left:1.1rem; color:#61717d; font-size:.76rem; line-height:1.6; }
        .recommendation-result-card .recommendation-plan { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.55rem; margin:0; padding:0; list-style:none; }
        .recommendation-plan li { display:grid; align-content:start; gap:.35rem; min-height:86px; padding:.7rem; border:1px solid #e6ebef; border-radius:10px; background:#f8fafb; }
        .recommendation-plan-day { color:#315e7a; font-size:.68rem; font-weight:800; letter-spacing:.04em; }
        .recommendation-plan-activity { color:#526572; font-size:.74rem; line-height:1.5; }
        .recommendation-result-card li::marker { color:#527993; }
        .recommendation-disclaimer { display:flex; align-items:flex-start; gap:.45rem; margin:1rem 0 0; color:#77858e; font-size:.68rem; line-height:1.55; }
        .recommendation-disclaimer i { flex:0 0 auto; color:#50715d; }

/* Responsive layout adjustments */
        @media (max-width:767.98px) {
            :root { --sidebar-collapsed:64px; --sidebar-expanded:min(244px,78vw); }
            .sidebar { z-index:10; }
            .topbar { padding:0 1rem !important; }
            .main-content { padding:1.75rem 1rem; }
            .page-header { align-items:flex-start; flex-direction:column; gap:1rem; }
            .user-name { display:none; }
            .dashboard-clock { font-size:.8rem; white-space:normal; }
        }
        @media (prefers-reduced-motion:reduce) {
            .app-layout,.sidebar,.sidebar-brand,.brand-icon,.brand-copy,.nav-label,.sidebar nav a,.sidebar nav a i,
            .main-panel .btn,.dashboard-clock,.metric,.metric::after,.metric .card-body > i,.dashboard-action,.dashboard-action-icon,.dashboard-action > i:last-child,.dashboard-activity-icon,.main-panel .card,.main-panel .table tbody tr,
            .main-panel .form-control,.main-panel .form-select,.main-panel textarea,.main-panel a:not(.btn),.profile-trigger,.profile-trigger .user-avatar,.profile-trigger .user-name,.profile-chevron,.profile-menu-action,.profile-menu-action i,.profile-logout,.profile-logout i { transition:none; }
            .sidebar nav a:hover,.sidebar-brand:hover .brand-icon,.main-panel .btn:hover,.main-panel .btn:active,
            .dashboard-clock:hover,.metric:hover,.metric:hover .card-body > i,.dashboard-action:hover,.dashboard-action:focus-visible,.dashboard-action:hover .dashboard-action-icon,.dashboard-action:focus-visible .dashboard-action-icon,.dashboard-action:hover > i:last-child,.dashboard-action:focus-visible > i:last-child,.dashboard-activity-item:hover .dashboard-activity-icon,.profile-trigger:hover,.profile-menu-action:hover,.profile-menu-action:hover i,.profile-logout:hover,.profile-logout:hover i { transform:none; }
            .profile-dropdown,.profile-dropdown-meta { animation:none; }
        }
        @media (max-width:700px) {
            body { overflow-x:hidden; }
            .app-layout,.app-layout.sidebar-expanded { display:block; min-height:100vh; }
            .sidebar,.app-layout.sidebar-expanded .sidebar {
                position:fixed;
                inset:auto 0 0;
                z-index:30;
                display:block;
                width:100%;
                height:auto;
                min-height:0;
                padding:7px 8px calc(7px + env(safe-area-inset-bottom));
                overflow-x:auto;
                overflow-y:hidden;
                border-top:1px solid rgba(255,255,255,.12);
                background:rgba(255,255,255,.97);
                box-shadow:0 -8px 26px rgba(13,27,42,.12);
                -webkit-backdrop-filter:blur(16px);
                backdrop-filter:blur(16px);
                scrollbar-width:none;
            }
            .sidebar::-webkit-scrollbar { display:none; }
            .sidebar-brand { display:none; }
            .sidebar nav { display:flex; width:max-content; min-width:100%; justify-content:space-around; gap:5px; }
            .sidebar nav a,.app-layout:not(.sidebar-expanded) .sidebar nav a {
                display:flex;
                flex:1 0 60px;
                flex-direction:column;
                justify-content:center;
                gap:4px;
                min-width:60px;
                min-height:58px;
                padding:6px 5px;
                border:1px solid transparent;
                border-radius:13px;
                color:#71808c;
                font-size:.61rem;
                font-weight:700;
                line-height:1.1;
                text-align:center;
                white-space:normal;
            }
            .sidebar nav a::before { display:none; }
            .sidebar nav a.active,.sidebar nav a:hover,
            .app-layout:not(.sidebar-expanded) .sidebar nav a.active,.app-layout:not(.sidebar-expanded) .sidebar nav a:hover {
                border-color:#102033;
                background:linear-gradient(145deg,#1b3044,#0d1b2a);
                color:#fff;
                box-shadow:0 5px 12px rgba(13,27,42,.2);
            }
            .sidebar nav a:hover { transform:translateY(-2px); }
            .sidebar nav a i { flex:0 0 auto; width:auto; color:currentColor; font-size:1.08rem; }
            .sidebar nav a.active i,.sidebar nav a:hover i,
            .app-layout:not(.sidebar-expanded) .sidebar nav a.active i,.app-layout:not(.sidebar-expanded) .sidebar nav a:hover i { color:#fff; transform:translateY(-1px); }
            .sidebar nav a:focus-visible { outline:3px solid rgba(34,83,119,.35); outline-offset:1px; }
            .member-sidebar nav { width:100%; min-width:0; gap:2px; }
            .member-sidebar nav a,.app-layout:not(.sidebar-expanded) .member-sidebar nav a {
                flex:1 1 0;
                min-width:0;
                padding-right:2px;
                padding-left:2px;
                font-size:.52rem;
                overflow-wrap:anywhere;
            }
            .member-sidebar nav a i { font-size:1rem; }
            .brand-copy,.nav-label,.sidebar-expanded .brand-copy,.sidebar-expanded .nav-label {
                max-width:none;
                overflow:visible;
                opacity:1;
                transform:none;
                transition:none;
            }
            .nav-label { display:block; }
            .main-panel { min-height:100vh; padding-bottom:calc(76px + env(safe-area-inset-bottom)); }
            .topbar { min-height:66px; padding:0 1rem !important; }
            .topbar h4 { font-size:1rem; }
            .topbar-kicker,.section-label { font-size:.56rem; }
            .user-info { gap:.35rem; }
            .user-name { max-width:125px; overflow:hidden; font-size:.72rem; text-overflow:ellipsis; white-space:nowrap; }
            .profile-trigger { gap:.35rem; padding:.2rem .3rem; }
            .main-content { padding:1.1rem 1rem; }
            .page-header { align-items:flex-start; flex-direction:column; gap:.8rem; margin-bottom:1rem; }
            .page-header h1 { font-size:1.6rem; }
            .dashboard-clock { align-self:stretch; width:100%; justify-content:flex-start; font-size:.75rem; }
            .dashboard-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin-top:14px; }
            .dashboard-section { margin-top:1rem; padding:1rem; }
            .dashboard-section-heading { align-items:flex-start; flex-direction:column; gap:.35rem; }
            .dashboard-action-list { grid-template-columns:1fr; gap:.55rem; }
            .dashboard-action { min-height:66px; }
            .dashboard-activity-item { align-items:flex-start; }
            .dashboard-activity-item time { max-width:92px; padding-top:.2rem; text-align:right; }
            .metric { min-height:116px; gap:10px; padding:14px 12px; border-radius:14px; }
            .metric .card-body { gap:10px; }
            .metric .card-body > i { flex-basis:36px; width:36px; height:36px; border-radius:11px; font-size:1rem; }
            .metric p { font-size:.7rem; }
            .metric h2 { font-size:1.45rem; overflow-wrap:anywhere; }
            .metric .card-caption { font-size:.65rem; line-height:1.35; }
            .dashboard-welcome { align-items:flex-start; flex-direction:column; gap:1rem; margin:1rem 0; padding:1.2rem; }
            .dashboard-welcome h2 { font-size:1.15rem; }
            .dashboard-welcome p { font-size:.8rem; }
            .dashboard-welcome .welcome-badge { align-self:flex-start; }
            .main-content > .d-flex.justify-content-between { align-items:flex-start !important; gap:.75rem; }
            .main-content > .d-flex.justify-content-between > div { min-width:0; }
            .main-content .card { border-radius:14px; }
            .main-content .table { min-width:600px; font-size:.78rem; }
            .main-content .table th,.main-content .table td { padding:.65rem .7rem; vertical-align:middle; }
            .main-content .table-responsive { -webkit-overflow-scrolling:touch; }
            .modal.show { padding:12px; overflow-y:auto; }
            .modal.show .modal-dialog { width:100%; max-width:none; margin:.5rem auto; }
            .modal.show .modal-content { border:0; border-radius:16px; }
            .modal.show form { padding:1rem !important; }
            .admin-form-modal { align-items:flex-start; padding:.75rem; }
            .admin-form-modal .modal-dialog { margin:auto; }
            .admin-form-modal .modal-content { max-height:calc(100vh - 1.5rem); max-height:calc(100dvh - 1.5rem); }
            .admin-form-modal .modal-content form.admin-form-modal-form { padding:0 !important; }
            .admin-form-modal-header { padding:1rem 1rem .85rem; }
            .admin-form-modal-header h2 { font-size:1.15rem; }
            .admin-form-modal-body { padding:.95rem 1rem; }
            .admin-form-modal-footer { padding:.75rem 1rem; }
            .main-content .form-control,.main-content .form-select,.modal .form-control,.modal .form-select { min-height:44px; font-size:16px; }
            .main-content textarea,.modal textarea { min-height:92px; }
            .profile-dropdown { position:fixed; top:68px; right:10px; width:min(280px,calc(100vw - 20px)); }
            .main-content .btn { min-height:44px; padding:.62rem .85rem; }
            .main-content .btn.btn-sm { min-height:40px; padding:.5rem .72rem; }
            .main-panel .row-action-btn { flex-basis:42px; width:42px; height:42px; min-height:42px; font-size:1rem; }
            .row-actions { gap:.5rem; }
            .report-hero { align-items:stretch; flex-direction:column; gap:1rem; padding:1.2rem; }
            .report-hero h2 { font-size:1.3rem; }
            .report-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; }
            .main-panel .report-actions .btn { min-height:46px; padding:.65rem .75rem; }
            .report-table-heading { align-items:flex-start; flex-direction:column; padding:1rem; }
            .report-toolbar { flex-wrap:wrap; padding:.75rem 1rem; }
            .report-search { flex-basis:100%; max-width:none; }
            .report-status-filter { flex:1 1 150px; }
            .report-result-count { margin-left:0; }
            .report-metrics-scroll { overflow:visible; margin-right:0; padding:0; }
            .report-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem; }
            .report-metrics .metric { min-height:108px; padding:12px 10px; border-radius:13px; }
            .report-metrics .metric .card-body { align-items:center; gap:8px; }
            .report-metrics .metric .card-body > i { flex-basis:34px; width:34px; height:34px; border-radius:10px; font-size:.92rem; }
            .report-metrics .metric p { font-size:.68rem; line-height:1.3; }
            .report-metrics .metric h2 { margin-top:3px; font-size:1.35rem; }
            .report-metrics .metric .card-caption { font-size:.6rem; line-height:1.3; }
            .profile-logout,.profile-menu-action { min-height:44px; }
            .recommendation-intro { align-items:flex-start; padding:1rem; }
            .recommendation-intro-icon { flex-basis:44px; width:44px; height:44px; font-size:1.15rem; }
            .recommendation-panel { padding:1rem; }
            .recommendation-generate { width:100%; min-height:46px; }
            .recommendation-result { padding:1rem; }
            .recommendation-result-grid { grid-template-columns:1fr; }
            .recommendation-result-header { align-items:flex-start; flex-direction:column; }
        }
        @media (max-width:380px) {
            .sidebar nav a,.app-layout:not(.sidebar-expanded) .sidebar nav a { flex-basis:54px; min-width:54px; font-size:.57rem; }
            .member-sidebar nav a,.app-layout:not(.sidebar-expanded) .member-sidebar nav a { flex-basis:0; min-width:0; font-size:.47rem; }
            .main-content { padding-right:.75rem; padding-left:.75rem; }
            .metric { padding:12px 10px; }
            .metric .card-body { gap:8px; }
            .report-metrics { gap:.5rem; }
            .report-metrics .metric { min-height:104px; padding:10px 8px; }
            .report-metrics .metric .card-body { gap:7px; }
            .report-metrics .metric .card-body > i { flex-basis:30px; width:30px; height:30px; font-size:.82rem; }
            .report-metrics .metric h2 { font-size:1.2rem; }
            .report-metrics .metric p { font-size:.62rem; }
            .report-metrics .metric .card-caption { font-size:.56rem; }
            .user-name { max-width:92px; }
        }
        @media print {
            .sidebar,.topbar,.no-print { display:none !important; }
            .app-layout { display:block; }
            .main-content { padding:0 !important; }
            .report-hero,.report-table-card,.report-metrics .metric { box-shadow:none; }
            .report-hero { border:1px solid #d5dde3; color:#102337; background:#fff; }
            .report-hero h2,.report-hero p,.report-eyebrow { color:#102337; }
            .report-table-scroll { overflow:visible; }
            .report-table-scroll .table { min-width:0; }
            .report-table-scroll thead th,.report-table-scroll tbody td { padding:.45rem; font-size:9pt; }
        }
        @media (prefers-reduced-motion:reduce) {
                .confirm-overlay,.confirm-dialog,.app-toast,.recommendation-result { animation:none; }
                .recommendation-generate.is-loading i,.recommendation-status.is-loading::before { animation:none; }
            }
        }
