:root{--bg:#f3f6f8;--surface:#fff;--surface-2:#eaf0f3;--text:#13222b;--muted:#5b6b75;--border:#d9e2e7;--brand:#145e75;--brand-strong:#0d4456;--brand-soft:#dcedf2;--accent:#f26b5b;--accent-soft:#fde5e1;--ok:#1f8a5b;--ok-soft:#dcf2e7;--warn:#b7791f;--warn-soft:#fbefd5;--danger:#c0392b;--danger-soft:#f9e0dd;--info:#3c5fb0;--info-soft:#e2e9f8;--shadow:0 1px 2px #0f28370f, 0 6px 18px #0f28370d;--hero-1:#145e75;--hero-2:#0d4456;--radius:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#0d151a;--surface:#152129;--surface-2:#1c2b34;--text:#e4edf1;--muted:#93a6b1;--border:#2a3b45;--brand:#4fb3cf;--brand-strong:#7fd0e6;--brand-soft:#173643;--accent:#ff8a7a;--accent-soft:#3f211d;--ok:#56c993;--ok-soft:#173528;--warn:#e9b65a;--warn-soft:#3a2e15;--danger:#f08174;--danger-soft:#3e1f1b;--info:#8eaaf0;--info-soft:#1c2742;--shadow:0 1px 2px #00000059;--hero-1:#17556a;--hero-2:#0c3240;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3{margin:0 0 .5rem;line-height:1.25}h1{letter-spacing:-.015em;font-size:1.6rem}h2{font-size:1.12rem}h3{font-size:1rem}p{margin:0 0 .75rem}.muted{color:var(--muted)}.small{font-size:.85rem}.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.mono{word-break:break-all;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.82rem}.shell{grid-template-columns:250px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{align-items:center;gap:10px;padding:4px 8px 18px;display:flex}.brand-mark{background:linear-gradient(140deg, var(--brand), var(--brand-strong));color:#fff;border-radius:12px;place-items:center;width:38px;height:38px;font-size:1rem;font-weight:800;display:grid;position:relative}.brand-mark:after{content:"";background:var(--accent);border:2px solid var(--surface);border-radius:50%;width:12px;height:12px;position:absolute;top:-3px;right:-3px}.brand-name{letter-spacing:-.01em;font-size:1.08rem;font-weight:800}.brand-name span{color:var(--accent)}.brand-company{color:var(--muted);font-size:.78rem}.nav a{color:var(--text);border-radius:10px;align-items:center;gap:10px;padding:9px 10px;font-weight:500;display:flex}.nav a:hover{background:var(--surface-2);text-decoration:none}.nav a.active{background:var(--brand-soft);color:var(--brand-strong);font-weight:650}.nav-section{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:14px 10px 4px;font-size:.72rem}.nav .badge{margin-left:auto}.sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding-top:12px;font-size:.85rem}.who{color:inherit;align-items:center;gap:10px;display:flex}.main{width:100%;min-width:0;max-width:1180px;padding:28px 32px 96px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{margin:0}.tabbar{display:none}@media (max-width:860px){.shell{grid-template-columns:minmax(0,1fr)}.sidebar{display:none}.main{padding:18px 16px 110px}.tabbar{z-index:20;background:var(--surface);border-top:1px solid var(--border);padding:6px 4px calc(6px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--muted);text-align:center;flex-direction:column;align-items:center;gap:2px;padding:4px 0;font-size:.7rem;display:flex}.tabbar a .ico{font-size:1.25rem}.tabbar a.active{color:var(--brand);font-weight:650}.tabbar a.fab .ico{background:var(--accent);color:#fff;width:46px;height:46px;box-shadow:var(--shadow);border-radius:50%;place-items:center;margin-top:-20px;font-size:1.5rem;display:grid}.mobile-top{display:flex!important}}.mobile-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:none}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.card+.card{margin-top:16px}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.card-head h2{margin:0}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}@media (max-width:860px){.grid-2,.grid-3,.grid-main{grid-template-columns:minmax(0,1fr)!important}.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.spread{justify-content:space-between}.mt{margin-top:16px}.kpi{padding:16px}.kpi .label{color:var(--muted);font-size:.82rem}.kpi .value{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:1.5rem;font-weight:750}.kpi .hint{color:var(--muted);font-size:.8rem}a.kpi{color:inherit;text-decoration:none;display:block}a.kpi:hover{border-color:var(--brand)}.hero{color:#fff;background:linear-gradient(125deg, var(--hero-1) 0%, var(--hero-2) 70%);border-radius:22px;margin-bottom:18px;padding:24px;position:relative;overflow:hidden}.hero:before,.hero:after{content:"";background:#ffffff12;border-radius:50%;position:absolute}.hero:before{width:260px;height:260px;top:-110px;right:-60px}.hero:after{background:color-mix(in srgb, var(--accent) 35%, transparent);width:140px;height:140px;bottom:-80px;right:120px}.hero h1{margin-bottom:4px;font-size:1.75rem}.hero p{color:#ffffffd9;z-index:1;margin:0;position:relative}.hero .date{text-transform:capitalize;opacity:.8;font-size:.85rem}.hero .msg{background:#ffffff24;border-radius:999px;margin-top:10px;padding:6px 12px;font-size:.88rem;display:inline-block}.btn{border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 14px;font-weight:600;display:inline-flex;text-decoration:none!important}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{background:var(--brand-strong)}.btn.accent{background:var(--accent);border-color:var(--accent);color:#fff}.btn.accent:hover{filter:brightness(.95)}.btn.ok{background:var(--ok);border-color:var(--ok);color:#fff}.btn.danger{color:var(--danger);border-color:var(--danger-soft)}.btn.danger:hover{background:var(--danger-soft)}.btn.ghost{background:0 0;border-color:#0000}.btn.small{padding:5px 10px;font-size:.85rem}.btn.block{width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}@media (prefers-color-scheme:dark){.btn.primary,.btn.ok{color:#06161c}}label{margin-bottom:4px;font-size:.86rem;font-weight:600;display:block}.field{flex-direction:column;display:flex}.field .help{color:var(--muted);margin-top:3px;font-size:.78rem}input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:9px 11px}input:focus,select:focus,textarea:focus{outline:2px solid var(--brand);outline-offset:-1px;border-color:#0000}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--brand);transform:scale(1.15)}.check{align-items:center;gap:8px;font-weight:500;display:flex}textarea{resize:vertical;min-height:70px}.alert{border:1px solid #0000;border-radius:10px;padding:10px 12px;font-size:.9rem}.alert.error{background:var(--danger-soft);color:var(--danger)}.alert.ok{background:var(--ok-soft);color:var(--ok)}.alert.warn{background:var(--warn-soft);color:var(--warn)}.alert.info{background:var(--info-soft);color:var(--info)}.badge{background:var(--surface-2);color:var(--muted);white-space:nowrap;border-radius:999px;align-items:center;gap:4px;padding:2px 9px;font-size:.74rem;font-weight:650;display:inline-flex}.badge.pendiente,.badge.observado{background:var(--warn-soft);color:var(--warn)}.badge.aprobada,.badge.firmado{background:var(--ok-soft);color:var(--ok)}.badge.rechazada{background:var(--danger-soft);color:var(--danger)}.badge.anulada{background:var(--surface-2);color:var(--muted);text-decoration:line-through}.badge.publicado{background:var(--info-soft);color:var(--info)}.badge.count{background:var(--accent);color:#fff}.badge.brand{background:var(--brand-soft);color:var(--brand-strong)}table{border-collapse:collapse;width:100%}th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding:8px 10px;font-size:.76rem;font-weight:650}td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px}tr:last-child td{border-bottom:none}.table-wrap{margin:0 -18px;padding:0 18px;overflow-x:auto}.facts td:first-child{color:var(--muted);width:36%;min-width:96px}.facts td{overflow-wrap:anywhere}.items{flex-direction:column;display:flex}.item{border-bottom:1px solid var(--border);color:inherit;align-items:center;gap:12px;padding:12px 4px;display:flex}.item:last-child{border-bottom:none}a.item:hover{background:var(--surface-2);border-radius:10px;text-decoration:none}.item .ico{background:var(--surface-2);border-radius:12px;flex-shrink:0;place-items:center;width:42px;height:42px;font-size:1.25rem;display:grid}.item .body{flex:1;min-width:0}.item .title{white-space:nowrap;text-overflow:ellipsis;font-weight:650;overflow:hidden}.item .meta{color:var(--muted);font-size:.8rem}.item .end{text-align:right;flex-direction:column;align-items:flex-end;gap:4px;display:flex}.avatar{color:#fff;background:var(--brand);border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;font-size:.8rem;font-weight:700;display:grid}.avatar.lg{width:56px;height:56px;font-size:1.15rem}.empty{text-align:center;color:var(--muted);padding:30px 12px}.empty .big{font-size:2.3rem}.bar{background:var(--surface-2);border-radius:999px;height:10px;overflow:hidden}.bar>span{background:var(--brand);border-radius:999px;height:100%;display:block}.bar>span.accent{background:var(--accent)}.ring-wrap{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.ring{flex-shrink:0;width:150px;height:150px;position:relative}.ring svg{transform:rotate(-90deg)}.ring .center{text-align:center;place-items:center;display:grid;position:absolute;inset:0}.ring .center strong{letter-spacing:-.02em;font-size:2rem;line-height:1;display:block}.ring .center span{color:var(--muted);font-size:.78rem}.legend{flex:1;gap:6px;min-width:200px;font-size:.9rem;display:grid}.legend div{justify-content:space-between;gap:12px;display:flex}.legend .dot{border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.timeline{margin:0;padding:0;list-style:none}.timeline li{padding:0 0 14px 22px;position:relative}.timeline li:before{content:"";background:var(--brand);border-radius:50%;width:8px;height:8px;position:absolute;top:7px;left:5px}.timeline li:after{content:"";background:var(--border);width:1px;position:absolute;top:18px;bottom:0;left:8.5px}.timeline li:last-child:after{display:none}.cal{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.cal .dow{text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0;font-size:.72rem;font-weight:650}.cal .day{border:1px solid var(--border);background:var(--surface);border-radius:10px;flex-direction:column;gap:3px;min-width:0;min-height:92px;padding:6px;display:flex}.cal .day.off{background:var(--surface-2)}.cal .day.out{opacity:.35}.cal .day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cal .n{color:var(--muted);font-size:.78rem;font-weight:700}.cal .hol{color:var(--accent);font-size:.66rem;font-weight:600;line-height:1.2}.cal .chip{background:var(--brand-soft);color:var(--brand-strong);white-space:nowrap;text-overflow:ellipsis;border-radius:6px;padding:1px 6px;font-size:.7rem;font-weight:600;overflow:hidden}.cal .chip.pendiente{background:var(--warn-soft);color:var(--warn)}@media (max-width:860px){.cal .day{min-height:64px;padding:4px}.cal .chip{padding:0 3px;font-size:.6rem}}.benefit{flex-direction:column;gap:8px;display:flex}.benefit .top{align-items:flex-start;gap:12px;display:flex}.benefit .emoji{background:var(--brand-soft);border-radius:14px;flex-shrink:0;place-items:center;width:52px;height:52px;font-size:1.7rem;display:grid}.benefit .quota{font-size:1.05rem;font-weight:750}.cat-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 10px;font-size:.78rem;font-weight:700}.sigpad{border:2px dashed var(--border);touch-action:none;cursor:crosshair;background:#fff;border-radius:12px;width:100%;height:180px;display:block}.pdf-frame{border:1px solid var(--border);background:var(--surface-2);border-radius:12px;width:100%;height:70vh}@media (max-width:860px){.pdf-frame{height:55vh}}.segmented{background:var(--surface-2);border-radius:10px;flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented a,.segmented label{color:var(--muted);cursor:pointer;border-radius:8px;margin:0;padding:6px 12px;font-size:.85rem;font-weight:600}.segmented a.active,.segmented input:checked+span{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.segmented input{display:none}.segmented label span{border-radius:8px;padding:6px 12px;display:inline-block}.segmented label{padding:0}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);background:var(--surface-2);padding:16px}.dropzone:hover{border-color:var(--brand)}.auth-wrap{background:radial-gradient(circle at 12% 12%, var(--brand-soft), transparent 45%), radial-gradient(circle at 88% 88%, var(--accent-soft), transparent 40%), var(--bg);place-items:center;min-height:100vh;padding:20px;display:grid}.auth-card{width:100%;max-width:410px}details summary{cursor:pointer;font-weight:600}hr{border:none;border-top:1px solid var(--border);margin:16px 0}.voucher{max-width:720px}.sign-lines{text-align:center;grid-template-columns:1fr 1fr;gap:40px;margin-top:60px;font-size:.85rem;display:grid}.sign-lines div{border-top:1px solid var(--text);padding-top:6px}@media (max-width:860px){.hide-mobile{display:none}}@media print{.sidebar,.tabbar,.no-print,.mobile-top{display:none!important}.shell{display:block}.main{padding:0}.card{box-shadow:none;border:none}body{background:#fff}}
