:root{--navy: #13293d;--navy-2: #1d3f5e;--teal: #0e7c86;--teal-l: #15a3ae;--teal-bg: #e3f4ef;--amber: #e9a820;--amber-bg: #fff8e8;--coral: #e76f51;--coral-bg: #fdeae3;--bg: #eef2f7;--card: #ffffff;--txt: #1e2a38;--muted: #64748b;--line: #e2e8f0;--radius: 14px;--shadow: 0 1px 2px rgba(19, 41, 61, .06), 0 6px 20px rgba(19, 41, 61, .07)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:Inter,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--txt);line-height:1.55;min-height:100vh}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}:focus-visible{outline:3px solid var(--teal-l);outline-offset:2px;border-radius:6px}.he-shell{min-height:100vh;display:flex;flex-direction:column}.he-header{background:linear-gradient(160deg,var(--navy) 0%,var(--navy-2) 100%);color:#fff;padding:26px 20px 40px}.he-header h1{font-family:Archivo,sans-serif;font-weight:800;font-size:clamp(26px,4.5vw,36px);letter-spacing:-.015em}.he-header .he-sub{color:#aebfd0;margin-top:8px;font-size:14.5px;max-width:560px}.he-sess{display:inline-block;margin-top:14px;background:#ffffff17;border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:6px 14px;font-size:13px;color:#c3ced9}.he-wrap{max-width:760px;margin:-20px auto 0;padding:0 20px 60px;width:100%}.he-centro{flex:1;display:grid;place-items:center;padding:40px 20px}.he-cargando{color:var(--muted);font-size:14px}.he-aviso{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:30px;text-align:center;max-width:380px}.he-aviso h2{font-family:Archivo,sans-serif;color:var(--navy);margin-bottom:10px}.he-aviso p{color:var(--muted);font-size:14px;margin-top:6px}.he-aviso a{color:var(--teal);font-weight:600}.he-card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:22px;margin:20px 0 30px;border-top:4px solid var(--teal)}.he-card h3{font-family:Archivo,sans-serif;color:var(--navy);font-size:17px;margin-bottom:16px}.he-form-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:14px}.he-form-row .field{flex:1;min-width:150px;margin-bottom:0}.he-form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:6px}.field{margin-bottom:14px}.field label{display:block;font-size:13px;font-weight:600;margin-bottom:5px;color:var(--txt)}.field input,.field textarea{width:100%;padding:11px 13px;border-radius:10px;border:1.5px solid var(--line);font-size:15px;background:#f8fafc;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--teal-l);outline:none}.he-hora-selector{display:flex;align-items:center;gap:6px}.he-hora-selector select{flex:1;min-width:0;padding:11px 6px;border-radius:10px;border:1.5px solid var(--line);font-size:15px;background:#f8fafc;color:var(--txt);text-align:center}.he-hora-selector select:focus{border-color:var(--teal-l);outline:none}.he-hora-selector span{color:var(--muted);font-weight:700}.form-msg{font-size:13.5px;margin:10px 0;padding:10px 12px;border-radius:9px}.form-msg.err{background:var(--coral-bg);color:#b23a1b}.form-msg.ok{background:var(--teal-bg);color:var(--teal)}.btn{border:none;border-radius:10px;font-weight:600;font-size:14px;padding:10px 18px;transition:transform .06s ease,background .15s ease,opacity .15s;display:inline-flex;align-items:center;gap:8px}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-teal{background:var(--teal);color:#fff}.btn-teal:hover:not(:disabled){background:var(--teal-l)}.btn-outline{background:#fff;color:var(--teal);border:1.5px solid var(--teal)}.btn-outline:hover{background:var(--teal-bg)}.btn-coral{background:var(--coral);color:#fff}.btn-coral:hover:not(:disabled){background:#c14a2c}.btn-sm{padding:6px 12px;font-size:13px;border-radius:8px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:10px 0 16px;flex-wrap:wrap;gap:8px}.section-head h2{font-family:Archivo,sans-serif;font-weight:700;font-size:19px;color:var(--navy)}.section-head .hint{font-size:13px;color:var(--muted)}.he-tabs{display:flex;align-items:center;gap:8px;margin:20px 0 18px;flex-wrap:wrap}.he-btn-excel{margin-left:auto}.tab-chip{padding:8px 14px;border-radius:8px;font-size:13px;font-weight:600;border:none;background:#fff;color:var(--txt);box-shadow:var(--shadow);display:flex;align-items:center;gap:8px}.tab-chip.active{background:var(--teal);color:#fff}.tab-count{background:#0000001f;border-radius:999px;padding:1px 8px;font-size:11.5px}.tab-chip.active .tab-count{background:#ffffff40}.empty{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:34px;text-align:center;color:var(--muted);font-size:14.5px}.he-lista{display:flex;flex-direction:column;gap:12px}.he-item{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px}.he-item-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.he-item-fecha{font-weight:700;color:var(--navy);font-size:14.5px}.he-item-trabajador{font-size:13px;font-weight:600;color:var(--teal);margin-bottom:4px}.he-item-horario{font-size:13.5px;color:var(--muted);margin-bottom:8px}.he-item-horario b{color:var(--txt)}.he-item-motivo{font-size:14px;color:var(--txt)}.he-item-comentario{font-size:13px;color:var(--coral);margin-top:6px}.he-item-revisor{font-size:12.5px;color:var(--muted);margin-top:6px}.he-item-revisor b{color:var(--txt)}.he-item-actions{display:flex;gap:8px;margin-top:12px}.he-confirma{margin-top:12px;padding:12px;border-radius:10px;background:#f8fafc;border:1.5px dashed var(--line)}.he-confirma .field{margin-bottom:10px}.he-confirma .field:last-of-type{margin-bottom:0}.chip{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:4px 10px;white-space:nowrap}.chip-teal{background:var(--teal-bg);color:var(--teal)}.chip-amber{background:var(--amber-bg);color:#9c6d00}.chip-coral{background:var(--coral-bg);color:#b23a1b}.loading-dot{display:inline-block;animation:pulse 1.1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}@media (max-width: 560px){.he-header{padding:20px 16px 32px}.he-wrap{padding:0 14px 50px}}
