@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Outfit:wght@500;600;700;800&display=swap');
:root{
 --font-display:"Outfit","Segoe UI",Arial,sans-serif;
 --font-ui:"Manrope","Segoe UI",Arial,sans-serif;
 --color-primary:#082E63;--color-primary-dark:#05264F;--color-secondary:#164F9C;
 --color-gold:#D6A51F;--color-gold-soft:#E6C35D;--color-olive:#77834A;
 --color-background:#FBFAF7;--color-surface:#FFFFFF;--color-text:#0B2C53;--color-text-muted:#64748B;
 --navy:var(--color-primary);--navy2:var(--color-secondary);--teal:#137E68;--mint:#E8F5EF;
 --bg:var(--color-background);--card:var(--color-surface);--ink:var(--color-text);--muted:var(--color-text-muted);
 --line:rgba(8,46,99,.11);--gold:var(--color-gold);--red:#B94A50;--shadow:0 6px 24px rgba(8,46,99,.06);
}
*{scrollbar-color:#9aadc2 transparent}
body{font-family:var(--font-ui);background:var(--color-background);color:var(--color-text);letter-spacing:-.008em;font-size:15px;line-height:1.5}
button,input,select,textarea,table{font-family:var(--font-ui)}
.app{grid-template-columns:286px 1fr;background:var(--color-background)}
aside{position:sticky;isolation:isolate;background:linear-gradient(180deg,var(--color-primary-dark),var(--color-primary) 56%,#073A70);padding:18px 16px;box-shadow:6px 0 24px rgba(5,38,79,.10)}
aside:before{content:"";position:fixed;inset:0 auto 0 0;width:286px;background:url("assets/sidebar-school-pattern.svg") center/286px 720px repeat-y;opacity:.075;pointer-events:none;z-index:-1}
.brand{gap:13px;padding:3px 5px 21px;border-bottom-color:rgba(255,255,255,.16)}
.logo{width:66px;height:66px;min-width:66px;border-radius:50%;background:#fff;border:3px solid var(--color-gold-soft);overflow:hidden;box-shadow:0 5px 16px rgba(0,0,0,.24)}
.logo img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.025)}
.brand b{font-family:var(--font-display);font-weight:700;font-size:19px;line-height:1.08;letter-spacing:-.015em;color:#fff}
.brand small{color:#D7E2F0;font-size:10px;line-height:1.35}
.nav-label{color:#C5B76B;font-size:9px;letter-spacing:.17em}.nav button{color:#E5EDF7;border:1px solid transparent;border-radius:10px;padding:10px 11px;font-weight:500;transition:.16s ease}
.nav button:hover{background:rgba(255,255,255,.09);color:#fff;border-color:rgba(255,255,255,.08);transform:translateX(2px)}
.nav button.active{background:#fff;color:var(--color-primary);border-color:#fff;font-weight:700;box-shadow:0 6px 18px rgba(2,23,52,.24)}
.ico{color:var(--color-gold-soft);font-weight:900}.nav button.active .ico{color:var(--color-primary)}
.avatar{background:#fff7d7;color:var(--color-primary);border:2px solid var(--color-gold-soft)}
main{position:relative;isolation:isolate;padding:29px 36px 56px;overflow:hidden;background:linear-gradient(rgba(251,250,247,.88),rgba(251,250,247,.92)),url("assets/institutional-pattern.svg") 0 0/760px 620px repeat}
main:before{content:"COLEGIO\A EL ESCORIAL";white-space:pre;position:fixed;right:4vw;bottom:4vh;font-family:var(--font-display);font-size:52px;font-weight:600;line-height:.92;text-align:right;color:var(--color-primary);opacity:.055;transform:rotate(-7deg);pointer-events:none;z-index:-1}
main:after{content:"";position:fixed;right:-36px;top:18vh;width:220px;height:300px;background:url("assets/institutional-pattern.svg") 78% 48%/580px auto no-repeat;opacity:.09;pointer-events:none;z-index:-1}
main>*{position:relative;z-index:2}
.crumb{font-family:var(--font-ui);font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--color-secondary)}
.top h1{font-family:var(--font-display);font-weight:700;font-size:clamp(36px,3.6vw,48px);line-height:1.04;letter-spacing:-.035em;color:var(--color-primary);margin:8px 0}
.top .btn.generic-export-hidden{display:none!important}
body.module-has-own-title .top{min-height:28px;margin-bottom:10px;align-items:flex-start}
body.module-has-own-title .top h1{display:none}
body.module-has-own-title .top .crumb{padding-top:3px}
.hero{position:relative;overflow:hidden;background:linear-gradient(120deg,var(--color-primary-dark),var(--color-primary) 55%,var(--color-secondary));border:1px solid rgba(214,165,31,.32);border-radius:18px;box-shadow:0 10px 28px rgba(8,46,99,.12)}
.hero:after{content:"";position:absolute;right:-70px;top:-110px;width:360px;height:360px;background:url("assets/institutional-pattern.svg") 76% 7%/650px auto no-repeat;opacity:.13;pointer-events:none}.hero>*{position:relative;z-index:1}
.hero .eyebrow{color:var(--color-gold-soft);font-weight:800;letter-spacing:.07em}.hero h2{font-family:var(--font-display);font-size:30px;font-weight:700;letter-spacing:-.025em}.hero p{color:#DCE7F4}.week{background:rgba(255,255,255,.09);border-color:rgba(230,195,93,.28)}
.card,.metric,.budget-kpi,.annual-history,.person-card{background:rgba(255,255,255,.97);border:1px solid rgba(8,46,99,.10);box-shadow:var(--shadow)}
.card{border-radius:17px}.metric,.budget-kpi{border-radius:15px}.metric.warn{border-left-color:var(--color-gold)}.metric.alert{border-left-color:#B94A50}
.card h3,.section-title,.modal h2,.form-title,.movement-group h4,.person-info h3,.annual-history-head h3,.year-card strong{font-family:var(--font-display);font-weight:700;letter-spacing:-.022em}
.card h3,.section-title{font-size:21px}.metric b,.big-number,.pay-summary strong{font-family:var(--font-display);color:var(--color-primary);font-weight:700;font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.025em}
.metric b,.budget-kpi b,.kpi b,.stat b,.summary-value,.money,.amount,td strong{font-variant-numeric:tabular-nums lining-nums}
.btn{font-family:var(--font-ui);font-weight:750;letter-spacing:-.015em;border-radius:11px;transition:.16s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px rgba(8,46,99,.12)}
.primary{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.primary:hover{background:var(--color-secondary)}
#globalNew.primary{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-primary-dark)}
.dark{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}
.tabs{background:#E9EEF5}.tabs button.active{color:var(--color-primary);box-shadow:0 2px 8px rgba(8,46,99,.06)}
.tag{font-family:var(--font-ui)}.tag.approved,.tag.paid,.approved,.paid{background:#E2F3E9;color:#236343}.tag.pending,.pending{background:#FFF1C8;color:#755300}
.note{background:#F0F6F4;border-left-color:var(--color-primary)}
.modal{border-radius:18px;border-top:4px solid var(--color-gold);box-shadow:0 28px 80px rgba(5,38,79,.28)}
.field input,.field select,.field textarea,.search,.filters select{border-radius:10px;border-color:rgba(8,46,99,.16);background:#fff}.field input:focus,.field select:focus,.field textarea:focus,.search:focus{outline:3px solid rgba(22,79,156,.13);border-color:var(--color-secondary)}
table{border-color:rgba(8,46,99,.10);font-size:14px;font-variant-numeric:tabular-nums lining-nums}th{background:#F3F6FA;color:#536A83;font-size:10px;font-weight:800;letter-spacing:.075em}td{font-weight:500}tbody tr:hover{background:#F7FAFD}
.pay-summary{background:linear-gradient(120deg,var(--color-primary),var(--color-secondary));}.pay-summary strong{color:#fff}
.pay-step.active,.payroll-section-nav button.active,.project-workspace-tabs button.active{background:var(--color-primary);border-color:var(--color-primary)}
@media(max-width:1000px){.app{grid-template-columns:88px 1fr}aside:before{width:88px;background-size:180px auto}.logo{width:54px;height:54px;min-width:54px}.brand{justify-content:center}main{padding:22px}.top h1{font-size:40px}main:after{opacity:.04}}
@media(max-width:650px){main{padding:17px;background:linear-gradient(rgba(251,250,247,.91),rgba(251,250,247,.94)),url("assets/institutional-pattern.svg") center/650px auto repeat}.top h1{font-size:35px}main:before{font-size:32px;opacity:.04}main:after{display:none}}
.worker-card{display:flex;flex-direction:column;justify-content:space-between;min-height:245px;padding:18px}.worker-card-head{display:grid;grid-template-columns:116px minmax(0,1fr);gap:20px;align-items:start;justify-items:center}.worker-card-head .person-info{min-width:0;justify-self:stretch}.worker-photo-34{width:112px;aspect-ratio:3/4;border:1px solid rgba(8,46,99,.16);border-radius:14px;background:#eef5f3;display:grid;place-items:center;overflow:hidden;color:#0b396f;text-align:center;font-weight:800}.worker-photo-34 img{width:100%;height:100%;object-fit:cover;object-position:center top}.worker-photo-34 span{display:grid;gap:9px}.worker-photo-34 span small{font-size:9px;letter-spacing:.08em;color:#657780}.worker-photo-34.large{width:150px;border-radius:16px}.worker-photo-editor{display:flex;gap:24px;align-items:center;margin:16px 0 24px;padding:18px;border:1px solid rgba(8,46,99,.10);border-radius:14px;background:#f7faf9}.worker-photo-editor .worker-photo-34{width:140px;flex:0 0 auto}.worker-photo-editor .small{max-width:360px;margin:10px 0}.worker-detail-heading{display:flex;align-items:center;gap:26px;margin-bottom:18px;padding-bottom:18px;border-bottom:1px solid rgba(8,46,99,.12)}.worker-detail-heading h2{margin:0}.worker-card .person-meta{margin-top:18px;padding-top:14px}#secretariaPersonal .people-grid{grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}@media(max-width:650px){#secretariaPersonal .people-grid{grid-template-columns:1fr}.worker-card-head{grid-template-columns:94px minmax(0,1fr);gap:14px}.worker-photo-34{width:90px}.worker-photo-34.large{width:120px}.worker-photo-editor{align-items:flex-start}.worker-photo-editor .worker-photo-34{width:115px}.worker-detail-heading{align-items:flex-start}}
