:root {
    --brand: #7b1838; --brand-strong: #5f102a; --brand-soft: #f9edf2;
    --brand-glow: rgba(123,24,56,.18); --ink: #171923; --muted: #667085;
    --surface: #fff; --canvas: #f2f4f7; --line: #e7e9ee;
    --success: #087a55; --danger: #c4322b;
    --shadow-sm: 0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
    --shadow-lg: 0 28px 80px rgba(49,15,27,.20);
}
* { box-sizing: border-box; }
html { color-scheme: light; }
body { -webkit-font-smoothing: antialiased; background: var(--canvas); color: var(--ink); font-family: Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif !important; }
button,input,select { font: inherit; }
a { text-underline-offset: 3px; }
button,.btn,.boton { border-radius: 11px !important; font-weight: 700 !important; letter-spacing: -.01em; transition: transform .16s ease,box-shadow .16s ease,background-color .16s ease,border-color .16s ease !important; }
button:hover:not(:disabled),.btn:hover,.boton:hover { box-shadow: 0 10px 24px var(--brand-glow); transform: translateY(-1px); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline: 3px solid rgba(123,24,56,.22) !important; outline-offset: 2px; }
.app-alert { border: 1px solid #a9dfc7; border-radius: 13px; background: #ebfaf3; color: #08603f; margin: 0 0 18px; padding: 14px 16px; }
.app-alert--error { border-color: #f3b8b3; background: #fff1f0; color: #92251e; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }

/* Acceso */
body.app-login { min-height:100vh;margin:0;padding:28px;display:grid;place-items:center;background:radial-gradient(circle at 12% 8%,rgba(255,255,255,.14),transparent 25%),radial-gradient(circle at 88% 92%,rgba(255,255,255,.08),transparent 30%),linear-gradient(145deg,#290a17 0%,#65142f 48%,#8d294a 100%) !important; }
.app-login .login-container { position:relative;overflow:hidden;width:min(440px,100%) !important;margin:0 !important;padding:48px 44px 38px !important;border:1px solid rgba(255,255,255,.55);border-radius:26px !important;background:rgba(255,255,255,.97) !important;box-shadow:var(--shadow-lg) !important; }
.app-login .login-container::before { content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,#541027,#9d3154,#541027); }
.app-login .login-container img { width:150px !important;margin-bottom:28px !important; }
.app-login h1 { font-size:1.85rem !important;letter-spacing:-.04em; }
.app-login input { min-height:54px !important;padding:14px 16px !important;margin:7px 0 14px !important;border:1px solid #d8dce3 !important;border-radius:12px !important;background:#f9fafb; }
.app-login input:focus { background:#fff;border-color:var(--brand) !important;box-shadow:0 0 0 4px var(--brand-glow); }
.app-login button { min-height:54px !important;background:linear-gradient(135deg,var(--brand),var(--brand-strong)) !important; }

/* Dashboard */
body.app-dashboard { background:#f3f5f8 !important; }
.app-dashboard .container-custom { width:min(1380px,calc(100% - 40px)) !important;max-width:none !important;margin:24px auto 56px !important;padding:0 28px 36px !important;border:1px solid rgba(231,233,238,.9);border-radius:24px !important;background:rgba(255,255,255,.92) !important;box-shadow:var(--shadow-sm) !important; }
.app-dashboard .header { display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 -28px !important;padding:26px 30px !important;border-radius:24px 24px 0 0 !important;text-align:left !important;background:linear-gradient(120deg,#571027 0%,#7b1838 60%,#963352 100%) !important; }
.app-dashboard .brand-block { display:flex;align-items:center;gap:18px; }
.app-dashboard .brand-mark { width:88px;height:64px;padding:0;object-fit:contain;background:transparent;filter:brightness(0) invert(1); }
.app-dashboard .eyebrow { margin:0 0 4px;color:#f5cedb;font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase; }
.app-dashboard .header h1 { color:#fff !important;font-size:26px !important;letter-spacing:-.04em; }
.app-dashboard .header-subtitle { margin:5px 0 0;color:rgba(255,255,255,.76);font-size:14px; }
.app-dashboard .acciones-superiores { justify-content:space-between !important;align-items:center;gap:24px;margin:20px 0 6px !important; }
.dashboard-shortcuts { display:flex;align-items:center;gap:14px; }
.app-dashboard .acciones-superiores .btn { min-height:44px;padding:10px 16px; }
.app-dashboard .btn-danger { background:transparent !important;border-color:#e1a9b9 !important;color:var(--brand) !important; }
.app-dashboard .btn-corporativo { background:var(--brand) !important;border-color:var(--brand) !important;color:#fff !important; }
.management-page .acciones-superiores .btn-corporativo { color:#fff !important; }
.dashboard-metrics { display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0 8px; }
.dashboard-metric { position:relative;overflow:hidden;padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-sm); }
.dashboard-metric::after { content:"";position:absolute;width:74px;height:74px;right:-24px;top:-25px;border-radius:50%;background:var(--brand-soft); }
.dashboard-metric__label { margin:0 0 7px;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase; }
.dashboard-metric__value { margin:0;color:var(--ink);font-size:30px;font-weight:800;letter-spacing:-.05em;line-height:1; }
.app-dashboard .seccion { margin-top:20px !important;padding:22px;border:1px solid var(--line);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm); }
.app-dashboard .seccion h2 { margin:0 0 16px !important;color:var(--ink) !important;font-size:18px !important;font-weight:800;letter-spacing:-.025em; }
.app-dashboard .table-responsive { border:1px solid var(--line) !important;border-radius:13px !important; }
.app-dashboard .table thead th { padding:12px 14px;border:0;background:#f5f1f3 !important;color:#663044 !important;font-size:12px;letter-spacing:.04em;text-transform:uppercase; }
.app-dashboard .table td { padding:13px 14px;border-color:#edf0f3;color:#344054; }
.app-dashboard .table tbody tr:hover { background:#fcf8fa; }
.app-dashboard .sin-datos { border:1px dashed #d7dbe2;border-radius:12px;background:#fafbfc; }
.app-dashboard .grafico { min-height:340px !important; }
.section-heading { display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:18px; }
.section-heading h2 { margin:0 !important; }
.section-heading>p { max-width:440px;margin:0;color:var(--muted);font-size:14px;text-align:right; }
.eyebrow-dark { margin:0 0 4px;color:var(--brand);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase; }
.management-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:start; }
.management-grid.single-column { grid-template-columns:minmax(0,760px);justify-content:center; }
.static-card { padding-top:18px; }
.management-card { border:1px solid var(--line);border-radius:15px;background:#fafbfc;overflow:hidden; }
.management-card summary { cursor:pointer;padding:17px 18px;color:var(--ink);font-weight:800;list-style:none; }
.management-card summary::-webkit-details-marker { display:none; }
.management-card summary::after { content:"+";float:right;color:var(--brand);font-size:20px;line-height:1; }
.management-card[open] summary::after { content:"−"; }
.management-form { display:grid;gap:16px;padding:0 18px 18px; }
.form-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px; }
.form-grid .span-2 { grid-column:1/-1; }
.management-form label { display:grid;gap:6px;color:#475467;font-size:12px;font-weight:700; }
.management-form input:not([type="checkbox"]),.management-form select { width:100%;min-height:44px;padding:9px 11px;border:1px solid #d6dae1;border-radius:10px;background:#fff;color:var(--ink); }
.form-caption { margin:0;color:var(--ink);font-size:13px;font-weight:800; }
.schedule-list { display:grid;gap:7px; }
.schedule-row { display:grid;grid-template-columns:minmax(105px,1fr) 92px 14px 92px;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:#fff; }
.schedule-row>span { color:#98a2b3;text-align:center; }
.day-toggle { display:flex !important;grid-template-columns:none !important;align-items:center;gap:8px !important;margin:0;color:#344054 !important;font-size:13px !important;text-transform:capitalize; }
.day-toggle input { accent-color:var(--brand); }

/* Fichaje */
body.app-clock { background:#f2f4f7 !important; }
.app-clock .cabecera { padding:18px 24px !important;background:linear-gradient(115deg,#501025,#7b1838 65%,#92304e) !important;box-shadow:0 10px 30px rgba(66,14,34,.16) !important; }
.app-clock .logo { width:118px !important;max-height:72px !important;padding:0 !important;border-radius:0 !important;background:transparent !important;filter:brightness(0) invert(1); }
.app-clock .contenedor { max-width:1180px !important;margin-top:30px !important; }
.app-clock .rejilla-resumen { gap:16px !important; }
.app-clock .tarjeta { border:1px solid var(--line) !important;border-radius:18px !important;padding:22px !important;box-shadow:var(--shadow-sm) !important; }
.app-clock .tarjeta-etiqueta { color:var(--muted) !important;font-size:12px !important;letter-spacing:.08em !important; }
.app-clock .tarjeta-valor { color:var(--brand) !important;font-size:30px !important;letter-spacing:-.05em; }
.app-clock .seccion h2 { color:var(--ink) !important;font-size:19px !important;font-weight:800;letter-spacing:-.03em; }
.app-clock button,.app-clock .boton { min-height:50px !important;border-radius:12px !important;background:linear-gradient(135deg,var(--brand),var(--brand-strong)) !important; }
.app-clock button:disabled { background:#e4e7ec !important;color:#98a2b3 !important;box-shadow:none; }
.app-clock .boton-secundario { background:#344054 !important; }
.app-clock .boton-salir { background:transparent !important;border:1px solid #e5aeb4 !important;color:var(--danger) !important; }
.app-clock th { background:#f5f1f3 !important;color:#663044 !important;text-transform:uppercase;letter-spacing:.04em; }
.app-clock .tabla-contenedor { border-radius:13px !important; }

/* Vacaciones y exportaciones */
body.app-vacations,body.app-exports { min-height:100vh;padding:26px 18px;background:#f2f4f7 !important;color:var(--ink) !important; }
.app-vacations .container-custom,.app-exports .container-custom { max-width:940px !important;margin:0 auto !important;padding:28px !important;border:1px solid var(--line);border-radius:22px !important;background:#fff !important;box-shadow:var(--shadow-sm) !important; }
.app-vacations .header,.app-exports .header { margin:-28px -28px 24px;padding:26px 28px !important;border-radius:22px 22px 0 0 !important;background:linear-gradient(120deg,#571027,#7b1838 65%,#963352) !important;color:#fff !important;text-align:left !important; }
.app-vacations .header h2,.app-exports .header h2 { margin:0;font-size:24px;font-weight:800;letter-spacing:-.04em; }
.app-vacations .p-4.bg-light { border:1px solid var(--line);border-radius:16px !important;background:#faf8f9 !important; }
.app-vacations .p-4 h3 { color:var(--brand) !important; }
.app-vacations .table thead th { background:#f5f1f3;color:#663044;border-color:#e5dce0; }
.app-vacations .btn-custom,.app-exports .btn-primary { background:var(--brand) !important;border-color:var(--brand) !important; }
.app-vacations .btn-primary,.app-exports .btn-secondary { background:#344054 !important;border-color:#344054 !important; }
.app-vacations .btn-danger,.app-exports .btn-danger { background:transparent !important;border-color:#e5aeb4 !important;color:var(--danger) !important; }
.app-exports form.mt-4 { display:grid;grid-template-columns:repeat(3,1fr);gap:16px; }
.app-exports form.mt-4>.mb-3 { margin:0 !important; }
.app-exports .form-select { min-height:50px;border-color:#d9dde4;border-radius:11px;background-color:#fafbfc; }
.app-exports .form-label { color:#344054;font-size:13px;font-weight:700; }
.app-exports .export-actions { grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px; }

@media (max-width:900px) { .dashboard-metrics{grid-template-columns:repeat(2,1fr)} .app-exports form.mt-4{grid-template-columns:1fr} }
@media (max-width:650px) {
    body.app-login{padding:14px}.app-login .login-container{padding:38px 24px 30px !important}
    .app-dashboard .container-custom{width:100% !important;margin:0 !important;padding:0 14px 28px !important;border:0;border-radius:0 !important}
    .app-dashboard .header{margin:0 -14px !important;padding:20px 18px !important;border-radius:0 !important}.app-dashboard .brand-mark{width:70px;height:52px}.app-dashboard .header h1{font-size:21px !important}.app-dashboard .header-subtitle{display:none}.app-dashboard .acciones-superiores{align-items:stretch;flex-direction:column}.dashboard-shortcuts{display:grid;grid-template-columns:1fr;gap:10px}.app-dashboard .acciones-superiores form .btn{width:100%}
    .dashboard-metrics{grid-template-columns:1fr 1fr;gap:10px}.dashboard-metric{padding:16px}.dashboard-metric__value{font-size:25px}.app-dashboard .seccion{padding:16px}
    .section-heading{display:block}.section-heading>p{margin-top:8px;text-align:left}.management-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .span-2{grid-column:auto}.schedule-row{grid-template-columns:minmax(90px,1fr) 82px 10px 82px;padding:8px 7px;gap:5px}
    .app-clock .cabecera-contenido{flex-direction:row !important;align-items:center !important}.app-clock .logo{width:92px !important}.app-clock .usuario-cabecera{text-align:right !important}
    body.app-vacations,body.app-exports{padding:0}.app-vacations .container-custom,.app-exports .container-custom{border:0;border-radius:0 !important;min-height:100vh;padding:20px !important}.app-vacations .header,.app-exports .header{margin:-20px -20px 20px;border-radius:0 !important}
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after{scroll-behavior:auto !important;transition:none !important} }
