:root{font-family:'DM Sans',sans-serif;color:#1c2c28;background:#f4f6f3;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:340px}.topbar{height:76px;padding:0 5.5vw;background:#fff;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e9eeea}.brand{display:flex;align-items:center;gap:12px;color:#173c32;text-decoration:none}.brand-mark{width:38px;height:38px;border-radius:12px;background:#173c32;color:#fff;display:grid;place-items:center;font:800 20px Manrope,sans-serif}.brand strong,.brand small{display:block}.brand strong{font:800 12px Manrope,sans-serif;letter-spacing:.08em}.brand small{margin-top:3px;font-size:9px;letter-spacing:.17em;color:#7c8c85}.system-status{display:flex;align-items:center;gap:9px;color:#5d6c65;font-size:12px}.system-status i,.live-dot{width:8px;height:8px;border-radius:50%;background:#36a477;box-shadow:0 0 0 4px #e5f4eb}.layout{max-width:1320px;margin:0 auto;padding:55px 36px 70px;display:grid;grid-template-columns:minmax(340px,.88fr) minmax(480px,1.12fr);gap:8vw}.welcome{padding-top:28px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.17em;color:#799087;margin:0 0 12px}.welcome h1{font:800 clamp(38px,4.4vw,58px)/1.08 Manrope,sans-serif;letter-spacing:-.055em;color:#173c32;margin:0}.welcome h1 span{color:#77a58c}.intro{max-width:390px;color:#718078;font-size:14px;line-height:1.75;margin:20px 0 31px}.scan-panel{min-height:96px;padding:19px 20px;border:1px solid #dce7df;background:#fff;border-radius:16px;display:flex;align-items:center;gap:16px;box-shadow:0 10px 35px #173c3209;transition:.2s}.scan-icon{width:42px;height:42px;border:1.5px solid #82aa94;border-radius:11px;display:grid;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px);place-content:center;gap:5px;position:relative}.scan-icon:before,.scan-icon:after{content:'';position:absolute;background:#82aa94}.scan-icon:before{height:1.5px;width:9px;left:-4px;top:9px}.scan-icon:after{width:1.5px;height:9px;left:9px;top:-4px}.scan-icon span{border:1.5px solid #82aa94;border-radius:2px}.scan-copy{display:flex;flex-direction:column;gap:5px;flex:1}.scan-copy strong{font:700 14px Manrope,sans-serif;color:#264439}.scan-copy span{font-size:12px;color:#8a9891}.scan-panel .live-dot{width:9px;height:9px}.scan-panel[data-state=granted]{background:#eff8f1;border-color:#acd2b8}.scan-panel[data-state=granted] .scan-icon{border-color:#35a171}.scan-panel[data-state=denied]{background:#fff4f1;border-color:#edc1b7}.scan-panel[data-state=denied] .scan-copy strong{color:#a44335}.scan-panel[data-state=denied] .live-dot{background:#cf6756;box-shadow:0 0 0 4px #fbe7e2}#scan-form{margin-top:14px}#credential-input{width:100%;height:48px;border:1px solid #e2e9e4;border-radius:10px;padding:0 15px;background:#fff;color:#355347;outline:none;caret-color:transparent}#credential-input::placeholder{color:#a5b0a9}#credential-input:focus{border-color:#9fbea9;box-shadow:0 0 0 3px #e7f1e9}.scanner-hint{margin:12px 0;color:#93a099;font-size:11px;display:flex;align-items:center;gap:8px}.key{font-size:9px;letter-spacing:.05em;border:1px solid #dbe4dd;border-radius:4px;padding:3px 5px;background:#fff;color:#6a7a71}.side-column{display:flex;flex-direction:column;gap:18px}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.stat-card{padding:15px 12px;background:#fff;border:1px solid #e9eeea;border-radius:13px;min-height:115px}.stat-card>span,.stat-card small{display:block;color:#809087;font-size:10px}.stat-card strong{display:block;margin:11px 0 4px;font:800 25px Manrope,sans-serif;color:#204638}.stat-warning strong{color:#b16f45}.card{background:#fff;border:1px solid #e9eeea;border-radius:15px;padding:20px 21px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-heading .eyebrow{font-size:9px;margin:0 0 3px}.section-heading h2{font:700 18px Manrope,sans-serif;margin:0;color:#234537}.text-button,.icon-button{border:0;background:transparent;color:#4d896a;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.icon-button{font-size:20px;color:#82928a}.student-form{padding:15px 0 18px;border-bottom:1px solid #edf1ed;display:grid;gap:10px}.student-form[hidden]{display:none}.student-form label{font-size:11px;font-weight:600;color:#66776e}.student-form input{width:100%;height:38px;margin-top:5px;padding:0 10px;border:1px solid #e0e8e2;border-radius:7px;font:12px 'DM Sans',sans-serif;outline:none}.student-form input:focus{border-color:#89ae97}.optional{font-weight:400;color:#a2ada6}.primary-button{height:38px;border:0;border-radius:7px;background:#204638;color:#fff;font-weight:600;cursor:pointer}.form-message{font-size:11px;margin:0;color:#a44335}.form-message[data-type=success]{color:#31805b}.student-list,.log-list{max-height:260px;overflow:auto}.student-row,.log-row{display:flex;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #f0f3f0}.student-row:last-child,.log-row:last-child{border:0}.avatar{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:#edf4ee;color:#538366;font-size:10px;font-weight:700}.student-info,.log-info{flex:1;min-width:0}.student-info strong,.log-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34483e;font-size:11px;font-weight:600}.student-info small,.log-info small,.log-time small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;color:#97a29b;font-size:9px}.presence-badge{flex:none;border-radius:20px;padding:5px 8px;font-size:9px}.presence-badge.inside{background:#eff8f1;color:#43835d}.presence-badge.outside{background:#f2f4f2;color:#829087}.status-button{border:1px solid #d8eadc;background:#f1f8f2;color:#49815c;border-radius:20px;padding:5px 9px;font-size:9px;cursor:pointer}.inactive .student-info strong{color:#9ba69f}.inactive .status-button{border-color:#e8eae8;background:#f7f8f7;color:#929b95}.log-mark{width:29px;height:29px;flex:none;border-radius:50%;display:grid;place-items:center;font-size:13px;font-weight:700}.log-mark.granted{background:#edf7ef;color:#42916a}.log-mark.denied{background:#fff0ed;color:#c16a55}.log-mark.exit{background:#eef2fa;color:#637bb3}.log-time{text-align:right}.log-time strong{display:block;font-size:10px;color:#66776e;font-weight:600}.log-time small{font-size:9px}.empty-state{color:#9aa69e;font-size:11px;text-align:center;padding:18px 8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:900px){.layout{grid-template-columns:1fr;gap:34px;padding:35px 24px}.welcome{padding-top:0}.intro{margin:14px 0 22px}.side-column{gap:13px}}@media(max-width:520px){.topbar{height:65px;padding:0 19px}.layout{padding:28px 16px 45px}.stats-grid{gap:7px}.stat-card{padding:13px 10px;min-height:105px}.stat-card>span,.stat-card small{font-size:9px}.stat-card strong{font-size:22px}.card{padding:17px 15px}.welcome h1{font-size:42px}}

[hidden]{display:none!important}.topbar{gap:22px}.main-nav{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:auto}.nav-button{border:1px solid transparent;background:transparent;color:#687a70;border-radius:8px;padding:10px 16px;font:600 12px 'DM Sans',sans-serif;cursor:pointer}.nav-button.active{background:#edf5ee;border-color:#dce9de;color:#285b42}.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px}.student-form select,.form-stack select,.form-stack input,.settings-form input{width:100%;height:38px;margin-top:5px;padding:0 10px;border:1px solid #e0e8e2;border-radius:7px;background:#fff;color:#34483e;font:12px 'DM Sans',sans-serif;outline:none}.student-form input[type=file]{height:auto;padding:8px}.student-form select:focus,.form-stack select:focus,.form-stack input:focus,.settings-form input:focus{border-color:#89ae97}.secondary-button,.small-action{border:1px solid #dce8df;border-radius:7px;background:#f6f9f6;color:#3f7655;padding:9px 12px;font:600 11px 'DM Sans',sans-serif;cursor:pointer}.student-form .secondary-button{width:100%}.small-action{padding:6px 9px;white-space:nowrap}.library-view{max-width:1400px;margin:0 auto;padding:42px 36px 64px}.library-heading h1{margin:0;color:#173c32;font:800 42px/1.1 Manrope,sans-serif;letter-spacing:-.04em}.library-heading>div>p:last-child{margin:10px 0 0;color:#718078;font-size:13px}.library-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:24px 0}.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.library-card{min-width:0}.wide-card{grid-column:1/-1}.form-stack{display:grid;gap:10px;padding-bottom:16px;border-bottom:1px solid #edf1ed}.form-stack label,.settings-form label{display:block;color:#66776e;font-size:11px;font-weight:600}.form-stack .primary-button{margin-top:2px}.settings-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding-top:14px}.settings-form .form-message{grid-column:1/-1}.subheading{margin-top:18px}.library-list{max-height:300px;overflow:auto}.library-row{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid #f0f3f0}.library-row:last-child{border:0}.library-info{flex:1;min-width:0}.library-info strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#34483e;font-size:11px;font-weight:650}.library-info small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:4px;color:#97a29b;font-size:9px}.library-tag{flex:none;border-radius:20px;padding:6px 9px;background:#f1f4f1;color:#718078;font-size:9px;font-weight:600;white-space:nowrap}.library-tag.available,.library-tag.returned{background:#edf7ef;color:#43835d}.library-tag.unavailable,.library-tag.overdue{background:#fff0ed;color:#b15d4b}.section-note{margin:-3px 0 12px;color:#84928b;font-size:11px}.loan-row{flex-wrap:wrap}.student-photo{object-fit:cover}.student-row .avatar{overflow:hidden;flex:none}.student-photo{display:block}.student-row{gap:9px}.student-info{flex:1 1 160px}.student-row .presence-badge,.student-row .small-action,.student-row .status-button{flex:none}
@media(max-width:900px){.main-nav{margin:0}.topbar{padding:0 20px}.library-view{padding:30px 24px}.student-row{flex-wrap:wrap}.student-row .student-info{flex:1 1 180px}.student-row .presence-badge{margin-left:44px}}
@media(max-width:620px){.topbar{height:auto;min-height:65px;flex-wrap:wrap;padding:12px 16px;gap:8px}.main-nav{order:3;width:100%;justify-content:center}.system-status{font-size:10px}.library-view{padding:24px 16px 40px}.library-grid{grid-template-columns:1fr}.wide-card{grid-column:auto}.library-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.library-heading h1{font-size:36px}.settings-form{grid-template-columns:1fr}.settings-form .form-message{grid-column:auto}.student-row .presence-badge{margin-left:44px}.loan-row{align-items:flex-start}.loan-row .library-tag{margin-left:auto}}
.students-view{max-width:1220px;margin:0 auto;padding:42px 36px 64px}.students-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:24px}.students-heading h1{margin:0;color:#173c32;font:800 42px/1.1 Manrope,sans-serif;letter-spacing:-.04em}.students-heading>div:first-child>p:last-child{margin:10px 0 0;color:#718078;font-size:13px}.students-heading-actions{display:flex;gap:10px;align-items:center}.students-heading-actions button{min-height:40px;padding:0 15px}.students-view .roster-card{padding:24px}.students-view .student-list{max-height:calc(100vh - 410px);min-height:240px}.students-view .student-row{padding:13px 4px}.students-view .student-info strong{font-size:13px}.students-view .student-info small{font-size:11px}.students-view .avatar{width:42px;height:42px}.students-view .student-search-label{display:block;margin:18px 0 6px;color:#53675b;font-size:12px;font-weight:700}.students-view .student-search{width:100%;height:44px;padding:0 13px;border:1px solid #dce7df;border-radius:9px;background:#fff;color:#34483e;font:13px 'DM Sans',sans-serif;outline:none}.students-view .student-search:focus{border-color:#89ae97;box-shadow:0 0 0 3px #e7f1e9}
@media(max-width:760px){.students-view{padding:30px 24px}.students-heading{align-items:flex-start;flex-direction:column}.students-heading-actions{width:100%;flex-wrap:wrap}.students-view .student-list{max-height:none}}
@media(max-width:620px){.students-view{padding:24px 16px 40px}.students-heading h1{font-size:36px}.students-heading-actions button{flex:1}}

.roster-actions{display:flex;align-items:center;gap:12px}.group-manager{padding:13px 0;border-bottom:1px solid #edf1ed}.group-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:end}.group-form label{font-size:11px;font-weight:600;color:#66776e}.group-form input{width:100%;height:38px;margin-top:5px;padding:0 10px;border:1px solid #e0e8e2;border-radius:7px;font:12px 'DM Sans',sans-serif}.group-form .form-message{grid-column:1/-1}.group-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(125px,1fr));gap:7px;margin-top:10px}.group-row{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:8px 9px;border:1px solid #edf1ed;border-radius:7px}.group-row strong{font-size:10px;color:#34483e}.group-row small{font-size:9px;color:#97a29b;white-space:nowrap}
.topbar-status{display:flex;align-items:center;gap:18px}.auth-screen{position:fixed;inset:0;z-index:20;display:grid;place-items:center;padding:20px;background:#10261fe8;backdrop-filter:blur(5px)}.auth-card{width:min(100%,400px);padding:30px;background:#fff;border-radius:16px;box-shadow:0 24px 70px #07110c55;display:grid;gap:13px}.auth-card .brand-mark{margin-bottom:3px}.auth-card .eyebrow{margin:0}.auth-card h1{margin:0;color:#173c32;font:800 27px Manrope,sans-serif}.auth-description{margin:0 0 4px;color:#718078;font-size:12px;line-height:1.6}.auth-card label{display:grid;gap:6px;color:#66776e;font-size:11px;font-weight:600}.auth-card input{width:100%;height:42px;padding:0 11px;border:1px solid #e0e8e2;border-radius:7px;font:13px 'DM Sans',sans-serif}.auth-card input:focus{outline:2px solid #cde1d2;border-color:#89ae97}.auth-card .primary-button{height:42px;margin-top:3px}
.student-notice{margin:10px 0;padding:10px 12px;border-radius:8px;background:#edf7ef;color:#347553;font-size:11px}.student-search-label{display:block;margin:14px 0 5px;color:#74847b;font-size:10px;font-weight:600}.student-search{width:100%;height:37px;margin-bottom:7px;padding:0 11px;border:1px solid #e0e8e2;border-radius:7px;background:#fbfcfb;font:12px 'DM Sans',sans-serif}.student-search:focus{outline:2px solid #d6e8da;border-color:#89ae97}.history-action{background:#fff}.history-dialog{width:min(620px,calc(100% - 28px));max-height:min(80vh,720px);padding:0;border:1px solid #e3ebe5;border-radius:16px;background:#fff;color:#1c2c28;box-shadow:0 24px 70px #07110c44}.history-dialog::backdrop{background:#10261f99;backdrop-filter:blur(3px)}.history-dialog[open]{display:block}.history-dialog-heading{position:sticky;top:0;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:21px 24px 15px;border-bottom:1px solid #edf1ed;background:#fff}.history-dialog-heading .eyebrow{margin:0 0 5px}.history-dialog-heading h2{margin:0;color:#234537;font:700 20px Manrope,sans-serif}.history-dialog-heading #history-student-name{margin:5px 0 0;color:#77877e;font-size:11px}.history-dialog-heading .icon-button{font-size:24px}.history-list{max-height:calc(80vh - 90px);overflow:auto;padding:8px 24px 20px}.history-entry{padding:14px 0;border-bottom:1px solid #edf1ed}.history-entry:last-child{border:0}.history-entry header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.history-entry header strong,.history-entry header small{display:block}.history-entry header strong{color:#345044;font-size:12px}.history-entry header small,.history-entry time{margin-top:4px;color:#8a9891;font-size:10px}.history-entry ul{display:grid;gap:7px;list-style:none;margin:12px 0 0;padding:0}.history-entry li{display:flex;justify-content:space-between;gap:12px;color:#62736a;font-size:10px}.history-entry li strong{color:#415c4d}.history-entry li span{text-align:right;overflow-wrap:anywhere}.history-entry li b{padding:0 4px;color:#7fa68b}
@media(max-width:620px){.history-dialog-heading{padding:17px}.history-list{padding:6px 17px 16px}.history-entry header{flex-direction:column;gap:3px}.history-entry li{flex-direction:column;gap:3px}.history-entry li span{text-align:left}}

.scanner-focus-status{display:flex;align-items:center;gap:13px;min-height:68px;margin-top:12px;padding:13px 16px;border:2px solid #d7e0da;border-radius:12px;background:#f1f3f1;color:#4d5c53;transition:background .18s,border-color .18s,box-shadow .18s}.scanner-focus-status>span:last-child{display:grid;gap:4px}.scanner-focus-status strong{font:800 13px Manrope,sans-serif;letter-spacing:.045em}.scanner-focus-status small{font-size:11px;line-height:1.4}.scanner-focus-light{width:14px;height:14px;flex:none;border-radius:50%;background:#88958d;box-shadow:0 0 0 5px #e1e6e2}.scanner-focus-status[data-state=ready]{border-color:#258451;background:#e2f7e9;color:#145b36;box-shadow:0 5px 18px #25845120}.scanner-focus-status[data-state=ready] .scanner-focus-light{background:#1caa5b;box-shadow:0 0 0 6px #b9ebcb;animation:scanner-pulse 1.8s ease-out infinite}.scanner-focus-status[data-state=unfocused]{border-color:#c54435;background:#fff0ed;color:#8c2118;box-shadow:0 5px 18px #c5443520}.scanner-focus-status[data-state=unfocused] .scanner-focus-light{background:#df392b;box-shadow:0 0 0 6px #ffd4cd}.scanner-focus-status[data-state=paused]{border-color:#c2872d;background:#fff7e5;color:#76500e}.scanner-focus-status[data-state=paused] .scanner-focus-light{background:#d68a16;box-shadow:0 0 0 6px #fae8bf}.scanner-focus-status[data-state=inactive]{border-color:#8a9b91;background:#edf1ee;color:#47574e}.scan-panel[data-focus=ready]{border-color:#63aa7e;box-shadow:0 0 0 3px #d9f0e0}.scan-panel[data-focus=unfocused]{border-color:#d86b5f;box-shadow:0 0 0 3px #fbe1dc}#credential-input:focus{border:2px solid #258451;box-shadow:0 0 0 4px #c8ecd3;background:#fbfffc}@keyframes scanner-pulse{50%{box-shadow:0 0 0 9px #b9ebcb55}}
@media(prefers-reduced-motion:reduce){.scanner-focus-status,.scan-panel{transition:none}.scanner-focus-status[data-state=ready] .scanner-focus-light{animation:none}}

.student-detail-trigger{display:flex;align-items:center;gap:12px;flex:1;min-width:0;padding:0;border:0;border-radius:8px;background:transparent;color:inherit;text-align:left;cursor:pointer}.student-detail-trigger:hover .student-info strong,.student-detail-trigger:focus-visible .student-info strong{text-decoration:underline;text-decoration-color:#83a88f;text-underline-offset:3px}.student-detail-trigger:focus-visible{outline:2px solid #89ae97;outline-offset:4px}.student-row{cursor:pointer}.student-detail-dialog{width:min(760px,calc(100% - 28px));max-height:min(86vh,800px);padding:0;overflow:auto;border:1px solid #e3ebe5;border-radius:18px;background:#fff;color:#1c2c28;box-shadow:0 24px 70px #07110c44}.student-detail-dialog::backdrop{background:#10261f99;backdrop-filter:blur(3px)}.student-detail-heading{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid #edf1ed;background:#fff}.student-detail-heading .eyebrow{margin:0}.student-detail-heading .icon-button{font-size:26px}.student-detail-status{margin:8px 0 0;padding:5px 10px;display:inline-block;border-radius:20px;background:#edf7ef;color:#43835d;font-size:11px;font-weight:700}.student-detail-content{display:grid;grid-template-columns:minmax(190px,260px) minmax(0,1fr);gap:28px;align-items:start;padding:26px}.student-detail-photo-wrap{width:100%;aspect-ratio:4/5;overflow:hidden;border-radius:15px;background:#edf4ee}.student-detail-photo{display:block;width:100%;height:100%;object-fit:cover}.student-detail-photo[hidden],.student-detail-fallback[hidden]{display:none}.student-detail-fallback{width:100%;height:100%;display:grid;place-items:center;background:linear-gradient(145deg,#e4f0e7,#f3f7f3);color:#4c8060;font:800 64px Manrope,sans-serif}.student-detail-main h2{margin:3px 0 0;color:#173c32;font:800 clamp(23px,3vw,32px)/1.15 Manrope,sans-serif;letter-spacing:-.03em;overflow-wrap:anywhere}.student-detail-subtitle{margin:8px 0 22px;color:#718078;font-size:13px}.student-detail-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.student-detail-fields>div{min-width:0;padding:11px 12px;border:1px solid #edf1ed;border-radius:9px;background:#fbfcfb}.student-detail-fields dt{margin:0 0 5px;color:#829087;font-size:10px;font-weight:650}.student-detail-fields dd{margin:0;color:#34483e;font-size:12px;font-weight:600;overflow-wrap:anywhere}.student-detail-fields>div:last-child{grid-column:1/-1}
@media(max-width:620px){.student-detail-content{grid-template-columns:1fr;gap:18px;padding:18px}.student-detail-photo-wrap{width:min(100%,280px);aspect-ratio:1/1;margin:0 auto}.student-detail-fields{gap:8px}.student-detail-fields>div{padding:9px}.student-detail-heading{padding:15px 18px}}

/* Al quedar detrás de otra ventana, toda la pantalla cambia a rojo como aviso visible al volver. */
body[data-window-focus=background]{background:#c92b24;color:#fff}
body[data-window-focus=background] .topbar{background:#a91f1a;border-bottom-color:#e25d54}body[data-window-focus=background] .brand{color:#fff}body[data-window-focus=background] .brand small{color:#ffd2ce}body[data-window-focus=background] .system-status{color:#fff}body[data-window-focus=background] .system-status i{background:#ffb9b3;box-shadow:0 0 0 4px #ffffff35}
body[data-window-focus=background] .nav-button{color:#ffe4e1}body[data-window-focus=background] .nav-button.active{background:#fff0ee;border-color:#ffc1bb;color:#971e18}
body[data-window-focus=background] .welcome .eyebrow,body[data-window-focus=background] .welcome h1{color:#fff}body[data-window-focus=background] .welcome h1 span{color:#ffd0ca}body[data-window-focus=background] .welcome .intro{color:#fff1ef}
body[data-window-focus=background] .scan-panel{background:#fff5f4;border:3px solid #8f1712;box-shadow:0 0 0 5px #ffffff45}body[data-window-focus=background] .scan-panel .scan-copy strong{color:#8f1712}body[data-window-focus=background] .scan-panel .scan-copy span{color:#6e3834}body[data-window-focus=background] .scan-panel .live-dot{background:#cf2820;box-shadow:0 0 0 6px #f3c2bd}
body[data-window-focus=background] .scanner-focus-status{min-height:78px;background:#ffdad6;border:3px solid #7c1712;color:#75140f;box-shadow:0 0 0 4px #ffffff40}body[data-window-focus=background] .scanner-focus-status strong{font-size:15px}body[data-window-focus=background] .scanner-focus-status small{font-size:12px;color:#75140f}body[data-window-focus=background] .scanner-focus-light{width:18px;height:18px;background:#d42119;box-shadow:0 0 0 7px #f1bcb7;animation:scanner-pulse 1.1s ease-out infinite}
body[data-window-focus=background] #credential-input{height:58px;border:3px solid #791610;background:#fff;color:#4b1713;font-size:16px;box-shadow:0 0 0 4px #ffffff45}body[data-window-focus=background] #credential-input::placeholder{color:#8b5651}body[data-window-focus=background] .scanner-hint{color:#fff}body[data-window-focus=background] .scanner-hint .key{border-color:#ffd0ca;background:#fff0ee;color:#941f19}
 .scan-student-card{display:flex;align-items:center;gap:24px;margin-top:16px;padding:22px;border:2px solid #acd2b8;border-radius:18px;background:linear-gradient(135deg,#f2faf4,#fff);box-shadow:0 14px 38px #173c3214;animation:scan-card-in .22s ease-out}.scan-student-card[data-movement=exit]{border-color:#b9c9e6;background:linear-gradient(135deg,#f2f5fb,#fff)}.scan-student-photo,.scan-student-fallback{width:clamp(116px,14vw,172px);height:clamp(116px,14vw,172px);flex:none;border-radius:15px;object-fit:cover;background:#e7f1e9}.scan-student-fallback{display:grid;place-items:center;color:#4c8060;font:800 42px Manrope,sans-serif}.scan-student-details{min-width:0}.scan-student-movement{margin:0 0 8px;color:#31805b;font-size:11px;font-weight:800;letter-spacing:.13em}.scan-student-card[data-movement=exit] .scan-student-movement{color:#526b9c}.scan-student-details h2{margin:0;color:#173c32;font:800 clamp(22px,2.4vw,34px)/1.12 Manrope,sans-serif;letter-spacing:-.035em;overflow-wrap:anywhere}.scan-student-id{margin:9px 0 13px;color:#52675c;font-size:15px;font-weight:650}.scan-student-meta{display:flex;flex-wrap:wrap;gap:7px}.scan-student-meta span{padding:7px 10px;border:1px solid #dce9de;border-radius:8px;background:#fff;color:#4c6256;font-size:12px;font-weight:600}.scan-student-card[hidden]{display:none}@keyframes scan-card-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
body[data-window-focus=background] .stat-card,body[data-window-focus=background] .card{border-color:#f2aaa4;box-shadow:0 5px 18px #851b1620}
body[data-window-focus=background] .scanner-focus-status[data-state=ready]{background:#ffdad6;border-color:#7c1712;color:#75140f}body[data-window-focus=background] .scanner-focus-status[data-state=ready] .scanner-focus-light{background:#d42119;box-shadow:0 0 0 7px #f1bcb7;animation:scanner-pulse 1.1s ease-out infinite}
.account-chip{display:inline-flex;align-items:center;border:1px solid #d8e7dc;border-radius:20px;padding:6px 10px;background:#f0f7f1;color:#38684a;font-size:10px;font-weight:700;white-space:nowrap}.settings-view{max-width:1200px;margin:0 auto;padding:42px 36px 64px}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}.settings-card{min-width:0}.settings-state{margin:5px 0 9px;color:#245d40;font-size:13px;font-weight:700}.settings-card .section-note{margin:7px 0 0;line-height:1.55}.api-key-actions{display:flex;gap:8px;margin:12px 0}.api-key-actions button{padding-inline:12px}.api-key-label{display:block;margin:12px 0 5px;color:#66776e;font-size:11px;font-weight:600}#api-key-value{width:100%;padding:10px;border:1px solid #e0e8e2;border-radius:7px;resize:vertical;font:11px ui-monospace,Consolas,monospace}.api-docs{margin-top:13px;color:#50655a;font-size:11px}.api-docs summary{cursor:pointer;font-weight:700}.api-docs pre{overflow:auto;padding:12px;border-radius:8px;background:#f3f6f3;color:#32483b;font-size:10px;line-height:1.55;white-space:pre-wrap}.sync-time{margin:10px 0 0;color:#8a9891;font-size:10px}.turso-config-form{margin-top:16px;padding-top:14px}.library-student-scan{display:grid;grid-template-columns:minmax(210px,.8fr) minmax(230px,1fr);gap:5px 12px;align-items:center;margin:22px 0;padding:16px 18px;border:1px solid #dce8df;border-radius:12px;background:#fff}.library-student-scan label{grid-column:1/-1;color:#415d4c;font-size:11px;font-weight:700}.library-student-scan input{height:42px;padding:0 12px;border:1px solid #89ae97;border-radius:7px;outline:none}.library-student-scan input:focus{border:2px solid #258451;box-shadow:0 0 0 3px #d8eee0}.library-student-scan p{margin:0;color:#74847b;font-size:10px}.library-student-scan p[data-type=success]{color:#31805b}.library-student-scan p[data-type=error]{color:#a44335}
body[data-window-focus=background] .account-chip{border-color:#ffd2ce;background:#ffdad6;color:#75140f}
.scan-panel[data-state=duplicate]{background:#fff8e8;border-color:#e6c476}.scan-panel[data-state=duplicate] .scan-copy strong{color:#77520e}.scan-panel[data-state=duplicate] .live-dot{background:#d0901b;box-shadow:0 0 0 4px #f8ebc8}
@media(max-width:900px){.settings-view{padding:30px 24px}.settings-grid{grid-template-columns:1fr}.topbar-status{gap:8px}}
@media(max-width:620px){.settings-view{padding:24px 16px 40px}.library-student-scan{grid-template-columns:1fr}.library-student-scan label{grid-column:auto}.topbar-status{flex-wrap:wrap;justify-content:flex-end}.account-chip{font-size:9px}}
.form-stack .sound-toggle{display:flex;align-items:center;gap:9px;padding:5px 0;color:#405d4b}.form-stack .sound-toggle input{width:16px;height:16px;margin:0;accent-color:#258451}.form-stack input[type=range]{height:20px;margin:8px 0 0;padding:0;accent-color:#258451}.form-stack label:has(#sound-volume-label){display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px}.form-stack label:has(#sound-volume-label) input{grid-column:1/-1}.form-stack #sound-volume-label{color:#405d4b;font-size:11px;font-weight:700}
@media(max-width:620px){.scan-student-card{gap:14px;padding:15px}.scan-student-photo,.scan-student-fallback{width:104px;height:104px;border-radius:12px}.scan-student-fallback{font-size:30px}.scan-student-details h2{font-size:22px}.scan-student-id{font-size:13px}.scan-student-meta span{padding:6px 8px;font-size:10px}}

/* Consistent interface controls and clearer hierarchy across all work areas. */
:root{font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;color:#263746;background:#f2f6fa;font-synthesis:none;text-rendering:optimizeLegibility;--ui-radius:14px;--ui-focus:#9bc1dc;--ui-shadow:0 8px 26px #17324f0a}
body{font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;font-size:14px;line-height:1.5;color:#263746;background:#f2f6fa}
button,input,select,textarea{font:inherit}button{transition:background-color .16s,border-color .16s,color .16s,box-shadow .16s,transform .16s}button:disabled{opacity:.62;cursor:wait}
.topbar{position:relative;z-index:2;min-height:72px;height:auto;padding:10px clamp(18px,4vw,64px);gap:20px;background:#fff;box-shadow:0 2px 12px #17324f08}
.main-nav{gap:4px}.nav-button{min-height:42px;padding:9px 14px;font-size:13px}.nav-button.active{font-weight:700}.topbar-status{gap:10px}.system-status{font-size:12px}.account-button{min-height:38px;padding:0 12px;border:1px solid #d5e2eb;border-radius:8px;background:#f7fafc;color:#315f81;font-size:12px;font-weight:700;cursor:pointer}.account-button:hover{background:#e8f1f7;border-color:#b8cfdf}
.layout{padding-top:clamp(32px,5vw,62px);gap:clamp(32px,6vw,88px)}.students-view,.library-view,.settings-view{padding-top:clamp(30px,4vw,50px)}
.welcome h1{font-size:clamp(38px,4.4vw,58px)}.intro,.library-heading>div>p:last-child,.students-heading>div:first-child>p:last-child{font-size:14px;line-height:1.65}
.card,.stat-card{border-radius:var(--ui-radius);box-shadow:var(--ui-shadow)}.card{padding:22px}.section-heading{margin-bottom:16px}.section-heading h2{font-size:19px}.eyebrow{font-size:10px;letter-spacing:.14em}
.primary-button,.secondary-button,.small-action,.icon-button,.text-button,.status-button,.nav-button,.account-button{min-height:40px}.primary-button{padding:0 16px;border-radius:8px;font-size:13px}.primary-button:hover{box-shadow:0 4px 12px #17324f20;transform:translateY(-1px)}.secondary-button,.small-action{padding:9px 13px;border-radius:8px;font-size:12px}.secondary-button:hover,.small-action:hover{border-color:#afc8d8}.icon-button{width:40px;height:40px;display:inline-grid;place-items:center;border-radius:9px}.icon-button:hover{background:#edf4f8;color:#234e6c}.text-button{padding:0 8px;font-size:12px}
input:not([type=checkbox]):not([type=range]),select,textarea{min-height:42px;border:1px solid #d6e1e9;border-radius:8px;background:#fff;color:#263746;font:13px Inter,"Segoe UI",system-ui,sans-serif;transition:border-color .15s,box-shadow .15s}input:not([type=checkbox]):not([type=range]),select{padding:0 12px}textarea{padding:10px 12px;line-height:1.5}input::placeholder,textarea::placeholder{color:#91a0ad}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:#6c9cbb;box-shadow:0 0 0 3px #dcebf4}input[type=checkbox]{accent-color:#376b91}input[type=range]{accent-color:#376b91}
.student-form,.form-stack{gap:13px}.student-form label,.form-stack label,.settings-form label,.group-form label,.auth-card label{color:#536779;font-size:12px;font-weight:650;line-height:1.4}.student-form input,.student-form select,.form-stack input,.form-stack select,.settings-form input,.group-form input{height:42px;margin-top:6px;font-size:13px}.student-form input[type=file]{height:auto;padding:10px}.form-message{min-height:0;font-size:12px;line-height:1.45}.form-message:empty{display:none}.section-note{font-size:12px;line-height:1.55}.field-hint{color:#728395;font-size:11px;line-height:1.5}.student-search-label{font-size:12px}.student-search{height:42px!important;font-size:13px!important}.group-form input{height:42px}
.auth-screen{padding:24px;background:#142c42df}.auth-card{width:min(100%,430px);padding:34px;border:1px solid #e4ebf0;border-radius:18px;gap:15px;box-shadow:0 28px 80px #07111c5c}.auth-card h1{font-size:29px}.auth-description{font-size:13px;line-height:1.65}.auth-card input{height:46px;font-size:14px}.auth-card .primary-button{height:46px}
.auth-pin-field{width:100%}.auth-pin-field input{padding-right:78px!important}.auth-pin-field .password-toggle{min-height:32px}
.account-dialog{width:min(520px,calc(100% - 28px));max-height:min(90vh,760px);padding:0;border:1px solid #dce6ee;border-radius:18px;background:#fff;color:#263746;box-shadow:0 24px 80px #0c203644;overflow:auto}.account-dialog::backdrop{background:#132c43a8;backdrop-filter:blur(4px)}.account-dialog-form{display:grid;gap:16px;padding:24px}.account-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding-bottom:17px;border-bottom:1px solid #e9eff3}.account-dialog-heading .eyebrow{margin:0 0 5px}.account-dialog-heading h2{margin:0;color:#17324f;font:750 23px/1.25 Inter,"Segoe UI",system-ui,sans-serif;letter-spacing:-.025em}.account-dialog-description{margin:0;color:#66798a;font-size:13px;line-height:1.6}.account-dialog .account-field{display:grid;gap:7px;color:#43596d;font-size:12px;font-weight:700}.password-field{position:relative;display:flex;align-items:center}.password-field input{width:100%;padding-right:78px}.password-toggle{position:absolute;right:7px;min-height:32px;padding:0 9px;border:0;border-radius:6px;background:#f1f5f8;color:#315f81;font-size:11px;font-weight:700;cursor:pointer}.password-toggle:hover{background:#e4eef4}.account-dialog-actions{display:flex;justify-content:flex-end;gap:9px;padding-top:4px}.account-dialog-actions button{min-width:112px}.account-dialog .form-message{padding-top:0}.account-dialog .form-message:not(:empty){padding:10px 12px;border-radius:8px;background:#fff1ee;color:#9b3e32}.account-dialog .icon-button{flex:none;font-size:24px}
.students-heading h1,.library-heading h1{font-size:clamp(34px,4vw,42px)}.students-view .roster-card{padding:clamp(17px,2.5vw,26px)}.students-view .student-row{gap:12px}.students-view .student-info strong{font-size:13px}.students-view .student-info small{font-size:11px}.students-view .status-button{font-size:11px;padding:7px 11px}.students-view .student-list{max-height:calc(100vh - 390px)}
.stat-card{padding:17px 15px}.stat-card>span,.stat-card small{font-size:11px;line-height:1.4}.stat-card strong{font-size:27px}.library-grid{gap:18px}.library-card .section-heading h2{font-size:18px}.library-row{min-height:50px}.library-info strong{font-size:12px}.library-info small{font-size:10px}.library-tag{font-size:10px}
.settings-grid{gap:18px}.settings-card h3{margin:20px 0 8px;color:#294c67;font-size:15px;line-height:1.4}.settings-card h3:first-child{margin-top:0}.settings-state{font-size:13px;line-height:1.5}.settings-card .section-note{margin-top:8px}.api-key-label{font-size:12px}.api-key-actions{flex-wrap:wrap}.settings-card details{padding:12px 0;border-top:1px solid #e8eef2}.settings-card details summary{color:#315f81;font-size:12px;font-weight:700;cursor:pointer}.settings-card details[open] summary{margin-bottom:12px}.api-docs pre{border:1px solid #e2eaf0;font-size:11px}
.admin-panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.admin-panel-heading .eyebrow{margin:0 0 4px}.admin-panel-heading h2{margin:0;color:#17324f;font-size:22px;line-height:1.3}.admin-section{padding:17px 0;border-top:1px solid #e8eef2}.admin-section h3{margin:0;color:#294c67;font-size:15px}.admin-section>.section-note{margin:5px 0 13px}.admin-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.inline-admin-form{grid-template-columns:minmax(0,1fr) auto;align-items:end;margin-top:12px;padding-top:12px;border-top:1px solid #edf1f4}.inline-admin-form label{min-width:0}.admin-advanced{margin-top:9px;border:1px solid #e5edf2;border-radius:10px;background:#fbfcfd}.admin-advanced summary{padding:13px 15px;color:#315f81;font-size:13px;font-weight:700;cursor:pointer;list-style:none}.admin-advanced summary::-webkit-details-marker{display:none}.admin-advanced summary::after{content:'+';float:right;color:#64829b;font-size:18px;line-height:1}.admin-advanced[open] summary{border-bottom:1px solid #e8eef2}.admin-advanced[open] summary::after{content:'−'}.admin-advanced>*:not(summary){margin-inline:15px}.admin-advanced>.form-stack{padding:14px 0 16px}.admin-advanced h3{margin:19px 0 7px;color:#294c67;font-size:14px}.admin-advanced pre{max-height:300px;overflow:auto;padding:12px;border:1px solid #e1e9ef;border-radius:8px;background:#f5f8fa;color:#40576b;font:11px/1.55 ui-monospace,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.admin-list>p{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0;padding:11px 0;border-bottom:1px solid #edf1f4;color:#506477;font-size:12px;line-height:1.5}.admin-list>p:last-child{border-bottom:0}.admin-list select{width:auto;min-width:132px;min-height:36px}.admin-list button{min-height:34px;padding:0 10px;border:1px solid #d5e2eb;border-radius:7px;background:#f7fafc;color:#315f81;font-size:11px;font-weight:700;cursor:pointer}.admin-list a{color:#315f81;font-size:11px;font-weight:650}.operations-alerts{display:grid;gap:6px;margin:10px 0;padding-left:20px;color:#596f81;font-size:12px}.operations-alerts li::marker{color:#c7a653}
.scanner-hint,.empty-state{font-size:12px}.log-info strong,.student-info strong{font-size:12px}.log-info small,.student-info small,.log-time small{font-size:10px}.presence-badge,.status-button{font-size:10px}
@media(max-width:900px){.topbar{flex-wrap:wrap;justify-content:center}.brand{margin-right:auto}.main-nav{order:3;flex:1 0 100%;justify-content:center}.topbar-status{margin-left:auto}.layout{grid-template-columns:1fr;gap:30px}.settings-grid{grid-template-columns:1fr}.students-view .student-list{max-height:none}}
@media(max-width:620px){.topbar{justify-content:space-between;padding:10px 14px;gap:8px}.brand{margin-right:0}.brand-mark{width:34px;height:34px}.brand strong{font-size:11px}.brand small{font-size:8px}.main-nav{order:3;flex:1 0 100%;overflow-x:auto;justify-content:flex-start;padding:2px 0;scrollbar-width:thin}.nav-button{flex:none;min-height:39px;padding:8px 11px;font-size:12px}.topbar-status{gap:6px}.topbar-status .system-status{display:none}.account-button{min-height:35px;padding:0 9px;font-size:11px}.layout{padding:25px 16px 40px}.card{padding:17px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{min-height:100px}.students-heading h1,.library-heading h1{font-size:34px}.students-heading-actions button{min-height:42px}.library-view,.settings-view,.students-view{padding:24px 16px 40px}.account-dialog-form{gap:14px;padding:19px}.account-dialog-heading h2{font-size:21px}.account-dialog-actions{flex-direction:column-reverse}.account-dialog-actions button{width:100%}.inline-admin-form{grid-template-columns:1fr}.inline-admin-form button{width:100%}.admin-actions button{flex:1 1 150px}.library-student-scan{padding:14px}.student-detail-content{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}

/* Identidad visual escolar: azul marino, azul acero y un toque dorado. */
:root{--school-navy:#17324f;--school-blue:#376b91;--school-sky:#e8f1f7;--school-pale:#f2f6fa;--school-border:#dce6ee;--school-gold:#c7a653;--school-ink:#263746;--school-muted:#6d7d8b}
body{background:var(--school-pale);color:var(--school-ink)}
.topbar{border-bottom:2px solid #e4dcc5}.brand{color:var(--school-navy)}.brand-mark{background:var(--school-navy);box-shadow:inset 0 0 0 1px #ffffff22}.brand small{color:#77899a}
.main-nav .nav-button{color:#5d7183}.main-nav .nav-button:hover{background:#f1f5f8;color:var(--school-navy)}.main-nav .nav-button.active{background:var(--school-sky);border-color:#d0e0ec;color:var(--school-navy)}
.eyebrow{color:#64829b}.welcome h1,.students-heading h1,.library-heading h1{color:var(--school-navy)}.welcome h1 span{color:var(--school-blue)}
.card,.stat-card{border-color:var(--school-border);box-shadow:0 7px 22px #17324f08}.section-heading h2,.student-detail-main h2,.auth-card h1{color:var(--school-navy)}
.nav-button:focus-visible,.text-button:focus-visible,.icon-button:focus-visible,.secondary-button:focus-visible,.small-action:focus-visible,.status-button:focus-visible,.primary-button:focus-visible{outline:3px solid #a9c8dc;outline-offset:2px}
.primary-button{background:var(--school-navy)}.primary-button:hover{background:#244866}.text-button,.icon-button{color:var(--school-blue)}.secondary-button,.small-action{border-color:#cedde8;background:#f5f9fc;color:#315f81}.secondary-button:hover,.small-action:hover{background:var(--school-sky)}
.topbar-status .account-chip{border-color:#d4e1eb;background:#edf4f8;color:#294f6d}.system-status i{background:#33a477}
.stat-card strong{color:var(--school-navy)}.stat-warning strong{color:#b36b43}.avatar{background:#e8f0f6;color:#416a89}.student-row:hover{background:#f7fafc}.student-info strong{color:#30485c}.presence-badge.inside{background:#e9f5ef;color:#39745b}.presence-badge.outside{background:#edf2f6;color:#65798a}.status-button{border-color:#cbdfe9;background:#eef6fa;color:#315f81}
.student-detail-dialog,.history-dialog{border-color:var(--school-border)}.student-detail-heading,.history-dialog-heading{border-bottom-color:#e7edf2}.student-detail-status{background:#eaf4f8;color:#315f81}.student-detail-photo-wrap{background:#e9f0f5}.student-detail-fallback{background:linear-gradient(145deg,#e2ebf2,#f2f6f9);color:#416a89}.student-detail-fields>div{border-color:#e5edf2;background:#f8fafc}.student-detail-fields dt{color:#6f8292}.student-detail-fields dd{color:#30485c}
.scan-panel{border-color:#d6e2ea}.scanner-focus-status[data-state=ready]{border-color:#48a276;background:#e8f5ee;color:#1d603f}.scanner-focus-status[data-state=ready] .scanner-focus-light{background:#26925f;box-shadow:0 0 0 6px #c7ead5}.scan-panel[data-focus=ready]{border-color:#67a988;box-shadow:0 0 0 3px #d8eee2}#credential-input:focus,.library-student-scan input:focus{border-color:#376b91;box-shadow:0 0 0 4px #d9e8f2}.student-form input:focus,.student-form select:focus,.form-stack input:focus,.form-stack select:focus,.settings-form input:focus{border-color:#6c9cbb;box-shadow:0 0 0 3px #e4eff6}
body[data-window-focus=background]{background:#284765;color:#fff}body[data-window-focus=background] .topbar{background:#17324f;border-bottom-color:#c7a653}body[data-window-focus=background] .brand,body[data-window-focus=background] .system-status{color:#fff}body[data-window-focus=background] .brand small{color:#d9e5ee}body[data-window-focus=background] .system-status i{background:#f0c85f;box-shadow:0 0 0 4px #ffffff28}body[data-window-focus=background] .nav-button{color:#e4edf4}body[data-window-focus=background] .nav-button.active{background:#e8f1f7;border-color:#fff;color:#17324f}body[data-window-focus=background] .welcome .eyebrow,body[data-window-focus=background] .welcome h1{color:#fff}body[data-window-focus=background] .welcome h1 span{color:#f0d27c}body[data-window-focus=background] .welcome .intro,body[data-window-focus=background] .scanner-hint{color:#e9f0f5}body[data-window-focus=background] .scan-panel{background:#fff7f4;border:3px solid #ad4139;box-shadow:0 0 0 5px #ffffff35}body[data-window-focus=background] .scan-panel .scan-copy strong{color:#8f302b}body[data-window-focus=background] .scan-panel .scan-copy span{color:#6d4542}body[data-window-focus=background] .scan-panel .live-dot{background:#c94f45;box-shadow:0 0 0 6px #f2ccc6}body[data-window-focus=background] .scanner-focus-status{background:#fff0ed;border-color:#a83c34;color:#842b25}body[data-window-focus=background] .scanner-focus-status small{color:#842b25}body[data-window-focus=background] .scanner-focus-light{background:#c94f45;box-shadow:0 0 0 7px #f2ccc6;animation:scanner-pulse 1.1s ease-out infinite}body[data-window-focus=background] #credential-input{border-color:#a83c34;background:#fff;color:#4b2623;box-shadow:0 0 0 4px #ffffff35}body[data-window-focus=background] .account-chip{border-color:#d6e1e9;background:#e8f1f7;color:#294f6d}body[data-window-focus=background] .stat-card,body[data-window-focus=background] .card{border-color:#d2dee8;box-shadow:0 5px 18px #102a4020}body[data-window-focus=background] .scanner-focus-status[data-state=ready]{background:#fff0ed;border-color:#a83c34;color:#842b25}body[data-window-focus=background] .scanner-focus-status[data-state=ready] .scanner-focus-light{background:#c94f45;box-shadow:0 0 0 7px #f2ccc6;animation:scanner-pulse 1.1s ease-out infinite}
@media(max-width:620px){.topbar{border-bottom-width:1px}}
.library-settings-disclosure{margin-top:14px}.library-disclosure>summary{list-style:none;cursor:pointer;border:1px solid #d5e2eb;border-radius:8px;background:#f7fafc;color:#315f81;padding:9px 12px;font-size:12px;font-weight:700}.library-disclosure>summary::-webkit-details-marker{display:none}.library-disclosure[open]>summary{background:#edf4f8}.library-settings-disclosure>.settings-form{padding-top:12px;border-top:1px solid #edf1ed}.picker-field{position:relative;margin-top:6px}.picker-trigger{width:100%;height:42px;padding:0 12px;border:1px solid #d3e0e9;border-radius:8px;background:#fff;color:#30485c;text-align:left;font:13px 'DM Sans',sans-serif;cursor:pointer}.picker-trigger:after{content:'⌄';float:right;color:#607e94}.picker-trigger:hover,.picker-trigger:focus-visible{border-color:#6c9cbb;box-shadow:0 0 0 3px #e4eff6;outline:0}.library-dialog{width:min(500px,calc(100vw - 32px));max-height:min(720px,calc(100vh - 32px));padding:0;border:1px solid #d7e3ec;border-radius:16px;background:#fff;color:#30485c;box-shadow:0 24px 70px #102a4050;overflow:auto}.library-dialog::backdrop{background:#102a4066;backdrop-filter:blur(2px)}.library-dialog>.form-stack{gap:14px;padding:24px;border:0}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:4px}.dialog-heading .eyebrow{margin-bottom:5px}.dialog-heading h2{margin:0;color:#17324f;font:750 22px Manrope,sans-serif}.dialog-close{width:34px;height:34px;border:0;border-radius:9px;background:#f1f5f8;color:#4d687d;font-size:23px;line-height:1;cursor:pointer}.dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:5px}.dialog-actions button{min-width:110px}.picker-dialog{padding:24px}.picker-search-label{display:block;margin:15px 0 6px;color:#536779;font-size:12px;font-weight:650}.picker-search{width:100%;height:44px;padding:0 13px;border:1px solid #cbdde9;border-radius:9px;background:#f9fbfd;color:#30485c;font:14px 'DM Sans',sans-serif;outline:0}.picker-search:focus{border-color:#6c9cbb;box-shadow:0 0 0 3px #e4eff6}.picker-options{display:grid;gap:4px;max-height:min(420px,55vh);overflow:auto;margin:12px 0 0;padding:0;list-style:none}.picker-option{width:100%;padding:12px;border:0;border-radius:8px;background:#fff;color:#30485c;text-align:left;font:13px 'DM Sans',sans-serif;cursor:pointer}.picker-option:hover,.picker-option:focus-visible{background:#edf4f8;outline:0}.picker-empty{padding:16px 12px;color:#8494a2;text-align:center;font-size:13px}

.loan-student-preview{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #dce8df;border-radius:9px;background:#f7faf7}.loan-student-preview[hidden]{display:none}.loan-student-preview img,.loan-student-photo-fallback{width:58px;height:58px;flex:none;border-radius:8px;object-fit:cover;background:#e7f1e9}.loan-student-photo-fallback{display:grid;place-items:center;color:#4c8060;font:800 18px Manrope,sans-serif}.loan-student-preview-info{display:grid;gap:4px;min-width:0}.loan-student-preview-info strong{color:#34483e;font-size:12px}.loan-student-preview-info small{color:#718078;font-size:10px}

.loan-filters{display:grid;grid-template-columns:minmax(220px,1fr) minmax(130px,200px) auto;align-items:end;gap:8px 12px;margin:0 0 10px}.loan-filters label{display:none}.loan-filters input,.loan-filters select{width:100%;height:38px;padding:0 10px;border:1px solid #dce6ee;border-radius:8px;background:#fff;color:#30485c;font:12px 'DM Sans',sans-serif;outline:none}.loan-filters input:focus,.loan-filters select:focus{border-color:#6c9cbb;box-shadow:0 0 0 3px #e4eff6}.loan-filter-count{padding:0 2px 10px;color:#718078;font-size:10px;white-space:nowrap}@media(max-width:620px){.loan-filters{grid-template-columns:1fr 1fr}.loan-filters input{grid-column:1/-1}.loan-filter-count{grid-column:1/-1;padding-bottom:0}}
.manual-access{margin-top:22px;padding:16px;border:1px solid var(--school-border);border-radius:14px;background:#fff}.manual-access-heading h2{margin:0 0 12px;color:var(--school-navy);font:700 18px Manrope,sans-serif}.manual-access>label{display:block;margin:0 0 6px;color:#536779;font-size:12px;font-weight:700}.manual-access>input{width:100%;height:42px;padding:0 12px;border:1px solid #cbdde9;border-radius:8px;background:#f9fbfd;color:#30485c;font:14px 'DM Sans',sans-serif;outline:0}.manual-access>input:focus{border-color:#6c9cbb;box-shadow:0 0 0 3px #e4eff6}.manual-student-results{display:grid;gap:5px;max-height:260px;overflow:auto;margin-top:8px}.manual-student-option{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:1px solid #e2ebf1;border-radius:8px;background:#fff;color:#30485c;text-align:left;cursor:pointer}.manual-student-option:hover,.manual-student-option:focus-visible{border-color:#b9d0e0;background:#f3f8fb;outline:0}.manual-student-option span{display:grid;gap:3px;min-width:0}.manual-student-option strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.manual-student-option small,.manual-student-selection small{color:#788a98;font-size:11px}.manual-student-option em{flex:none;color:#678096;font-size:10px;font-style:normal}.manual-student-selection{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid #d8e6ee;border-radius:9px;background:#f7fafc}.manual-student-selection>div:first-child{display:grid;gap:4px}.manual-student-selection>div:first-child strong{color:#294f6d;font-size:13px}.manual-access-actions{display:flex;gap:8px}.manual-access-actions button{flex:1;min-height:40px;padding:8px;font-size:12px}.manual-student-message{min-height:16px;margin:9px 0 0;color:#748696;font-size:11px}.manual-student-message[data-type=error]{color:#b13d34}.manual-student-message[data-type=success]{color:#34765b}@media(max-width:520px){.manual-access{padding:13px}.manual-access-actions{flex-direction:column}}

#settings-view>.settings-grid:not(#admin-settings-grid){grid-template-columns:minmax(0,600px)}#admin-settings-grid[hidden]{display:none!important}

.welcome{padding-top:0}
