@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&display=swap);:root{--anh-primary:#074a6a;--anh-secondary:#0caabc;--anh-accent:#c97435;--anh-sand:#ebe6df;--anh-mist:#f3f6f8;--anh-text:#1b2430;--sidebar-bg:#074a6a;--sidebar-surface:#0a5c80;--sidebar-border:#ffffff1a;--sidebar-text:#9ecad8;--sidebar-text-active:#f0f8ff;--sidebar-hover:#ffffff14;--sidebar-active-bg:#0caabc33;--sidebar-width:240px;--sidebar-width-col:72px;--content-bg:#f3f6f8;--content-surface:#fff;--content-border:#dde3e8;--content-text:#1b2430;--content-text-muted:#5a6a7a;--content-text-hint:#94a3b8;--header-bg:#053d58;--header-border:#ffffff1a;--header-height:60px;--accent-a:#4f8ef7;--accent-b:#2dd4bf;--accent-c:#a78bfa;--accent-d:#f5c842;--accent-e:#f87171;--accent-f:#34d399;--accent-g:#f472b6;--accent-h:#4ade80;--accent-i:#60a5fa;--status-ok:#22c55e;--status-warn:#f59e0b;--status-danger:#ef4444;--status-pending:#94a3b8;--font:"Outfit",sans-serif;--fs-xs:12px;--fs-sm:13px;--fs-base:15px;--fs-md:17px;--fs-lg:20px;--fs-xl:24px;--fw-light:300;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014;--shadow-md:0 4px 16px #0000001a;--shadow-lg:0 8px 32px #00000024;--shadow-xl:0 16px 48px #0000002e;--ease:0.18s ease;--ease-slow:0.32s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}#root,body,html{-webkit-font-smoothing:antialiased;background:#f3f6f8;background:var(--content-bg);color:#1b2430;color:var(--content-text);font-family:Outfit,sans-serif;font-family:var(--font);font-size:15px;font-size:var(--fs-base);height:100%}.app-layout{display:grid;grid-template-areas:"sidebar header" "sidebar main";grid-template-columns:240px 1fr;grid-template-columns:var(--sidebar-width) 1fr;grid-template-rows:60px 1fr;grid-template-rows:var(--header-height) 1fr;min-height:100vh}.sidebar{background:#074a6a;background:var(--sidebar-bg);border-right:1px solid #ffffff1a;border-right:1px solid var(--sidebar-border);display:flex;flex-direction:column;grid-area:sidebar;height:100vh;overflow:hidden;position:sticky;top:0;transition:width .32s ease;transition:width var(--ease-slow);z-index:100}.sidebar-logo{border-bottom:1px solid #ffffff1a;border-bottom:1px solid var(--sidebar-border);gap:10px;height:60px;height:var(--header-height);padding:0 16px}.sidebar-logo,.sidebar-logo-mark{align-items:center;display:flex;flex-shrink:0}.sidebar-logo-mark{background:linear-gradient(135deg,#c97435,#e8892a);background:linear-gradient(135deg,var(--anh-accent),#e8892a);border-radius:6px;border-radius:var(--radius-sm);color:#fff;font-size:12px;font-weight:600;font-weight:var(--fw-semibold);height:32px;justify-content:center;width:32px}.sidebar-logo-text{display:flex;flex-direction:column;overflow:hidden}.sidebar-logo-title{color:#f0f8ff;color:var(--sidebar-text-active);font-size:13px;font-size:var(--fs-sm);font-weight:500;font-weight:var(--fw-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logo-sub{color:#9ecad8;color:var(--sidebar-text);font-size:12px;font-size:var(--fs-xs);white-space:nowrap}.sidebar-nav{display:flex;flex:1 1;flex-direction:column;gap:2px;padding:12px 8px}.sidebar-section-label{color:#ffffff59;font-size:10px;font-weight:500;font-weight:var(--fw-medium);letter-spacing:.08em;padding:12px 8px 4px;text-transform:uppercase}.nav-item{align-items:center;background:none;border:none;border-radius:10px;border-radius:var(--radius-md);box-sizing:border-box;color:#9ecad8;color:var(--sidebar-text);cursor:pointer;display:flex;font-size:13px;font-size:var(--fs-sm);font-weight:400;font-weight:var(--fw-regular);gap:10px;overflow:hidden;padding:9px 12px;text-align:left;text-decoration:none;transition:background .18s ease,color .18s ease;transition:background var(--ease),color var(--ease);white-space:nowrap;width:100%}.nav-icon{flex-shrink:0;font-size:17px;line-height:1;text-align:center;width:20px}.nav-label{flex:1 1;overflow:hidden;text-overflow:ellipsis}.nav-logout:hover{background:#ef44441a;color:#f87171}.sidebar-overlay-click{display:none}.header-title{flex:1 1;font-size:15px;font-weight:600;margin:0 12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-item:hover{background:#ffffff14;background:var(--sidebar-hover);color:#f0f8ff;color:var(--sidebar-text-active)}.nav-item.active{background:#0caabc33;background:var(--sidebar-active-bg);color:#a8efff;font-weight:500;font-weight:var(--fw-medium)}.nav-item-icon{flex-shrink:0;height:18px;opacity:.7;width:18px}.nav-item.active .nav-item-icon{opacity:1}.nav-item-badge{background:#0caabc2e;border-radius:9999px;border-radius:var(--radius-full);color:#0caabc;color:var(--anh-secondary);font-size:10px;font-weight:500;font-weight:var(--fw-medium);margin-left:auto;padding:2px 7px}.sidebar-footer{border-top:1px solid #ffffff1a;border-top:1px solid var(--sidebar-border);padding:12px 8px}.header{background:#053d58;background:var(--header-bg);border-bottom:1px solid #ffffff1a;border-bottom:1px solid var(--header-border);box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm);grid-area:header;height:60px;height:var(--header-height);justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:90}.header,.header-left{align-items:center;display:flex}.header-left{gap:12px}.header-title{color:#f0f8ff;font-size:17px;font-size:var(--fs-md);font-weight:700;letter-spacing:-.01em}.header-breadcrumb{color:#ffffff8c;font-size:13px;font-size:var(--fs-sm)}.header-right{gap:10px}.header-avatar,.header-right{align-items:center;display:flex}.header-avatar{background:linear-gradient(135deg,#c97435,#e8892a);background:linear-gradient(135deg,var(--anh-accent),#e8892a);border:2px solid #ffffff40;border-radius:9999px;border-radius:var(--radius-full);box-shadow:0 2px 8px #c9743559;color:#fff;cursor:pointer;font-size:12px;font-weight:600;height:34px;justify-content:center;transition:box-shadow .18s ease,transform .18s ease;transition:box-shadow var(--ease),transform var(--ease);width:34px}.header-avatar:hover{box-shadow:0 4px 14px #c9743580;transform:scale(1.05)}.header-role-badge{background:#0caabc33;border:1px solid #0caabc59;border-radius:9999px;border-radius:var(--radius-full);color:#7de8f2;font-size:12px;font-size:var(--fs-xs);font-weight:500;font-weight:var(--fw-medium);padding:3px 10px}.header-role-badge.admin{background:#c9743538;border-color:#c9743566;color:#f5b07a}.main-content{background-attachment:local;background-image:url(/static/media/topographic-pattern.893bacb8939388121a03.svg);background-position:top;background-repeat:no-repeat;background-size:cover;grid-area:main;overflow-y:auto;padding:24px}.modules-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.module-card{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:14px;border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;gap:10px;overflow:hidden;padding:1.1rem 1.25rem;position:relative;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;transition:transform var(--ease),box-shadow var(--ease),border-color var(--ease)}.module-card:before{background:#4f8ef7;background:var(--card-accent,var(--accent-a));content:"";height:3px;left:0;opacity:1;position:absolute;right:0;top:0;transition:opacity .18s ease;transition:opacity var(--ease)}.module-card:hover{border-color:#cbd5e1;box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-2px)}.module-card-header{align-items:center;display:flex;justify-content:space-between}.module-card-number{background:#f3f6f8;background:var(--content-bg);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:9999px;border-radius:var(--radius-full);color:#94a3b8;color:var(--content-text-hint);font-size:12px;font-size:var(--fs-xs);font-weight:500;font-weight:var(--fw-medium);padding:2px 8px}.module-card-status{background:#94a3b8;background:var(--status-pending);border-radius:9999px;border-radius:var(--radius-full);height:8px;width:8px}.module-card-icon{align-items:center;border-radius:10px;border-radius:var(--radius-md);display:flex;flex-shrink:0;font-size:18px;height:42px;justify-content:center;width:42px}.module-card-title{color:#1b2430;color:var(--content-text);font-size:13px;font-size:var(--fs-sm);font-weight:500;font-weight:var(--fw-medium);line-height:1.4}.module-card-desc{color:#5a6a7a;color:var(--content-text-muted);font-size:12px;font-size:var(--fs-xs);line-height:1.5}.module-card-footer{align-items:center;border-top:1px solid #dde3e8;border-top:1px solid var(--content-border);display:flex;justify-content:space-between;margin-top:auto;padding-top:8px}.module-card-stack{color:#94a3b8;color:var(--content-text-hint);font-size:10px}.module-card-group{border-radius:9999px;border-radius:var(--radius-full);font-size:10px;font-weight:500;font-weight:var(--fw-medium);padding:2px 8px}.group-a{--card-accent:var(--accent-a);background:#eff6ff;color:#1e40af}.group-b{--card-accent:var(--accent-b);background:#f0fdfa;color:#0f766e}.group-c{--card-accent:var(--accent-c);background:#f5f3ff;color:#6d28d9}.group-d{--card-accent:var(--accent-d);background:#fefce8;color:#854d0e}.group-e{--card-accent:var(--accent-e);background:#fff1f2;color:#9f1239}.group-f{--card-accent:var(--accent-f);background:#f0fdf4;color:#166534}.group-g{--card-accent:var(--accent-g);background:#fdf2f8;color:#9d174d}.group-h{--card-accent:var(--accent-h);background:#f7fee7;color:#3f6212}.group-i{--card-accent:var(--accent-i);background:#eff6ff;color:#1d4ed8}.icon-group-a{background:#dbeafe}.icon-group-b{background:#ccfbf1}.icon-group-c{background:#ede9fe}.icon-group-d{background:#fef9c3}.icon-group-e{background:#fee2e2}.icon-group-f{background:#dcfce7}.icon-group-g{background:#fce7f3}.icon-group-h{background:#d9f99d}.icon-group-i{background:#dbeafe}.neu-grid{display:flex;flex-wrap:wrap;gap:8px}.neu-btn{align-items:center;border:none;border-radius:50%;cursor:pointer;display:flex;font-family:Outfit,sans-serif;font-family:var(--font);font-size:11px;font-weight:600;font-weight:var(--fw-semibold);height:44px;justify-content:center;position:relative;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease;transition:transform var(--ease),box-shadow var(--ease),opacity var(--ease);width:44px}.neu-btn:hover{transform:translateY(-2px)}.neu-btn:active{transform:scale(.95)}.neu-btn.unset{cursor:not-allowed;opacity:.4}.neu-btn.unset:hover{transform:none}.neu-a{background:linear-gradient(145deg,#1a2a4a,#0d1a33);box-shadow:4px 4px 10px #0009,-2px -2px 6px #4f8ef71a,inset 0 1px 0 #ffffff0f;color:#4f8ef7;color:var(--accent-a)}.neu-b{background:linear-gradient(145deg,#1a2a1a,#0d1f0d);box-shadow:4px 4px 10px #0009,-2px -2px 6px #2dd4bf1a,inset 0 1px 0 #ffffff0f;color:#2dd4bf;color:var(--accent-b)}.neu-c{background:linear-gradient(145deg,#2a1a2a,#1a0d1a);box-shadow:4px 4px 10px #0009,-2px -2px 6px #a78bfa1a,inset 0 1px 0 #ffffff0f;color:#a78bfa;color:var(--accent-c)}.neu-d{background:linear-gradient(145deg,#2a2a1a,#1a1a0d);box-shadow:4px 4px 10px #0009,-2px -2px 6px #f5c8421a,inset 0 1px 0 #ffffff0f;color:#f5c842;color:var(--accent-d)}.neu-e{background:linear-gradient(145deg,#2a1a1a,#1a0d0d);box-shadow:4px 4px 10px #0009,-2px -2px 6px #f871711a,inset 0 1px 0 #ffffff0f;color:#f87171;color:var(--accent-e)}.neu-f{background:linear-gradient(145deg,#1a2a1e,#0d1a11);box-shadow:4px 4px 10px #0009,-2px -2px 6px #34d3991a,inset 0 1px 0 #ffffff0f;color:#34d399;color:var(--accent-f)}.neu-g{background:linear-gradient(145deg,#2a1a2a,#1a0d2a);box-shadow:4px 4px 10px #0009,-2px -2px 6px #f472b61a,inset 0 1px 0 #ffffff0f;color:#f472b6;color:var(--accent-g)}.neu-h{background:linear-gradient(145deg,#1a2218,#0d180a);box-shadow:4px 4px 10px #0009,-2px -2px 6px #4ade801a,inset 0 1px 0 #ffffff0f;color:#4ade80;color:var(--accent-h)}.neu-i{background:linear-gradient(145deg,#1e1a2a,#130d1a);box-shadow:4px 4px 10px #0009,-2px -2px 6px #60a5fa26,inset 0 1px 0 #ffffff0f;color:#60a5fa;color:var(--accent-i)}.neu-btn .neu-tooltip{background:#0f1117;border:.5px solid #ffffff1a;border-radius:6px;border-radius:var(--radius-sm);bottom:112%;color:#94a3b8;display:none;font-size:10px;left:50%;line-height:1.4;padding:4px 8px;pointer-events:none;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:200}.neu-btn:hover .neu-tooltip{display:block}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f111799;display:flex;inset:0;justify-content:center;padding:16px;position:fixed;z-index:1000}.modal{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:20px;border-radius:var(--radius-xl);box-shadow:0 16px 48px #0000002e;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:calc(100vh - 32px);max-width:520px;overflow:hidden;width:100%}.modal.modal-lg{max-width:720px}.modal.modal-sm{max-width:380px}.modal-header{align-items:center;border-bottom:1px solid #dde3e8;border-bottom:1px solid var(--content-border);display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px 16px}.modal-title{color:#1b2430;color:var(--content-text);font-size:17px;font-size:var(--fs-md);font-weight:500;font-weight:var(--fw-medium)}.modal-subtitle{font-size:12px;font-size:var(--fs-xs);margin-top:2px}.modal-close,.modal-subtitle{color:#5a6a7a;color:var(--content-text-muted)}.modal-close{align-items:center;background:none;border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:9999px;border-radius:var(--radius-full);cursor:pointer;display:flex;flex-shrink:0;font-size:16px;height:30px;justify-content:center;transition:background .18s ease,color .18s ease;transition:background var(--ease),color var(--ease);width:30px}.modal-close:hover{background:#f3f6f8;background:var(--content-bg);color:#1b2430;color:var(--content-text)}.modal-body{-webkit-overflow-scrolling:touch;flex:1 1;overflow-y:auto;padding:20px 24px}.modal-footer{align-items:center;border-top:1px solid #dde3e8;border-top:1px solid var(--content-border);display:flex;flex-shrink:0;gap:10px;justify-content:flex-end;padding:16px 24px}.btn{align-items:center;border:1px solid #0000;border-radius:10px;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:Outfit,sans-serif;font-family:var(--font);font-size:13px;font-size:var(--fs-sm);font-weight:500;font-weight:var(--fw-medium);gap:6px;padding:8px 18px;text-decoration:none;transition:background .18s ease,box-shadow .18s ease,transform .18s ease;transition:background var(--ease),box-shadow var(--ease),transform var(--ease);white-space:nowrap}.btn:active{transform:scale(.98)}.btn-primary{background:#c97435;background:var(--anh-accent);border-color:#c97435;border-color:var(--anh-accent);color:#fff}.btn-primary:hover{background:#b5652a;box-shadow:0 1px 3px #00000014;box-shadow:var(--shadow-sm)}.btn-secondary{background:#f3f6f8;background:var(--content-bg);border-color:#dde3e8;border-color:var(--content-border);color:#1b2430;color:var(--content-text)}.btn-secondary:hover{background:#e2e8f0}.btn-danger{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.btn-danger:hover{background:#fee2e2}.btn-ghost{background:none;border-color:#0000;color:#5a6a7a;color:var(--content-text-muted)}.btn-ghost:hover{background:#f3f6f8;background:var(--content-bg);color:#1b2430;color:var(--content-text)}.btn-sm{font-size:12px;font-size:var(--fs-xs);padding:5px 12px}.btn-lg{font-size:15px;font-size:var(--fs-base);padding:11px 24px}.form-group{display:flex;flex-direction:column;gap:5px;margin-bottom:16px}.form-label{color:#5a6a7a;color:var(--content-text-muted);font-size:12px;font-size:var(--fs-xs);font-weight:500;font-weight:var(--fw-medium);letter-spacing:.05em;text-transform:uppercase}.form-input,.form-select,.form-textarea{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:10px;border-radius:var(--radius-md);color:#1b2430;color:var(--content-text);font-family:Outfit,sans-serif;font-family:var(--font);font-size:13px;font-size:var(--fs-sm);outline:none;padding:9px 12px;transition:border-color .18s ease,box-shadow .18s ease;transition:border-color var(--ease),box-shadow var(--ease);width:100%}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:#0caabc;border-color:var(--anh-secondary);box-shadow:0 0 0 3px #0caabc26}.form-textarea{min-height:90px;resize:vertical}.form-hint{color:#94a3b8;color:var(--content-text-hint)}.form-error,.form-hint{font-size:12px;font-size:var(--fs-xs)}.form-error{color:#ef4444;color:var(--status-danger)}.kpi-grid{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));margin-bottom:24px}.kpi-card{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border-left:3px solid #0caabc;border:1px solid var(--content-border);border-left:3px solid var(--anh-secondary);border-radius:14px;border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:6px;padding:16px 18px;transition:box-shadow .18s ease,transform .18s ease;transition:box-shadow var(--ease),transform var(--ease)}.kpi-card:hover{box-shadow:0 4px 16px #0000001a;box-shadow:var(--shadow-md);transform:translateY(-1px)}.kpi-label{color:#5a6a7a;color:var(--content-text-muted);font-size:12px;font-size:var(--fs-xs);font-weight:500;font-weight:var(--fw-medium);letter-spacing:.06em;text-transform:uppercase}.kpi-value{color:#1b2430;color:var(--content-text);font-size:28px;font-weight:700;line-height:1}.section-label{color:#5a6a7a;color:var(--content-text-muted);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase}.group-card-btn{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:14px;border-radius:var(--radius-lg);box-shadow:0 1px 4px #0000000f;cursor:pointer;display:block;overflow:hidden;padding:0;text-align:left;transition:box-shadow .18s ease,border-color .18s ease,transform .18s ease;transition:box-shadow var(--ease),border-color var(--ease),transform var(--ease);width:100%}.kpi-delta{align-items:center;color:#22c55e;color:var(--status-ok);display:flex;font-size:12px;font-size:var(--fs-xs);gap:3px}.kpi-delta.neg{color:#ef4444;color:var(--status-danger)}.badge{align-items:center;border-radius:9999px;border-radius:var(--radius-full);display:inline-flex;font-size:11px;font-weight:500;font-weight:var(--fw-medium);gap:4px;padding:3px 10px}.badge-blue{background:#eff6ff;color:#1e40af}.badge-teal{background:#f0fdfa;color:#0f766e}.badge-green{background:#f0fdf4;color:#166534}.badge-yellow{background:#fefce8;color:#854d0e}.badge-red{background:#fff1f2;color:#9f1239}.badge-gray{background:#f1f5f9;color:#475569}.badge-purple{background:#f5f3ff;color:#6d28d9}.semaforo{align-items:center;display:inline-flex;font-size:12px;font-size:var(--fs-xs);gap:5px}.semaforo:before{border-radius:9999px;border-radius:var(--radius-full);content:"";flex-shrink:0;height:8px;width:8px}.table-wrapper{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:14px;border-radius:var(--radius-lg);overflow:hidden}.table-wrapper table{border-collapse:collapse;font-size:13px;font-size:var(--fs-sm);width:100%}.table-wrapper thead tr{background:#f3f6f8;background:var(--content-bg);border-bottom:1px solid #dde3e8;border-bottom:1px solid var(--content-border)}.table-wrapper th{color:#5a6a7a;color:var(--content-text-muted);font-size:12px;font-size:var(--fs-xs);font-weight:500;font-weight:var(--fw-medium);letter-spacing:.05em;padding:10px 14px;text-align:left;text-transform:uppercase;white-space:nowrap}.table-wrapper td{border-bottom:1px solid #dde3e8;border-bottom:1px solid var(--content-border);color:#1b2430;color:var(--content-text);padding:12px 14px;vertical-align:middle}.table-wrapper tbody tr:last-child td{border-bottom:none}.table-wrapper tbody tr:hover td{background:#f8fafc}@media (max-width:1024px){:root{--sidebar-width:var(--sidebar-width-col)}.nav-item-badge,.nav-label,.sidebar-logo-text,.sidebar-section-label{display:none}.nav-item{justify-content:center;padding:10px}.nav-icon{font-size:19px;width:22px}.main-content{padding:16px}}@media (max-width:640px){.app-layout{grid-template-areas:"header" "main";grid-template-columns:1fr;grid-template-rows:60px 1fr;grid-template-rows:var(--header-height) 1fr}.sidebar{height:100vh;left:-240px;position:fixed;top:0;transition:left .32s ease;transition:left var(--ease-slow);width:240px;z-index:200}.sidebar.open{left:0}.sidebar.open .nav-label,.sidebar.open .sidebar-logo-text{display:block}.sidebar.open .nav-item{justify-content:flex-start;padding:9px 12px}.sidebar-overlay-click{background:#00000080;display:block;inset:0;position:fixed;z-index:199}.main-content{padding:12px}.header{padding:0 16px}.modal-overlay{align-items:flex-end;padding:0}.modal{border-bottom-left-radius:0;border-bottom-right-radius:0;max-height:92vh;max-width:100%}.modules-grid{grid-template-columns:1fr}.kpi-grid{grid-template-columns:repeat(2,1fr)}.modal-header{padding:16px 16px 12px}.modal-body{padding:14px 16px}.modal-footer{flex-wrap:wrap;padding:12px 16px}.modal-footer .btn{flex:1 1;justify-content:center}.table-wrapper{overflow-x:auto}}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{animation:shimmer 1.4s linear infinite;background:linear-gradient(90deg,#dde3e8 25%,#e8eef2 50%,#dde3e8 75%);background:linear-gradient(90deg,var(--content-border) 25%,#e8eef2 50%,var(--content-border) 75%);background-size:600px 100%;border-radius:10px;border-radius:var(--radius-md)}.skeleton-card{background:#fff;background:var(--content-surface);border:1px solid #dde3e8;border:1px solid var(--content-border);border-radius:14px;border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:10px;padding:1.1rem 1.25rem}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}:focus:not(:focus-visible){outline:none}:focus-visible{border-radius:6px;border-radius:var(--radius-sm);outline:2px solid #0caabc;outline:2px solid var(--anh-secondary);outline-offset:3px}.nav-item:focus-visible{background:#ffffff14;background:var(--sidebar-hover);outline:2px solid #0caabc;outline:2px solid var(--anh-secondary);outline-offset:-2px}.btn:focus-visible{box-shadow:0 0 0 4px #0caabc33;outline:2px solid #0caabc;outline:2px solid var(--anh-secondary);outline-offset:2px}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{box-shadow:0 0 0 3px #0caabc2e;outline:2px solid #0caabc;outline:2px solid var(--anh-secondary);outline-offset:0}.group-card-btn:focus-visible,.kpi-card:focus-visible,.module-card:focus-visible{box-shadow:0 0 0 4px #0caabc26;outline:2px solid #0caabc;outline:2px solid var(--anh-secondary);outline-offset:2px}@media (max-width:640px){.btn{padding:10px 20px}.btn,.btn-sm{min-height:44px}.btn-sm{font-size:13px;font-size:var(--fs-sm);padding:10px 16px}.btn-lg{min-height:52px}.nav-item{min-height:48px}.form-input,.form-select{font-size:16px;min-height:44px}.module-card button{min-height:44px!important;padding:10px 16px!important}.header-avatar{font-size:14px}.header-avatar,.modal-close{height:44px;width:44px}}.module-card-status.ok{background:#22c55e;background:var(--status-ok);border-radius:9999px;border-radius:var(--radius-full)}.module-card-status.warn{background:#f59e0b;background:var(--status-warn);border-radius:2px}.module-card-status.danger{background:#ef4444;background:var(--status-danger);border-radius:0;clip-path:polygon(50% 0,0 100%,100% 100%)}.semaforo.ok:before{background:#22c55e;background:var(--status-ok);border-radius:50%}.semaforo.warn:before{background:#f59e0b;background:var(--status-warn);border-radius:2px}.semaforo.danger:before{background:#ef4444;background:var(--status-danger);border-radius:0;clip-path:polygon(50% 0,0 100%,100% 100%)}.semaforo.pending:before{background:#94a3b8;background:var(--status-pending);border-radius:50%;opacity:.5}.status-label{align-items:center;display:inline-flex;font-size:12px;font-size:var(--fs-xs);font-weight:500;font-weight:var(--fw-medium);gap:5px}.status-label:before{content:"";flex-shrink:0;height:8px;width:8px}.status-label.ok{color:#166534}.status-label.ok:before{background:#22c55e;background:var(--status-ok);border-radius:50%}.status-label.warn{color:#92400e}.status-label.warn:before{background:#f59e0b;background:var(--status-warn);border-radius:2px}.status-label.danger{color:#9f1239}.status-label.danger:before{background:#ef4444;background:var(--status-danger);border-radius:0;clip-path:polygon(50% 0,0 100%,100% 100%)}html.a11y-text-lg{font-size:112.5%}html.a11y-text-xl{font-size:125%}html.a11y-contrast,html.a11y-contrast body{background:#000!important;color:#fff!important}html.a11y-contrast .header,html.a11y-contrast .sidebar{background:#111!important;border-color:#555!important}html.a11y-contrast .main-content{background:#000!important}html.a11y-contrast .nav-item{color:#ffe066!important}html.a11y-contrast .nav-item.active,html.a11y-contrast .nav-item:hover{background:#333!important;color:#fff!important}html.a11y-contrast .header-title{color:#fff!important}html.a11y-contrast .header-avatar{background:#333!important;color:#ffe066!important}html.a11y-contrast [class*=-card],html.a11y-contrast [class*=card]{background:#1a1a1a!important;border-color:#555!important;color:#fff!important}html.a11y-contrast button:not([style*="background:#074"]){background:#1a1a1a!important;border-color:#555!important;color:#ffe066!important}html.a11y-contrast input,html.a11y-contrast select,html.a11y-contrast textarea{background:#111!important;border-color:#888!important;color:#fff!important}html.a11y-contrast table,html.a11y-contrast td,html.a11y-contrast th{border-color:#555!important;color:#fff!important}html.a11y-contrast th{background:#222!important}html.a11y-contrast tr:nth-child(2n){background:#111!important}html.a11y-grayscale{filter:grayscale(100%)}html.a11y-dyslexia,html.a11y-dyslexia *{font-family:Arial,Helvetica Neue,Helvetica,sans-serif!important;letter-spacing:.04em!important;line-height:1.8!important;word-spacing:.08em!important}@media (max-width:640px){.a11y-btn-label{display:none}}html.a11y-underline .nav-item,html.a11y-underline [role=link],html.a11y-underline a{text-decoration:underline!important;text-underline-offset:3px!important}
/*# sourceMappingURL=main.95f90c5e.css.map*/