*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0}:root{--brand-primary: #0EA5E9;--brand-secondary: #0284C7;--brand-accent: #F97316;--bg-base: #F0F9FF;--bg-surface: #FFFFFF;--bg-subtle: #E0F2FE;--bg-sidebar: #0C4A6E;--text-primary: #0C4A6E;--text-secondary: #475569;--text-muted: #94A3B8;--text-on-dark: #F0F9FF;--success: #10B981;--warning: #F59E0B;--danger: #EF4444;--info: #0EA5E9;--shadow-card: 0 1px 3px rgba(14,165,233,.08), 0 4px 12px rgba(14,165,233,.06);--shadow-hover: 0 4px 16px rgba(14,165,233,.18);--shadow-btn: 0 2px 12px rgba(14,165,233,.25);--border-color: #BAE6FD;--radius-card: 16px;--radius-btn: 10px;--radius-input: 10px;--chat-bubble-ia: #EFF6FF;--chat-bubble-user:#0EA5E9}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:#f0f9ff}::-webkit-scrollbar-thumb{background:#0ea5e9;border-radius:4px}html{scroll-behavior:smooth}body{font-family:Plus Jakarta Sans,Inter,system-ui,sans-serif;background:var(--bg-base);color:var(--text-primary);margin:0}::selection{background:#0ea5e933;color:#0c4a6e}.btn-primary{background:var(--brand-primary);color:#fff;border-radius:var(--radius-btn);padding:.6rem 1.4rem;font-weight:600;transition:all .2s;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem}.btn-primary:hover{background:var(--brand-secondary);transform:translateY(-1px);box-shadow:var(--shadow-hover)}.btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5);border-radius:var(--radius-btn);padding:.6rem 1.4rem;font-weight:600;transition:all .2s;display:inline-flex;align-items:center;gap:.5rem}.btn-ghost:hover{border-color:#fff;background:#ffffff1a}.btn-secondary{background:var(--bg-subtle);color:var(--brand-primary);border:1.5px solid var(--brand-primary);border-radius:var(--radius-btn);padding:.6rem 1.4rem;font-weight:600;transition:all .2s}.btn-secondary:hover{background:var(--brand-primary);color:#fff}.card{background:var(--bg-surface);border-radius:var(--radius-card);box-shadow:var(--shadow-card);border:1px solid var(--border-color);padding:1.5rem;transition:all .25s}.card:hover{box-shadow:var(--shadow-hover)}.input{background:var(--bg-subtle);border:1.5px solid var(--border-color);border-radius:var(--radius-input);padding:.6rem 1rem;color:var(--text-primary);width:100%;font-family:inherit;font-size:.95rem;transition:border-color .2s,background .2s;outline:none}.input:focus{border-color:var(--brand-primary);background:#fff}.input::placeholder{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:99px;font-size:.78rem;font-weight:600}.badge-success{background:#d1fae5;color:#065f46}.badge-warning{background:#fef3c7;color:#92400e}.badge-danger{background:#fee2e2;color:#991b1b}.badge-info{background:#e0f2fe;color:#0c4a6e}.sidebar-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:10px;color:#f0f9ffa6;font-weight:500;transition:all .2s;text-decoration:none}.sidebar-link:hover{color:#fff;background:#ffffff1a}.sidebar-link.active{color:#fff;background:#0ea5e940;border-left:3px solid var(--brand-primary)}.eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.1em;color:var(--brand-primary);text-transform:uppercase}.section-title{font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800;color:var(--text-primary);line-height:1.2;margin:0}.section-title em{font-style:italic;color:var(--brand-primary)}.nav-link{position:relative;color:var(--text-secondary);text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s}.nav-link:after{content:"";position:absolute;bottom:-2px;left:0;width:100%;height:2px;background:var(--brand-primary);transform:scaleX(0);transform-origin:left;transition:transform .25s cubic-bezier(.16,1,.3,1)}.nav-link:hover{color:var(--brand-primary)}.nav-link:hover:after{transform:scaleX(1)}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.16,1,.3,1)}.reveal.visible{opacity:1;transform:translateY(0)}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}.marquee-track{animation:marquee 30s linear infinite}.marquee-track:hover{animation-play-state:paused}@keyframes scrollLine{0%,to{height:24px;opacity:.6}50%{height:48px;opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@media (max-width: 767px){body{overflow-x:hidden}}
