:root{--navy:#10283f;--navy2:#173d56;--ink:#172d3e;--muted:#758793;--paper:#f5f7f8;--line:#e2e8eb;--teal:#13a589;--teal-soft:#e5f6f2;--amber:#d88935;--red:#c55e58;--red-soft:#fff0ef;--white:#fff;--shadow:0 16px 45px rgba(16,40,63,.08)}
*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:14px}button,input,select,textarea{font:inherit}button,a{transition:.18s ease}a{text-decoration:none;color:inherit}h1,h2,h3,p{margin-top:0}.overline{margin:0;color:#8797a2;font-size:9px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.teal{color:var(--teal)}.brand{display:flex;align-items:center;gap:11px;font-weight:800;letter-spacing:.08em}.brand>span{width:39px;height:39px;border:2px solid var(--teal);border-radius:12px;color:var(--teal);display:grid;place-items:center;font-size:20px}.brand small{display:block;margin-top:3px;color:#819bad;font-size:8px;letter-spacing:.18em}.brand.light{color:white}.brand.compact{font-size:10px}.brand.compact>span{width:30px;height:30px;border-radius:9px;font-size:14px}.brand.compact small{font-size:6px}.sidebar{position:fixed;z-index:40;inset:0 auto 0 0;width:250px;padding:27px 18px 18px;background:var(--navy);color:white;display:flex;flex-direction:column}.sidebar>.brand{padding:0 8px 32px}.nav-label{margin:0 14px 8px;color:#607f95;font-size:8px;font-weight:800;letter-spacing:.16em}.sidebar nav{display:flex;flex-direction:column;gap:4px}.sidebar nav a{display:flex;align-items:center;gap:12px;padding:11px 14px;color:#a9bbc8;border-radius:10px;font-size:12px}.sidebar nav a:hover{background:#17364e;color:white}.sidebar nav a.active{background:#1b3b54;color:white;box-shadow:inset 3px 0 var(--teal)}.sidebar nav i{width:18px;text-align:center;font-style:normal;color:#7f9aae}.plantel{margin-top:auto;background:#17364f;border:1px solid #29475d;border-radius:13px;padding:15px;display:flex;flex-direction:column;gap:6px}.plantel small{color:#7390a3;font-size:7px;font-weight:800;letter-spacing:.13em}.plantel strong{font-size:11px}.plantel span{color:#91a9b9;font-size:8px}.plantel span i{display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:#43d0aa}.profile{display:flex;align-items:center;gap:9px;margin:15px -2px 0;padding:14px 5px 0;border-top:1px solid #29465b}.profile>span,.top-avatar{width:34px;height:34px;border-radius:10px;background:#dff3ee;color:#0b856f;display:grid;place-items:center;font-size:9px;font-weight:800}.profile div{display:flex;flex-direction:column;min-width:0}.profile strong{font-size:9px}.profile small{font-size:7px;color:#829cad;margin-top:2px}.workspace{min-height:100vh;margin-left:250px;padding:32px 42px 55px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.topbar h1{font-size:27px;letter-spacing:-.04em;margin:5px 0 3px}.topbar>div>p:last-child{margin:0;color:var(--muted);font-size:11px}.top-avatar{width:38px;height:38px}.mobile-menu,.menu-backdrop{display:none}.alert{border-radius:11px;padding:12px 15px;margin-bottom:15px;font-size:11px}.alert.success{background:#e5f6f0;color:#0d8068;border:1px solid #cfe9e2}.alert.error{background:var(--red-soft);color:#a84f4a;border:1px solid #f0d5d2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:9px;padding:10px 14px;font-size:9px;font-weight:800;cursor:pointer}.btn.primary{background:var(--teal);color:white;box-shadow:0 8px 20px rgba(19,165,137,.18)}.btn.primary:hover{background:#0b8f76}.btn.danger{background:#d37554;color:white}.btn.outline{background:white;color:#546b78;border:1px solid var(--line)}.btn.wide{width:100%;justify-content:space-between}.section-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}.section-head h2{font-size:21px;margin:5px 0 3px}.section-head>div>p:last-child{font-size:10px;color:var(--muted);margin:0}.panel{background:white;border:1px solid var(--line);border-radius:15px;padding:21px;box-shadow:0 6px 20px rgba(16,40,63,.025)}.panel-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:11px}.panel-head h2{font-size:15px;margin:5px 0 0}.panel-head>a:not(.btn){font-size:8px;color:#0b8f76;font-weight:800}.live-banner{display:flex;align-items:center;gap:13px;background:linear-gradient(100deg,#143249,#1b495a);color:white;border-radius:14px;padding:15px 19px;margin-bottom:16px;box-shadow:var(--shadow)}.live-banner>i{width:8px;height:8px;border-radius:50%;background:#47d6ae;box-shadow:0 0 0 6px #47d6ae1c}.live-banner div{display:flex;flex-direction:column}.live-banner strong{font-size:11px}.live-banner small{font-size:8px;color:#9cb4c1;margin-top:2px}.live-banner a{margin-left:auto;color:#8ee1cf;font-size:9px;font-weight:800}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:16px 0}.metric-grid.compact{grid-template-columns:1fr 1fr;max-width:620px}.metric-grid article{background:white;border:1px solid var(--line);border-radius:14px;padding:18px}.metric-grid small{display:block;color:#8595a0;font-size:7px;font-weight:800;letter-spacing:.11em}.metric-grid strong{display:block;font-size:26px;margin:7px 0 3px;letter-spacing:-.04em}.metric-grid span{font-size:8px;color:#81919b}.two-columns{display:grid;grid-template-columns:minmax(0,1fr) 285px;gap:14px}.access-row{display:grid;grid-template-columns:34px minmax(140px,1fr) 72px 82px 55px;align-items:center;gap:10px;padding:12px 0;border-top:1px solid #edf0f2}.access-row:first-child{border-top:0}.avatar-sm{width:31px;height:31px;border-radius:9px;background:#e9f3f5;color:#2f6574;display:grid;place-items:center;font-size:8px;font-weight:800}.person{display:flex;flex-direction:column;min-width:0}.person strong{font-size:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.person small,.access-time small{font-size:7px;color:#8b99a3;margin-top:3px}.badge{justify-self:start;display:inline-block;padding:5px 7px;border-radius:99px;background:#edf1f4;color:#637783;font-size:7px;font-weight:800}.badge.entrada,.badge.a-tiempo,.badge.justificada{background:#e5f6f0;color:#12816b}.badge.salida,.badge.registrada{background:#edf1f5;color:#647784}.badge.retardo,.badge.sin-justificar{background:#fff2e5;color:#b6742d}.access-time{display:flex;flex-direction:column;text-align:right}.access-time strong{font-size:10px}.quick-actions h2{font-size:15px;margin:5px 0 14px}.quick-actions>a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:9px;padding:12px 0;border-top:1px solid #edf0f2;color:#0e8d76;font-size:10px}.quick-actions>a>span{width:31px;height:31px;border-radius:9px;background:#e7f5f1;display:grid;place-items:center}.quick-actions>a div{display:flex;flex-direction:column;color:var(--ink)}.quick-actions>a strong{font-size:9px}.quick-actions>a small{font-size:7px;color:#8998a2;margin-top:3px}.family-hero{background:linear-gradient(120deg,#123048,#1a4a5b);color:white;border-radius:17px;padding:25px;display:flex;align-items:center;justify-content:space-between}.family-hero h2{font-size:20px;margin:7px 0}.family-hero p:not(.overline){font-size:9px;color:#aec3ce;margin-bottom:14px}.secure-pill{display:inline-block;padding:6px 9px;border:1px solid #52cdb13b;background:#3ccda819;border-radius:99px;color:#7ce2c9;font-size:8px}.student-mini{min-width:225px;display:flex;align-items:center;gap:12px;border:1px solid #ffffff19;background:#ffffff0b;border-radius:13px;padding:14px 17px}.student-mini>span{width:43px;height:43px;border-radius:11px;background:#dff3ee;color:#0b846e;display:grid;place-items:center;font-weight:800}.student-mini div{display:flex;flex-direction:column}.student-mini small{font-size:7px;color:#8eaab9}.student-mini strong{font-size:12px;margin:3px 0}.student-switcher{display:flex;align-items:center;gap:7px;margin-bottom:14px}.student-switcher>span{font-size:8px;color:#8495a1;font-weight:800;margin-right:3px}.student-switcher a{display:flex;align-items:center;gap:7px;border:1px solid var(--line);background:white;border-radius:99px;padding:6px 10px;font-size:8px}.student-switcher a i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:#edf3f5;font-size:6px;font-style:normal}.student-switcher a.selected{border-color:#81cfbd;background:#eaf7f4;color:#0a816b}.notices-preview .notice-mini{display:grid;grid-template-columns:31px 1fr;align-items:center;gap:9px;border-top:1px solid #edf0f2;padding:12px 0}.notice-mini>i{width:29px;height:29px;border-radius:9px;background:#e8f4f1;color:#0e9078;display:grid;place-items:center;font-style:normal;font-weight:800}.notice-mini.urgent>i{background:#fff0ef;color:#bb5a53}.notice-mini.important>i{background:#fff4e8;color:#b8752d}.notice-mini div{display:flex;flex-direction:column}.notice-mini strong{font-size:8px;line-height:1.35}.notice-mini small{font-size:7px;color:#8b99a3;margin-top:3px}.credential-layout{display:grid;grid-template-columns:390px minmax(300px,1fr);gap:22px;align-items:start;max-width:930px}.digital-credential{background:linear-gradient(160deg,#102b41,#174b5b);border-radius:25px;color:white;padding:24px 26px 22px;box-shadow:0 25px 55px rgba(16,40,63,.22);position:relative;overflow:hidden;text-align:center}.digital-credential:after{content:"";position:absolute;width:250px;height:250px;border:1px solid #4dd9b423;border-radius:50%;right:-135px;bottom:-130px}.credential-top{display:flex;align-items:center;justify-content:space-between;text-align:left}.valid-dot{font-size:7px;color:#69dabf}.student-photo{width:66px;height:66px;margin:24px auto 10px;border-radius:18px;background:#dff3ee;border:4px solid #ffffff1c;color:#0b836d;display:grid;place-items:center;font-size:17px;font-weight:800}.digital-credential h2{font-size:16px;margin:0 0 4px}.digital-credential>p{font-size:9px;color:#99b5c2}.qr-frame{background:white;border-radius:15px;padding:12px;width:174px;height:174px;margin:15px auto 8px;display:grid;place-items:center}.qr-code img,.qr-code canvas{width:150px!important;height:150px!important}.qr-countdown{font-size:7px;color:#94afbc}.credential-meta{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #ffffff15;margin-top:17px;padding-top:14px;text-align:left}.credential-meta span{display:flex;flex-direction:column}.credential-meta small{font-size:6px;color:#7294a5}.credential-meta strong{font-size:9px;margin-top:3px}.credential-info{display:flex;flex-direction:column;gap:10px}.credential-info>article{background:white;border:1px solid var(--line);border-radius:13px;padding:15px;display:grid;grid-template-columns:36px 1fr;gap:11px}.credential-info>article>span{width:34px;height:34px;border-radius:10px;background:#e7f5f1;color:#0c9077;display:grid;place-items:center;font-weight:800}.credential-info h3{font-size:10px;margin:2px 0 4px}.credential-info p{font-size:8px;color:#7f909b;line-height:1.55;margin:0}.tip-box{background:#eef6f4;border:1px solid #dae9e5;border-radius:13px;padding:16px}.tip-box strong{font-size:9px}.tip-box p{font-size:8px;color:#697f89;line-height:1.55;margin:5px 0 0}.summary-strip{display:grid;grid-template-columns:repeat(3,1fr);max-width:680px;background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;margin-bottom:14px}.summary-strip>span{padding:14px 17px;border-left:1px solid var(--line)}.summary-strip>span:first-child{border:0}.summary-strip small{font-size:7px;color:#8495a1;letter-spacing:.1em}.summary-strip strong{display:block;font-size:18px;margin-top:4px}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin:-4px 0 8px}.tabs button{border:0;background:transparent;padding:11px 12px;font-size:8px;color:#82919b;font-weight:800}.tabs button.active{color:#0a8c74;box-shadow:inset 0 -2px var(--teal)}.tab-pane{display:none}.tab-pane.active{display:block}.absence-row{display:grid;grid-template-columns:34px 1fr auto;gap:10px;align-items:center;padding:13px 0;border-top:1px solid #edf0f2}.absence-row>span{width:31px;height:31px;border-radius:9px;background:#fff2e5;color:#b6742d;display:grid;place-items:center}.absence-row div{display:flex;flex-direction:column}.absence-row strong{font-size:9px}.absence-row small{font-size:7px;color:#8b99a3;margin-top:3px}.student-table{padding:0 18px}.data-head,.data-row{display:grid;grid-template-columns:1.6fr .6fr 1.4fr .7fr .7fr;gap:12px;align-items:center}.data-head{padding:13px 8px 10px;color:#8b99a3;font-size:7px;font-weight:800;letter-spacing:.1em}.data-row{padding:11px 8px;border-top:1px solid #edf0f2;font-size:8px}.name-cell{display:flex;align-items:center;gap:9px}.name-cell>i{width:31px;height:31px;border-radius:9px;background:#e8f2f4;color:#2d6675;display:grid;place-items:center;font-style:normal;font-size:8px;font-weight:800}.name-cell>span{display:flex;flex-direction:column}.name-cell small{font-size:7px;color:#8797a1;margin-top:3px}.link-button{border:0;background:transparent;color:#0b8d75;font-size:8px;font-weight:800}.modal{border:0;border-radius:16px;padding:0;box-shadow:0 25px 70px #10283f40;width:min(570px,calc(100% - 30px))}.modal::backdrop{background:#071827a6}.modal form{padding:24px}.modal-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:18px}.modal-head h2{font-size:18px;margin:5px 0}.modal-head>button{border:0;background:#eef2f4;width:30px;height:30px;border-radius:8px;font-size:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.modal label,.manual-scan label{display:block;font-size:8px;color:#5d727f;font-weight:800;margin-bottom:11px}.modal input,.modal select,.modal textarea,.manual-scan textarea{display:block;width:100%;margin-top:6px;border:1px solid #dbe3e7;background:white;border-radius:9px;padding:10px 11px;font-size:9px;outline:0}.modal textarea{resize:vertical}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:17px}.scanner-layout{display:grid;grid-template-columns:minmax(330px,1fr) minmax(300px,.75fr);gap:15px;max-width:950px}.scanner-card{background:#123149;color:white;border-radius:17px;padding:23px;text-align:center;min-height:430px}.scanner-placeholder{padding:45px 0}.scanner-placeholder>span{width:70px;height:70px;border:1px solid #4b7085;border-radius:18px;display:grid;place-items:center;margin:auto;font-size:26px;color:#46d1ae}.scanner-placeholder h3{font-size:13px;margin:15px 0 5px}.scanner-placeholder p{font-size:8px;color:#8ea9b8}.scanner-card>small{display:block;color:#7f9baa;font-size:7px;margin-top:12px}.scanner-card #qr-reader:not(:empty)+.scanner-placeholder{display:none}#qr-reader{overflow:hidden;border-radius:12px;background:white;color:var(--ink)}.manual-scan h2{font-size:15px;margin:6px 0}.manual-scan>p:not(.overline){font-size:8px;color:#7f909b;line-height:1.55;margin-bottom:20px}.manual-scan textarea{resize:vertical}.scan-result{border-radius:10px;margin-top:15px;padding:13px;font-size:9px}.scan-result.success{background:#e5f6f0;color:#0e8069}.scan-result.error{background:#fff0ef;color:#aa4f4a}.live-chip{display:inline-flex;align-items:center;gap:7px;padding:7px 9px;border:1px solid #cce9e2;background:#e9f7f3;color:#0b886f;border-radius:99px;font-size:7px;font-weight:800}.live-chip i{width:6px;height:6px;border-radius:50%;background:#2dc39e}.incidents-list{padding:5px 20px}.incident-row{display:grid;grid-template-columns:36px minmax(150px,1fr) 90px 100px;gap:10px;align-items:center;padding:13px 0;border-top:1px solid #edf0f2}.incident-row:first-child{border:0}.incident-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center}.incident-icon.absence{background:#fff1e6;color:#b5742e}.incident-icon.late{background:#fff0ef;color:#ba5a54}.incident-row div{display:flex;flex-direction:column}.incident-row strong{font-size:9px}.incident-row small{font-size:7px;color:#8a99a3;margin-top:3px}.incident-row>b{font-size:8px}.notice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.notice-card{background:white;border:1px solid var(--line);border-top:3px solid #aebac1;border-radius:14px;padding:19px;min-height:190px}.notice-card.urgent{border-top-color:var(--red)}.notice-card.important{border-top-color:var(--amber)}.notice-card.normal{border-top-color:var(--teal)}.notice-top{display:flex;justify-content:space-between;align-items:center}.notice-top span{font-size:7px;font-weight:900;letter-spacing:.1em;color:#647784}.notice-card.urgent .notice-top span{color:var(--red)}.notice-card.important .notice-top span{color:var(--amber)}.notice-top time{font-size:7px;color:#93a0a9}.notice-card h2{font-size:13px;margin:16px 0 8px}.notice-card p{font-size:8px;line-height:1.65;color:#71848f;min-height:62px}.notice-card>small{font-size:7px;color:#95a2aa}.clock-layout{display:grid;grid-template-columns:400px minmax(340px,1fr);gap:15px;max-width:920px}.clock-card{background:linear-gradient(145deg,#123047,#174357);color:white;border-radius:18px;padding:31px;text-align:center}.clock-now{font-size:53px;font-weight:800;letter-spacing:-.05em;margin:35px 0 3px}.clock-card>small{font-size:7px;color:#7596a7}.clock-status{display:flex;width:max-content;align-items:center;gap:7px;margin:22px auto;padding:7px 10px;border-radius:99px;background:#ffffff0d;color:#a4b9c5;font-size:8px}.clock-status i{width:6px;height:6px;border-radius:50%;background:#899eaa}.clock-status.inside i{background:#45d2ab}.clock-card form{margin-top:28px}.shift-panel h2{font-size:16px;margin:5px 0 18px}.shift-summary{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:11px;overflow:hidden;margin-bottom:16px}.shift-summary span{padding:13px;background:#fafbfb;border-left:1px solid var(--line)}.shift-summary span:first-child{border:0}.shift-summary small{font-size:7px;color:#8494a0}.shift-summary strong{display:block;font-size:15px;margin-top:5px}.clock-event{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:9px;padding:11px 0;border-top:1px solid #edf0f2}.clock-event>i{width:30px;height:30px;border-radius:9px;background:#e7f5f1;color:#0c8e76;display:grid;place-items:center;font-style:normal}.clock-event div{display:flex;flex-direction:column}.clock-event strong{font-size:9px}.clock-event small{font-size:7px;color:#8797a1;margin-top:3px}.clock-event time{font-size:10px;font-weight:800}.empty{text-align:center;padding:60px}.login-body{background:white}.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(420px,1.08fr) minmax(430px,.92fr)}.login-visual{background:linear-gradient(145deg,#0e263c,#12364e 58%,#164b5c);color:white;padding:52px 7vw;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.login-visual:after{content:"";position:absolute;width:600px;height:600px;border:1px solid #4fd8b41c;border-radius:50%;right:-320px;bottom:-300px}.login-visual .brand{margin-bottom:75px}.login-visual h1{max-width:560px;font-size:43px;line-height:1.1;letter-spacing:-.05em;margin:16px 0}.login-visual>div>p:last-child{max-width:450px;color:#a7bdc8;font-size:12px;line-height:1.7}.live-box{display:flex;align-items:center;gap:13px;z-index:2}.live-box>i{width:8px;height:8px;border-radius:50%;background:#45d3ab;box-shadow:0 0 0 6px #45d3ab1c}.live-box div{display:flex;flex-direction:column}.live-box strong{font-size:10px}.live-box small{font-size:8px;color:#86a3b3;margin-top:3px}.login-card{padding:40px;display:grid;place-items:center}.login-card form{width:min(380px,100%)}.login-card h2{font-size:27px;margin:7px 0 5px;letter-spacing:-.04em}.login-card form>p:not(.overline){font-size:10px;color:#7c8e99;margin-bottom:22px}.login-card label{display:block;font-size:8px;color:#5f727f;font-weight:800;margin:12px 0}.login-card input{display:block;width:100%;height:43px;border:1px solid #dbe3e7;border-radius:9px;margin-top:6px;padding:0 12px;font-size:10px;outline:none}.login-card input:focus{border-color:#69c9b5;box-shadow:0 0 0 3px #3ebda31a}.demo-title{display:flex;align-items:center;gap:8px;color:#98a7b0;font-size:7px;letter-spacing:.12em;margin:21px 0 11px}.demo-title:before,.demo-title:after{content:"";height:1px;background:#e3e8eb;flex:1}.demo-accounts{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.demo-accounts button{border:1px solid var(--line);background:#f8fafb;color:#647784;border-radius:9px;padding:8px;font-size:7px;font-weight:800}.demo-accounts button:hover{border-color:#93d2c4;background:#eff9f6;color:#0b856f}.privacy-note{display:block;text-align:center;color:#96a3ab;font-size:7px;margin-top:13px}
@media(max-width:1050px){.metric-grid{grid-template-columns:1fr 1fr}.two-columns{grid-template-columns:minmax(0,1fr) 245px}.notice-grid{grid-template-columns:1fr 1fr}.credential-layout{grid-template-columns:360px 1fr}.login-visual h1{font-size:35px}}
@media(max-width:820px){.mobile-menu{display:block;position:fixed;z-index:35;top:27px;left:18px;border:0;background:transparent;font-size:20px}.sidebar{transform:translateX(-100%);transition:transform .22s ease}.sidebar.open{transform:translateX(0)}.menu-backdrop.open{display:block;position:fixed;z-index:30;inset:0;background:#06152290}.workspace{margin-left:0;padding:28px 24px}.topbar{padding-left:38px}.two-columns,.credential-layout,.scanner-layout,.clock-layout{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-visual{min-height:280px;padding:35px}.login-visual .brand{margin-bottom:28px}.login-visual h1{font-size:29px;max-width:520px}.login-card{padding:35px 22px}.data-head,.data-row{grid-template-columns:1.4fr .5fr 1.2fr .6fr}.data-head span:nth-child(4),.data-row>span:nth-child(4){display:none}.notice-grid{grid-template-columns:1fr 1fr}.credential-layout{max-width:600px}.digital-credential{max-width:390px;margin:auto;width:100%}}
@media(max-width:560px){.workspace{padding:24px 16px 45px}.topbar h1{font-size:22px}.topbar>div>p:last-child{display:none}.section-head{align-items:flex-start;gap:12px}.section-head .btn{white-space:nowrap}.family-hero{display:block}.student-mini{margin-top:22px;min-width:0}.metric-grid{gap:8px}.metric-grid article{padding:14px}.metric-grid strong{font-size:21px}.two-columns{display:block}.two-columns>*+*{margin-top:12px}.access-row{grid-template-columns:32px minmax(0,1fr) 67px}.access-row>.badge:nth-of-type(2),.access-time{display:none}.student-switcher{overflow-x:auto;padding-bottom:5px}.student-switcher a{white-space:nowrap}.notice-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.data-head,.data-row{grid-template-columns:1.5fr .55fr .7fr}.data-head span:nth-child(3),.data-row>span:nth-child(3){display:none}.incident-row{grid-template-columns:34px 1fr auto}.incident-row>b{display:none}.incident-row>.badge{grid-column:3}.summary-strip{grid-template-columns:1fr 1fr 1fr}.summary-strip>span{padding:11px}.clock-card{padding:25px}.clock-now{font-size:45px}.login-visual{min-height:245px}.login-visual h1{font-size:25px}.login-visual>div>p:last-child,.live-box{display:none}.login-card{padding:28px 18px}.credential-info{margin-top:4px}}
@media print{body{background:white}.sidebar,.topbar,.section-head,.student-switcher,.credential-info,.alert,.mobile-menu{display:none!important}.workspace{margin:0;padding:0}.credential-layout{display:block}.digital-credential{box-shadow:none;margin:20px auto;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* Dashboard: keep the operational trace readable without turning the home page into a raw-data wall. */
.biometric-dashboard{margin-top:16px;padding:0;overflow:hidden}
.biometric-dashboard .biometric-panel-head{align-items:flex-end;gap:18px;margin:0;padding:20px 24px 17px}
.biometric-dashboard .panel-head h2{font-size:18px;letter-spacing:-.02em}
.biometric-dashboard .panel-head p:not(.overline){margin:5px 0 0;color:#647784;font-size:11px;line-height:1.45}
.biometric-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.trace-live-dot{display:inline-flex;align-items:center;gap:7px;color:#0a836d;font-size:10px;font-weight:800;white-space:nowrap}
.trace-live-dot i{width:7px;height:7px;border-radius:50%;background:#20bf98;box-shadow:0 0 0 5px #20bf9818}
.biometric-dashboard .btn.outline{min-height:36px;padding:8px 12px;font-size:9px}
.trace-scroll{max-height:650px;overflow:auto;border-top:1px solid #e8eef0;scrollbar-color:#b8c9d0 transparent;scrollbar-width:thin}
.biometric-dashboard .data-head,.biometric-dashboard .data-row{grid-template-columns:minmax(240px,1.55fr) minmax(190px,1.1fr) minmax(145px,.75fr) minmax(145px,.85fr) minmax(170px,1fr);min-width:900px;gap:18px}
.biometric-dashboard .data-head{position:sticky;top:0;z-index:2;padding:13px 24px 11px;background:#f8fafb;border-bottom:1px solid #e7edef;color:#71838f;font-size:9px;letter-spacing:.08em}
.biometric-dashboard .data-row{padding:13px 24px;background:#fff;border-top:0;border-bottom:1px solid #edf1f2;color:#38515f;font-size:11px}
.biometric-dashboard .data-row:hover{background:#f7fbfa}
.biometric-dashboard .data-row strong{display:block;color:#183344;font-size:11px;line-height:1.25}
.biometric-dashboard .data-row small{display:block;margin-top:3px;color:#80929c;font-size:9px}
.trace-person{display:flex!important;align-items:center;gap:10px;min-width:0}
.trace-person>i{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border-radius:10px;background:#e6f4f1;color:#0c866f;font-size:9px;font-style:normal;font-weight:900}
.trace-person>span{min-width:0}.trace-person strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.terminal-pill{display:inline-flex!important;width:max-content;padding:5px 8px;border-radius:99px;background:#e8f4f2;color:#087f6a!important;font-size:9px!important}
.trace-ip{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#607783!important;font-size:10px!important}
.trace-time strong{font-variant-numeric:tabular-nums;font-size:12px!important}.trace-time small{font-variant-numeric:tabular-nums}
.verification-pill{display:inline-block;padding:6px 9px;border-radius:99px;background:#f0f4f6;color:#54707e;font-size:9px;font-weight:800;white-space:nowrap}
.biometric-empty{padding:18px 24px;margin:0!important}
@media(max-width:900px){.biometric-dashboard .biometric-panel-head{align-items:flex-start;flex-direction:column}.biometric-actions{justify-content:flex-start}.trace-scroll{max-height:560px}.biometric-dashboard .data-head,.biometric-dashboard .data-row{min-width:830px}}
@media(max-width:560px){.biometric-dashboard .biometric-panel-head{padding:17px}.biometric-dashboard .panel-head h2{font-size:16px}.biometric-dashboard .data-head,.biometric-dashboard .data-row{min-width:720px;grid-template-columns:230px 170px 130px 125px 150px;gap:12px}.biometric-dashboard .data-head{padding-left:17px;padding-right:17px}.biometric-dashboard .data-row{padding-left:17px;padding-right:17px}.biometric-actions{width:100%}.biometric-actions .btn{flex:1}}
