:root{font-family:system-ui,-apple-system,Segoe UI,sans-serif;color:#193035;background:#f4f6f5;font-size:16px;--green:#176b57;--line:#dce4df}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:10px;background:white;padding:12px 17px;color:inherit;min-height:48px}button:hover{border-color:#176b57;background:#f0f7f3}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #91beee;outline-offset:2px}button:disabled{opacity:.5;cursor:wait}.shell{display:flex;min-height:100vh}aside{width:245px;flex-shrink:0;background:#123c33;color:#fff;padding:30px 20px;display:flex;flex-direction:column}.brand{display:flex;gap:12px;font-size:36px;font-weight:800;align-items:center;margin-bottom:55px}.brand span{font-size:19px;letter-spacing:3px}.brand small{display:block;font-size:10px;letter-spacing:0;font-weight:400;margin-top:5px;color:#c2d8ce}.label{font-size:10px;letter-spacing:2px;color:#94b6aa;margin:0 8px 15px}nav{display:grid;gap:9px}nav button{text-align:left;background:transparent;color:#d2e4dd;border-color:transparent}nav button.active,nav button:hover{background:#27594b;color:white}.aside-bottom{margin-top:auto;padding-top:40px;font-size:12px}.aside-bottom p{color:#b0ccc0}.aside-bottom button{font-size:12px;background:transparent;color:white}main{max-width:1400px;width:100%;padding:32px 40px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.eyebrow{color:#697c74;font-size:11px;letter-spacing:1.4px}h1{font-size:30px;margin:6px 0}h2{font-size:21px;margin:0 0 8px}p{line-height:1.5}#date{font-size:13px;color:#68796f}.notice{background:#fff6dc;border:1px solid #ecdba4;color:#725d20;border-radius:12px;padding:12px 17px;font-size:13px;margin-bottom:24px;display:flex;align-items:center;gap:12px}.notice button{margin-left:auto;min-height:35px;padding:5px 10px;background:transparent}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{background:white;border:1px solid var(--line);padding:20px;border-radius:14px}.stat b{display:block;font-size:32px;margin-top:8px}.stat span{color:#6b7b72;font-size:13px}.actions{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0}.action{text-align:left;padding:23px;background:white;border:2px solid transparent;box-shadow:0 0 0 1px var(--line)}.action.selected{border-color:var(--green);background:#eaf4ed}.action strong{display:block;font-size:20px;margin-bottom:5px}.action small{color:#68796f}.icon{display:block;font-size:26px;margin-bottom:15px}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:24px;margin-bottom:20px}.muted{color:#6b7b72;font-size:14px}.toolbar{display:flex;gap:12px;margin:20px 0;flex-wrap:wrap}input,select{min-height:48px;padding:11px 14px;border:1px solid #cad7cf;border-radius:9px;background:white;max-width:100%}.toolbar input{flex:1;min-width:180px}.students{display:grid;grid-template-columns:repeat(auto-fill,minmax(155px,1fr));gap:14px}.student{display:flex;align-items:center;flex-direction:column;text-align:center;min-height:165px;padding:20px 12px}.avatar{display:grid;place-items:center;background:#e4eee8;border-radius:50%;width:60px;height:60px;color:#32634e;font-size:21px;font-weight:700;margin-bottom:13px}.student strong{font-size:15px}.student small{color:#708177;margin-top:5px}.primary{background:var(--green);color:#fff;border-color:var(--green)}.primary:hover{background:#105642;color:#fff}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid #e8ede9;padding:15px 10px}th{color:#6c7b72;font-size:12px;font-weight:600}.table-scroll{overflow:auto}.badge{padding:5px 9px;border-radius:6px;background:#edf2ee;white-space:nowrap;font-size:12px}.badge.bano{background:#e5f2fa;color:#286489}.badge.salida{background:#faebdf;color:#945b32}.badge.retraso{background:#fff4d3;color:#8c6c20}.empty{padding:32px;text-align:center;color:#708177}.foot{text-align:center;font-size:11px;color:#829187;margin-top:35px}dialog{border:0;border-radius:18px;width:min(520px,95vw);padding:28px;box-shadow:0 20px 100px #102c3540}dialog::backdrop{background:#102c3580}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.dialog-top button{border:0}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}label{display:block;font-size:14px;margin:16px 0 7px}label input:not([type=checkbox]),label select{display:block;width:100%;margin-top:6px}label.check{display:flex;align-items:flex-start;gap:10px}.check input{min-height:0;margin-top:5px}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:#163f33;color:white;padding:15px 24px;border-radius:12px;display:none;z-index:10}.inline-form{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.inline-form input{flex:1}.login{max-width:440px;margin:12vh auto}.login input{width:100%}.admin-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.warning{color:#976124}@media(max-width:1000px){aside{width:195px;padding:25px 12px}main{padding:25px}.stats{gap:10px}.stat{padding:15px}.action{padding:19px 14px}.action strong{font-size:18px}}@media(max-width:760px){.shell{display:block}aside{width:100%;padding:14px 18px;display:block}.brand{margin:0 0 12px;font-size:25px}.brand small,.label,.aside-bottom{display:none}nav{display:flex}nav button{flex:1;font-size:12px;padding:8px}.brand span{font-size:15px}main{padding:20px 14px}.stats{grid-template-columns:repeat(2,1fr)}h1{font-size:26px}#date{display:none}.actions{gap:8px}.action{padding:14px 10px}.action strong{font-size:15px}.action small{font-size:11px}.card{padding:18px 14px}.students{grid-template-columns:repeat(3,1fr);gap:8px}.student{min-height:150px;padding:14px 7px}.student strong{font-size:13px}.avatar{width:50px;height:50px}.notice{display:block}.notice button{margin-left:10px}}

@media print{body{background:white;color:black}.shell{display:block}aside,header,#demo,#stats,.foot,#report-filter,.no-print,dialog,#toast{display:none!important}main{padding:0;max-width:none}#workspace>.card:first-child{display:none}#report-result .card{border:0;padding:0}table{font-size:10pt}tr{break-inside:avoid}h2,h3{break-after:avoid}.table-scroll{overflow:visible}@page{size:A4 landscape;margin:12mm}}

.portrait{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;margin-bottom:12px;min-height:135px}.portrait img{width:110px;height:135px;object-fit:contain;border-radius:9px;background:#edf1ed}.portrait .avatar{margin-bottom:8px}.student{min-height:220px}.portrait small{font-size:11px;color:#708177}
@media(max-width:760px){.portrait{min-height:115px}.portrait img{width:90px;height:115px}.student{min-height:200px}}
[hidden]{display:none!important}
/* Puerta 0.3: grupos, firma y accesos de tablet. */
.group-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px;margin-top:22px}.group-tile{text-align:left;min-height:110px;padding:22px}.group-tile strong{display:block;font-size:23px;margin-bottom:9px}.group-tile span{color:#68796f;font-size:14px}.group-heading{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.group-heading h2{margin:0}.form-pair{display:grid;grid-template-columns:1fr 1fr;gap:14px}.signature-status{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:20px 0;flex-wrap:wrap}.signature-status span{font-weight:600}#signature-dialog{width:min(950px,96vw)}#signature-canvas{display:block;width:100%;height:280px;background:#fff;border:2px solid #879d91;border-radius:10px;touch-action:none;cursor:crosshair}.receipt-signature{display:block;max-width:100%;width:450px;background:#fff;border-bottom:1px solid #b7c6bd}.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:20px}.pin-pad button{font-size:22px;min-height:65px}.login-tabs{display:flex;gap:10px;margin:20px 0}.login-tabs button{flex:1}.access-row{display:flex;align-items:center;gap:15px;justify-content:space-between;padding:15px 0;border-top:1px solid var(--line);flex-wrap:wrap}.access-row span{font-size:13px;color:#697c74}.pair-code{font:700 30px ui-monospace,monospace;letter-spacing:2px}.tablet-mode .students{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.tablet-mode .portrait{min-height:165px}.tablet-mode .portrait img{width:140px;height:165px}.tablet-mode .student{min-height:245px}.tablet-mode .student strong{font-size:17px}.tablet-mode aside{width:200px}.tablet-mode main{padding:24px}.tablet-mode .stats{margin-bottom:20px}.tablet-mode .stat{padding:14px}.tablet-mode .stat b{font-size:27px}.tablet-mode .brand{margin-bottom:30px}.tablet-mode .foot{display:none}.login input,.login select{width:100%}
@media(max-width:1000px){.tablet-mode .shell{display:block}.tablet-mode aside{display:flex;flex-direction:row;width:100%;padding:14px 20px;gap:20px;align-items:center;flex-wrap:wrap}.tablet-mode .brand{margin:0}.tablet-mode .label{display:none}.tablet-mode nav{display:flex;flex:1}.tablet-mode .aside-bottom{margin:0;padding:0;display:flex;align-items:center;gap:10px}.tablet-mode .aside-bottom p{display:none}.tablet-mode main{padding:20px}.tablet-mode .students{grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.group-grid{grid-template-columns:repeat(2,1fr);gap:10px}.group-tile{min-height:95px;padding:15px}.group-tile strong{font-size:19px}.form-pair{grid-template-columns:1fr}.tablet-mode .students{grid-template-columns:repeat(3,1fr)}.tablet-mode .portrait img{width:105px;height:135px}.tablet-mode .portrait{min-height:135px}.tablet-mode .student{min-height:210px}.tablet-mode .student strong{font-size:14px}.tablet-mode .aside-bottom{width:100%;justify-content:space-between}.tablet-mode .stats{gap:8px}.tablet-mode .stat span{font-size:12px}.tablet-mode .stat b{font-size:25px}.pair-code{font-size:23px}#signature-canvas{height:240px}}
@media(max-width:420px){.tablet-mode .students{grid-template-columns:repeat(2,1fr)}}
@media print{.printing-receipt .shell,.printing-receipt #signature-dialog{display:none!important}.printing-receipt #modal{display:block!important;position:static;inset:auto;width:100%;max-width:none;max-height:none;border:0;box-shadow:none;padding:0}.printing-receipt #modal .dialog-top,.printing-receipt #modal .dialog-actions,.printing-receipt #print-receipt{display:none!important}.printing-receipt #modal::backdrop{background:transparent}.receipt{color:#000;background:#fff}}

.custody-notice{background:#fff3d5;color:#6d4c13;padding:15px;border:1px solid #e8cc88;border-radius:10px;margin:15px 0}.custody-notice p{margin:8px 0}

.age-notice{background:#fff1cd;color:#684500;border-radius:6px;padding:6px;line-height:1.35}

.evidence-box{border:1px solid #cbd7e4;background:#f4f8fc;border-radius:12px;padding:14px;margin:16px 0}.document-link{display:block;margin-top:6px;text-decoration:underline}

.bath-meta{background:#e7f4ee;color:#124b39;border-radius:8px;padding:8px;line-height:1.4}.class-subject{margin-bottom:14px}.guard-switch{background:#fff1cd;padding:12px;border-radius:8px;margin:12px 0}.teacher-mode .stat:nth-child(1),.teacher-mode .stat:nth-child(4){display:none}.teacher-mode .stats{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:650px){.teacher-mode main{padding:16px}.teacher-mode .student{min-height:180px}.teacher-mode .portrait{height:95px}.teacher-mode .class-subject select{width:100%}.teacher-mode .actions{grid-template-columns:1fr}}

textarea{font:inherit;width:100%;border:1px solid var(--line);border-radius:10px;padding:12px;color:inherit;background:white}.weekly-timetable{min-width:950px;table-layout:fixed}.weekly-timetable th:first-child{width:105px}.weekly-timetable td{vertical-align:top;font-size:13px}.schedule-variant{padding:7px 0;border-bottom:1px solid var(--line)}.schedule-variant small{color:#586963}.weekly-timetable button{font-size:12px;min-height:36px;padding:6px}.timetable-impact{font-size:12px;margin-top:10px;max-width:450px}.timetable-impact>div{margin-top:7px;border-top:1px solid var(--line);padding-top:6px}.timetable-impact em{color:#725308}@media print{.timetable-impact{font-size:9pt;max-width:none}}
