/* Shared navigation refinement. Business views and role checks stay in the host. */
:root{--admin-accent:#B8D45D;--admin-accent-hover:#ACC74F;--admin-accent-pressed:#9CB83F;--admin-ink:#283125;--admin-muted:#687067;--admin-soft:#EFF4E1;--admin-focus:#718C30;--accent:#B8D45D;--accent-btn:#ACC74F;--teal:#526B29;--teal-dark:#415723;--teal-light:#EFF4E1}
body{background:#F4F5F1}
body #sidebar.sidebar{left:12px;top:12px;width:252px;min-width:0;height:calc(100vh - 24px);height:calc(100dvh - 24px);border:1px solid #E5E8E0;border-radius:16px;display:flex;flex-direction:column;overflow:visible;background:#fff}
body #sidebar .sidebar-logo{height:80px;min-height:80px;padding:20px 16px;gap:10px;border:0;position:relative}
body #sidebar .sidebar-logo img{width:30px;height:30px;border-radius:8px}
body #sidebar .sidebar-logo-text{font-size:15px;font-weight:650;white-space:nowrap;color:#283125;letter-spacing:0}
.sidebar-collapse{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:0;border-radius:7px;background:transparent;color:#72796F;flex:none;margin-left:auto}
.sidebar-collapse:hover{background:#F0F2EC;color:#283125}
.sidebar-collapse svg{width:18px;height:18px}
body #sidebar .sidebar-nav{padding:0 10px 12px;flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin}
body #sidebar .nav-section-label{font-size:11px;line-height:20px;color:#7A8274;font-weight:500;letter-spacing:.03em;margin:18px 12px 7px;padding:0}
body #sidebar .nav-item{position:relative;display:flex;align-items:center;gap:12px;min-height:44px;height:44px;margin:3px 0;width:100%;padding:0 12px;border:1px solid transparent;border-radius:9px;font-size:14px;font-weight:450;color:#687067;background:transparent;transition:background-color .16s,color .16s,border-color .16s,transform .1s;white-space:nowrap}
body #sidebar .nav-item:hover{color:#283125;background:#F3F5EF}
body #sidebar .nav-item.active{background:#EFF4E1;color:#354B1E;font-weight:600;border-color:#E4EBCD}
body #sidebar .nav-item:active{background:#E4ECD1;transform:scale(.985)}
body #sidebar .nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:#849B42;opacity:1;color:white;transition:background-color .16s}
body #sidebar .nav-item.active .nav-icon,body #sidebar .nav-item:hover .nav-icon{background:#718832}
/* The incumbent global icon rule uses !important; scope this override to navigation. */
body #sidebar .nav-icon svg,body #sidebar .nav-icon svg *,body #sidebar .nav-item.active .nav-icon svg,body #sidebar .nav-item.active .nav-icon svg *{color:#fff!important;stroke:#fff!important}
body #sidebar .nav-icon svg{width:18px;height:18px;stroke-width:1.7;fill:none;opacity:1;vector-effect:non-scaling-stroke}
body #sidebar #nav-dashboard .nav-icon svg{stroke-width:2}
body #sidebar .nav-icon svg .icon-solid,body #sidebar .nav-item.active .nav-icon svg .icon-solid{fill:#fff;stroke:none!important;opacity:1}
body #sidebar .nav-icon svg .icon-soft,body #sidebar .nav-item.active .nav-icon svg .icon-soft{fill:#fff;stroke:none!important;opacity:.12}
body #sidebar :is(.sidebar-collapse,#btn-sign-out) svg,body #sidebar :is(.sidebar-collapse,#btn-sign-out) svg *{color:#687067!important;stroke:#687067!important;fill:none;stroke-width:1.6}
body #sidebar .sidebar-help{margin:0 10px;padding:10px 0 6px;background:none;border:0;border-radius:0;flex:none}
body #sidebar .sidebar-help-title,body #sidebar .sidebar-help-desc{display:none}
body #sidebar .sidebar-help a{display:flex;align-items:center;gap:12px;height:40px;border-radius:8px;padding:0 12px;color:#687067;text-decoration:none;font-size:14px;font-weight:450;background:none}
body #sidebar .sidebar-help a:hover{background:#F3F5EF;color:#283125}
body #sidebar .sidebar-user{display:flex;align-items:center;gap:10px;padding:14px 16px;min-height:70px;margin:0;border-top:1px solid #EEF0EA;flex:none;overflow:hidden}
body #sidebar .sidebar-user-name{font-size:13px;color:#283125;font-weight:600}
body #sidebar .sidebar-user-email{font-size:11px;color:#778071;margin-top:3px}
body #sidebar .sidebar-user-info{min-width:0;flex:1}
body #sidebar .sidebar-user-name,body #sidebar .sidebar-user-email{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body #sidebar #btn-sign-out{display:flex;align-items:center;justify-content:center;width:30px;height:34px;min-height:0;flex:none;margin:0;padding:5px;border:0;background:transparent;border-radius:7px;color:#778071}
body #sidebar #btn-sign-out:hover{background:#F3F5EF;color:#283125}
body #sidebar #btn-sign-out svg{width:18px;height:18px}
body #main{margin-left:276px;width:calc(100% - 276px);background:#F4F5F1}
body #header{background:#F4F5F1;border-bottom:1px solid #E7EAE2}
body #main .view :is(.btn-primary,.admin-create-button),body #auth-screen .btn-primary,body .mobile-menu-toggle,body #main .page-btn.active,body .mobile-bottom-nav>button.active{background:var(--admin-accent);border-color:var(--admin-accent);color:#283125}
body #main .view :is(.btn-primary,.admin-create-button):hover:not(:disabled),body #auth-screen .btn-primary:hover:not(:disabled),body .mobile-menu-toggle:hover{background:var(--admin-accent-hover);border-color:var(--admin-accent-hover)}
body #main .view :is(.btn-primary,.admin-create-button):active:not(:disabled){background:var(--admin-accent-pressed);border-color:var(--admin-accent-pressed);transform:translateY(1px)}
body :is(.btn,.iv-btn,.chip,.page-btn,.row-btn,.btn-link){transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,transform .1s}
body :is(.btn,.iv-btn,.chip,.page-btn,.row-btn):active:not(:disabled){transform:translateY(1px)}
body :is(button,a,input,select,textarea):focus-visible{outline:2px solid var(--admin-focus);outline-offset:3px}
body :is(input:not([type=checkbox]):not([type=radio]),select,textarea):not(:disabled):hover{border-color:#B4C198}
body :is(input:not([type=checkbox]):not([type=radio]),select,textarea):focus{border-color:#819949;box-shadow:0 0 0 3px rgba(129,153,73,.13);outline:none}
body :is(input[type=checkbox],input[type=radio]){accent-color:#718C30}
body .btn-link:hover{background:#EFF4E1;color:#415723}
/* Table actions need their own hit area; do not inherit bordered toolbar buttons. */
body #main .view table .btn-link{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:56px;min-height:36px;height:auto;padding:8px 12px;border:0;border-radius:6px;background:transparent;box-shadow:none;font-size:14px;font-weight:500;line-height:20px;white-space:nowrap;text-decoration:none;vertical-align:middle;cursor:pointer}
body #main .view table .btn-link:hover:not(:disabled):not(.danger){background:#EFF4E1;color:#415723}
body #main .view table .btn-link:active:not(:disabled):not(.danger){background:#E2EBCB;color:#354B1E;transform:translateY(1px)}
body #main .view table .btn-link:focus-visible{outline:2px solid var(--admin-focus);outline-offset:2px;box-shadow:none}
body #main .view table .btn-link:disabled{background:transparent;cursor:not-allowed}
body :is(.course-card,.iv-card,.registration-row):hover{border-color:#D3DDC1}
.admin-nav-tooltip{position:fixed;z-index:250;max-width:180px;pointer-events:none;padding:8px 12px;border-radius:7px;background:#283125;color:#fff;font-size:13px;line-height:20px;box-shadow:0 3px 12px #28312515}
@media(min-width:1101px){
 body.admin-nav-collapsed #sidebar.sidebar{width:72px}
 body.admin-nav-collapsed #main{margin-left:96px;width:calc(100% - 96px)}
 body.admin-nav-collapsed #sidebar .sidebar-logo{height:80px;padding:16px 10px;justify-content:center}
 body.admin-nav-collapsed #sidebar .sidebar-logo img,body.admin-nav-collapsed #sidebar .sidebar-logo-text{display:none}
 body.admin-nav-collapsed .sidebar-collapse{margin:0;width:40px;height:40px}
 body.admin-nav-collapsed .sidebar-collapse svg{transform:rotate(180deg)}
 body.admin-nav-collapsed #sidebar .nav-item{padding:0;justify-content:center}
 body.admin-nav-collapsed #sidebar .nav-label,body.admin-nav-collapsed #sidebar .sidebar-user-info,body.admin-nav-collapsed #sidebar .sidebar-user-avatar{display:none}
 body.admin-nav-collapsed #sidebar .nav-section-label{height:1px;margin:15px 10px 11px;font-size:0;line-height:0;background:#E9ECE3;overflow:hidden}
 body.admin-nav-collapsed #sidebar .sidebar-help a{justify-content:center;padding:0}
 body.admin-nav-collapsed #sidebar .sidebar-user{justify-content:center;padding:14px 8px}
}
@media(max-width:1100px){
 body #sidebar.sidebar{left:0;top:0;width:min(300px,calc(100vw - 48px));height:100dvh;border-radius:0 16px 16px 0;border:0}
 body #sidebar .sidebar-logo{padding-right:60px}
 body #sidebar .sidebar-nav{flex:1 1 auto}
 body #sidebar .sidebar-user{display:flex}
 body #sidebar .nav-item{height:46px}
 body #main{margin-left:0;width:100%}
 body #main .view table .btn-link{min-height:44px;padding:12px}
 .sidebar-collapse{display:none}
}
@media(prefers-reduced-motion:reduce){body #sidebar .nav-item,body :is(.btn,.iv-btn,.chip,.page-btn,.row-btn,.btn-link){transition:none;transform:none!important}}

/* Same icon geometry, tiles and white foreground on mobile and desktop. */
body .mobile-bottom-nav .nav-icon{display:flex;align-items:center;justify-content:center;width:28px;height:28px;flex:0 0 28px;border-radius:8px;background:#849B42;color:#fff}
body .mobile-bottom-nav>button.active{background:#EFF4E1;color:#354B1E}
body .mobile-bottom-nav>button.active .nav-icon,body .mobile-bottom-nav>button:hover .nav-icon{background:#718832}
body .mobile-bottom-nav .nav-icon svg{width:18px;height:18px;fill:none;stroke-width:1.7;opacity:1}
body .mobile-bottom-nav [data-nav-target="nav-dashboard"] svg{stroke-width:2}
body .mobile-bottom-nav .nav-icon svg,body .mobile-bottom-nav .nav-icon svg *{color:#fff!important;stroke:#fff!important}
body .mobile-bottom-nav .nav-icon svg .icon-solid{fill:#fff;stroke:none!important;opacity:1}
body .mobile-bottom-nav .nav-icon svg .icon-soft{fill:#fff;stroke:none!important;opacity:.12}
