:root{font-synthesis:none}html,body,#root{min-height:100%}body{background:#f7f7f8}button,.btn,.nav-link,.form-control,.form-select{min-height:44px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem}.navbar .nav-link{display:flex;align-items:center;gap:.4rem;color:#ffffffe6}.admin-links{flex-direction:row;align-items:center}.page-loader{min-height:60vh;display:flex;align-items:center;justify-content:center;gap:1rem}.auth-shell{min-height:100vh;padding:1rem;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at top,#fff 0,#f4e8e3 60%,#eee)}.auth-card{width:min(100%,29rem);padding:clamp(.5rem,2vw,1.5rem);box-shadow:0 .75rem 2rem #0000001f;border:0}.auth-icon{width:3.5rem;height:3.5rem;border-radius:1rem;background:var(--bs-primary);color:#fff;display:grid;place-items:center;font-size:1.4rem;margin-bottom:1rem}.auth-logo{max-width:10rem;max-height:5rem;object-fit:contain;margin-bottom:1rem}.otp-input{font-size:1.75rem;letter-spacing:.5rem;text-align:center}.turnstile-wrap{min-height:65px;overflow:hidden}.action-row{display:flex;gap:.4rem;flex-wrap:wrap}.responsive-cards{display:grid;gap:1rem}.form-grid,.filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.filter-grid{grid-template-columns:2fr 1fr 1fr}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:.5rem}.app-settings{display:grid;grid-template-columns:14rem minmax(0,1fr);margin-bottom:1rem;overflow:hidden;background:var(--bs-body-bg);border:1px solid var(--bs-border-color);border-radius:var(--bs-border-radius-lg);box-shadow:0 .125rem .375rem #0000000a}.app-settings-nav{padding:1.25rem 1rem;background:var(--bs-tertiary-bg);border-right:1px solid var(--bs-border-color)}.app-settings-nav-label{margin:0 .75rem .75rem;color:var(--bs-secondary-color);font-size:.75rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.app-settings-nav .nav{flex-direction:column;gap:.25rem}.app-settings-nav .nav-link{width:100%;min-height:40px;padding:.55rem .75rem;color:var(--bs-body-color);font-weight:500;text-align:left}.app-settings-nav .nav-link:hover:not(.active){color:var(--bs-primary);background:var(--bs-body-bg)}.app-settings-nav .nav-link.active{box-shadow:0 .125rem .25rem #00000014}.app-settings-content{min-width:0;padding:1.5rem}.app-settings-content>.tab-pane>.card{margin-bottom:0!important;border:0}.app-settings-content>.tab-pane>.card+.card{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--bs-border-color);border-radius:0}.app-settings-content .card-body{padding:0}.app-settings-content .card-title{margin-bottom:1.25rem;font-size:1.125rem;font-weight:600}.unit-select{max-width:8rem}.color-input{width:4rem;padding:.25rem}.grant-list{border-top:1px solid var(--bs-border-color)}.grant-row{display:grid;grid-template-columns:minmax(12rem,1fr) minmax(12rem,1fr);gap:1rem;align-items:center;padding:.75rem 0;border-bottom:1px solid var(--bs-border-color)}.assignment-matrix th,.assignment-matrix td{min-width:8rem;vertical-align:middle}.assignment-matrix th:first-child{position:sticky;left:0;z-index:1;min-width:13rem;background:var(--bs-body-bg)}.assignment-matrix thead th:first-child{z-index:2}.assignment-matrix .form-check{display:inline-block;min-height:auto}.sticky-save{position:sticky;bottom:1rem;display:flex;justify-content:flex-end;pointer-events:none}.sticky-save .btn{box-shadow:0 .4rem 1rem #00000040;pointer-events:auto}@media(max-width:767.98px){body{background:#fff}.form-grid,.filter-grid,.grant-row{grid-template-columns:1fr}.auth-card{box-shadow:none}.admin-links{flex-direction:column;align-items:stretch}.admin-links .nav-link{color:var(--bs-body-color)}.action-row .btn{flex:1 1 auto}.nav-tabs .nav-link{padding-inline:.7rem}.app-settings{display:block}.app-settings-nav{padding:.75rem;overflow-x:auto;border-right:0;border-bottom:1px solid var(--bs-border-color)}.app-settings-nav-label{display:none}.app-settings-nav .nav{flex-direction:row;flex-wrap:nowrap;width:max-content}.app-settings-nav .nav-link{width:auto;white-space:nowrap}.app-settings-content{padding:1.25rem}.sticky-save .btn{width:100%}}
