:root{--ink:#1f2e2a;--muted:#718079;--line:#dfe6e1;--paper:#f4f6f3;--green:#315f50;--green-dark:#244b3f}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:radial-gradient(circle at 75% 8%,#d7e2da,transparent 30rem),var(--paper);font-family:Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}.app{min-height:100vh;display:grid;grid-template-columns:250px 1fr}.sidebar{position:sticky;top:0;height:100vh;padding:28px 20px 22px;background:#213c34;color:white;display:flex;flex-direction:column}.brand,.profile,.update{display:flex;align-items:center;gap:12px}.brand{padding:0 8px 30px;border-bottom:1px solid #ffffff22}.brand>b{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#d7b887;color:#213c34;font-size:20px}.brand strong,.brand small,.profile strong,.profile small,.update strong,.update small,.person strong,.person small,.employee-row>span strong,.employee-row>span small{display:block}.brand small,.profile small,.update small{margin-top:3px;color:#aebfb8;font-size:10px}nav{display:grid;gap:6px;padding-top:26px}nav button{border:0;padding:12px 14px;border-radius:10px;background:transparent;color:#b9c9c3;text-align:left;font-weight:700}nav button.active,nav button:hover{background:#ffffff1a;color:white}.update{margin-top:auto;padding:14px;border:1px solid #ffffff22;border-radius:12px;background:#ffffff0d}.update i{width:8px;height:8px;border-radius:50%;background:#d7b887;box-shadow:0 0 0 5px #d7b88722}.update strong,.profile strong{font-size:12px}.profile{margin-top:18px;padding:18px 8px 0;border-top:1px solid #ffffff22}.profile>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#4b6b60;font-size:11px}.content{min-width:0;padding:52px clamp(28px,5vw,76px) 70px}header{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:36px}.eyebrow{margin:0 0 10px;color:#917247;font-size:10px;font-weight:800;letter-spacing:.17em}h1{margin:0;font-family:Georgia,serif;font-weight:500;font-size:clamp(34px,4vw,52px);line-height:1}header p:last-child,.muted{color:var(--muted);font-size:14px}.primary{border:0;border-radius:10px;padding:13px 18px;background:var(--green);color:white;font-weight:700;box-shadow:0 8px 18px #315f5029}.primary:hover{background:var(--green-dark)}.metrics{display:grid;grid-template-columns:1.35fr repeat(3,1fr);gap:14px;margin-bottom:18px}.metric{min-height:138px;padding:24px;border:1px solid var(--line);border-radius:14px;background:#ffffffcc}.metric.featured{background:var(--green);border-color:var(--green);color:white}.metric small,.metric strong,.metric span{display:block}.metric small{color:var(--muted);font-size:11px;font-weight:700}.metric strong{margin:14px 0 5px;font-family:Georgia,serif;font-size:32px;font-weight:500}.metric span{color:#91a098;font-size:11px}.featured small{color:#c5d4ce}.panel{overflow:hidden;border:1px solid var(--line);border-radius:15px;background:#ffffffe8;box-shadow:0 18px 50px #1f2e2a0d}.panel-head{padding:24px 26px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line)}.panel-head h2,.modal h2{margin:0 0 5px;font-family:Georgia,serif;font-size:23px;font-weight:500}.panel-head p{margin:0;color:var(--muted);font-size:12px}.panel-head input{width:220px;padding:10px 12px;border:1px solid var(--line);border-radius:9px}.table-head{padding:12px 26px;color:#93a09a;background:#fafbfa;font-size:9px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.employee-grid{display:grid;grid-template-columns:minmax(230px,1.6fr) 1fr .7fr .9fr;align-items:center;gap:20px}.employee-row{min-height:75px;padding:12px 26px;border-top:1px solid #edf1ee;font-size:13px}.person{display:flex;align-items:center;gap:12px;min-width:0}.avatar{flex:0 0 38px;height:38px;display:grid;place-items:center;border-radius:11px;color:white;font-size:10px}.avatar.small{flex-basis:30px;height:30px;border-radius:9px}.person small,.employee-row>span small{margin-top:4px;color:#8a9892;font-size:10px}.green{color:var(--green)}.balance strong{font-family:Georgia,serif;color:var(--green-dark);font-size:22px;font-weight:500}.record-grid{display:grid;grid-template-columns:1.3fr 1.2fr .35fr .65fr 1fr 30px;align-items:center;gap:18px}.record-row{padding:15px 26px;border-top:1px solid #edf1ee;font-size:12px}.pill,.status{padding:6px 10px;border-radius:20px;background:#e5efe9;color:#315f50;font-size:10px;font-weight:700}.status{justify-self:start}.status.planificadas{background:#f5ecd9;color:#80622e}.status.anuladas{background:#f1e4e2;color:#934f48}.note{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted)}.delete{border:0;background:transparent;color:#9b6a64;font-size:20px}.backdrop{position:fixed;inset:0;display:grid;place-items:center;padding:22px;background:#1625207a;backdrop-filter:blur(6px)}[hidden]{display:none!important}.modal{position:relative;width:min(540px,100%);padding:34px;border-radius:18px;background:white;box-shadow:0 30px 90px #0a1e173f}.close{position:absolute;right:16px;top:16px;width:34px;height:34px;border:0;border-radius:50%;font-size:22px}.modal form{display:grid;gap:16px}.modal label{display:grid;gap:7px;color:#59675f;font-size:11px;font-weight:700}.modal input,.modal select,.modal textarea{width:100%;padding:11px 12px;border:1px solid #d8e0db;border-radius:9px}.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.calculation{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-radius:10px;background:#e6efea;color:var(--green-dark);font-size:12px}.calculation strong{font-family:Georgia,serif;font-size:20px}.actions{display:flex;justify-content:flex-end;gap:10px}.secondary{padding:12px 18px;border:1px solid var(--line);border-radius:10px;background:white;font-weight:700}.error{margin:0;color:#9a4f47;font-size:11px}
@media(max-width:900px){.app{grid-template-columns:78px 1fr}.sidebar span{display:none}.brand{justify-content:center;padding-inline:0}.metrics{grid-template-columns:1fr 1fr}.employee-grid{grid-template-columns:1fr auto}.employee-grid>span:nth-child(2),.employee-grid>span:nth-child(3){display:none}.record-grid{grid-template-columns:1fr auto}.record-grid>*:nth-child(2),.record-grid>*:nth-child(3),.record-grid>*:nth-child(5){display:none}}
@media(max-width:620px){.app{display:block}.sidebar{position:static;width:100%;height:auto;padding:12px 18px;flex-direction:row}.brand{padding:0 15px 0 0;border:0}.sidebar nav{display:flex;padding:0}.update,.profile{display:none}.content{padding:30px 16px 50px}header{align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:1fr}.panel-head{align-items:flex-start;flex-direction:column}.panel-head input{width:100%}.table-head{display:none}.two{grid-template-columns:1fr}}
.employee-grid{grid-template-columns:minmax(205px,1.4fr) .9fr .9fr .6fr .8fr;gap:18px}
@media(max-width:900px){.employee-grid{grid-template-columns:1fr auto auto}.employee-grid>span:nth-child(3),.employee-grid>span:nth-child(4){display:none}}
#recordsView .panel{overflow-x:auto}
#recordsView .panel-head{position:sticky;left:0}
.record-grid{min-width:1120px;grid-template-columns:minmax(170px,1.15fr) 1fr .32fr .55fr .8fr 1fr .8fr 28px;gap:11px}
.closure,.document{border:0;border-radius:8px;padding:7px 9px;font-size:10px;font-weight:700;text-align:left}
.closure{background:#f5ecd9;color:#80622e}
.closure.closed{background:#e5efe9;color:#315f50}
.document{background:#edf2f5;color:#45647f;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.document.attached{background:#e7eef5;color:#2f5f82}
.delete[disabled]{cursor:not-allowed;opacity:.25}
.form-help{margin:0;padding:10px 12px;border-radius:8px;background:#f3f6f4;color:#60716a;font-size:11px}
#recordsView .panel{overflow:hidden}
.record-grid{min-width:0;grid-template-columns:minmax(170px,1.35fr) minmax(145px,1fr) 42px 78px minmax(120px,.9fr) minmax(112px,.8fr) 26px;gap:10px}
.record-row .person small{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.closure,.document{text-align:center;padding:8px 7px}
.closure[disabled]{cursor:not-allowed}
.closure:not(.closed)[disabled]{background:#f1f3f2;color:#9aa49f}
@media(max-width:1050px){.record-grid{grid-template-columns:minmax(155px,1.25fr) minmax(128px,1fr) 36px 70px minmax(108px,.9fr) minmax(100px,.8fr) 24px;gap:7px}.record-row,.table-head{padding-left:16px;padding-right:16px}}
.clickable{cursor:pointer;transition:background .18s ease,transform .18s ease}.clickable:hover,.clickable:focus{outline:0;background:#f2f7f4;transform:translateX(3px)}.employee-name{color:var(--green);text-decoration:underline;text-decoration-color:#315f5040;text-underline-offset:3px}.back-link{margin:0 0 18px;padding:0;border:0;background:transparent;color:var(--green);font-weight:800}.employee-file{overflow:visible}.file-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px 30px;border-bottom:1px solid var(--line)}.file-person{align-items:center}.file-person h2{margin:3px 0 4px;font-family:Georgia,serif;font-size:28px;font-weight:500}.file-person p,.file-person small{margin:0;color:var(--muted)}.file-person small{font-size:9px;font-weight:800;letter-spacing:.12em}.file-avatar{flex-basis:58px;height:58px;border-radius:16px;font-size:14px}.file-actions{display:flex;flex-wrap:wrap;gap:9px}.file-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border-bottom:1px solid var(--line)}.file-facts>div{padding:18px 24px;background:white}.file-facts small,.file-facts strong{display:block}.file-facts small{margin-bottom:7px;color:var(--muted);font-size:10px}.file-facts strong{font-size:13px}.file-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:20px}.file-metrics article{padding:18px;border-radius:12px;background:#f5f7f5}.file-metrics article:first-child{background:var(--green);color:white}.file-metrics small,.file-metrics strong,.file-metrics span{display:block}.file-metrics small{font-size:10px;color:var(--muted)}.file-metrics article:first-child small,.file-metrics article:first-child span{color:#c4d6cf}.file-metrics strong{margin:10px 0 5px;font-family:Georgia,serif;font-size:25px;font-weight:500}.file-metrics span{font-size:9px;color:#8c9893}.detail-grid{display:grid;gap:18px;margin-top:18px}.detail-panel{overflow-x:auto}.detail-table{min-width:760px}.detail-head,.detail-row{display:grid;align-items:center;gap:14px;padding:12px 22px}.detail-head{background:#fafbfa;color:#8c9993;font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.detail-row{min-height:54px;border-top:1px solid #edf1ee;font-size:11px}.vacation-detail-grid{grid-template-columns:110px 110px 50px 90px 1fr}.time-detail-grid{grid-template-columns:95px 105px 120px 48px 1fr 116px}.type-pill{justify-self:start;padding:6px 9px;border-radius:20px;font-size:9px;font-weight:800}.type-pill.permission{background:#f5ecd9;color:#80622e}.type-pill.overtime{background:#e7eef5;color:#2f5f82}.empty-state{padding:22px;color:var(--muted);font-size:12px}.time-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px}.time-edit{padding:7px 10px;border:1px solid #cddfd7;border-radius:8px;background:#f5faf8;color:#24634e;font-size:9px;font-weight:750;cursor:pointer}.time-edit:hover{background:#e9f4ef;border-color:#aacabd}.time-delete{font-size:18px}.file-actions .secondary{color:var(--green)}
@media(max-width:900px){.file-hero{align-items:flex-start;flex-direction:column}.file-facts,.file-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.file-facts,.file-metrics{grid-template-columns:1fr}.file-actions{width:100%}.file-actions button{flex:1}.file-hero{padding:22px}.detail-grid{margin-top:12px}}
.file-metrics{grid-template-columns:repeat(5,1fr)}
.hour-balance.owes{background:#f7eadc}.hour-balance.owes strong,.hour-balance.owes span{color:#8a5526}
.hour-balance.credit{background:#e7eef5}.hour-balance.credit strong,.hour-balance.credit span{color:#2f5f82}
@media(max-width:1100px){.file-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.file-metrics{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.file-metrics{grid-template-columns:1fr}}

/* Dashboard SaaS moderno */
:root{--paper:#f8fafc;--card:#fff;--line:#e6ebe9;--ink:#17231f;--muted:#6b7b75;--green:#2f6755;--green-dark:#245343}
html{background:var(--paper)}body{background:var(--paper);font-family:Inter,"Segoe UI",Roboto,Arial,sans-serif;font-weight:400}button,input,select,textarea{font-family:inherit}button{transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease}
.app{grid-template-columns:224px minmax(0,1fr)}.sidebar{padding:22px 16px 20px;background:linear-gradient(180deg,#173d32 0%,#123329 100%);box-shadow:8px 0 30px #18382f0d}.brand{padding:0 8px 22px;border-bottom-color:#ffffff17}.brand>b{width:36px;height:36px;border-radius:11px;background:#e5c995;font-size:17px}.brand strong{font-size:13px;font-weight:700}.brand small{font-size:10px}.sidebar nav{padding-top:18px}.sidebar nav button{position:relative;display:flex;align-items:center;gap:11px;padding:11px 13px;border-radius:9px;font-size:12px;font-weight:600}.sidebar nav button.active{background:#ffffff14;color:#fff;box-shadow:inset 3px 0 #e5c995}.nav-icon{display:grid;place-items:center;width:20px;height:20px;font-style:normal;font-size:16px}.update{padding:13px;border-radius:11px;background:#ffffff09}.profile{padding-top:15px}.content{padding:30px clamp(24px,4vw,58px) 52px;max-width:1600px;width:100%;margin:auto}header{align-items:center;margin-bottom:20px}h1,.panel-head h2,.modal h2,.file-person h2,.metric strong,.balance strong,.file-metrics strong,.calculation strong{font-family:inherit}h1{font-size:clamp(28px,3vw,38px);font-weight:700;line-height:1.15;letter-spacing:-.035em}.eyebrow{margin-bottom:7px;color:#638176;font-size:9px;letter-spacing:.16em}header p:last-child{margin:8px 0 0;font-size:13px}.primary{border-radius:10px;padding:12px 17px;font-size:12px;font-weight:700;box-shadow:0 7px 18px #315f5024}.primary:hover{transform:translateY(-1px);box-shadow:0 10px 24px #315f5033}
.metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:12px}.metric,.metric.featured{min-height:126px;padding:18px;border:1px solid var(--line);border-radius:15px;background:#fff;color:var(--ink);box-shadow:0 7px 24px #1d352d0a;overflow:hidden;position:relative}.metric:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent)}.metric-top{display:flex;align-items:center;gap:9px}.metric-top i{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--soft);color:var(--accent);font-style:normal;font-size:15px;font-weight:700}.metric small,.featured small{color:#60716a;font-size:10px;font-weight:600}.metric strong{margin:14px 0 4px;color:var(--ink);font-size:28px;font-weight:700;letter-spacing:-.035em}.metric span{color:#87938f;font-size:10px}.metric-green{--accent:#3d7a65;--soft:#eaf3ef}.metric-orange{--accent:#c87a3a;--soft:#fbefe5}.metric-blue{--accent:#4f78a7;--soft:#eaf0f7}.metric-purple{--accent:#7d67a9;--soft:#f0edf7}.team-insights{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.team-insights span{display:flex;align-items:center;gap:6px;padding:7px 10px;border:1px solid #e6ebe9;border-radius:20px;background:#fff;color:#708079;font-size:10px}.team-insights i{font-style:normal}.team-insights strong{color:#263c34;font-size:11px}
.panel{border-color:#e7ecea;border-radius:16px;background:#fff;box-shadow:0 10px 35px #1d352d0b}.panel-head{padding:20px 22px}.panel-head h2{font-size:18px;font-weight:700;letter-spacing:-.02em}.panel-head p{font-size:11px}.employee-panel-head{align-items:center}.list-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.search-box{position:relative}.search-box i{position:absolute;left:11px;top:50%;transform:translateY(-52%);color:#81908a;font-style:normal}.panel-head .search-box input{width:210px;padding:10px 12px 10px 32px}.list-controls input,.list-controls select{height:38px;border:1px solid #dde5e1;border-radius:9px;background:#fbfcfb;color:#405149;font-size:10px;outline:none}.list-controls select{padding:0 28px 0 10px}.list-controls input:focus,.list-controls select:focus{border-color:#7ba08f;box-shadow:0 0 0 3px #315f5010}
#employeeRows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:16px;background:#f8faf9}.employee-card{min-width:0;padding:17px;border:1px solid #e7ece9;border-radius:14px;background:#fff;box-shadow:0 4px 14px #203b3208;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.employee-card.clickable:hover,.employee-card.clickable:focus{transform:translateY(-3px);border-color:#cbdad3;background:#fff;box-shadow:0 12px 28px #1b382e12}.employee-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.employee-card .avatar{flex-basis:42px;height:42px;border-radius:12px;font-size:11px;box-shadow:inset 0 0 0 1px #ffffff2b}.employee-card .employee-name{color:#233930;text-decoration:none;font-size:12px;font-weight:700}.employee-card .person small{font-size:9px}.detail-button{flex:0 0 auto;padding:7px 9px;border:1px solid #dfe7e3;border-radius:8px;background:#fff;color:#366855;font-size:9px;font-weight:700}.detail-button:hover{background:#eff6f2;border-color:#cadbd3}.employee-balance{margin:18px 0 15px}.employee-balance>span{color:#7d8b85;font-size:9px;font-weight:600}.employee-balance>strong{display:block;margin:5px 0 9px;color:#285e4c;font-size:25px;font-weight:700;letter-spacing:-.04em}.employee-balance>strong small{font-size:10px;font-weight:600;letter-spacing:0}.balance-track{height:5px;border-radius:5px;background:#e9efec;overflow:hidden}.balance-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#3d7964,#6ca28f)}.employee-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:13px;border-top:1px solid #eef2f0}.employee-facts span{min-width:0}.employee-facts small,.employee-facts strong{display:block}.employee-facts small{margin-bottom:4px;color:#8b9792;font-size:8px}.employee-facts strong{overflow:hidden;color:#3d5048;font-size:9px;font-weight:600;white-space:nowrap;text-overflow:ellipsis}.upcoming-line{display:flex;align-items:center;gap:6px;margin-top:13px;padding:8px 9px;border-radius:8px;background:#f7f9f8;color:#8a9691;font-size:9px}.upcoming-line i{font-style:normal}.upcoming-line.has-upcoming{background:#eaf1f8;color:#3f648c}.no-results{grid-column:1/-1;display:grid;justify-items:center;gap:5px;padding:40px;color:#7f8d87;font-size:11px}.no-results strong{color:#405149;font-size:13px}
.clickable{transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.employee-name{text-underline-offset:0}.back-link{font-size:11px}.file-hero{padding:22px 24px}.file-person h2{font-size:24px;font-weight:700;letter-spacing:-.025em}.file-facts>div{padding:16px 20px}.file-metrics{padding:16px}.file-metrics strong{font-size:22px;font-weight:700}.detail-grid{gap:14px;margin-top:14px}.modal{border-radius:16px}.modal h2{font-weight:700}.secondary{font-size:11px;transition:background .18s ease,transform .18s ease}.secondary:hover{background:#f6f8f7;transform:translateY(-1px)}
@media(max-width:1200px){#employeeRows{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.app{grid-template-columns:76px 1fr}.content{padding:26px 22px 46px}.sidebar{padding-inline:12px}.sidebar .nav-icon{display:grid}.sidebar nav button{justify-content:center;padding-inline:8px}.employee-panel-head{align-items:flex-start;flex-direction:column}.list-controls{width:100%;justify-content:flex-start}.search-box{flex:1}.panel-head .search-box input{width:100%}}
@media(max-width:700px){.app{display:block}.sidebar{position:static;width:100%;height:auto;padding:11px 16px;flex-direction:row;align-items:center}.brand{padding:0 14px 0 0}.sidebar nav{padding:0}.sidebar nav button{padding:9px 12px}.sidebar nav button span{display:inline}.content{padding:24px 14px 40px}header{align-items:flex-start;gap:16px}.metrics{grid-template-columns:1fr 1fr}#employeeRows{grid-template-columns:1fr;padding:12px}.list-controls{display:grid;grid-template-columns:1fr 1fr}.search-box{grid-column:1/-1}.employee-facts{gap:5px}.team-insights{gap:6px}}
@media(max-width:460px){.metrics{grid-template-columns:1fr}.list-controls{grid-template-columns:1fr}.search-box{grid-column:auto}header .primary{width:100%}}
.vacation-detail-grid{grid-template-columns:125px 125px 70px minmax(155px,1fr) 168px}.status.closed-status{background:#e9eef8;color:#49658d;white-space:nowrap}.vacation-actions{display:flex;align-items:center;justify-content:flex-end;gap:5px}.edit-vacation,.view-voucher{padding:7px 8px;border:1px solid #dce6e1;border-radius:8px;background:#fff;color:#315f50;font-size:8px;font-weight:700;white-space:nowrap}.view-voucher{background:#edf4fb;border-color:#d5e2ef;color:#3f6387}.edit-vacation:hover,.view-voucher:hover{background:#edf5f1;border-color:#c9dbd2;transform:translateY(-1px)}.compact-modal{width:min(460px,100%)}.compact-modal form{margin-top:20px}.field-help{color:#89958f;font-size:9px;font-weight:400}.current-voucher{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #d8e5ef;border-radius:9px;background:#f3f7fb;color:#49657d;font-size:10px}.current-voucher span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.current-voucher button{flex:0 0 auto;padding:6px 9px;border:0;border-radius:7px;background:#dfeaf4;color:#315d7d;font-size:9px;font-weight:700}
.vacation-history{background:#f8faf9}.vacation-history .panel-head{background:#fff}.history-badge{padding:7px 10px;border-radius:20px;background:#edf4f0;color:#3d6b59;font-size:9px;font-weight:700}.vacation-history .detail-table{padding:12px 14px 14px}.vacation-history .detail-head{padding:8px 14px;background:transparent}.vacation-history .vacation-detail-grid{grid-template-columns:minmax(270px,1.35fr) 90px minmax(150px,.8fr) minmax(270px,1.25fr);gap:18px}.vacation-history-row{min-height:76px;margin:8px 0;padding:13px 14px;border:1px solid #e5ebe8;border-radius:12px;background:#fff;box-shadow:0 4px 12px #203b3207;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.vacation-history-row:hover{transform:translateY(-1px);border-color:#d2dfd9;box-shadow:0 8px 20px #203b320d}.vacation-period{display:flex;align-items:center;gap:12px}.vacation-period>span{min-width:100px}.vacation-period small,.vacation-period strong{display:block}.vacation-period small{margin-bottom:4px;color:#96a29d;font-size:7px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.vacation-period strong{color:#273c34;font-size:10px;font-weight:650}.vacation-period>i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#eef3f1;color:#658075;font-style:normal;font-size:11px}.vacation-days{display:flex;align-items:baseline;gap:4px}.vacation-days strong{color:#244f40;font-size:20px;font-weight:750}.vacation-days span{color:#7b8983;font-size:9px}.vacation-history-row .status{display:inline-flex;align-items:center;gap:6px;justify-self:start}.vacation-history-row .status i{display:grid;place-items:center;width:15px;height:15px;border-radius:50%;background:#ffffffa8;font-style:normal;font-size:8px}.voucher-state{display:inline-flex;align-items:center;gap:5px;margin-right:auto;padding:6px 8px;border-radius:8px;font-size:8px;font-weight:650;white-space:nowrap}.voucher-state i{font-style:normal}.voucher-state.attached{background:#edf5f1;color:#356752}.voucher-state.missing{background:#f6f7f6;color:#929d98}.vacation-actions{gap:6px}.vacation-actions .view-voucher,.vacation-actions .edit-vacation{padding:8px 10px;border-radius:8px;font-size:8px}.vacation-actions .view-voucher{background:#eaf2fa}.vacation-actions .edit-vacation{background:#fff}
@media(max-width:900px){.vacation-history .detail-table{min-width:820px}}
.file-metrics .taken-card{background:#fff2e8;border:1px solid #f3dfce}.file-metrics .taken-card small,.file-metrics .taken-card span{color:#9b6b43}.file-metrics .taken-card strong{color:#9a5627}.file-metrics .permission-card{background:#f7f5ec;border:1px solid #ebe6d6}.file-metrics .permission-card small,.file-metrics .permission-card span{color:#82775d}.file-metrics .permission-card strong{color:#675d45}.file-metrics .overtime-card{background:#edf4fa;border:1px solid #dce8f2}.file-metrics .overtime-card small,.file-metrics .overtime-card span{color:#617d94}.file-metrics .overtime-card strong{color:#365f7d}
.metric,.metric.featured,.employee-card{background:linear-gradient(180deg,#ffffff 0%,#fbfcfd 100%)}.metric{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.metric:hover{transform:translateY(-4px);border-color:#d8e2de;box-shadow:0 16px 34px #1d352d16}.employee-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.employee-card.clickable:hover,.employee-card.clickable:focus{transform:translateY(-4px);box-shadow:0 18px 38px #1b382e18}.balance-track i{transform-origin:left center;transition:transform .25s ease,filter .25s ease,box-shadow .25s ease}.employee-card:hover .balance-track i,.employee-card:focus .balance-track i{transform:scaleX(1.035);filter:saturate(1.18);box-shadow:0 0 10px #4e8b7466}@media(prefers-reduced-motion:reduce){.metric,.employee-card,.balance-track i{transition:none}.metric:hover,.employee-card.clickable:hover,.employee-card.clickable:focus{transform:none}.employee-card:hover .balance-track i,.employee-card:focus .balance-track i{transform:none}}
.metric,.employee-card{will-change:transform,box-shadow;transition:transform 220ms ease,box-shadow 220ms ease,border-color 220ms ease!important}.metric:hover{transform:translate3d(0,-4px,0)!important;box-shadow:0 20px 42px rgba(29,53,45,.18)!important}.employee-card.clickable:hover,.employee-card.clickable:focus-visible{transform:translate3d(0,-4px,0)!important;box-shadow:0 22px 44px rgba(27,56,46,.20)!important}.metric:after{transform:scaleX(.62);transform-origin:left center;transition:transform 280ms ease,filter 280ms ease}.metric:hover:after{transform:scaleX(1);filter:saturate(1.25)}.balance-track i{background:linear-gradient(90deg,#3d7964 0%,#75b19b 45%,#3d7964 100%);background-size:220% 100%;transition:transform 260ms ease,box-shadow 260ms ease!important}.employee-card:hover .balance-track i,.employee-card:focus-visible .balance-track i{transform:scaleX(1.045)!important;box-shadow:0 0 12px rgba(61,121,100,.48)!important;animation:balanceSweep 700ms ease both}@keyframes balanceSweep{0%{background-position:100% 0}100%{background-position:0 0}}
/* Identidad Prisma Ingeniería */
.data-tools{display:grid;gap:6px;margin-top:auto;padding:14px 10px}.data-tools button{padding:8px;border:1px solid #ffffff2b;border-radius:8px;background:#ffffff10;color:#d9edf3;font-size:9px;font-weight:700;cursor:pointer}.data-tools button:hover{background:#ffffff1c}.data-tools+.profile{margin-top:0}
:root{--green:#07527a;--green-dark:#043f62;--ink:#163548;--muted:#687f8b;--line:#dce7ec;--paper:#f5f9fb}.sidebar{background:linear-gradient(180deg,#063f63 0%,#032f4c 100%)}.prisma-brand{display:block;padding:10px 8px 18px}.prisma-brand img{display:block;width:100%;height:auto;border-radius:8px;background:#fff}.prisma-brand span{display:block;margin-top:9px;text-align:center}.prisma-brand small{color:#b9d3df;font-size:9px;letter-spacing:.08em;text-transform:uppercase}.sidebar nav button.active{background:#ffffff16;box-shadow:inset 3px 0 #55a1b1}.update i{background:#55a1b1;box-shadow:0 0 0 5px #55a1b122}.profile>b{background:#17617f}.eyebrow{color:#3e8497}.primary{background:#07527a;box-shadow:0 7px 18px #07527a2b}.primary:hover{background:#043f62;box-shadow:0 10px 24px #07527a3d}.metric-green{--accent:#2f8a99;--soft:#e8f4f6}.metric-orange{--accent:#4f7897;--soft:#ebf1f5}.metric-blue{--accent:#0a5a82;--soft:#e7f0f5}.metric-purple{--accent:#568ca4;--soft:#ecf3f6}.employee-card .employee-name,.employee-balance>strong,.balance strong{color:#07527a}.balance-track i{background:linear-gradient(90deg,#07527a 0%,#55a1b1 48%,#07527a 100%)}.team-insights strong{color:#123f58}.detail-button,.back-link,.file-actions .secondary{color:#07527a}.file-metrics article:first-child{background:linear-gradient(145deg,#07527a,#0c668d);border-color:#07527a}.file-metrics .taken-card{background:#edf5f9;border-color:#d6e6ee}.file-metrics .taken-card small,.file-metrics .taken-card span{color:#688393}.file-metrics .taken-card strong{color:#225e7c}.file-metrics .permission-card{background:#eef7f7;border-color:#d8eaea}.file-metrics .permission-card small,.file-metrics .permission-card span{color:#668789}.file-metrics .permission-card strong{color:#296c70}.file-metrics .overtime-card{background:#e9f1f7;border-color:#d4e2ec}.file-metrics .overtime-card small,.file-metrics .overtime-card span{color:#617d94}.file-metrics .overtime-card strong{color:#174f73}.hour-balance.credit{background:#e8f3f5}.hour-balance.credit strong,.hour-balance.credit span{color:#276f7c}.hour-balance.owes{background:#eef3f7}.hour-balance.owes strong,.hour-balance.owes span{color:#496d83}.status.closed-status{background:#e5f0f5;color:#285f7b}.view-voucher{background:#e8f2f8;color:#215d7d}.vacation-period>i{background:#e7f1f4;color:#3f8292}.vacation-days strong{color:#07527a}.voucher-state.attached{background:#e8f4f5;color:#296d76}.calculation{background:#e7f2f5;color:#07527a}
@media(max-width:900px){.prisma-brand{padding:5px 0 15px}.prisma-brand img{width:48px;height:48px;object-fit:cover;object-position:left}.prisma-brand span{display:none}}
@media(max-width:700px){.prisma-brand{padding:0 14px 0 0}.prisma-brand img{width:150px;height:auto;object-fit:contain}.prisma-brand span{display:none}}
.balance-track.high i{background:linear-gradient(90deg,#07527a 0%,#55a1b1 48%,#07527a 100%)}.balance-track.medium i{background:linear-gradient(90deg,#2c7890 0%,#6baab2 48%,#2c7890 100%)}.balance-track.low i{background:linear-gradient(90deg,#7895a4 0%,#9bb5bf 48%,#7895a4 100%)}
.file-metrics .taken-card{background:linear-gradient(145deg,#fff0e6,#ffe5d4);border-color:#f3cdb5}.file-metrics .taken-card small,.file-metrics .taken-card span{color:#9b6544}.file-metrics .taken-card strong{color:#a54f24}.hour-balance.owes{background:linear-gradient(145deg,#fff0f0,#ffe4e5);border:1px solid #f2c5c8}.hour-balance.owes small,.hour-balance.owes strong,.hour-balance.owes span{color:#a13f48}.hour-balance.credit{background:linear-gradient(145deg,#eaf3fb,#dcecf8);border:1px solid #c9deed}.hour-balance.credit small,.hour-balance.credit strong,.hour-balance.credit span{color:#1e5f86}.prisma-brand img{image-rendering:auto;object-fit:contain}
#pageTitle{display:none}.content>header .eyebrow{margin-bottom:5px}.content>header p:last-child{margin-top:0}.file-person h2{margin-top:0}
.eye-button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid #c9dce5;border-radius:50%;background:linear-gradient(145deg,#fff,#eaf3f7);box-shadow:0 6px 16px #07527a20}.eye-glyph{position:relative;display:block;width:25px;height:15px;border:2px solid #12394d;border-radius:55% 45% 55% 45%/65% 65% 35% 35%;background:#fff;transform:none}.eye-glyph:before{content:"";position:absolute;left:50%;top:50%;width:10px;height:10px;border-radius:50%;background:#f28a24;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #c96612}.eye-glyph:after{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:#101b20;transform:translate(-50%,-50%);box-shadow:1px -1px 0 #ffffffcc}.eye-button:hover{background:linear-gradient(145deg,#fff,#dcecf3);border-color:#87b4c5;transform:scale(1.1);box-shadow:0 9px 20px #07527a38}.eye-button:hover .eye-glyph{border-color:#07527a}
.balance-track.green i{background:linear-gradient(90deg,#21865f,#49ad7e,#21865f)}.balance-track.yellow i{background:linear-gradient(90deg,#d3a91d,#efd15e,#d3a91d)}.balance-track.orange i{background:linear-gradient(90deg,#df7a25,#f2a452,#df7a25)}.balance-track.red i{background:linear-gradient(90deg,#cc4450,#ec727c,#cc4450)}.balance-legend{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}.balance-legend span{display:inline-flex;align-items:center;gap:5px;padding:4px 7px;border-radius:20px;background:#f6f8f7;color:#65766e!important;font-size:8px;font-weight:650}.balance-legend span:before{content:"";width:7px;height:7px;border-radius:50%}.balance-legend .green:before{background:#2b986c}.balance-legend .yellow:before{background:#e1bb32}.balance-legend .orange:before{background:#e78935}.balance-legend .red:before{background:#dc5661}
.eye-button .eye-glyph{position:static;display:block;width:auto;height:auto;border:0;border-radius:0;background:transparent;transform:none;font-family:"Segoe UI Emoji","Apple Color Emoji",sans-serif;font-size:24px;line-height:1}.eye-button .eye-glyph:before,.eye-button .eye-glyph:after{display:none;content:none}.eye-button:hover .eye-glyph{border:0;transform:scale(1.05)}
#vacationEditModal{padding:12px}#vacationEditModal .compact-modal{width:min(420px,100%);max-height:calc(100vh - 24px);padding:22px 24px;overflow-y:auto}#vacationEditModal .compact-modal form{margin-top:12px;gap:10px}#vacationEditModal .compact-modal h2{font-size:21px}#vacationEditModal .compact-modal .muted{margin:6px 0 0;font-size:12px}#vacationEditModal .grid-two{display:grid;grid-template-columns:1fr 1fr;gap:10px}#vacationEditModal .modal input,#vacationEditModal .modal select{padding:9px 10px}#vacationEditModal .calculation{padding:10px 12px}#vacationEditModal .current-voucher{padding:8px 10px}#vacationEditModal .form-help{padding:8px 10px;font-size:9px}#vacationEditModal .actions{position:sticky;bottom:-22px;margin:0 -24px -22px;padding:10px 24px 14px;background:#fff;border-top:1px solid var(--line)}#vacationEditModal .actions button{padding:10px 14px}@media(max-width:520px){#vacationEditModal .grid-two{grid-template-columns:1fr}}
.guest-mode #addEmployee,.guest-mode #editEmployee{display:none!important}
