@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Rajdhani:wght@400;500;600;700&family=Barlow:wght@300;400;500;600&display=swap");:root{--vv-magenta:#c09;--vv-magenta-dark:#907;--vv-magenta-light:#f0a;--vv-amber:#f5b800;--vv-amber-dark:#d4a000;--bg-dark:#0f0f0f;--bg-card:#1a1a1a;--bg-card-hover:#222;--bg-surface:#141414;--border:#2a2a2a;--border-light:#333;--text-primary:#f0f0f0;--text-secondary:#9a9a9a;--text-muted:#666;--success:#22c55e;--warning:#f59e0b;--danger:#ef4444;--info:#3b82f6;--sidebar-width:252px;--sidebar-collapsed:56px;--font-heading:"Space Grotesk",sans-serif;--font-body:"DM Sans",sans-serif;--radius:10px;--radius-sm:6px;--radius-lg:16px;--shadow:0 2px 12px rgba(0,0,0,.4);--shadow-lg:0 8px 32px rgba(0,0,0,.6)}[data-theme=light]{--bg-dark:#f0f2f5;--bg-card:#fff;--bg-card-hover:#f7f7f7;--bg-surface:#f4f4f6;--border:#e2e4e9;--border-light:#d0d3da;--text-primary:#111118;--text-secondary:#5a5c6a;--text-muted:#9496a3;--shadow:0 2px 12px rgba(0,0,0,.08);--shadow-lg:0 8px 32px rgba(0,0,0,.12)}[data-theme=light] body,[data-theme=light] html,body[data-theme=light],html[data-theme=light]{background-color:var(--bg-dark);color:var(--text-primary)}:root{--brok-black:#1a1a1a;--brok-green:#7ab648;--brok-green-dark:#5d9135;--brok-silver:silver;--brok-font-heading:"Rajdhani",sans-serif;--brok-font-body:"Barlow",sans-serif}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%;background-color:var(--bg-dark);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:var(--font-body)}.app-layout{display:flex;min-height:100vh}.main-content{flex:1 1;margin-left:var(--sidebar-width);min-height:100vh;transition:margin-left .2s ease;overflow-x:hidden}.main-content.sidebar-collapsed{margin-left:var(--sidebar-collapsed)}.page-container{padding:24px;max-width:1400px;margin:0 auto}.card{transition:border-color .2s,transform .15s}.card:hover{border-color:var(--border-light)}.card-clickable:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn{transition:all .15s}.btn-primary{background:var(--vv-magenta)}.btn-primary:hover{background:var(--vv-magenta-dark)}.btn-amber:hover{background:var(--vv-amber-dark)}.btn-green:hover{background:var(--brok-green-dark)}.badge{display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.badge-green{background:rgba(122,182,72,.15);color:var(--brok-green);border:1px solid rgba(122,182,72,.3)}.badge-red{background:rgba(239,68,68,.15);color:#ef4444;border:1px solid rgba(239,68,68,.3)}.badge-amber{background:rgba(245,184,0,.15);color:var(--vv-amber);border:1px solid rgba(245,184,0,.3)}.badge-blue{background:rgba(59,130,246,.15);color:#3b82f6;border:1px solid rgba(59,130,246,.3)}.badge-magenta{background:rgba(204,0,153,.15);color:var(--vv-magenta);border:1px solid rgba(204,0,153,.3)}.badge-gray{background:hsla(0,0%,39%,.2);color:var(--text-secondary);border:1px solid var(--border)}h1,h2,h3,h4,h5{font-family:var(--font-heading);font-weight:600;line-height:1.2}.grid-2{grid-template-columns:repeat(2,1fr);grid-gap:16px}.grid-2,.grid-3{display:grid;gap:16px}.grid-3{grid-template-columns:repeat(3,1fr);grid-gap:16px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}@media (max-width:1024px){.grid-3,.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.main-content{margin-left:0}.page-container{padding:16px}}.table-wrapper{overflow-x:auto;border-radius:var(--radius);border:1px solid var(--border)}table{width:100%;border-collapse:collapse}th{background:var(--bg-surface);color:var(--text-secondary);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;text-align:left}td,th{border-bottom:1px solid var(--border)}td{padding:11px 14px;color:var(--text-primary);font-size:13px}tr:last-child td{border-bottom:none}tr:hover td{background:hsla(0,0%,100%,.02)}input,select,textarea{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font-body);font-size:13px;padding:8px 12px;outline:none;width:100%;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--vv-magenta)}.semaforo-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0}.semaforo-verde{background:var(--success);box-shadow:0 0 6px rgba(34,197,94,.5)}.semaforo-amarillo{background:var(--warning);box-shadow:0 0 6px rgba(245,159,11,.5)}.semaforo-rojo{background:var(--danger);box-shadow:0 0 6px rgba(239,68,68,.5)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeRight{0%{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:translateX(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes pulseSlow{0%,to{opacity:1}50%{opacity:.6}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes spinSlow{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes glowPulse{0%,to{box-shadow:0 0 8px rgba(204,0,153,.3),0 0 20px rgba(204,0,153,.1)}50%{box-shadow:0 0 16px rgba(204,0,153,.6),0 0 40px rgba(204,0,153,.2)}}@keyframes glowAmber{0%,to{box-shadow:0 0 8px rgba(245,184,0,.3)}50%{box-shadow:0 0 20px rgba(245,184,0,.6)}}@keyframes orbFloat{0%,to{transform:translate(0) scale(1)}33%{transform:translate(20px,-30px) scale(1.05)}66%{transform:translate(-15px,15px) scale(.95)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes borderFlow{0%,to{border-color:rgba(204,0,153,.5)}50%{border-color:rgba(245,184,0,.5)}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}@keyframes scanLine{0%{transform:translateY(-100%);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(100vh);opacity:0}}@keyframes countUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}@keyframes liveBlip{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.5}}@keyframes slideInRight{0%{opacity:0;transform:translateX(24px)}to{opacity:1;transform:translateX(0)}}@keyframes cardReveal{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.animate-fade-in{animation:fadeIn .35s ease forwards}.animate-fade-up{animation:fadeUp .4s ease forwards}.animate-scale-in{animation:scaleIn .3s ease forwards}.animate-slide-right{animation:slideInRight .35s ease forwards}.animate-pulse{animation:pulse 2s ease infinite}.animate-pulse-slow{animation:pulseSlow 3s ease infinite}.animate-spin{animation:spin .8s linear infinite}.animate-spin-slow{animation:spinSlow 6s linear infinite}.animate-glow{animation:glowPulse 2.5s ease infinite}.animate-glow-amber{animation:glowAmber 2.5s ease infinite}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .25s,transform .2s,box-shadow .25s;animation:cardReveal .4s ease forwards}.card:hover{border-color:rgba(204,0,153,.25);box-shadow:0 4px 24px rgba(0,0,0,.4),0 0 0 1px rgba(204,0,153,.08)}.card-clickable:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(0,0,0,.5),0 0 20px rgba(204,0,153,.08)}.card-glow:hover{border-color:rgba(204,0,153,.4);box-shadow:0 0 30px rgba(204,0,153,.15),0 8px 32px rgba(0,0,0,.5)}.live-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--success);position:relative}.live-dot:after{content:"";position:absolute;inset:-3px;border-radius:50%;background:rgba(34,197,94,.3);animation:liveBlip 1.5s ease infinite}.live-dot.magenta{background:var(--vv-magenta)}.live-dot.magenta:after{background:rgba(204,0,153,.3)}.live-dot.amber{background:var(--vv-amber)}.live-dot.amber:after{background:rgba(245,184,0,.3)}.stat-card{background:linear-gradient(135deg,var(--bg-card) 0,rgba(204,0,153,.04) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;position:relative;overflow:hidden;transition:all .25s}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--vv-magenta),var(--vv-amber));transform:scaleX(0);transform-origin:left;transition:transform .3s}.stat-card:hover:before{transform:scaleX(1)}.stat-card:hover{border-color:rgba(204,0,153,.2);box-shadow:0 4px 20px rgba(0,0,0,.4);transform:translateY(-1px)}.stat-card .stat-val{font-size:28px;font-weight:800;font-family:var(--font-heading);animation:countUp .6s ease forwards;background:linear-gradient(135deg,#fff 60%,hsla(0,0%,100%,.7));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-val.magenta{background:linear-gradient(135deg,var(--vv-magenta),#f4c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-val.amber{background:linear-gradient(135deg,var(--vv-amber),#fd4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-val.green{background:linear-gradient(135deg,var(--success),#4ade80);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-val.blue{background:linear-gradient(135deg,var(--info),#60a5fa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.stat-card .stat-label{font-size:10px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;margin-top:4px}.stat-card .stat-sub{font-size:11px;color:var(--text-secondary);margin-top:6px}.skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,hsla(0,0%,100%,.06) 50%,var(--bg-card) 75%);background-size:200% 100%;animation:shimmer 1.5s ease infinite;border-radius:var(--radius-sm)}.gradient-text{background:linear-gradient(135deg,var(--vv-magenta),var(--vv-amber));-webkit-background-clip:text;background-clip:text}.gradient-text,.gradient-text-blue{-webkit-text-fill-color:transparent}.gradient-text-blue{background:linear-gradient(135deg,#3b82f6,#06b6d4);-webkit-background-clip:text;background-clip:text}.border-animated{animation:borderFlow 3s ease infinite}.page-orb{position:fixed;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0;animation:orbFloat 15s ease infinite}.page-orb-1{width:600px;height:600px;top:-200px;left:-100px;background:radial-gradient(circle,rgba(204,0,153,.06) 0,transparent 70%)}.page-orb-2{width:500px;height:500px;bottom:-150px;right:-100px;background:radial-gradient(circle,rgba(245,184,0,.05) 0,transparent 70%);animation-delay:-7s}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;border:none;transition:all .2s;white-space:nowrap;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.08),transparent);transform:translateX(-100%);transition:transform .4s}.btn:hover:after{transform:translateX(100%)}.btn-primary{background:linear-gradient(135deg,var(--vv-magenta),#909);color:#fff;box-shadow:0 2px 12px rgba(204,0,153,.3)}.btn-primary:hover{box-shadow:0 4px 20px rgba(204,0,153,.5);transform:translateY(-1px)}.btn-amber{background:var(--vv-amber);color:#111}.btn-amber:hover{box-shadow:0 4px 16px rgba(245,184,0,.4);transform:translateY(-1px)}.btn-green{background:var(--brok-green);color:#fff}.btn-green:hover{box-shadow:0 4px 16px rgba(122,182,72,.4);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-light)}.btn-sm{padding:5px 10px;font-size:12px}.typing-dots{display:flex;gap:4px;align-items:center;padding:8px 12px}.typing-dots span{width:6px;height:6px;border-radius:50%;background:var(--text-secondary);animation:typingDot 1.2s ease infinite}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--border-light);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}[data-theme=light] tr:hover td{background:rgba(0,0,0,.02)}[data-theme=light] .modal-overlay{background:rgba(0,0,0,.4)}[data-theme=light] .skeleton{background:linear-gradient(90deg,var(--bg-card) 25%,rgba(0,0,0,.04) 50%,var(--bg-card) 75%);background-size:200% 100%}[data-theme=light] .page-orb-1{background:radial-gradient(circle,rgba(204,0,153,.04) 0,transparent 70%)}[data-theme=light] .page-orb-2{background:radial-gradient(circle,rgba(245,184,0,.04) 0,transparent 70%)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:flex-end;justify-content:flex-end;padding:24px}.modal-overlay.centered{align-items:center;justify-content:center}.text-muted{color:var(--text-secondary)}.text-tiny{font-size:11px}.text-sm{font-size:12px}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.mt-4{margin-top:4px}.mt-8{margin-top:8px}.mt-16{margin-top:16px}.mt-24{margin-top:24px}.w-full{width:100%}.mobile-bottom-bar{display:none;position:fixed;bottom:0;left:0;right:0;height:64px;background:var(--bg-surface);border-top:1px solid var(--border);z-index:150;padding:0 8px env(safe-area-inset-bottom,0)}@media (max-width:768px){.mobile-bottom-bar{display:flex;align-items:center;justify-content:space-around}.main-content{padding-bottom:72px!important}}.mbb-item{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1 1;padding:8px 4px;border-radius:10px;border:none;background:none;color:var(--text-muted);font-size:10px;font-weight:600;cursor:pointer;transition:all .15s;text-decoration:none;position:relative}.mbb-item.active,.mbb-item:hover{color:var(--vv-magenta);background:rgba(204,0,153,.08)}.mbb-item.active .mbb-icon{transform:scale(1.15)}.mbb-icon{font-size:20px;line-height:1}.mbb-badge{position:absolute;top:4px;right:calc(50% - 18px);width:7px;height:7px;border-radius:50%;background:var(--danger);border:1.5px solid var(--bg-surface)}@media (max-width:1024px){.kpi-row{grid-template-columns:repeat(2,1fr)!important}}@media (max-width:760px){.main-content table{display:block;overflow-x:auto;white-space:nowrap;max-width:100%}.board,.ed-board,.grid-turnos,.main-content table{-webkit-overflow-scrolling:touch}}@media (max-width:600px){[class$=-page]{padding:16px 14px!important}.kpi-row{grid-template-columns:repeat(2,1fr)!important}.main-content button,.main-content input[type=date],.main-content input[type=month],.main-content input[type=number],.main-content input[type=text],.main-content input[type=time],.main-content select{min-height:38px}.modal-bg>div,.modal-box{max-width:100%!important}}@media (max-width:380px){.kpi-row{grid-template-columns:1fr!important}[class$=-page]{padding:14px 12px!important}}