:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#1c1c1c;background:#faf7f2;font-synthesis:none}*{box-sizing:border-box}body{margin:0}.layout{min-height:100vh;display:grid;grid-template-columns:46% 54%}.brand{background:#4c6a5b;color:#faf7f2;padding:48px 9%;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.brand:after{content:"";position:absolute;width:530px;height:530px;border:90px solid rgba(242,230,216,.08);border-radius:50%;right:-310px;bottom:-170px}.logo,.mobile-logo{font-size:31px;font-weight:760;letter-spacing:-1.4px}.orb{font-size:32px;color:#f5bd87;vertical-align:1px}.dot{color:#e25822}.brand-content{position:relative;z-index:1}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.4px;color:#f5bd87}.brand h1{font-size:clamp(42px,4.1vw,70px);letter-spacing:-2.5px;line-height:1.12;font-weight:650;margin:22px 0}.brand em{color:#f5bd87;font-style:normal}.brand p{max-width:370px;line-height:1.7;color:#f2e6d8}.brand-footer{font-size:11px;letter-spacing:1.6px;display:flex;justify-content:space-between;opacity:.7}.content{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:40px 25px}.panel{width:min(420px,100%)}.dark{color:#e25822}h2{font-size:34px;line-height:1.16;letter-spacing:-1.25px;margin:17px 0 10px}.subtitle{color:#777;margin-bottom:35px;font-size:15px}label{display:block;font-size:13px;font-weight:700;margin:0 0 9px}input{width:100%;border:1px solid #dedbd4;background:white;border-radius:9px;padding:16px 15px;font-size:15px;outline:0;margin-bottom:22px;color:#1c1c1c}input:focus{border-color:#4c6a5b;box-shadow:0 0 0 3px #4c6a5b25}.password-top{display:flex;justify-content:space-between;align-items:center}.link,.back{background:none;border:none;cursor:pointer;color:#4c6a5b;font-size:13px;font-weight:700;padding:0}.link{margin-bottom:9px}.primary{background:#e25822;color:white;border:0;border-radius:9px;width:100%;padding:16px 18px;font-weight:750;font-size:15px;display:flex;justify-content:space-between;align-items:center;cursor:pointer}.primary:disabled{opacity:.6;cursor:wait}.primary:hover:not(:disabled){background:#c9471b}.footnote{font-size:13px;line-height:1.55;color:#777;margin-top:32px}.back{margin-top:20px}.notice{padding:12px 14px;border-radius:9px;margin-bottom:22px;font-size:13px;line-height:1.5;background:#ecf3ed;color:#2b5c41}.notice.error{background:#fff0eb;color:#9b391e}.mobile-logo{display:none}.content footer{font-size:12px;color:#aaa;margin-top:65px}.welcome{background:#f2e6d8;border-radius:14px;padding:25px;margin:24px 0}.welcome h3{font-size:24px;letter-spacing:-.6px;margin:13px 0}.welcome p{font-size:14px;line-height:1.55;color:#53534a}.role{font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#4c6a5b}.tiles{display:grid;gap:12px}.tiles>div{background:white;border:1px solid #e9e5dc;border-radius:10px;padding:16px}.tiles b{display:block;font-size:14px}.tiles small{display:block;color:#999;margin-top:5px}@media(max-width:800px){.layout{grid-template-columns:1fr}.brand{display:none}.mobile-logo{display:block;position:absolute;top:25px;left:25px;font-size:25px}.content{min-height:100vh;padding:95px 25px 35px}.content footer{margin-top:75px}h2{font-size:30px}}

/* Identidad oficial Mandarina (logo provisto por el cliente): naranja #e25822, verde #4c6a5b, blanco #ffffff */
:root{--mandarina-naranja:#e25822;--mandarina-verde:#4c6a5b;--mandarina-blanco:#ffffff}
.logo-wrap{display:inline-flex;align-self:flex-start;background:#ffffff;border-radius:10px;padding:12px 16px;width:min(100%,375px);position:relative;z-index:1}
.brand-logo{display:block;width:100%;height:auto;object-fit:contain}
.mobile-logo{background:white;padding:8px 0;max-width:255px}
.mobile-logo img{width:100%;height:auto;display:block}
@media(max-width:800px){.mobile-logo{width:min(255px,calc(100vw - 50px));top:26px;left:25px}}

/* Mandarina Gestión V3 · módulo operativo */
.panel:has(#admin-tools:not([hidden])){width:min(880px,100%)}.content:has(#admin-tools:not([hidden])){padding-top:55px;padding-bottom:55px}.tabs{display:flex;gap:7px;overflow:auto;border-bottom:1px solid #e1ded6;margin:14px 0 22px}.tab{padding:12px 15px;white-space:nowrap;border:0;background:transparent;color:#52685b;cursor:pointer;font-weight:700}.tab.active{border-bottom:3px solid #e25822;color:#1c1c1c}.module h3{font-size:22px;margin:0}.module-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.small-primary{background:#e25822;color:white;border:0;border-radius:8px;padding:10px 15px;cursor:pointer;font-weight:700}.rows{display:grid;gap:8px}.data-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 15px;background:#fff;border:1px solid #e7e4dc;border-radius:10px}.data-row b{display:block;font-size:14px}.data-row small{display:block;font-size:12px;color:#777;margin-top:6px}.inline-action{border:1px solid #bdd0c2;border-radius:8px;background:#f9faf8;color:#456455;padding:8px 12px;cursor:pointer;flex-shrink:0}.edit-form{padding:20px;margin-top:18px;background:#f2e6d8;border-radius:12px}.edit-form h4{margin:0 0 20px;font-size:18px}.edit-form input,.edit-form select,.edit-form textarea{width:100%;border:1px solid #d8d2c8;background:#fff;border-radius:8px;padding:12px;font:inherit;margin-bottom:17px}.edit-form .check{display:flex;align-items:center;gap:8px}.edit-form .check input{width:auto;margin:0}.form-actions{display:flex;align-items:center;gap:18px;margin-top:17px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.hint{font-size:13px;color:#777;line-height:1.5}.tiles{margin-top:18px}button:focus-visible{outline:3px solid #4c6a5b80;outline-offset:2px}@media(max-width:580px){.field-grid{grid-template-columns:1fr}.module-head h3{font-size:20px}.data-row{align-items:flex-start}}

#teacher-search,#student-search{margin:8px 0 16px;width:100%}.tabs{flex-wrap:wrap}

/* V6 · asistencia diaria */
.attendance-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin:16px 0}.attendance-toolbar>div{min-width:185px;flex:1}.attendance-toolbar input{margin-bottom:0}.attendance-class{border:1px solid #e6e6e0;border-radius:14px;margin:16px 0;overflow:hidden}.attendance-class-head{display:flex;flex-direction:column;gap:5px;background:#f2e6d8;padding:13px 15px;color:#244538}.attendance-class-head small{opacity:.8}.attendance-class .data-row{padding:11px 14px}.attendance-class select{min-width:128px;max-width:170px}.attendance-toolbar .back{margin:0}

/* V7 finanzas */
.finance-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.finance-stat{background:#f2e6d8;padding:16px;border-radius:12px;display:grid;gap:7px}.finance-stat small{color:#547063}.finance-stat strong{font-size:20px}.finance-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.finance-box{min-width:0}.finance-box h4{font-size:17px;margin:20px 0 0}.finance-box .edit-form{margin-top:12px}.finance-box:nth-child(3){grid-column:1/-1}.finance-box .edit-form select{width:100%}@media(max-width:680px){.finance-stats,.finance-grid{grid-template-columns:1fr}.finance-box:nth-child(3){grid-column:auto}}
