@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#153d34;--text:#283f38;--muted:#71827b;--paper:#f5f7f2;--line:#dde5dd;--green:#174f40;--lime:#d4ef89;--white:#fff;--bs-primary:#174f40;--bs-body-color:#283f38}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--text);font-family:'DM Sans','Segoe UI',sans-serif;font-size:15px;line-height:1.55}h1,h2,h3,h4,h5,h6{font-family:'Manrope','Segoe UI',sans-serif;color:var(--ink);letter-spacing:-.04em}h1{font-size:clamp(28px,3.8vw,44px);font-weight:800;line-height:1.18;margin:0 0 10px}h2{font-size:23px;font-weight:750;margin:0 0 15px}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit}button,a,input,select,textarea{touch-action:manipulation}:focus-visible{outline:3px solid #83a34a;outline-offset:3px}input:not([type=checkbox]):not([type=hidden]),select,textarea{width:100%;border:1px solid #cedacf;border-radius:9px;padding:11px 13px;background:white;color:var(--text)}textarea{resize:vertical}label{font-size:13px;font-weight:600;display:block}label input,label select,label textarea{display:block;margin-top:6px}fieldset{border:0;padding:0}legend{font-size:13px;font-weight:600}.button,.text-button{cursor:pointer;border:0}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:43px;padding:11px 20px;background:var(--green);color:#fff;border:1px solid transparent;border-radius:9px;font-weight:600;line-height:1.25}.button:hover{background:#25644e;color:#fff;text-decoration:none}.button-soft{background:#edf3e7;color:var(--green);border-color:#d9e5d1}.button-soft:hover{background:#dde9d5;color:var(--green)}.button-small{padding:8px 11px;min-height:34px;font-size:12px}.text-button{color:var(--green);background:none;padding:6px 0;text-decoration:underline;font-size:12px}.button-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.portal-header{display:flex;align-items:center;justify-content:space-between;padding:24px max(5vw,24px);border-bottom:1px solid var(--line);background:white;gap:20px}.wordmark{display:flex;align-items:center;gap:10px;font-size:27px;letter-spacing:-1.5px;font-weight:800;color:var(--ink);white-space:nowrap}.wordmark:hover{text-decoration:none}.brand-icon{display:inline-grid;place-items:center;width:37px;height:37px;border-radius:11px;background:var(--ink);color:var(--lime);font-size:27px;line-height:1}.wordmark-light{font-size:17px;font-weight:500;letter-spacing:-.5px}.app-shell{max-width:1400px;margin:auto;padding:42px 4vw 60px}.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:26px}.page-heading p{color:var(--muted);margin-bottom:0}.eyebrow{font-size:10px!important;letter-spacing:.16em;font-weight:750;color:#638074!important;margin:0 0 14px!important}.today-chip{padding:8px 14px;border:1px solid var(--line);border-radius:30px;font-size:12px;white-space:nowrap}.toolbar,.surface-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:22px}.section-tabs{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:24px;border-bottom:1px solid var(--line);padding-bottom:12px;font-size:13px}.toolbar .section-tabs{margin:0}.section-tabs a{padding:6px 0;color:#698076}.section-tabs a.active{font-weight:700;color:var(--ink);box-shadow:0 13px 0 -10px var(--green)}.inline-form{display:flex;align-items:center;gap:8px}.inline-form input[type=number]{width:95px}.inline-form select{width:auto}.inline-form .button{padding:10px 14px}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-bottom:26px}.metrics article{background:#fff;border:1px solid var(--line);padding:25px;border-radius:13px}.metrics article:first-child{background:var(--ink);color:#fff;border-color:var(--ink)}.metrics article span{font-size:12px}.metrics article strong{display:block;font-family:Manrope,sans-serif;font-size:47px;font-weight:700;line-height:1.4}.metrics article small{color:#75867c;font-size:11px}.metrics article:first-child small{color:#ccdacd}.metrics article:first-child strong{color:var(--lime)}.metrics article em{font-size:14px;font-style:normal;font-weight:400;margin-left:9px}.metrics article .state-word{font-size:25px;padding:17px 0}.surface{background:white;border:1px solid var(--line);border-radius:13px;padding:27px;margin-bottom:24px}.surface-heading h2{margin:0}.narrow{max-width:480px;margin:30px auto}.split-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.muted{color:var(--muted);font-size:13px}.form-stack{display:grid;gap:17px}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}.data-table{width:100%;border-collapse:collapse;font-size:13px}.data-table th{padding:12px 14px;background:#f5f7f2;text-align:left;color:#6d8076;text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:700}.data-table td{padding:16px 14px;border-bottom:1px solid #edf1ea;vertical-align:top}.data-table td small{display:block;max-width:300px;font-size:11px;color:var(--muted);margin-top:4px;overflow-wrap:anywhere}.data-table td:first-child strong{color:var(--ink)}.status{display:inline-block;padding:4px 9px;border-radius:20px;font-size:10px;white-space:nowrap;font-weight:600}.status-aprobada{background:#e5f2df;color:#306342}.status-pendiente{background:#fcf0d8;color:#95681d}.status-rechazada{background:#fce6e3;color:#a44435}.status-cancelada{background:#eef0ed;color:#718174}.empty-state{padding:40px 20px!important;text-align:center;color:var(--muted);font-size:13px}.review-form{min-width:225px}.review-form input{padding:7px 10px!important;font-size:12px}.balance-detail{padding:17px 0;border-top:1px solid var(--line)}.balance-detail summary{display:flex;justify-content:space-between;gap:20px;cursor:pointer;font-size:13px}.balance-detail summary strong{font-size:12px;color:var(--green)}.balance-detail[open] .form-stack{margin-top:15px}.balance-detail p{margin:14px 0;color:var(--muted);font-size:12px}.calendar-wrap{overflow-x:auto}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));min-width:805px}.calendar-label{text-align:center;padding:12px;font-size:11px;color:var(--muted)}.calendar-cell{min-height:145px;border:1px solid #edf1ea;padding:9px}.calendar-date{font-size:12px;display:block;margin-bottom:8px}.is-weekend,.is-empty{background:#f7f9f4}.is-today .calendar-date{background:var(--green);color:white;border-radius:50%;width:25px;height:25px;text-align:center;line-height:25px}.calendar-event{display:block;padding:6px;margin-bottom:5px;font-size:9px;border-radius:6px;line-height:1.4}.calendar-event strong,.calendar-event span{display:block}.event-aprobada{background:#e8f3e0;color:#346145}.event-pendiente{background:#fff2dc;color:#916931;border:1px dashed #d4b373}.holiday-label{display:block;font-size:10px;color:#aa7641;margin-bottom:7px}.week-picker{display:flex;gap:9px}.week-picker label{cursor:pointer}.week-picker input{accent-color:var(--green);margin:0 5px 0 0}.holiday-list{margin-top:25px}.holiday-list>div{display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding:15px 0;font-size:12px}.request-item{padding:17px 0;border-bottom:1px solid var(--line)}.request-item>div{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px}.request-item p{font-size:12px;margin:8px 0}.app-footer{max-width:1400px;margin:auto;padding:24px 4vw;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}
/* Preserve the original screens while bringing them into the same design. */
body.bg-dark,body.bg-primary{background:var(--paper)!important;color:var(--text)!important}.card.bg-secondary,.card.bg-dark,.modal-content.bg-dark,.list-group-item.bg-dark{background:#fff!important;color:var(--text)!important;border:1px solid var(--line);border-radius:12px}.card.bg-secondary .text-light,.card.bg-dark .text-light,.modal-content.bg-dark .text-light{color:var(--text)!important}.text-muted{color:var(--muted)!important}.bg-secondary .text-warning{color:#98651b!important}.navbar.bg-primary{background:var(--ink)!important;padding:15px 22px}.navbar-brand{font-family:Manrope,sans-serif;font-size:17px}.navbar-nav{gap:4px}.navbar .nav-link{font-size:12px;padding:8px 9px!important;color:#e1eadf!important}.navbar .nav-link:hover{color:var(--lime)!important}.table-dark{--bs-table-bg:white;--bs-table-color:var(--text);--bs-table-border-color:var(--line);--bs-table-hover-bg:#f0f5ea;--bs-table-hover-color:var(--text)}.table-secondary{--bs-table-bg:#eaf0e6;--bs-table-color:var(--ink)}.btn-primary,.btn-success{background:var(--green);border-color:var(--green)}.btn-outline-light{color:var(--ink);border-color:var(--line)}.btn-outline-light:hover{background:#e9f0e3;color:var(--ink)}.form-control,.form-select{font-size:14px;border-color:var(--line)}.container-fluid.py-4{max-width:1450px;padding:35px 4vw!important}.kiosco-body{background:var(--paper)!important;color:var(--text)!important}.kiosco-card{background:white!important;border:1px solid var(--line)!important;box-shadow:0 20px 65px #163e3410!important;margin:20px;color:var(--text)!important}.kiosco-titulo,.confirm-nombre,.kiosco-label{color:var(--ink)!important}.kiosco-subtitulo,.kiosco-link,.kiosco-back{color:var(--muted)!important}.kiosco-btn-primary{background:var(--green)!important}.pin-key{background:#f2f6ed!important;color:var(--ink)!important;border-color:var(--line)!important}.pin-ok{background:var(--green)!important;color:white!important}.pin-dot{border-color:#9eb39c!important}.pin-dot.filled{background:var(--green)!important}.subtipo-btn{background:#f5f7f2!important;border-color:#d6e0d3!important;color:var(--ink)!important}.confirm-hora{color:var(--ink)!important}.kiosco-input{color:var(--ink)!important}.table .text-light{color:var(--ink)!important}.text-info{color:#326858!important}.nav-tabs .text-light{color:var(--ink)!important}.alert-secondary{background:#edf3e7;color:var(--ink);border-color:var(--line)}
@media(max-width:900px){.metrics{gap:12px}.metrics article{padding:18px}.split-layout{grid-template-columns:1fr}.app-shell{padding:28px 20px}.surface{padding:22px}.navbar-brand{max-width:70%;white-space:normal}.app-footer span{display:none}}
@media(max-width:600px){.metrics{grid-template-columns:1fr}.metrics article strong{font-size:37px}.page-heading{align-items:flex-start}.today-chip{display:none}.portal-header{padding:18px 20px}.portal-header>a:last-child{font-size:11px;text-align:right}.wordmark-light{font-size:14px}.section-tabs{gap:12px;font-size:11px}.form-two{grid-template-columns:1fr}.app-footer{flex-direction:column;gap:8px;padding:24px}.surface-heading{align-items:flex-start}.balance-detail summary{gap:8px}.kiosco-card{padding:28px 22px!important}.app-shell{padding:25px 14px}.surface{padding:19px}}
@media print{.navbar,.portal-header,.app-footer,.toolbar,.button,.review-form{display:none!important}.surface{border:0;break-inside:avoid}.app-shell{padding:0}.calendar-grid{min-width:0}}

.registration-layout{grid-template-columns:repeat(2,minmax(0,1fr))}.registration-layout>*{min-width:0}.registration-layout .form-two{grid-template-columns:repeat(2,minmax(0,1fr))}.registration-layout select{min-width:0;max-width:100%;text-overflow:ellipsis}.registration-layout .check-label{display:flex;gap:10px;align-items:flex-start}.registration-layout .check-label input{flex:none;margin-top:4px}@media(max-width:900px){.registration-layout{grid-template-columns:minmax(0,1fr)}}@media(max-width:600px){.registration-layout .form-two{grid-template-columns:minmax(0,1fr)}}
