*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes chatBounce{0%,80%,to{transform:translateY(0)}40%{transform:translateY(-4px)}}@keyframes chatFadeIn{0%{opacity:0}to{opacity:1}}.chat-loading-text{font-size:13px;font-family:var(--font);color:var(--gray-600);animation:chatFadeIn .25s ease-out}.chat-loading-dots{font-size:13px;color:var(--gray-600);line-height:1}.chat-loading-dots>span{display:inline-block;animation:chatBounce 1.2s ease-in-out infinite}.chat-loading-dots>span:nth-child(2){animation-delay:.15s}.chat-loading-dots>span:nth-child(3){animation-delay:.3s}.pdf-spinner{width:13px;height:13px;border-radius:50%;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:spin .7s linear infinite;flex-shrink:0}:root{--navy: #16202e;--navy-700: #26344a;--navy-500: #45566f;--lime: #8DC63F;--lime-700: #5f8a24;--lime-050: #eef6df;--paper: #f5f4ef;--surface: #ffffff;--surface-2: #fbfaf6;--line: #e6e3da;--line-strong: #d6d2c6;--ink: #18212e;--ink-2: #545f6d;--ink-3: #8a929e;--ok: #4b7a1e;--ok-bg: #eef6df;--warn: #a9741a;--warn-bg: #f7edd6;--crit: #bf3b2b;--crit-bg: #f9e7e3;--pending: #6b7280;--pending-bg: #edefec;--sans: "Montserrat", system-ui, -apple-system, sans-serif;--serif: "Montserrat", system-ui, sans-serif;--t-display: clamp(2.1rem, 1.3rem + 3vw, 3.4rem);--t-h1: clamp(1.5rem, 1.15rem + 1.4vw, 2.05rem);--t-h2: 1.25rem;--t-body: .97rem;--t-sm: .82rem;--t-xs: .72rem;--r-sm: 3px;--r-md: 5px;--r-lg: 9px;--shadow-sm: 0 1px 2px rgba(20,30,45,.05);--shadow-md: 0 4px 16px rgba(20,30,45,.07), 0 1px 3px rgba(20,30,45,.04);--shadow-lg: 0 24px 60px rgba(20,30,45,.2);--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 36px;--sp-7: 48px;--sp-8: 64px;--green: var(--lime);--green-dark: var(--lime-700);--green-light: var(--lime-050);--navy-mid: var(--navy-700);--gray-100: var(--paper);--gray-200: var(--line);--gray-400: var(--ink-3);--gray-600: var(--ink-2);--gray-800: var(--ink);--red: var(--crit);--font: var(--sans)}html,body,#root{height:100%;width:100%;font-family:var(--sans);background:var(--paper);color:var(--ink)}*{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.serif{font-family:var(--serif);font-optical-sizing:auto;letter-spacing:-.01em}.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.label{font-size:var(--t-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}.site-header{padding:0 32px}.dash-main{max-width:1140px;width:100%;margin:0 auto;padding:28px 24px 48px}.kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:22px}.charts-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:22px}.dash-cols{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px;align-items:start}.indicador-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(440px,1fr));gap:18px}@media (max-width: 700px){.site-header{padding:0 14px}.header-user{display:none}.dash-main{padding:16px 12px 40px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}.indicador-grid{grid-template-columns:1fr}}.login-wrap{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.login-aside{position:relative;overflow:hidden;color:#fff;padding:clamp(40px,6.5vw,104px);padding-left:calc(clamp(40px,6.5vw,104px) + 200px);display:flex;flex-direction:column;background:radial-gradient(130% 90% at 25% 0%,#17171b,#0a0a0b 55%,#050506)}.login-form-col{display:flex;align-items:center;justify-content:center;padding:clamp(24px,4vw,56px);background:var(--paper)}.login-card{width:100%;max-width:424px}.aside-inner{position:relative;z-index:2;display:flex;flex-direction:column;height:100%}.aside-main{flex:1;display:flex;flex-direction:column;justify-content:center;max-width:460px}@media (max-width: 860px){.login-wrap{grid-template-columns:1fr;grid-template-rows:auto 1fr}.login-aside{padding:34px 26px 30px}.aside-inner{height:auto}.aside-main{flex:none;justify-content:flex-start;margin:20px 0 6px}}.cad-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:20px}.cad-grid>.cad-span{grid-column:1 / -1}@media (max-width: 560px){.cad-grid{grid-template-columns:1fr}}
