:root{--navy:#112c45;--navy2:#22435c;--teal:#087e78;--teal2:#e8f7f4;--bg:#f5f8fb;--text:#22364d;--muted:#63778b;--line:#dfebf0;--red:#a53e4b;--redbg:#fdeef0;--green:#1d7751;--greenbg:#e5f6eb;--amber:#8b650b;--amberbg:#fff4d9;font-family:Inter,'Segoe UI',Arial,sans-serif;color:var(--text)}*{box-sizing:border-box}body{margin:0;background:var(--bg);font-size:14px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.6;cursor:not-allowed}h1,h2,h3,p{margin-top:0}h1{font-size:25px;letter-spacing:-.6px}h2{font-size:18px;letter-spacing:-.3px}a{color:var(--teal)}.loading{padding:70px;text-align:center;color:var(--muted)}.app{min-height:100vh;display:flex}.sidebar{background:var(--navy);color:#fff;width:248px;flex-shrink:0;min-height:100vh;padding:23px 15px;display:flex;flex-direction:column}.logo{display:flex;gap:12px;align-items:center;padding:8px 10px 25px;border-bottom:1px solid #456078}.logo-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(120deg,#07847d,#dfad4e);font-size:19px;font-weight:900}.logo strong{font-size:12px;line-height:1.45;display:block}.logo small{display:block;font-size:11px;color:#b7ccdc;margin-top:2px}.nav{display:grid;gap:7px;padding-top:25px}.nav button{border:0;background:transparent;color:#c9d8e4;text-align:left;padding:13px 14px;border-radius:10px;font-weight:650;font-size:13px}.nav button:hover,.nav button.active{background:#294c66;color:white}.side-bottom{margin-top:auto;border-top:1px solid #405a70;padding:18px 11px 5px;color:#b9ceda;font-size:11px;line-height:1.65}.main{flex:1;min-width:0}.topbar{padding:20px 30px;display:flex;justify-content:space-between;align-items:center;gap:20px;background:white;border-bottom:1px solid var(--line)}.topbar .site{font-size:12px;color:var(--muted)}.topbar .user{text-align:right}.topbar .user strong{display:block;font-size:13px}.topbar .user small{display:block;color:var(--muted);margin-top:3px}.topbar-actions{display:flex;align-items:center;gap:14px}.content{max-width:1260px;margin:auto;padding:28px 30px 60px}.heading{display:flex;align-items:flex-end;justify-content:space-between;gap:15px;margin-bottom:21px}.heading h1{margin-bottom:6px}.sub{color:var(--muted);font-size:13px;line-height:1.6}.eyebrow{color:var(--teal);font-weight:800;letter-spacing:1.2px;font-size:11px;text-transform:uppercase;margin-bottom:9px}.card{background:white;border:1px solid var(--line);border-radius:15px;box-shadow:0 8px 25px #102f4910}.pad{padding:22px}.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin-bottom:20px}.stat{padding:21px}.stat .kicker{font-size:12px;color:var(--muted)}.stat .value{font-size:31px;font-weight:800;margin:13px 0 6px}.stat .foot{font-size:11px;color:var(--muted)}.two{display:grid;grid-template-columns:1.45fr 1fr;gap:18px}.button{padding:11px 16px;border-radius:9px;border:1px solid #d7e3e8;background:white;color:var(--text);font-size:12px;font-weight:750;display:inline-flex;align-items:center;justify-content:center;gap:8px;text-decoration:none;min-height:40px}.button.primary{background:var(--teal);border-color:var(--teal);color:white}.button.navy{background:var(--navy);border-color:var(--navy);color:white}.button.danger{border-color:#f1d3da;background:#fff7f8;color:var(--red)}.button.small{font-size:11px;padding:7px 11px;min-height:32px}.button:hover:not(:disabled){filter:brightness(.96)}.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #62c5bb;outline-offset:2px}.notice{background:#edf7f7;border:1px solid #c6e6e3;color:#30676a;padding:14px 16px;border-radius:10px;font-size:12px;line-height:1.6;margin-bottom:18px}.notice.warn{background:#fff8e9;border-color:#f2e0b9;color:#78590e}.notice.error{background:#ffeff1;border-color:#f2cbd1;color:#9b3747}.muted{color:var(--muted)}.table-wrap{overflow-x:auto}.table{width:100%;border-collapse:collapse;text-align:left;font-size:12px}.table th{padding:13px 15px;background:#f8fafc;color:#728498;font-size:10px;letter-spacing:.5px;text-transform:uppercase;white-space:nowrap;border-bottom:1px solid var(--line)}.table td{padding:15px;border-bottom:1px solid #eaf0f3;vertical-align:middle}.table tr:last-child td{border:0}.table td small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.code{font-weight:800;color:var(--navy)}.badge{display:inline-block;padding:6px 10px;border-radius:99px;font-size:10px;font-weight:800;white-space:nowrap}.badge.approved{background:var(--greenbg);color:var(--green)}.badge.rejected,.badge.returned{background:var(--redbg);color:var(--red)}.badge.pending_supervisor,.badge.pending_hr,.badge.pending_authority{background:var(--amberbg);color:var(--amber)}.empty{color:var(--muted);text-align:center;padding:50px 12px;line-height:1.6}.panel-title{padding:20px 22px 15px;display:flex;align-items:center;justify-content:space-between;gap:15px}.panel-title h2{margin:0}.flowstep{display:flex;align-items:flex-start;gap:12px;margin-bottom:21px;font-size:13px}.flowstep .number{flex:none;display:grid;place-items:center;background:var(--teal2);width:30px;height:30px;border-radius:50%;font-weight:800;color:var(--teal)}.flowstep span{color:var(--muted);font-size:12px;display:block;margin-top:3px}.formgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px}.field{display:flex;flex-direction:column;gap:8px}.field.wide{grid-column:1/-1}.field label{font-size:12px;font-weight:750}.field input,.field select,.field textarea{width:100%;border:1px solid #cfdee7;padding:12px;border-radius:9px;background:white;color:var(--text);font-size:13px}.field textarea{min-height:105px;resize:vertical;line-height:1.5}.field small{color:var(--muted);font-size:11px}.actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;flex-wrap:wrap;margin-top:22px}.filter{display:flex;gap:10px;flex-wrap:wrap;padding:0 20px 18px}.filter input,.filter select{min-width:170px;flex:1;padding:10px 12px;border:1px solid #d4e1e7;border-radius:9px;background:white}.modal-bg{position:fixed;inset:0;background:#0a2136a6;display:grid;place-items:center;padding:18px;z-index:9}.modal{background:white;width:min(790px,100%);max-height:93vh;overflow:auto;border-radius:17px;box-shadow:0 20px 80px #0003}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:15px;padding:25px 25px 14px}.modal-body{padding:8px 25px 26px}.detailgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.detailgrid .datum{font-size:12px;line-height:1.65;overflow-wrap:anywhere}.detailgrid .datum small{display:block;color:var(--muted);margin-bottom:3px}.details-reason{white-space:pre-wrap}.events{border-left:2px solid #d0e7e2;padding-left:21px;display:grid;gap:15px;margin-top:12px}.event{position:relative;font-size:12px;line-height:1.5}.event::before{content:'';position:absolute;width:9px;height:9px;background:var(--teal);border:3px solid white;border-radius:50%;left:-28px;top:3px;box-shadow:0 0 0 1px #addad4}.event small{display:block;color:var(--muted);margin:3px 0}.modal h3{font-size:14px;margin-top:25px}.modal textarea{padding:12px;min-height:80px;resize:vertical;border:1px solid #cfdee7;border-radius:9px;width:100%;line-height:1.5}.modal-foot{padding:15px 25px 22px;background:#f8fafb;border-top:1px solid var(--line)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:25px}.login-panel{max-width:460px;width:100%;overflow:hidden}.login-head{background:var(--navy);color:#fff;padding:32px 32px 27px}.login-head .eyebrow{color:#68cec3}.login-head h1{font-size:24px;margin:0 0 8px}.login-head p{font-size:12px;color:#c6d7e3;line-height:1.6;margin:0}.login-form{padding:27px 32px}.login-form .field{margin-bottom:18px}.login-form .button{width:100%}.footer{font-size:11px;color:var(--muted);line-height:1.6;padding:21px 32px;border-top:1px solid var(--line);background:#f9fbfc}.tagdemo{font-size:10px;font-weight:800;border-radius:99px;color:#7b5c14;background:#fff0cb;padding:7px 11px}.errorpage{min-height:100vh;display:grid;place-items:center;padding:28px}.errorpage .card{max-width:580px}.loginhelp{font-size:12px;color:var(--muted);line-height:1.7}.statusbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.footerbar{margin-top:22px;font-size:11px;color:var(--muted);line-height:1.7}.print-only{display:none}#toast{position:fixed;bottom:18px;right:18px;z-index:12;max-width:350px}#toast>div{background:var(--navy);color:#fff;padding:14px 18px;border-radius:10px;box-shadow:0 12px 35px #102c4455;font-size:13px;line-height:1.5}#toast>div.error{background:#9a3747}@media(max-width:1000px){.statgrid{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}}@media(max-width:760px){.app{display:block}.sidebar{position:relative;min-height:auto;width:auto;padding:13px}.logo{padding:7px 6px 11px}.nav{display:flex;overflow-x:auto;padding:12px 0 0}.nav button{white-space:nowrap;padding:10px 12px}.side-bottom{display:none}.topbar{padding:14px 17px;align-items:flex-start}.topbar .site{font-size:11px}.topbar-actions{gap:8px}.topbar .user strong{font-size:11px}.topbar .user small{font-size:10px}.content{padding:22px 15px 45px}.heading{align-items:flex-start;flex-direction:column}.heading h1{font-size:23px}.statgrid{gap:9px}.stat{padding:16px}.stat .value{font-size:26px}.formgrid,.detailgrid{grid-template-columns:1fr}.field.wide{grid-column:auto}.modal-head,.modal-body{padding-left:18px;padding-right:18px}.modal-foot{padding:14px 18px}.actions{justify-content:stretch}.actions .button{flex:1}.login-head,.login-form,.footer{padding-left:23px;padding-right:23px}}@media(max-width:420px){.topbar{flex-direction:column;gap:8px}.topbar-actions{width:100%;justify-content:space-between}.statgrid{grid-template-columns:1fr 1fr}}

[hidden]{display:none!important}
@media(max-width:760px){.table thead{display:none}.table tbody tr{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2px 10px;padding:13px 16px;border-bottom:1px solid #e7eef2}.table td{border:0!important;padding:8px 2px;overflow-wrap:anywhere}.table td:first-child,.table td:nth-child(2){font-size:12px}.table td:nth-child(3),.table td:nth-child(4){font-size:11px}.table td:nth-child(5),.table td:nth-child(6){grid-column:1/-1}.table td:nth-child(5){padding-top:10px}.table td:nth-child(6) .button{width:100%}}
/* Controles de acceso y recuperación, edición V2. */
.login-form a:focus-visible{outline:2px solid #087e78;outline-offset:3px}
