:root{
  --bg:#f4f6f9;--panel:#ffffff;--ink:#162033;--muted:#667085;--line:#e5e9f0;
  --primary:#123a68;--primary2:#0f4d86;--danger:#b42318;--ok:#057a55;--warn:#b54708;
  --shadow:0 18px 45px rgba(16,24,40,.08);--radius:18px;
}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,-apple-system,Segoe UI,Arial,sans-serif;background:var(--bg);color:var(--ink)}
button,input,select,textarea{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.login{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:linear-gradient(135deg,#eef3fa,#fff)}
.login-hero{padding:70px;display:flex;flex-direction:column;justify-content:center;background:radial-gradient(circle at 20% 20%,rgba(18,58,104,.17),transparent 32%),linear-gradient(140deg,#0f2746,#123a68);color:#fff}
.mark{width:76px;height:76px;border-radius:22px;display:grid;place-items:center;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.24);font-weight:900;font-size:30px;margin-bottom:28px}.login-logo-card{width:min(520px,100%);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:24px;padding:14px;margin-bottom:28px;box-shadow:0 25px 70px rgba(0,0,0,.22)}.login-logo-card img{display:block;width:100%;height:auto;border-radius:16px}
.login-hero h1{font-size:48px;line-height:1.05;margin:0 0 18px}.login-hero p{font-size:18px;color:#dce8f5;max-width:660px;line-height:1.6}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}.pills span{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);padding:9px 12px;border-radius:999px;color:#eef6ff}
.login-box{display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);padding:34px}
h2{margin:0 0 8px}p{color:var(--muted);line-height:1.5}.field{display:grid;gap:7px;margin:15px 0}.field label{font-weight:800;font-size:13px;color:#344054}.field input,.field select,.field textarea{border:1px solid #d0d5dd;border-radius:12px;padding:12px 13px;background:#fff;outline:none}.field textarea{min-height:88px}.field input:focus,.field select:focus,.field textarea:focus{border-color:#2e74b8;box-shadow:0 0 0 4px rgba(46,116,184,.12)}
.btn{border:1px solid #d0d5dd;background:#fff;color:#24364b;border-radius:12px;padding:10px 14px;font-weight:800;display:inline-flex;align-items:center;gap:8px;justify-content:center}.btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(16,24,40,.08)}.btn.primary{background:var(--primary);border-color:var(--primary);color:#fff}.btn.ok{background:#e9f8f2;border-color:#a6e7cd;color:#026647}.btn.warn{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.btn.danger{background:#fff1f1;border-color:#ffc9c9;color:#a01818}.btn.ghost{background:#f8fafc}.btn.full{width:100%}.error{color:#b42318;font-weight:800;min-height:22px;margin-top:10px}
.shell{min-height:100vh;display:grid;grid-template-columns:280px 1fr}.sidebar{background:#0f2746;color:#fff;padding:20px;display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:12px;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.12)}.brand .logo{width:46px;height:46px;border-radius:14px;background:#fff;color:#123a68;display:grid;place-items:center;font-weight:900}.brand .logo-img{width:62px;height:46px;border-radius:12px;overflow:hidden;background:#061a32;border:1px solid rgba(255,255,255,.18);flex:0 0 auto}.brand .logo-img img{width:100%;height:100%;object-fit:cover;object-position:center}.brand small{display:block;color:#bed0e6}.nav{display:grid;gap:8px}.nav button{border:0;background:transparent;color:#dbe8f5;text-align:left;border-radius:12px;padding:12px 14px;font-weight:800}.nav button:hover,.nav button.active{background:rgba(255,255,255,.12);color:#fff}.side-user{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding-top:15px;color:#dce8f5}.side-user strong{color:#fff}.side-user .btn{margin-top:12px;width:100%;border-color:rgba(255,255,255,.22);background:rgba(255,255,255,.08);color:#fff}
.main{padding:28px;overflow:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:20px}.topbar h1{margin:0;font-size:30px}.topbar p{margin:6px 0 0}.actions{display:flex;gap:10px;flex-wrap:wrap}.badge-dot{background:#d92d20;color:#fff;border-radius:999px;padding:2px 7px;font-size:12px;margin-left:5px}
.grid{display:grid;gap:15px}.metrics{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:18px}.quick{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:18px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 6px 20px rgba(16,24,40,.04);padding:18px}.clickable{cursor:pointer;transition:.18s}.clickable:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#bfd3ea}.metric small{display:block;color:#667085;font-weight:800}.metric strong{font-size:34px;display:block;margin:7px 0}.metric span{color:#667085;font-size:13px}.section-title{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:8px 0 13px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input,.toolbar select{min-width:180px;border:1px solid #d0d5dd;border-radius:12px;padding:10px 12px;background:#fff}.week-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}.week-head h2{margin:0 0 5px}.status{font-weight:900;border-radius:999px;padding:8px 12px;font-size:13px;white-space:nowrap}.st-open{background:#ecfdf3;color:#027a48}.st-preclose{background:#fffaeb;color:#b54708}.st-closed{background:#f2f4f7;color:#344054}.st-final{background:#eef2ff;color:#3538cd}.st-pending{background:#fff7ed;color:#b54708}.st-approved{background:#ecfdf3;color:#027a48}.st-rejected{background:#fff1f3;color:#c01048}
.days{display:grid;grid-template-columns:repeat(7,minmax(190px,1fr));gap:12px}.day{padding:14px;border-radius:16px;background:#fff;border:1px solid var(--line)}.day.today{border-color:#2e74b8;box-shadow:0 0 0 4px rgba(46,116,184,.08)}.day h3{margin:0 0 3px}.day .date{color:#667085;font-size:13px}.plan{border:1px solid #e6e9ef;background:#f9fafb;border-radius:14px;padding:10px;margin-top:10px}.plan strong{display:block}.plan small{color:#667085}.plan-actions{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.work-work{border-left:5px solid #12b76a}.work-rest{border-left:5px solid #98a2b3}.work-permission,.work-pending{border-left:5px solid #f79009}.work-vacation{border-left:5px solid #2e90fa}.work-sick{border-left:5px solid #f04438}.work-unavailable{border-left:5px solid #667085}
.table-wrap{overflow:auto}.table{width:100%;border-collapse:separate;border-spacing:0 9px}.table th{text-align:left;font-size:12px;color:#667085;text-transform:uppercase;padding:0 12px}.table td{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:12px}.table td:first-child{border-left:1px solid var(--line);border-radius:14px 0 0 14px}.table td:last-child{border-right:1px solid var(--line);border-radius:0 14px 14px 0}.muted{color:#667085}.empty{text-align:center;padding:30px;color:#667085;border:1px dashed #cbd5e1;border-radius:18px;background:#fff}.notification{display:flex;justify-content:space-between;gap:15px}.notification.unread{border-color:#9cc7f1;background:#f5fbff}.modal-back{position:fixed;inset:0;background:rgba(15,39,70,.45);display:flex;align-items:center;justify-content:center;padding:20px;z-index:30}.modal{width:min(560px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;box-shadow:0 30px 80px rgba(0,0,0,.22);padding:24px}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:12px}.x{border:0;background:#f2f4f7;border-radius:10px;width:36px;height:36px;font-size:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.footer-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.coverage-grid{grid-template-columns:repeat(7,minmax(150px,1fr))}.coverage-card strong{font-size:24px}.risk{color:#b42318;font-weight:900}.oktxt{color:#027a48;font-weight:900}
@media(max-width:1050px){.login{grid-template-columns:1fr}.login-hero{padding:40px}.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative}.metrics,.quick{grid-template-columns:repeat(2,1fr)}.days,.coverage-grid{grid-template-columns:repeat(2,1fr)}.topbar{align-items:flex-start;flex-direction:column}.nav{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.main{padding:16px}.login-hero h1{font-size:34px}.login-hero{padding:30px 22px}.login-box{padding:22px}.metrics,.quick,.days,.coverage-grid{grid-template-columns:1fr}.form-row{grid-template-columns:1fr}.toolbar input,.toolbar select{width:100%;min-width:0}.btn{width:100%}.actions{width:100%}.nav{grid-template-columns:1fr}.week-head{flex-direction:column}}

/* V3 Premium UX polish */
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#0f4d86;font-weight:900;margin-bottom:6px}
.sidebar{background:linear-gradient(180deg,#0b1f39,#102f55 62%,#0d2748)}
.brand{align-items:flex-start}.brand .logo-img{width:86px;height:56px;border-radius:14px;box-shadow:0 12px 28px rgba(0,0,0,.2)}.brand .logo-img img{object-fit:cover;object-position:center}.brand strong{font-size:15px;letter-spacing:.02em}.brand small{font-size:12px}
.login-hero{position:relative;overflow:hidden}.login-hero:after{content:"";position:absolute;inset:auto -12% -20% 20%;height:260px;background:radial-gradient(circle,rgba(68,213,227,.16),transparent 66%);pointer-events:none}.login-logo-card{max-width:560px;padding:10px;background:rgba(255,255,255,.07)}.login-logo-card img{aspect-ratio:3/1;object-fit:cover}
.topbar{padding-bottom:6px;border-bottom:1px solid rgba(229,233,240,.72)}.topbar h1{letter-spacing:-.03em}.main{background:radial-gradient(circle at 20% 0,rgba(18,58,104,.08),transparent 25%),var(--bg)}
.today-ops{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:18px;background:linear-gradient(135deg,#ffffff,#f8fbff);border-color:#d9e7f5}.today-ops h2{font-size:26px;margin:0}.today-stats{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;min-width:min(760px,100%)}.today-stats div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px;box-shadow:0 4px 12px rgba(16,24,40,.04)}.today-stats strong{font-size:25px;display:block}.today-stats span{font-size:12px;color:#667085;font-weight:800}.today-stats .riskbox{border-color:#fda29b;background:#fff4f2}.today-stats .okbox{border-color:#a6e7cd;background:#f0fdf7}
.metric{position:relative;overflow:hidden}.metric:after{content:"";position:absolute;right:-26px;top:-26px;width:86px;height:86px;border-radius:999px;background:rgba(15,77,134,.06)}.metric.priority{border-color:#a8c8ea;box-shadow:0 14px 34px rgba(18,58,104,.09)}.metric-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.metric-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:14px;background:#f1f6fc;position:relative;z-index:1}.open-link{display:inline-block;margin-top:12px;color:#0f4d86;font-size:13px}.clickable:hover .open-link{text-decoration:underline}.clickable{will-change:transform}
.action-card{min-height:158px;display:flex;flex-direction:column}.action-card>span{width:42px;height:42px;border-radius:14px;background:#f1f6fc;display:grid;place-items:center;margin-bottom:8px}.action-card h3{margin:0 0 4px}.action-card b{margin-top:auto;color:#0f4d86}
.week-command{border-color:#d7e5f3;background:linear-gradient(180deg,#fff,#fbfdff)}.week-head h2{font-size:30px;letter-spacing:-.03em}.week-head p{margin:5px 0}.status{box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)}
.day{transition:.18s}.day:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(16,24,40,.08)}.day h3{text-transform:capitalize}.day.today{background:linear-gradient(180deg,#fff,#f7fbff)}.plan{background:#fff}.empty{background:linear-gradient(180deg,#fff,#fbfcfe)}
.coverage-card{position:relative;overflow:hidden}.coverage-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#12b76a}.coverage-card.coverage-risk:before{background:#f04438}.coverage-card.coverage-ok:before{background:#12b76a}.coverage-card strong{text-transform:capitalize}
.alerts-list{gap:12px}.notification{align-items:center}.notification .alert-icon{width:42px;height:42px;border-radius:14px;background:#eef6ff;display:grid;place-items:center;flex:0 0 auto}.notification.unread{box-shadow:0 10px 28px rgba(46,116,184,.1)}.alert-actions{display:flex;gap:8px;flex-wrap:wrap;margin-left:auto}
.settings-card{max-width:920px}.table td,.table th{white-space:nowrap}.table td:first-child{white-space:normal}
@media(max-width:1050px){.today-ops{align-items:flex-start;flex-direction:column}.today-stats{grid-template-columns:repeat(2,1fr);min-width:0;width:100%}.brand .logo-img{width:78px;height:50px}}
@media(max-width:620px){.today-stats{grid-template-columns:1fr}.today-ops h2{font-size:21px}.metric strong{font-size:28px}.week-head h2{font-size:25px}.notification{align-items:flex-start;flex-direction:column}.alert-actions{margin-left:0;width:100%}}

/* V3.1 Correcciones de diseño y operación */
.critical-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;border-color:#f2c94c;background:linear-gradient(135deg,#fffaf0,#ffffff)}
.critical-card h2{margin:0 0 6px}.critical-card ul{margin:8px 0 0;padding-left:20px;color:#344054;line-height:1.7}.critical-card li b{color:#9a3412}
.notice{margin-top:12px;border-color:#fed7aa;background:#fff7ed}.notice b{color:#9a3412}.notice p{margin:6px 0 0}
.coverage-card.coverage-empty:before{background:#98a2b3}.coverage-card.coverage-empty{background:#fbfcfe}.coverage-card.coverage-empty .oktxt{color:#667085}
.password-mask{font-weight:900;letter-spacing:.18em;color:#667085}.soft-danger{opacity:.78}.soft-danger:hover{opacity:1}.request-form{max-width:860px}.table tr.focus-row td{background:#f0f7ff;border-color:#9cc7f1}.btn:disabled{cursor:not-allowed;opacity:.55;transform:none!important;box-shadow:none!important}
@media(max-width:700px){.critical-card{align-items:flex-start;flex-direction:column}.critical-card .btn{width:100%}}

/* V3.2 — Pulido premium del login y uso correcto del logo */
.login{grid-template-columns:1fr 1fr;background:linear-gradient(135deg,#f4f8fc 0%,#ffffff 58%,#eef4fb 100%)}
.login-hero{padding:72px 84px;background:radial-gradient(circle at 72% 12%,rgba(68,213,227,.10),transparent 24%),radial-gradient(circle at 18% 82%,rgba(15,39,70,.42),transparent 32%),linear-gradient(145deg,#0b203b 0%,#123a68 55%,#0e2d52 100%);position:relative;overflow:hidden}
.login-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.035),transparent 42%);pointer-events:none}
.login-brand{position:relative;z-index:1;width:min(520px,100%);margin-bottom:34px}
.login-brand img{display:block;width:100%;height:auto;object-fit:contain;border-radius:0;filter:drop-shadow(0 24px 45px rgba(0,0,0,.24))}
.login-logo-card{display:none!important}
.login-hero h1{position:relative;z-index:1;font-size:46px;max-width:690px;letter-spacing:-.04em;margin-bottom:18px}
.login-hero p{position:relative;z-index:1;font-size:18px;max-width:640px;color:#d9e7f5}
.login-tags{position:relative;z-index:1;display:flex;flex-wrap:wrap;gap:12px;margin-top:34px;color:#d8eafd;font-weight:800}
.login-tags span{border:1px solid rgba(255,255,255,.20);background:rgba(255,255,255,.08);border-radius:999px;padding:10px 14px;backdrop-filter:blur(8px)}
.pills{display:none!important}
.login-box{padding:54px;align-items:center;justify-content:center}.login-card{max-width:460px;border-radius:26px;padding:38px 38px 32px;box-shadow:0 28px 80px rgba(15,39,70,.13);border:1px solid #dfe7f1}.login-card-kicker{text-transform:uppercase;letter-spacing:.10em;font-size:12px;font-weight:900;color:#0f4c6a;margin-bottom:10px}.login-card h2{font-size:30px;margin-bottom:12px;letter-spacing:-.03em}.login-card p{color:#64748b;line-height:1.5;margin-bottom:24px}.login-card .field{margin-bottom:18px}.login-card input{height:52px;border-radius:14px;background:#fbfdff}.login-card input:focus{outline:3px solid rgba(68,213,227,.22);border-color:#35b8cc;background:#fff}.login-submit{height:52px;border-radius:14px;margin-top:2px;font-size:16px}.login-footnote{text-align:center;color:#7a8799;font-size:13px;margin-top:18px}.error{margin-top:12px;color:#b42318;font-weight:800;text-align:center}.brand .logo-img.logo-mark{width:58px;height:48px;border-radius:14px;background:#071e3a;border:1px solid rgba(255,255,255,.16);box-shadow:none}.brand .logo-img.logo-mark img{object-fit:contain;padding:4px;box-sizing:border-box}.brand{align-items:center}.brand strong{font-size:15px}.brand small{font-size:12px}
@media(max-width:1050px){.login{grid-template-columns:1fr}.login-hero{padding:42px 30px}.login-brand{width:min(430px,100%);margin-bottom:24px}.login-hero h1{font-size:38px}.login-box{padding:30px}}
@media(max-width:620px){.login-hero{padding:28px 20px}.login-brand{width:100%;max-width:360px}.login-hero h1{font-size:32px}.login-hero p{font-size:16px}.login-tags span{font-size:13px;padding:8px 11px}.login-card{padding:28px 22px;border-radius:22px}.login-box{padding:20px}.login-card h2{font-size:26px}}

/* V3.3 — Pulido operativo interno */
.priority-board{display:grid;grid-template-columns:minmax(240px,.9fr) 2fr;gap:18px;align-items:center;margin-bottom:18px;border-color:#d7e5f3;background:linear-gradient(135deg,#ffffff,#f7fbff)}
.priority-board h2{margin:0 0 4px}.priority-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.priority-item{border:1px solid var(--line);background:#fff;border-radius:16px;padding:14px;text-align:left;display:grid;gap:4px;min-height:114px;transition:.18s}.priority-item:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.priority-item b{font-size:30px;line-height:1}.priority-item span{font-weight:900;color:#172033}.priority-item small{color:#667085}.priority-item.hot{border-color:#fda29b;background:#fff4f2}.priority-item.hot b{color:#b42318}.priority-item.warn{border-color:#fed7aa;background:#fff8ed}.priority-item.warn b{color:#b54708}.priority-item.calm{border-color:#d7e5f3}.priority-item.calm b{color:#123a68}
.dashboard-metrics{margin-top:4px}.unplanned-card{margin-bottom:18px}.unplanned-card .section-title{margin:0 0 12px}.unplanned-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.chip{display:inline-flex;align-items:center;background:#eef6ff;border:1px solid #c9ddf2;color:#123a68;border-radius:999px;padding:8px 10px;font-size:13px;font-weight:800}
.workbench .action-card{border-color:#dfe8f2}.workbench .action-card:hover{border-color:#8fbbe6}.week-mini{display:grid;grid-template-columns:repeat(4,minmax(110px,1fr));gap:10px;margin:18px 0}.week-mini div{background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px}.week-mini b{font-size:26px;display:block}.week-mini span{display:block;color:#667085;font-weight:800;font-size:12px}.week-toolbar{padding-top:4px}.user-hint{margin-top:12px;border-color:#c9ddf2;background:#f7fbff}.user-hint p{margin:6px 0 0}.day .empty{padding:18px 10px;font-size:13px}.day .btn.full{margin-top:auto}
.requests-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.request-card{display:flex;flex-direction:column;gap:12px}.request-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.request-head h3{margin:0 0 4px}.request-head p{margin:0}.request-body{display:grid;grid-template-columns:1fr 1fr;gap:10px}.request-body div{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:11px}.request-body small{display:block;color:#667085;font-weight:800;margin-bottom:3px}.request-reason{background:#fff;border-left:4px solid #9cc7f1;padding:10px 12px;margin:0}.admin-comment{background:#f0fdf7;border-left:4px solid #12b76a;padding:10px 12px;margin:0}.request-card.focus-row{border-color:#2e90fa;box-shadow:0 0 0 4px rgba(46,144,250,.10)}
.user-admin-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:14px;border-color:#d7e5f3}.user-admin-card h2{margin:0}.row-actions{display:flex;gap:8px;flex-wrap:wrap}.form-section{border:1px solid var(--line);border-radius:18px;padding:14px;margin:12px 0;background:#fbfdff}.form-section h3{margin:0 0 8px;font-size:15px;color:#123a68}.form-section .field:last-child{margin-bottom:0}
@media(max-width:1050px){.priority-board{grid-template-columns:1fr}.priority-grid{grid-template-columns:1fr 1fr}.week-mini{grid-template-columns:repeat(2,1fr)}.requests-grid{grid-template-columns:1fr}.unplanned-grid{grid-template-columns:1fr}}
@media(max-width:620px){.priority-grid,.week-mini{grid-template-columns:1fr}.user-admin-card{align-items:flex-start;flex-direction:column}.user-admin-card .btn{width:100%}.request-head{flex-direction:column}.request-body{grid-template-columns:1fr}}
