:root{--forest:#3f6212;
 --deep:#18181b;
 --sky:#a3e635;
 --sky-soft:#ecfccb;
 --mint:#f7fee7;
 --lime:#a3e635;
 --lime-deep:#65a30d;
 --ink:#18181b;
 --muted:#52525b;
 --canvas:#e5e7eb;
 --line:#d4d4d8;
--amber:#a96800;
--red:#bd3434;
--blue:#2879b9;
 --shadow:0 14px 34px rgba(24,24,27,.1)}*{box-sizing:border-box}html,body{overflow-x:hidden;overflow-x:clip;max-width:100%}
#page{min-width:0;overflow-x:hidden;overflow-x:clip}
.page{min-width:0}body{margin:0;
font-family:"Segoe UI Variable","Segoe UI",sans-serif;
color:var(--ink);
 background:radial-gradient(900px 600px at 104% -14%,#bef264 0%,#d9f99d 20%,transparent 55%),radial-gradient(760px 580px at -14% 112%,#3f3f46 0%,#d4d4d8 34%,transparent 64%),radial-gradient(560px 330px at 55% 40%,#f7fee7 0%,transparent 70%),linear-gradient(135deg,#f4f4f5 0%,var(--canvas) 50%,#d4d4d8 100%);
font-size:14px}button,input,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;
display:grid;
overflow-x:hidden;
overflow-x:clip;
grid-template-columns:248px 1fr}.sidebar{background:radial-gradient(430px 350px at -20% 115%,#365314 0%,transparent 62%),linear-gradient(165deg,#09090b 0%,var(--deep) 52%,#27272a 100%);
color:#e5ebf2;
padding:18px 12px;
display:flex;
flex-direction:column;
min-height:100vh;
position:fixed;
width:248px;
z-index:4}.brand{display:flex;
align-items:center;
gap:10px;
padding:7px 10px 25px;
color:#fff}.brand b{font-size:14px;
display:block}.brand small,.profile small{display:block;
color:#a5b8cd;
font-size:11px;
margin-top:2px}.brand-mark{display:grid;
place-items:center;
background:#fff;
color:var(--deep);
font-size:12px;
font-weight:800;
width:31px;
height:31px;
border-radius:9px}.profile{margin:0 7px 25px;
padding:11px 10px;
border-radius:11px;
background:rgba(255,255,255,.09);
display:flex;
gap:9px;
align-items:center;
font-size:12px}.avatar,.top-avatar{display:grid;
place-items:center;
width:28px;
height:28px;
border-radius:50%;
background:#d3deeb;
color:var(--deep);
font-size:10px;
font-weight:700}.nav-label{font-size:10px;
letter-spacing:.07em;
margin:20px 11px 7px;
color:#8da2b9;
font-weight:bold}.nav-item{width:100%;
border:0;
background:transparent;
color:#c8d3df;
display:flex;
align-items:center;
text-align:left;
gap:11px;
padding:10px 11px;
border-radius:9px;
font-size:13px;
 margin:1px 0}.nav-item:hover{background:#0b3b70;
 color:#fff}.nav-item.active{background:linear-gradient(105deg,#0d4b86,#087eae);
color:#fff;
font-weight:bold}.icon{font-size:17px;
width:18px;
text-align:center;
line-height:1}.nav-item em{font-size:10px;
font-style:normal;
background:#f2b94c;
color:#4a3200;
border-radius:99px;
padding:2px 6px;
margin-left:auto}.sidebar-foot{margin:auto 9px 3px;
padding-top:20px;
font-size:11px;
color:#a5b8cd}.secure-dot{display:inline-block;
width:7px;
height:7px;
background:#8de0ae;
border-radius:50%;
margin-right:4px}.main{grid-column:2;
min-width:0;
overflow-x:hidden;
overflow-x:clip}.topbar{height:72px;
background:#fff;
border-bottom:1px solid var(--line);
padding:0 32px;
display:flex;
justify-content:space-between;
align-items:center}.crumb b{display:block;
font-size:15px}.crumb span{font-size:11px;
color:var(--muted);
margin-top:3px;
display:block}.top-actions{display:flex;
gap:14px;
align-items:center}.icon-button,.help,.more{border:0;
background:transparent;
color:var(--muted);
position:relative}.notification i{position:absolute;
right:-5px;
top:-6px;
background:var(--red);
color:#fff;
border-radius:50%;
font-style:normal;
font-size:9px;
width:15px;
height:15px;
display:grid;
place-items:center}.help{border:1px solid var(--line);
width:26px;
height:26px;
border-radius:50%;
font-weight:bold}.top-avatar{width:31px;
height:31px}.nav-toggle,.mobile-close{display:none}.page{padding:32px}.page-intro{display:flex;
align-items:flex-end;
justify-content:space-between;
margin-bottom:24px}.eyebrow{font-weight:700;
letter-spacing:.07em;
color:var(--forest);
font-size:10px;
margin:0 0 7px}h1,h2,p{margin-top:0}h1{font-size:28px;
letter-spacing:-.025em;
margin-bottom:6px}h2{font-size:16px;
margin-bottom:5px}.muted{color:var(--muted);
margin-bottom:0}.intro-actions{display:flex;
gap:10px}.button{border:0;
border-radius:10px;
padding:10px 14px;
font-weight:700;
display:inline-flex;
align-items:center;
gap:7px;
justify-content:center}.button.primary{background:var(--forest);
color:#fff}.button.primary:hover{background:var(--deep)}.button.secondary{background:#fff;
color:var(--forest);
border:1px solid #c7cfd8}.button.small{padding:7px 10px;
font-size:12px}.button.full{width:100%;
padding:13px}.filter-row{display:flex;
gap:9px;
flex-wrap:wrap;
margin-bottom:22px}.filter{padding:9px 11px;
border:1px solid var(--line);
background:#fff;
color:#424c57;
border-radius:9px;
font-size:12px}.filter b{padding-left:17px}.filter.ghost{background:transparent}.metrics{display:grid;
grid-template-columns:repeat(4,1fr);
gap:16px;
margin-bottom:20px}.metric{background:#fff;
border:1px solid #edeff1;
border-radius:14px;
padding:20px;
box-shadow:var(--shadow);
display:flex;
gap:13px;
align-items:flex-start}.metric-icon{width:39px;
height:39px;
display:grid;
place-items:center;
border-radius:11px;
font-size:19px}.metric-icon.green{background:var(--mint);
color:var(--forest)}.metric-icon.amber{background:#fff2d9;
color:var(--amber)}.metric-icon.blue{background:#e8f3fc;
color:var(--blue)}.metric-icon.red{background:#fbe8e8;
color:var(--red)}.metric p{font-size:12px;
color:var(--muted);
margin:0 0 5px}.metric h2{font-size:23px;
margin:0 0 4px}.metric small{font-size:11px}.positive{color:var(--forest)}.negative{color:var(--red)}.alert-banner{background:#fff8e8;
border:1px solid #f1dea5;
border-radius:12px;
padding:16px 18px;
display:flex;
align-items:center;
gap:12px;
margin-bottom:20px}.alert-icon{display:grid;
place-items:center;
border-radius:50%;
width:26px;
height:26px;
background:#f5c453;
color:#593a00;
font-weight:bold}.alert-banner p{color:#6a5a2f;
font-size:12px;
margin:3px 0 0}.text-action,.link-button{margin-left:auto;
background:transparent;
border:0;
color:var(--forest);
font-weight:bold;
white-space:nowrap}.dashboard-grid{display:grid;
grid-template-columns:1.5fr .85fr;
gap:20px}.panel{background:#fff;
border:1px solid #edeff1;
border-radius:14px;
box-shadow:var(--shadow);
padding:20px}.panel-head{display:flex;
align-items:flex-start;
justify-content:space-between;
margin-bottom:15px}.panel-head p{margin-bottom:0;
color:var(--muted);
font-size:12px}.mini-row{display:grid;
grid-template-columns:35px 1fr 68px 125px 20px;
align-items:center;
gap:9px;
padding:11px 0;
border-top:1px solid var(--line)}.person-avatar{display:grid;
place-items:center;
background:#e5ebf1;
color:var(--forest);
width:32px;
height:32px;
border-radius:50%;
font-weight:700;
font-size:10px}.person-info b,.table-person b{display:block;
font-size:12px}.person-info small,.table-person small,td small{display:block;
color:var(--muted);
font-size:11px;
margin-top:3px}.balance b,.due b{font-size:12px;
display:block}.balance small{font-size:10px;
color:var(--muted)}.due .chip{margin-top:3px}.row-arrow{border:0;
background:#eff2f6;
border-radius:50%;
color:var(--forest);
width:22px;
height:22px}.chip{font-size:10px;
font-weight:bold;
padding:4px 7px;
border-radius:99px;
white-space:nowrap;
display:inline-block}.chip.success{color:#12613f;
background:#e0f2e8}.chip.warning{color:#865300;
background:#fff1d6}.chip.danger{color:#a72d2d;
background:#fbe2e2}.chip.info,.chip.blue{color:#176498;
background:#e2f1fa}.chip.neutral{color:#626972;
background:#eeeff1}.donut-layout{display:flex;
align-items:center;
gap:23px;
padding-top:12px}.donut{width:120px;
height:120px;
border-radius:50%;
background:conic-gradient(var(--forest) 0 55%,#efb848 55% 77%,#50a3d8 77% 91%,#db6464 91%);
display:grid;
place-content:center;
text-align:center;
position:relative}.donut:after{content:"";
background:#fff;
width:84px;
height:84px;
border-radius:50%;
position:absolute;
inset:18px}.donut strong,.donut span{position:relative;
z-index:1}.donut strong{font-size:24px}.donut span{font-size:10px;
color:var(--muted)}.legend p{font-size:11px;
margin:8px 0;
color:#575f68}.legend b{float:right;
margin-left:17px;
color:var(--ink)}.dot{width:7px;
height:7px;
display:inline-block;
border-radius:50%;
margin-right:6px}.dot.green{background:var(--forest)}.dot.amber{background:#efb848}.dot.blue{background:#50a3d8}.dot.red{background:#db6464}.trend-panel{grid-column:1/-1}.bar-chart{height:150px;
display:flex;
align-items:flex-end;
gap:8%;
padding:8px 15px 0;
border-bottom:1px solid var(--line)}.bar-chart div{height:100%;
flex:1;
display:flex;
align-items:center;
justify-content:flex-end;
flex-direction:column;
gap:7px}.bar-chart span{width:20px;
background:#7295be;
border-radius:5px 5px 0 0}.bar-chart div:nth-child(6) span{background:var(--forest)}.bar-chart small{color:var(--muted);
font-size:10px}.chart-select{font-size:11px;
border:1px solid var(--line);
padding:7px;
border-radius:7px}.table-panel{padding:0}.table-toolbar,.pagination{display:flex;
padding:14px 20px;
align-items:center;
justify-content:space-between;
font-size:12px;
color:var(--muted)}.table-scroll{overflow:auto}table{border-collapse:collapse;
width:100%;
min-width:820px}th{background:#f8f9fa;
text-align:left;
padding:11px 20px;
font-size:10px;
letter-spacing:.04em;
color:#656d77}td{padding:13px 20px;
border-top:1px solid var(--line);
font-size:12px;
vertical-align:middle}td b{font-size:12px}.table-person{display:flex;
gap:9px;
align-items:center}.pagination{border-top:1px solid var(--line);
justify-content:flex-end;
gap:14px}.pagination button{border:1px solid var(--line);
background:#fff;
border-radius:5px;
width:25px;
height:25px}.short{margin-bottom:22px}.tabs{border-bottom:1px solid var(--line);
display:flex;
gap:22px;
margin-bottom:20px}.tabs button{border:0;
background:transparent;
padding:0 0 11px;
color:var(--muted);
font-weight:bold}.tabs button.active{color:var(--forest);
border-bottom:2px solid var(--forest)}.gantt-tools{display:flex;
justify-content:space-between;
gap:15px;
align-items:flex-start}.gantt-legend{display:flex;
gap:5px;
align-items:center}.gantt-panel{padding:0;
overflow:hidden}.gantt{min-width:810px}.gantt-head,.gantt-row{display:grid;
grid-template-columns:210px repeat(14,1fr)}.gantt-head{background:#f8f9fa}.gantt-head span{padding:13px 16px;
font-size:11px;
font-weight:bold}.gantt-head b{text-align:center;
border-left:1px solid var(--line);
font-size:11px;
padding:6px 0}.gantt-head small{display:block;
font-size:9px;
color:var(--muted);
font-weight:normal}.gantt-row>div{padding:11px 16px;
border-top:1px solid var(--line)}.gantt-row>div small{display:block;
color:var(--muted);
font-size:10px;
margin-top:3px}.gantt-cell{border-left:1px solid #edeff1;
border-top:1px solid var(--line);
margin:7px 0}.vac-bar{border-radius:3px;
border:0;
margin:11px 0}.approved{background:var(--forest)}.pending{background:#efbd4f}.registered{background:#4a99ce}.blocked{background:#a9afb5}.capacity-note{padding:13px 16px;
background:#f5f7fa;
color:#314358;
font-size:12px}.modal-backdrop{position:fixed;
inset:0;
background:rgba(6,18,32,.45);
display:grid;
place-items:center;
padding:20px;
z-index:10}.modal{position:fixed;
top:50%;
left:50%;
transform:translate(-50%,-50%);
z-index:11;
background:#fff;
border-radius:16px;
padding:28px;
max-width:650px;
width:100%;
box-shadow:0 24px 80px rgba(0,0,0,.22)}.modal h2{font-size:21px}.modal-close{position:absolute;
right:18px;
top:17px;
border:0;
background:#eff1f4;
width:28px;
height:28px;
border-radius:50%;
font-size:18px}.option{display:grid;
grid-template-columns:repeat(3,1fr);
gap:10px;
border:1px solid var(--line);
border-radius:10px;
margin:14px 0 0;
padding:12px}.option.optional{opacity:.76}.option legend{font-size:12px;
font-weight:bold;
color:var(--forest);
padding:0 4px}.option label,.comment{font-size:11px;
font-weight:bold;
color:#515962}.option input,.comment textarea{width:100%;
border:1px solid var(--line);
border-radius:7px;
padding:8px;
margin-top:5px;
color:var(--ink)}.comment{display:block;
margin-top:14px}.comment textarea{height:62px;
resize:vertical}.modal-actions{display:flex;
justify-content:flex-end;
gap:9px;
margin-top:18px}.toast{position:fixed;
right:22px;
bottom:22px;
background:#14283e;
color:#fff;
padding:13px 16px;
border-radius:10px;
box-shadow:0 12px 30px rgba(0,0,0,.2);
z-index:30;
font-weight:bold;
font-size:12px}.portal{min-height:100vh;
display:grid;
grid-template-columns:1.1fr .9fr;
background:#fff}.portal-art{background:var(--deep);
color:#fff;
padding:40px 9%;
display:flex;
flex-direction:column;
position:relative;
overflow:hidden}.portal-art:after{content:"";
position:absolute;
right:-130px;
bottom:-150px;
width:510px;
height:510px;
border:80px solid rgba(109,157,211,.17);
border-radius:50%}.portal-brand{display:flex;
gap:10px;
align-items:center;
font-size:13px;
position:relative;
z-index:1}.portal-copy{max-width:510px;
margin:auto 0;
position:relative;
z-index:1}.portal-copy h1{font-size:48px;
line-height:1.04;
letter-spacing:-.04em;
margin:10px 0 18px}.portal-copy p:not(.eyebrow){font-size:16px;
line-height:1.6;
color:#c2cdda;
max-width:440px}.portal-copy .eyebrow{color:#9ab8db}.portal-points{margin-top:31px;
display:grid;
gap:12px;
font-size:13px;
color:#d8e1eb}.portal-points span{display:flex;
align-items:center;
gap:8px}.portal-foot{color:#98aec7;
font-size:11px;
margin:0;
position:relative;
z-index:1}.portal-access{display:grid;
place-items:center;
padding:30px}.access-card{max-width:400px;
width:100%}.portal-icon{background:var(--mint);
color:var(--forest);
width:47px;
height:47px;
border-radius:14px;
display:grid;
place-items:center;
font-size:25px;
margin-bottom:22px}.access-card h2{font-size:26px;
margin:0 0 8px}.access-card>p:not(.eyebrow):not(.admin-link){color:var(--muted);
line-height:1.5;
margin-bottom:25px}.access-card label{font-size:12px;
font-weight:bold;
display:block;
margin-bottom:6px}.dni-input{position:relative;
margin-bottom:12px}.dni-input input{border:1px solid #c6cdd5;
width:100%;
padding:13px;
border-radius:10px;
font-size:15px}.dni-input span{position:absolute;
right:13px;
top:11px;
color:#a6b1bd}.security-note{display:block;
color:var(--muted);
line-height:1.45;
margin:15px 0;
font-size:11px}.admin-link{font-size:12px;
color:var(--muted);
text-align:center;
margin-top:25px}.admin-link a{color:var(--forest);
font-weight:bold;
text-decoration:none}.portal-home{min-height:100vh}.portal-header{height:68px;
background:#fff;
border-bottom:1px solid var(--line);
padding:0 max(28px,6vw);
display:flex;
align-items:center;
justify-content:space-between}.portal-logo{display:flex;
gap:9px;
align-items:center;
font-size:14px}.portal-header>div:last-child{display:flex;
align-items:center;
gap:14px}.welcome{font-size:12px;
color:var(--muted)}.portal-content{max-width:1120px;
padding:40px 28px;
margin:auto}.portal-title{display:flex;
justify-content:space-between;
align-items:end;
margin-bottom:22px}.portal-summary{display:grid;
grid-template-columns:repeat(3,1fr);
background:var(--deep);
border-radius:15px;
overflow:hidden;
margin-bottom:20px}.portal-summary article{padding:21px 25px;
color:#cad7e5;
border-right:1px solid rgba(255,255,255,.15)}.portal-summary article:last-child{border:0}.portal-summary span{font-size:12px}.portal-summary b{font-size:32px;
color:#fff;
display:block;
margin:8px 0}.portal-summary b small{font-size:14px}.portal-summary p{font-size:11px;
margin:0;
color:#a6b7ca}.portal-grid{display:grid;
grid-template-columns:1.35fr .85fr;
gap:20px}.request-line{display:grid;
grid-template-columns:43px 1fr auto;
gap:11px;
align-items:center;
padding:11px 0;
border-top:1px solid var(--line)}.request-date{background:#e8eef5;
color:var(--forest);
border-radius:9px;
text-align:center;
padding:6px;
font-size:10px;
font-weight:bold}.request-date b{display:block;
font-size:17px}.muted-date{background:#eeeff1;
color:#626972}.request-line b,.request-line small{display:block;
font-size:12px}.request-line small{color:var(--muted);
margin-top:3px}.personal-month{display:grid;
grid-template-columns:38px 1fr;
gap:7px;
align-items:center;
border-top:1px solid var(--line);
padding:11px 0;
font-size:11px}.personal-month>b{color:var(--muted)}.personal-month span{padding:7px;
border-radius:6px;
font-size:10px}.personal-month .approved{background:#dee6f0;
color:#0a3567}.personal-month .available{background:#e4f1fa;
color:#176498}.personal-month .blocked{background:#f0f1f2;
color:#666d75}.personal-data{margin-top:20px;
display:grid;
grid-template-columns:1.3fr 1fr 1fr auto;
align-items:center;
gap:15px}.personal-data h2{margin-bottom:5px}.personal-data p{font-size:12px;
color:var(--muted);
margin:0}.personal-data b,.personal-data small{display:block;
font-size:12px}.personal-data small{color:var(--muted);
font-size:10px;
margin-top:4px}
@media(max-width:1050px){.metrics{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.trend-panel{grid-column:auto}.portal-copy h1{font-size:39px}.portal-grid{grid-template-columns:1fr}.personal-data{grid-template-columns:1fr 1fr}}
@media(max-width:780px){.app-shell{grid-template-columns:1fr}.main{grid-column:1}.sidebar{transform:translateX(-100%);
transition:transform .2s ease;
width:258px;
box-shadow:10px 0 40px rgba(0,0,0,.2)}.nav-open .sidebar{transform:translateX(0)}.nav-open .nav-backdrop{display:block;
position:fixed;
inset:0;
background:rgba(0,0,0,.3);
z-index:3}.nav-toggle,.mobile-close{display:block;
border:0;
background:transparent;
font-size:22px}.nav-toggle{margin-right:12px}.mobile-close{margin-left:auto;
color:#fff}.topbar{padding:0 18px;
justify-content:flex-start}.top-actions{margin-left:auto}.top-actions .help{display:none}.page{padding:24px 16px}.page-intro{align-items:flex-start;
gap:17px;
flex-direction:column}.intro-actions{width:100%}.intro-actions .button{flex:1}.metrics{gap:10px}.metric{padding:15px}.metric h2{font-size:20px}.metric-icon{width:34px;
height:34px}.mini-row{grid-template-columns:34px 1fr 69px 20px}.due{display:none}.alert-banner{align-items:flex-start}.text-action{white-space:normal;
text-align:right}.donut-layout{justify-content:center}.gantt-tools{flex-direction:column}.portal{grid-template-columns:1fr}.portal-art{min-height:310px;
padding:26px}.portal-copy{margin:auto 0}.portal-copy h1{font-size:34px}.portal-copy p:not(.eyebrow){font-size:14px}.portal-foot{display:none}.portal-access{padding:32px 24px}.portal-summary{grid-template-columns:1fr}.portal-summary article{border-right:0;
border-bottom:1px solid rgba(255,255,255,.15)}.portal-title{align-items:flex-start;
gap:15px;
flex-direction:column}.personal-data{grid-template-columns:1fr;
gap:9px}.portal-header{padding:0 17px}.welcome{display:none}.option{grid-template-columns:1fr}.modal{padding:23px 17px}.gantt-legend{flex-wrap:wrap}.filter-row.compact{flex-wrap:nowrap;
overflow:auto;
padding-bottom:3px}.search-box{min-width:230px}.portal-content{padding:28px 16px}}
.search-box{display:flex;
align-items:center;
background:#fff;
border:1px solid var(--line);
border-radius:9px;
padding:0 10px;
color:var(--muted)}.search-box input{border:0;
outline:0;
padding:9px 7px;
width:220px;
background:transparent;
 font-size:12px}.dni-input input.has-password-toggle{padding-right:48px}.password-toggle{position:absolute;
 right:7px;
 top:6px;
 width:36px;
 height:36px;
 padding:0;
 border:0;
 border-radius:10px;
 background:transparent;
 color:var(--forest);
 font-size:17px;
 line-height:1}.password-toggle:hover{background:var(--mint)}.password-toggle:focus-visible{outline:2px solid var(--forest);
 outline-offset:1px}
