:root{color-scheme:dark;--bg: #0e0f14;--card: #16181f;--card-2: #1c1f28;--border: #2a2d38;--border-soft: #2a2d3866;--accent: #00d4aa;--accent-dim: #00d4aa1f;--warn: #ffb347;--danger: #ff5f5f;--green: #4ade80;--blue: #6aa8ff;--text: #e8eaf0;--sub: #a3a9b6;--muted: #6f7584;--mono: "IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--sans: "IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--radius: 6px;--side: 232px;--top: 64px;--topbar: #121b24;--on-accent: #001a14;--shadow: #0008;--overlay: #000a}:root[data-theme=light]{color-scheme:light;--bg: #f3f5f8;--card: #ffffff;--card-2: #f5f7fa;--border: #d8dde5;--border-soft: #d8dde599;--accent: #007a65;--accent-dim: #007a6514;--warn: #a85f00;--danger: #c62828;--green: #18804a;--blue: #2563c9;--text: #1a2230;--sub: #4a5364;--muted: #6b7384;--topbar: #ffffff;--on-accent: #ffffff;--shadow: #1a223022;--overlay: #1a223066}:root[data-theme=light] .btn.danger,:root[data-theme=light] .btn.green,:root[data-theme=light] .btn.warn{color:#fff}:root[data-theme=light] .top-logo{border:1px solid var(--border)}:root[data-theme=light] .nav-count{color:#fff}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px;line-height:1.45}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--card)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}input,select,textarea{background:var(--card-2);border:1px solid var(--border);color:var(--text);font-family:var(--sans);font-size:13px;border-radius:4px;padding:7px 10px;outline:none;transition:border-color .15s;width:100%}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input:disabled,select:disabled,textarea:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}select option{background:var(--card-2)}textarea{resize:vertical}button{cursor:pointer;font-family:var(--sans)}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}label,.label{font-size:11px;color:var(--sub);letter-spacing:.05em;text-transform:uppercase;display:block}.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.muted{color:var(--muted)}.sub{color:var(--sub)}.small{font-size:12px}.tiny{font-size:11px}.accent{color:var(--accent)}.c-warn{color:var(--warn)}.c-danger{color:var(--danger)}.c-green{color:var(--green)}.eyebrow{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.15em;text-transform:uppercase}.h1{font-size:22px;font-weight:600;letter-spacing:-.01em;text-wrap:balance}.h2{font-size:16px;font-weight:600}.app{display:flex;flex-direction:column;min-height:100%}.app-body{display:grid;grid-template-columns:var(--side) 1fr;flex:1}.sidebar{background:var(--card);border-right:1px solid var(--border);padding:18px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:var(--top);height:calc(100vh - var(--top));overflow-y:auto}.nav-group{font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;padding:14px 10px 6px}.nav-link{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 10px;border-radius:4px;color:var(--sub);font-size:13px}.nav-link:hover{background:var(--card-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-dim);color:var(--accent)}.nav-count{font-family:var(--mono);font-size:10px;background:var(--warn);color:#000;border-radius:9px;padding:0 6px}.main{min-width:0;display:flex;flex-direction:column}.topbar{height:var(--top);border-bottom:1px solid var(--border);background:var(--topbar);display:flex;align-items:center;padding:0 24px;gap:14px;position:sticky;top:0;z-index:30}.top-marca{display:flex;align-items:center;gap:16px;color:var(--text);min-width:0}.top-marca:hover{text-decoration:none}.top-logo{display:inline-flex;background:#fff;border-radius:8px;padding:5px 10px;flex-shrink:0}.top-logo img{display:block;height:34px;width:auto}.top-titulo{font-size:20px;font-weight:600;letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.top-acciones{display:flex;align-items:center;gap:18px;flex-shrink:0}.top-user{display:flex;flex-direction:column;align-items:flex-end;line-height:1.25;border-radius:6px;padding:4px 8px}.top-user:hover,.top-user.active{background:var(--card-2);text-decoration:none}.top-user-nombre{color:var(--text);font-size:15px;font-weight:600;white-space:nowrap}.top-user-rol{color:var(--accent);font-size:12px;font-weight:500;white-space:nowrap}.content{padding:24px;width:100%;max-width:1240px;margin:0 auto}.menu-btn{display:none;background:none;border:1px solid var(--border);color:var(--text);border-radius:4px;padding:4px 10px;font-size:16px}.menu-fondo{display:none}.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;flex-wrap:wrap}.page-head .actions{display:flex;gap:8px;flex-wrap:wrap}@media (max-width: 900px){.app-body{grid-template-columns:1fr}.sidebar{position:fixed;z-index:40;left:0;top:var(--top);width:260px;height:calc(100vh - var(--top));transform:translate(-100%);transition:transform .2s}.sidebar.open{transform:none}.menu-fondo{display:block;position:fixed;inset:var(--top) 0 0 0;background:var(--overlay);z-index:35}.menu-btn{display:inline-block}.content{padding:16px}.topbar{padding:0 16px;gap:10px}.top-acciones{gap:10px}}@media (max-width: 720px){.top-user{display:none}.top-titulo{font-size:17px}}.tema-btn{display:inline-flex;align-items:center;gap:8px;background:none;border:none;color:var(--sub);border-radius:6px;padding:6px}.tema-btn:hover{background:var(--card-2);color:var(--text)}.nav-link.tema-btn{width:100%;justify-content:flex-start;padding:8px 10px;font-size:13px}.nav-link.tema-btn svg{width:16px;height:16px}.menu-pie{margin-top:auto;padding-top:12px;border-top:1px solid var(--border);flex-direction:column;gap:4px}.solo-angosto{display:none}@media (max-width: 720px){.solo-angosto{display:flex}.solo-amplio{display:none}}.txt-corto{display:none}@media (max-width: 480px){.topbar{gap:8px;padding:0 12px}.top-marca{gap:8px}.top-logo{padding:4px 6px}.top-logo img{height:24px}.top-titulo{font-size:15px}.top-acciones{gap:6px}.topbar .btn.outline{padding:6px 10px;font-size:12px}.txt-largo{display:none}.txt-corto{display:inline}}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:18px}.card.flat{background:var(--card-2)}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.row.end{align-items:flex-end}.spacer{flex:1}.grid{display:grid;gap:14px}.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.g5{grid-template-columns:repeat(5,minmax(0,1fr))}@media (max-width: 900px){.g3,.g4,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.hint{font-size:11px;color:var(--muted)}.sec-title{display:flex;justify-content:space-between;align-items:center;gap:8px;border-bottom:1px solid var(--border);padding-bottom:10px;margin-bottom:14px}.sec-title>span:first-child{font-family:var(--mono);font-size:11px;color:var(--accent);letter-spacing:.15em;text-transform:uppercase}.btn{border:1px solid transparent;border-radius:4px;font-weight:500;letter-spacing:.02em;font-size:13px;padding:8px 16px;display:inline-flex;align-items:center;gap:6px;white-space:nowrap;transition:filter .15s,background .15s}.btn:hover:not(:disabled){filter:brightness(1.1)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.sm{font-size:12px;padding:5px 11px}.btn.lg{font-size:14px;padding:11px 24px}.btn.block{width:100%;justify-content:center}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.ghost{background:transparent;color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.btn.soft{background:var(--accent-dim);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 27%,transparent)}.btn.muted{background:var(--border);color:var(--text)}.btn.outline{background:transparent;color:var(--text);border-color:var(--border);padding:8px 16px;font-weight:600}.btn.outline:hover{background:var(--card-2)}.btn.danger{background:var(--danger);color:#1a0000}.btn.warn{background:var(--warn);color:#1a0f00}.btn.green{background:var(--green);color:#001a08}.btn.link{background:none;border:none;color:var(--sub);padding:4px 6px}.btn.link:hover{color:var(--text)}.btn.icon{padding:5px 9px}.badge{display:inline-flex;align-items:center;gap:5px;border-radius:3px;padding:2px 8px;font-size:11px;font-family:var(--mono);white-space:nowrap;border:1px solid}.dot{width:6px;height:6px;border-radius:50%;display:inline-block;background:currentColor}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;background:var(--card)}table.t{width:100%;border-collapse:collapse;font-size:13px}.t th{text-align:left;font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.05em;text-transform:uppercase;padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;background:var(--card)}.t td{padding:10px 12px;border-bottom:1px solid var(--border-soft);vertical-align:middle}.t tr:last-child td{border-bottom:none}.t tr.click{cursor:pointer}.t tr.click:hover td{background:var(--card-2)}.t th.r,.t td.r{text-align:right}.t tfoot td{font-weight:600;border-top:1px solid var(--border)}.line{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--border-soft);font-size:13px}.line:last-child{border-bottom:none}.line>:first-child{color:var(--sub)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:16px;overflow-x:auto}.tab{background:none;border:none;border-bottom:2px solid transparent;color:var(--sub);padding:9px 14px;font-family:var(--mono);font-size:12px;letter-spacing:.04em;white-space:nowrap}.tab:hover{color:var(--text)}.tab.active{color:var(--accent);border-bottom-color:var(--accent)}.notice{border-radius:6px;padding:10px 14px;font-size:13px;border:1px solid}.notice.warn{background:color-mix(in srgb,var(--warn) 7%,transparent);border-color:color-mix(in srgb,var(--warn) 33%,transparent)}.notice.danger{background:color-mix(in srgb,var(--danger) 7%,transparent);border-color:color-mix(in srgb,var(--danger) 33%,transparent)}.notice.ok{background:color-mix(in srgb,var(--green) 7%,transparent);border-color:color-mix(in srgb,var(--green) 33%,transparent)}.notice.info{background:var(--accent-dim);border-color:color-mix(in srgb,var(--accent) 27%,transparent)}.notice .eyebrow{margin-bottom:4px}.empty{color:var(--muted);padding:28px;text-align:center;font-size:13px}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay);z-index:60;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto}.modal{background:var(--card);border:1px solid var(--border);border-radius:10px;width:100%;max-width:560px;padding:20px}.modal.wide{max-width:860px}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.modal-foot{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;flex-wrap:wrap}.toasts{position:fixed;bottom:18px;right:18px;z-index:80;display:flex;flex-direction:column;gap:8px;max-width:min(380px,calc(100vw - 36px))}.toast{background:var(--card-2);border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;padding:10px 14px;font-size:13px;box-shadow:0 6px 20px var(--shadow)}.toast.error{border-left-color:var(--danger)}.kpi{padding:16px}.kpi .v{font-family:var(--mono);font-size:22px;margin-top:6px;font-variant-numeric:tabular-nums}.kpi .d{font-size:12px;color:var(--muted);margin-top:2px}.bars{display:flex;flex-direction:column;gap:8px}.bar-row{display:grid;grid-template-columns:minmax(90px,160px) 1fr auto;gap:10px;align-items:center;font-size:12px}.bar-track{height:10px;background:var(--card-2);border-radius:0 4px 4px 0;position:relative}.bar-fill{height:100%;border-radius:0 4px 4px 0;background:var(--accent);min-width:2px}.cols{display:flex;align-items:flex-end;gap:6px;height:150px;padding-top:8px}.col{flex:1;display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}.col-fill{width:100%;max-width:40px;background:var(--accent);border-radius:4px 4px 0 0;min-height:2px}.col-label{font-size:10px;color:var(--muted);font-family:var(--mono)}.bell{position:relative;display:inline-flex;background:none;border:none;color:var(--warn);border-radius:6px;padding:6px}.bell:hover{background:var(--card-2)}.bell .n{position:absolute;top:-4px;right:-8px;background:var(--danger);color:#fff;font-family:var(--mono);font-size:10px;font-weight:600;border-radius:9px;padding:1px 6px;border:2px solid var(--topbar)}.dropdown{position:absolute;right:0;top:calc(100% + 6px);background:var(--card);border:1px solid var(--border);border-radius:8px;width:min(380px,calc(100vw - 32px));box-shadow:0 10px 30px var(--shadow);z-index:50}.notif{padding:10px 14px;border-bottom:1px solid var(--border-soft);cursor:pointer}.notif:hover{background:var(--card-2)}.notif.unread{border-left:2px solid var(--warn)}.timeline{display:flex;flex-direction:column;gap:0}.tl-item{display:grid;grid-template-columns:14px 1fr;gap:10px;padding-bottom:12px;position:relative}.tl-item:before{content:"";position:absolute;left:6px;top:14px;bottom:0;width:1px;background:var(--border)}.tl-item:last-child:before{display:none}.tl-dot{width:13px;height:13px;border-radius:50%;border:2px solid var(--accent);background:var(--bg);margin-top:3px}.auth-tema{position:absolute;top:16px;right:16px}.auth-wrap{position:relative;min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 16px;background:radial-gradient(ellipse 70% 50% at 50% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 70%),var(--bg)}.auth-card{width:100%;max-width:440px;background:var(--card);border:1px solid var(--border);border-radius:14px;padding:36px 32px 26px;box-shadow:0 24px 60px var(--shadow)}.auth-head{text-align:center;margin-bottom:28px}.auth-logo{display:inline-flex;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px 14px;margin-bottom:22px}.auth-logo img{display:block;height:43px;width:auto}.auth-title{font-size:28px;font-weight:600;letter-spacing:-.02em;line-height:1.2}.auth-sub{color:var(--sub);font-size:15px;margin-top:8px}.auth-form{display:flex;flex-direction:column;gap:18px}.auth-card .field{gap:6px}.auth-card .field label{text-transform:none;letter-spacing:0;font-size:13px;font-weight:600}.auth-card input{font-size:15px;padding:11px 14px;border-radius:8px}.auth-card .btn.lg{font-size:15px;font-weight:600;padding:13px 24px;border-radius:8px}.auth-link{font-size:15px;font-weight:600;text-decoration:underline;text-underline-offset:3px}.auth-foot{text-align:center;color:var(--muted);font-size:13px;margin-top:24px}.clave-wrap{position:relative}.clave-wrap input{padding-right:84px}.clave-ver{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--sub);font-size:13px;font-weight:600;padding:6px 10px;border-radius:6px}.clave-ver:hover{color:var(--text);background:var(--border-soft)}@media (max-width: 480px){.auth-card{padding:28px 20px 22px}.auth-title{font-size:24px}}.divider{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:11px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.matrix th.rot{writing-mode:initial}.matrix td.c,.matrix th.c{text-align:center}.pill-toggle{display:inline-flex;border:1px solid var(--border);border-radius:4px;overflow:hidden}.pill-toggle button{background:none;border:none;color:var(--sub);padding:4px 9px;font-size:11px}.pill-toggle button.on{background:var(--accent-dim);color:var(--accent)}.pill-toggle button.on.no{background:color-mix(in srgb,var(--danger) 13%,transparent);color:var(--danger)}.switch{display:inline-flex;gap:8px;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;font-size:12px;color:var(--sub);background:none;border:1px solid var(--border);border-radius:4px;padding:6px 12px}.switch .trk{width:30px;height:16px;border-radius:8px;background:var(--border);position:relative;transition:background .2s}.switch .trk:after{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:left .2s}.switch.on{border-color:var(--warn);color:var(--warn)}.switch.on .trk{background:var(--warn)}.switch.on .trk:after{left:16px}.item-block{padding:14px 0;border-bottom:1px solid var(--border)}.item-block:last-child{border-bottom:none}.informe-card{display:block;text-decoration:none;transition:border-color .15s}.informe-card:hover,.informe-card:focus-visible{border-color:var(--accent)}.chip{display:inline-block;padding:3px 9px;background:var(--card-2);border:1px solid var(--border);border-radius:4px;font-size:11px;color:var(--sub)}@media (prefers-reduced-motion: reduce){*{transition:none!important}}@media print{.sidebar,.topbar{display:none}}
