:root{--bg-app:#f6f8fb;--bg-surface:#fff;--bg-surface-elevated:#fff;--bg-soft:#edf1f7;--bg-input:#fff;--line:#dfe5f0;--line-soft:#edf1f7;--ink-primary:#121826;--ink-secondary:#56617a;--ink-muted:#8c97ad;--brand-primary:#1e3a8a;--brand-light:#eff6ff;--brand-hover:#172554;--accent-gold:#f59e0b;--accent-gold-soft:#fef3c7;--accent-gold-ink:#78350f;--status-ok:#10b981;--status-ok-bg:#ecfdf5;--status-ok-ink:#065f46;--status-warn:#f59e0b;--status-warn-bg:#fffbeb;--status-warn-ink:#92400e;--status-danger:#ef4444;--status-danger-bg:#fef2f2;--status-danger-ink:#991b1b;--status-info:#3b82f6;--status-info-bg:#eff6ff;--status-info-ink:#1e40af;--shadow-sm:0 1px 2px 0 #1218260d;--shadow-md:0 4px 6px -1px #12182614, 0 2px 4px -2px #1218260d;--shadow-lg:0 10px 15px -3px #1218261a, 0 4px 6px -4px #1218260d;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-full:9999px;--focus-ring:0 0 0 2px var(--bg-surface), 0 0 0 4px var(--brand-primary);--font-sans:"Plus Jakarta Sans", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace}[data-theme=dark]{--bg-app:#0b0f19;--bg-surface:#121826;--bg-surface-elevated:#1a2235;--bg-soft:#1d263b;--bg-input:#172033;--line:#26334d;--line-soft:#1d263b;--ink-primary:#f1f5f9;--ink-secondary:#94a3b8;--ink-muted:#64748b;--brand-primary:#3b82f6;--brand-light:#1e293b;--brand-hover:#60a5fa;--accent-gold:#fbbf24;--accent-gold-soft:#2e2309;--accent-gold-ink:#fef08a;--status-ok:#34d399;--status-ok-bg:#064e3b;--status-ok-ink:#a7f3d0;--status-warn:#fbbf24;--status-warn-bg:#451a03;--status-warn-ink:#fde68a;--status-danger:#f87171;--status-danger-bg:#450a0a;--status-danger-ink:#fecaca;--status-info:#60a5fa;--status-info-bg:#172554;--status-info-ink:#bfdbfe;--shadow-sm:0 1px 2px 0 #0000004d;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #00000080;--focus-ring:0 0 0 2px var(--bg-surface), 0 0 0 4px var(--brand-hover)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--ink-primary);-webkit-font-smoothing:antialiased;line-height:1.5}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;transition:all .15s}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,a:focus-visible{box-shadow:var(--focus-ring);outline:none}input,select,textarea{border:1px solid var(--line);background:var(--bg-input);border-radius:var(--radius-sm);outline:none;padding:8px 12px;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--brand-primary)}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-flex}.badge-ok{background:var(--status-ok-bg);color:var(--status-ok-ink)}.badge-warn{background:var(--status-warn-bg);color:var(--status-warn-ink)}.badge-danger{background:var(--status-danger-bg);color:var(--status-danger-ink)}.badge-info{background:var(--status-info-bg);color:var(--status-info-ink)}.card{background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:16px}.btn-primary{background:var(--brand-primary);color:#fff;border-radius:var(--radius-sm);align-items:center;gap:8px;padding:8px 16px;font-weight:600;display:inline-flex}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{background:var(--bg-soft);color:var(--ink-secondary);border:1px solid var(--line);border-radius:var(--radius-sm);align-items:center;gap:6px;padding:8px 14px;font-weight:600;display:inline-flex}.btn-secondary:hover{background:var(--line);color:var(--ink-primary)}.btn-danger{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid var(--status-danger);border-radius:var(--radius-sm);padding:6px 12px;font-weight:600}.btn-danger:hover{background:var(--status-danger);color:#fff}.modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0a0f1d99;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-surface);border:1px solid var(--line);border-radius:var(--radius-lg);width:100%;max-width:540px;box-shadow:var(--shadow-lg);animation:.2s cubic-bezier(.16,1,.3,1) modalIn;overflow:hidden}@keyframes modalIn{0%{opacity:0;transform:scale(.96)translateY(8px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton{background:linear-gradient(90deg, var(--bg-soft) 25%, var(--line) 50%, var(--bg-soft) 75%);border-radius:var(--radius-sm);background-size:200% 100%;animation:1.5s infinite shimmer}.table-sticky-col{background:var(--bg-surface);z-index:2;position:sticky;left:0;box-shadow:2px 0 5px -2px #00000014}thead .table-sticky-col{z-index:3;background:var(--bg-soft)}.causal-tree-step{padding-left:28px;position:relative}.causal-tree-step:before{content:"";background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:10px}.causal-tree-step:last-child:before{height:14px}@media print{body{color:#111827!important;background:#fff!important;font-size:11pt!important}header,nav,.no-print,button,.btn-primary,.btn-secondary,.btn-danger{display:none!important}.modal-backdrop{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:0 0!important;padding:0!important;display:block!important;position:static!important;inset:auto!important}.modal-content.print-report{width:100%!important;max-width:100%!important;box-shadow:none!important;border:none!important;border-radius:0!important;max-height:none!important;overflow:visible!important}#reporte-imprimible{padding:0!important;overflow:visible!important}.card{break-inside:avoid;page-break-inside:avoid;box-shadow:none!important;border:1px solid #d1d5db!important}table{page-break-inside:avoid;width:100%!important}thead{display:table-header-group!important}tr{page-break-inside:avoid}}@keyframes modalEnter{0%{opacity:0;transform:scale(.96)translateY(-8px)}to{opacity:1;transform:scale(1)translateY(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
