:root{--blue:#177db5;--dark:#153b60;--light:#eef6fb;--border:#d7e4ec;--ink:#24313a;--muted:#667784;--surface:#fff;--bg:#f6f8fa}*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:var(--bg);color:var(--ink)}header{background:var(--blue);color:white;padding:15px 4%;display:flex;justify-content:space-between}header a{color:white;text-decoration:none;margin-left:18px}main{max-width:1250px;margin:30px auto;padding:0 20px}.hero{background:white;padding:24px;border-radius:12px;border:1px solid var(--border)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;margin-top:20px}.card{background:white;border:1px solid var(--border);border-radius:12px;padding:20px;text-decoration:none;color:inherit}.card:hover{box-shadow:0 6px 18px #0001}.count{font-size:30px;color:var(--blue);font-weight:bold}.pagehead{display:flex;justify-content:space-between;align-items:end;margin-bottom:20px}.button,button{background:var(--blue);color:white;border:0;border-radius:7px;padding:10px 15px;text-decoration:none;cursor:pointer}.tablewrap{overflow:auto;background:white;border:1px solid var(--border);border-radius:10px}table{width:100%;border-collapse:collapse;background:white}th,td{text-align:left;padding:11px;border-bottom:1px solid #e7edf1;vertical-align:top}th{background:var(--light);color:var(--dark)}.formgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:white;padding:22px;border:1px solid var(--border);border-radius:10px}.formgrid label{font-weight:bold}.formgrid input,.formgrid select,.formgrid textarea,.userform input,.userform select{display:block;width:100%;padding:10px;margin-top:6px;border:1px solid #bccbd5;border-radius:6px}.formgrid textarea{min-height:90px}.wide{grid-column:1/-1}.actions{text-align:right}.error{background:#fee;border:1px solid #e99;padding:10px;border-radius:8px;margin:14px 0;color:#842029}.muted{color:#888;font-size:12px}.inline{display:inline}.linkdanger{background:none;color:#a22;padding:0;margin-left:10px}.userform{display:grid;grid-template-columns:2fr 2fr 2fr 1fr auto;gap:10px;margin-bottom:20px;background:white;padding:15px;border-radius:10px}.userform input,.userform select{margin:0}.schooltitle{display:flex;justify-content:space-between;gap:16px;align-items:center}.kpis{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px;margin:14px 0}.kpi{background:#f5f9fc;border:1px solid #dbe9f2;border-radius:12px;padding:14px}.kpi span{display:block;color:#667;font-size:12px}.kpi b{display:block;font-size:21px;margin-top:4px;color:#17365d}.analyticsgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:14px 0}.analyticsgrid>div{border:1px solid #e1e7eb;border-radius:12px;padding:14px}.metricrow{display:flex;justify-content:space-between;border-bottom:1px solid #eee;padding:7px 0}.secondary{background:#eef6fb!important;color:#1679b5!important}.notice{padding:12px 14px;background:#fff8dc;border:1px solid #eadca4;border-radius:9px;margin:12px 0}.pill{display:inline-block;padding:3px 8px;border-radius:999px;background:#eee}.pill.ok{background:#e7f6eb;color:#23743b}.pill.bad{background:#fde9e7;color:#a33229}

/* Login corporativo multi-colegio */
.login-shell{min-height:calc(100vh - 60px);display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);max-width:1080px;margin:0 auto;align-items:center;gap:54px;padding:48px 20px}.login-brand{padding:20px 10px}.login-logo{display:block;width:min(430px,92%);height:auto;margin-bottom:30px}.login-kicker{display:inline-block;padding:7px 11px;border-radius:999px;background:#e8f4fb;color:var(--blue);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.login-brand h1{font-size:42px;line-height:1.05;color:var(--dark);margin:18px 0 14px;max-width:650px}.login-lead{font-size:18px;line-height:1.55;color:var(--muted);max-width:680px}.login-features{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.login-features span{background:#fff;border:1px solid var(--border);border-radius:9px;padding:9px 12px;color:var(--dark);font-size:13px}.login-card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:34px;box-shadow:0 18px 50px rgba(21,59,96,.10)}.login-card-head h2{margin:0;color:var(--dark);font-size:27px}.login-card-head p{margin:8px 0 22px;color:var(--muted)}.login-card label{display:block;font-weight:700;margin-top:14px;color:var(--dark)}.login-card input{width:100%;padding:13px 12px;margin:7px 0 4px;border:1px solid #b9cbd8;border-radius:8px;font-size:15px}.login-card input:focus{outline:3px solid rgba(23,125,181,.13);border-color:var(--blue)}.login-button{width:100%;margin-top:20px;padding:13px 16px;font-size:15px;font-weight:700}.login-help{font-size:12px;color:#7a8994;line-height:1.45;margin:20px 0 0}

@media(max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.analyticsgrid{grid-template-columns:1fr}.schooltitle{align-items:flex-start;flex-direction:column}.login-shell{grid-template-columns:1fr;gap:16px;max-width:650px;padding-top:26px}.login-brand h1{font-size:34px}.login-logo{width:min(360px,88%)}}
@media(max-width:760px){.formgrid{grid-template-columns:1fr}.wide{grid-column:auto}.userform{grid-template-columns:1fr}.pagehead{align-items:start;gap:10px;flex-direction:column}.login-shell{min-height:auto;padding:22px 16px 40px}.login-brand{padding:8px 2px}.login-brand h1{font-size:30px}.login-lead{font-size:16px}.login-card{padding:26px 22px}}

.schoolchecks{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px;margin-top:10px}.schoolchecks label{font-weight:400;background:#f8fafb;border:1px solid var(--border);border-radius:8px;padding:10px}.schoolchecks input{width:auto!important;display:inline!important;margin:0 7px 0 0!important}

/* Experiencia de aplicación */
.topbar{position:sticky;top:0;z-index:20;align-items:center;box-shadow:0 2px 12px rgba(20,50,75,.12)}.brand{display:flex;align-items:center;gap:10px!important;margin:0!important;font-weight:700}.brand img{width:125px;height:34px;object-fit:contain;background:white;border-radius:6px;padding:3px}.brand span{white-space:nowrap}.topbar nav{display:flex;align-items:center;gap:6px}.topbar nav a{margin:0;padding:8px 9px;border-radius:8px}.topbar nav a:hover{background:rgba(255,255,255,.14)}.role-badge{font-size:12px;background:rgba(255,255,255,.18);padding:6px 9px;border-radius:999px;margin-left:8px}
.welcome-panel,.school-hero{background:linear-gradient(135deg,#fff,#eef7fc);border:1px solid var(--border);border-radius:20px;padding:28px;margin-bottom:22px;display:flex;justify-content:space-between;gap:20px;align-items:center}.welcome-panel h1,.school-hero h1{font-size:34px;margin:8px 0}.eyebrow{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}.backlink{display:inline-block;margin-bottom:12px;color:var(--blue);text-decoration:none}.hero-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.school-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.school-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px;text-decoration:none;color:inherit;box-shadow:0 4px 14px rgba(21,59,96,.05);transition:.18s}.school-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px rgba(21,59,96,.10);border-color:#afd5e8}.school-avatar{width:50px;height:50px;border-radius:14px;background:var(--light);display:grid;place-items:center;font-size:25px}.school-card b{display:block;color:var(--dark);font-size:17px}.school-card span{font-size:12px;color:var(--muted)}.chevron{margin-left:auto;font-size:30px;color:#9bb5c5}
.section-title{margin:28px 0 12px;color:var(--dark)}.app-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(205px,1fr));gap:14px}.app-tile{min-height:118px;background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;text-decoration:none;color:inherit;display:flex;align-items:center;gap:14px;box-shadow:0 3px 12px rgba(21,59,96,.05);transition:.16s}.app-tile:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(21,59,96,.11);border-color:#add2e6}.app-icon{width:54px;height:54px;min-width:54px;border-radius:16px;background:var(--light);display:grid;place-items:center;font-size:27px}.app-copy b{display:block;color:var(--dark);font-size:15px;line-height:1.25}.app-copy span{display:block;color:var(--muted);font-size:12px;margin-top:6px}.app-tile.utility{background:#f9fbfc}.compact-kpis{grid-template-columns:repeat(4,minmax(140px,1fr))}
.card-form{margin-bottom:22px;box-shadow:0 3px 14px rgba(21,59,96,.04)}.card-form small{display:block;color:var(--muted);font-weight:400;margin-top:5px}.mini{padding:7px 10px;font-size:12px;display:inline-block}.toggle-row{display:flex!important;align-items:center;gap:9px;margin-top:22px}.toggle-row input{display:inline!important;width:auto!important;margin:0!important}
.module-config-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:12px}.module-toggle{background:#fff;border:1px solid var(--border);border-radius:16px;padding:15px;display:flex;align-items:center;gap:12px;cursor:pointer}.module-toggle-copy{flex:1}.module-toggle-copy b{display:block;color:var(--dark)}.module-toggle-copy span{display:block;color:var(--muted);font-size:12px;margin-top:4px}.module-toggle>input{width:22px;height:22px;accent-color:var(--blue)}.sticky-actions{position:sticky;bottom:15px;margin-top:20px;text-align:right}.sticky-actions button{box-shadow:0 8px 25px rgba(23,125,181,.25)}
.title-with-icon{display:flex;align-items:center;gap:14px;margin-top:12px}.title-icon{width:54px;height:54px;border-radius:16px;background:var(--light);display:grid;place-items:center;font-size:28px}.title-with-icon h1{margin:0}.title-with-icon p{margin:5px 0 0}.primary-action{font-weight:700}.empty-state{padding:28px;text-align:center;color:var(--muted)}
@media(max-width:760px){main{padding:0 14px;margin:18px auto}.topbar{padding:10px 12px;align-items:flex-start}.brand img{width:105px}.brand span{display:none}.topbar nav{gap:2px;flex-wrap:wrap;justify-content:flex-end}.topbar nav a{font-size:12px;padding:7px}.role-badge{display:none}.welcome-panel,.school-hero{padding:20px;align-items:flex-start;flex-direction:column}.welcome-panel h1,.school-hero h1{font-size:27px}.hero-actions{justify-content:flex-start}.app-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.app-tile{min-height:138px;padding:14px;display:block;text-align:center}.app-icon{margin:0 auto 10px}.compact-kpis{grid-template-columns:repeat(2,1fr)}.module-config-grid{grid-template-columns:1fr}.module-head .primary-action{width:100%;text-align:center}.tablewrap{border-radius:14px}}

/* Iconografía monocromática Tecproges */
.app-icon img,.title-icon img,.school-avatar img{width:28px;height:28px;display:block}.app-icon,.title-icon,.school-avatar{background:linear-gradient(180deg,#eff8fd,#e3f1f9);border:1px solid #d2e8f4}.app-tile:hover .app-icon,.school-card:hover .school-avatar{background:#dceff9;border-color:#b8dced}.module-toggle:hover .app-icon{background:#dceff9}.app-icon img,.title-icon img,.school-avatar img{filter:none}

/* Importación Excel */
.module-actions{display:flex;gap:8px;flex-wrap:wrap}.import-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0 0 20px}.import-steps>div{background:#fff;border:1px solid var(--border);border-radius:14px;padding:14px;display:flex;align-items:center;gap:10px}.import-steps b{width:30px;height:30px;border-radius:50%;background:var(--light);color:var(--blue);display:grid;place-items:center}.import-steps span{font-size:13px;color:var(--dark);font-weight:700}.upload-card{background:#fff;border:1px dashed #9fc9de;border-radius:18px;padding:22px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:18px;margin-bottom:22px}.upload-card h2{margin:0 0 5px;color:var(--dark)}.upload-card p{margin:0 0 10px;color:var(--muted);font-size:13px}.upload-card input[type=file]{max-width:100%}.upload-icon{width:58px;height:58px;border-radius:16px;background:var(--light);display:grid;place-items:center}.upload-icon img{width:30px;height:30px}.validation-panel{background:#fff;border:1px solid var(--border);border-radius:18px;padding:22px}.validation-head{display:flex;justify-content:space-between;align-items:center;gap:20px}.validation-head h2{margin:5px 0}.validation-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.validation-kpis>div{background:#f7fafc;border:1px solid var(--border);border-radius:12px;padding:14px}.validation-kpis span{display:block;color:var(--muted);font-size:12px}.validation-kpis b{font-size:24px;color:var(--dark)}.success-notice{background:#edf8f1;border-color:#cce9d5}.validation-error{margin:2px 0;color:#8a2f27}.confirm-import{text-align:right;margin-top:18px}.confirm-import button{font-weight:700}
@media(max-width:760px){.module-actions{width:100%}.module-actions .button{flex:1;text-align:center}.import-steps{grid-template-columns:1fr 1fr}.upload-card{grid-template-columns:1fr;text-align:center}.upload-icon{margin:auto}.validation-head{align-items:flex-start;flex-direction:column}.validation-kpis{grid-template-columns:1fr 1fr 1fr}.confirm-import button{width:100%}}

/* Filtros y mantenedores */
.filterbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--border);border-radius:14px;padding:12px;margin:0 0 16px}.filterbar input,.filterbar select{padding:10px 11px;border:1px solid #bccbd5;border-radius:8px;min-width:180px}.filterbar input{flex:1;min-width:240px}.maintainer-head{margin-top:8px}.config-card{margin:0}.config-card button{display:none}.switch-label{display:flex;align-items:center}.switch-label input{width:22px;height:22px;accent-color:var(--blue)}.tablewrap td .button.mini{margin-right:5px}.notice b{color:var(--dark)}
@media(max-width:760px){.filterbar{display:grid;grid-template-columns:1fr 1fr}.filterbar input{grid-column:1/-1;min-width:0;width:100%}.filterbar select{min-width:0;width:100%}.filterbar button,.filterbar .button{text-align:center}}

/* Flujo de incidentes */
.incident-code{display:inline-flex;align-items:center;background:#eaf5fb;border:1px solid #cce4f1;color:var(--dark);border-radius:999px;padding:8px 13px;font-weight:800;letter-spacing:.03em}.incident-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}.incident-meta>div{background:#fff;border:1px solid var(--border);border-radius:13px;padding:13px}.incident-meta span{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.incident-meta b{display:block;color:var(--dark);margin-top:4px}.requester-new{background:#f7fbfd;border:1px solid #d8eaf3;border-radius:14px;padding:14px}.nested-form{padding:0;border:0;background:transparent}.register-prompt{display:flex!important;align-items:center;gap:10px;background:#eef7fc;border-radius:10px;padding:11px;font-weight:500!important}.register-prompt input{display:inline!important;width:auto!important;margin:0!important}.incident-section{border-top:1px solid var(--border);padding-top:14px;margin-top:8px}.incident-section h2{color:var(--dark);margin:0 0 4px}.incident-section p{color:var(--muted);margin:0}.list-tabs{display:flex;gap:6px;margin:0 0 14px}.list-tabs a{padding:9px 13px;border-radius:9px;text-decoration:none;color:var(--dark);background:#fff;border:1px solid var(--border);font-size:13px;font-weight:700}.list-tabs a.active{background:var(--blue);color:#fff;border-color:var(--blue)}
@media(max-width:760px){.incident-meta{grid-template-columns:1fr}.list-tabs{overflow:auto}.list-tabs a{white-space:nowrap}}

/* Historial de incidentes */
.incident-history{margin-top:24px}.history-list{display:flex;flex-direction:column;gap:12px;margin-top:14px}.history-item{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px}.history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.history-head b{display:block;color:var(--dark)}.history-head span{font-size:12px;color:var(--muted)}.history-type{background:#eef7fc;border:1px solid #d5eaf5;color:var(--blue)!important;border-radius:999px;padding:4px 8px;font-weight:700}.history-changes{display:flex;flex-direction:column;gap:8px}.history-change{background:#f8fbfd;border-radius:10px;padding:10px 12px}.history-field{display:block;font-size:12px;font-weight:800;color:var(--dark);margin-bottom:6px}.history-values{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.old-value{color:#7a5b55;text-decoration:line-through;background:#fbefec;border-radius:7px;padding:4px 7px}.new-value{color:#185d82;background:#eaf5fb;border-radius:7px;padding:4px 7px}.arrow{color:#8aa4b4}
@media(max-width:760px){.history-head{flex-direction:column}.history-values{align-items:flex-start}.arrow{display:none}.old-value,.new-value{display:block;width:100%}}

/* Mensajes globales */
.flash-message{position:sticky;top:76px;z-index:30;display:flex;align-items:center;gap:11px;background:#edf8f1;border:1px solid #c7e6d1;color:#215c35;border-radius:13px;padding:12px 14px;margin:0 0 18px;box-shadow:0 8px 24px rgba(35,89,55,.10);transition:opacity .25s ease,transform .25s ease}.flash-message.error{background:#fff0ee;border-color:#f0cbc6;color:#8d3028}.flash-message.info{background:#eef7fc;border-color:#cae4f1;color:#185d82}.flash-icon{width:28px;height:28px;min-width:28px;border-radius:50%;display:grid;place-items:center;background:#d9f0e1;font-weight:900}.flash-message.error .flash-icon{background:#f7d8d3}.flash-message.info .flash-icon{background:#dbeef8}.flash-close{margin-left:auto;background:transparent!important;color:inherit!important;padding:2px 6px!important;font-size:21px;line-height:1}.flash-hide{opacity:0;transform:translateY(-5px)}
@media(max-width:760px){.flash-message{top:68px}}

/* Navegación superior con SVG */
.topnav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.nav-link{display:flex;align-items:center;gap:7px;padding:8px 9px;border-radius:8px;text-decoration:none;color:#fff;margin:0!important}.nav-link:hover{background:rgba(255,255,255,.14)}.nav-link img{width:18px;height:18px;display:block}.topnav .role-badge{margin-left:8px}
@media(max-width:760px){.nav-link span{display:none}.nav-link{padding:8px}.nav-link img{width:19px;height:19px}.topnav{gap:2px}}

/* Retornos y navegación activa */
.return-link{display:inline-flex;align-items:center;gap:7px;color:var(--blue);text-decoration:none;font-size:13px;font-weight:700;padding:7px 10px;border-radius:9px;background:#f7fbfd;border:1px solid #d9eaf3;transition:.16s}.return-link:hover{background:#eaf5fb;border-color:#bcdcea;color:var(--dark)}.return-icon{width:16px;height:16px;display:block;flex:0 0 auto}
.nav-link{color:#fff!important;position:relative}.nav-link .nav-icon{width:18px;height:18px;display:block;background:currentColor;-webkit-mask-image:var(--nav-icon);mask-image:var(--nav-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain}.nav-link.active{color:#FFD700!important;background:rgba(255,215,0,.10)}.nav-link.active:after{content:"";position:absolute;left:9px;right:9px;bottom:3px;height:2px;background:#FFD700;border-radius:2px}.nav-link:hover{color:#FFD700!important}.topnav .nav-link.active .nav-icon,.topnav .nav-link:hover .nav-icon{background:currentColor}
@media(max-width:760px){.return-link{font-size:12px;padding:6px 9px}.nav-link.active:after{left:7px;right:7px}}

/* Proveedores, contratos y visitas */
.attachment-panel{background:#f7fbfd;border:1px dashed #afd5e8;border-radius:14px;padding:16px}.attachment-panel h2{margin:0 0 4px;color:var(--dark);font-size:17px}.attachment-panel p{margin:0 0 12px;color:var(--muted);font-size:13px}.attachment-panel small{display:block;margin-top:7px;color:var(--muted)}.provider-section{margin-top:24px;background:#fff;border:1px solid var(--border);border-radius:17px;padding:20px}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:14px}.section-heading h2{margin:0;color:var(--dark)}.section-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}.attachment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}.attachment-item{display:flex;align-items:center;gap:11px;padding:12px;border:1px solid var(--border);border-radius:12px;text-decoration:none;color:inherit;background:#fafcfd}.attachment-item:hover{border-color:#afd5e8;background:#f2f9fc}.attachment-file{width:38px;height:38px;display:grid;place-items:center;border-radius:10px;background:#eaf5fb}.attachment-file img{width:20px;height:20px}.attachment-item b{display:block;color:var(--dark);overflow-wrap:anywhere}.attachment-item span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.visit-form{margin-bottom:18px;background:#f9fbfc}.visit-list{display:flex;flex-direction:column;gap:12px}.visit-card{border:1px solid var(--border);border-radius:14px;padding:15px;background:#fff}.visit-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:10px}.visit-head b{display:block;color:var(--dark)}.visit-head span{font-size:12px;color:var(--muted)}.visit-block{padding:9px 0;border-top:1px solid #eef2f4}.visit-block strong{font-size:12px;color:var(--dark)}.visit-block p{margin:4px 0 0;white-space:pre-wrap}.visit-files{margin-top:9px;padding-top:9px;border-top:1px solid #eef2f4}.visit-files a{display:inline-flex;padding:7px 10px;border-radius:8px;background:#eaf5fb;color:var(--blue);text-decoration:none;font-size:12px;font-weight:700}
@media(max-width:760px){.visit-head{flex-direction:column}.provider-section{padding:15px}.attachment-list{grid-template-columns:1fr}}
