/* Shared finishing layer: readable tables, consistent controls and mobile spacing. */
:root{--background:#f3f6fb;--border:#e2e8f0;--radius:18px}
.content{padding-bottom:40px}.page-header h1{font-weight:750}.page-header .eyebrow{color:#718096}
.app-card{box-shadow:0 5px 24px #17255406}.app-card:hover{transform:none}
.sidebar{border-right:1px solid #ffffff0c}.nav-link{padding:11px 13px;margin:4px 0}.nav-label{letter-spacing:.1em}
.table-scroll{border:1px solid #e8edf5;border-radius:12px}th{padding:14px 16px;background:#f1f5fa;color:#52627a}td{padding:15px 16px}tbody tr:last-child td{border-bottom:0}tbody tr:hover td{background:#eff6ff80}
input,select,textarea{min-height:44px;border-color:#d7e0ed}input[type=radio],input[type=checkbox]{min-height:0}label{font-size:13px}button,.btn,.btn-primary{min-height:40px}.btn-small{min-height:34px}.btn-primary{box-shadow:0 4px 12px #2563eb20}
dialog{max-height:90dvh;overflow-y:auto;border:1px solid #dbe4f0;border-radius:22px;padding:28px;box-shadow:0 25px 90px #0f172a44}dialog::backdrop{background:#0f172a80;backdrop-filter:blur(4px)}dialog .close{width:36px;height:36px;min-height:36px;border-radius:50%;background:#f1f5f9;font-size:21px}dialog h2{padding-right:42px}dialog .alert{margin-top:16px}
[hidden]{display:none!important}.available-seat input:focus-visible+span{outline:3px solid #60a5fa}.available-seat small,.available-seat em{display:block;margin-top:5px}
.student-login .login-credits{color:#cbd5e1}.student-login .login-credits a{color:#bfdbfe}.login-form{padding-bottom:90px}.login-credits{font-size:clamp(9px,2.5vw,11px)}
.student-hero .eyebrow{color:#bfdbfe}.student-app .topbar .search-launch{display:none}.student-app .content{padding-bottom:100px}.student-app .page-footer{padding-bottom:90px}.student-app .bottom-nav{display:flex;position:fixed;bottom:0;left:260px;right:0;justify-content:space-around;background:#fff;border-top:1px solid #e2e8f0;padding:10px 8px calc(10px + env(safe-area-inset-bottom));z-index:25}.student-app .bottom-nav a{display:flex;flex-direction:column;align-items:center;gap:3px;color:#64748b;font-size:11px}.student-app .bottom-nav i{font-size:21px}.student-app .bottom-nav .active{color:#2563eb}.student-app.collapsed .bottom-nav{left:80px}
@media(max-width:900px){.student-app .bottom-nav,.student-app.collapsed .bottom-nav{left:0}.toolbar{gap:8px}.content{padding:20px 14px}.topbar .breadcrumb{overflow:hidden;text-overflow:ellipsis}.student-app .topbar .date{display:none}}
@media(max-width:600px){dialog{padding:22px 18px;width:94vw}.form-grid{grid-template-columns:1fr;gap:8px}.app-card{padding:18px}.toolbar input,.toolbar select{max-width:100%;flex:1 1 140px}.row-actions{flex-wrap:wrap}.top-actions{gap:9px}.login-credits{left:8px;right:8px}.attendance-state h2{font-size:17px}.page-footer{line-height:1.8}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.student-app .bottom-nav{display:none!important}}
.sidebar-close,.sidebar-backdrop{display:none}
.scanner-stage #reader video{object-fit:contain!important;min-height:0!important;max-height:65vh}
.camera-button[hidden]{display:none!important}
@media(max-width:900px){
 .sidebar{transition:transform .2s ease;width:min(300px,85vw)!important;z-index:80;padding-top:65px;padding-bottom:calc(16px + env(safe-area-inset-bottom))}
 .sidebar-close{display:block;position:absolute;right:14px;top:14px;background:transparent;color:#fff;font-size:24px;min-width:44px;min-height:44px;border-color:#ffffff55}
 .sidebar-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#02061799;border:0;border-radius:0;z-index:70}
 body.menu-open{overflow:hidden}
 .student-install{position:static;display:block;margin:12px auto 100px;max-width:90%}
 .student-install[hidden]{display:none}
 .student-app input,.student-app select,.student-login input{font-size:16px}
}
@media(prefers-reduced-motion:reduce){.sidebar{transition:none}}
