@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--font-main:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, sans-serif;--bg-dark:#0f172a;--bg-card:#1e293bbf;--bg-card-hover:#334155d9;--bg-input:#0f172a99;--border-color:#ffffff1a;--border-highlight:#6366f166;--primary:#6366f1;--primary-hover:#4f46e5;--primary-glow:#6366f159;--secondary:#06b6d4;--secondary-glow:#06b6d459;--success:#10b981;--success-bg:#10b98126;--success-border:#10b9814d;--warning:#f59e0b;--warning-bg:#f59e0b26;--warning-border:#f59e0b4d;--danger:#ef4444;--danger-bg:#ef444426;--danger-border:#ef44444d;--info:#3b82f6;--info-bg:#3b82f626;--info-border:#3b82f64d;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--shadow-lg:0 10px 25px -5px #0006, 0 8px 10px -6px #0000004d;--glass-backdrop:blur(16px) saturate(180%);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-main);background-color:var(--bg-dark);color:var(--text-main);background-image:radial-gradient(at 0 0,#6366f126 0,#0000 50%),radial-gradient(at 100% 0,#06b6d426 0,#0000 50%),radial-gradient(at 50% 100%,#0f172acc 0,#0000 50%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:#334155;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#475569}.app-layout{flex-direction:column;min-height:100vh;display:flex}.main-body{flex:1;width:100%;display:flex}.content-container{flex:1;width:100%;max-width:1600px;margin:0 auto;padding:24px}.glass-panel{background:var(--bg-card);-webkit-backdrop-filter:var(--glass-backdrop);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.glass-card-interactive{transition:all .2s ease-in-out}.glass-card-interactive:hover{background:var(--bg-card-hover);border-color:var(--border-highlight);transform:translateY(-2px)}.btn{border-radius:var(--radius-sm);font-family:var(--font-main);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-size:.9rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--primary) 0%, #4f46e5 100%);color:#fff;box-shadow:0 4px 14px var(--primary-glow)}.btn-primary:hover{box-shadow:0 6px 20px var(--primary-glow);background:linear-gradient(135deg,#4f46e5 0%,#4338ca 100%);transform:translateY(-1px)}.btn-secondary{color:var(--text-main);border:1px solid var(--border-color);background:#ffffff14}.btn-secondary:hover{background:#ffffff26;border-color:#fff3}.btn-accent{background:linear-gradient(135deg, var(--secondary) 0%, #0284c7 100%);color:#fff;box-shadow:0 4px 14px var(--secondary-glow)}.btn-accent:hover{filter:brightness(1.1);transform:translateY(-1px)}.btn-danger{background:var(--danger-bg);color:#fca5a5;border:1px solid var(--danger-border)}.btn-danger:hover{background:#ef44444d}.btn-sm{border-radius:6px;padding:6px 12px;font-size:.8rem}.badge{letter-spacing:.02em;white-space:nowrap;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:700;display:inline-flex}.badge-operativo{color:#34d399;background:#10b98126;border:1px solid #10b98166}.badge-diagnostico{color:#38bdf8;background:#06b6d426;border:1px solid #06b6d466}.badge-danado{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b66}.badge-fuera-servicio{color:#f87171;background:#ef444433;border:1px solid #ef444480;animation:2s infinite pulseGlow}@keyframes pulseGlow{0%,to{opacity:1}50%{opacity:.65}}.badge-status-abierto{color:#60a5fa;background:#3b82f626;border:1px solid #3b82f64d}.badge-status-proceso{color:#c084fc;background:#a855f726;border:1px solid #a855f74d}.badge-status-mantenimiento{color:#fcd34d;background:#f59e0b26;border:1px solid #f59e0b4d}.badge-status-resuelto{color:#34d399;background:#10b98126;border:1px solid #10b9814d}.badge-status-cerrado{color:#cbd5e1;background:#64748b33;border:1px solid #64748b4d}.badge-priority-urgente{color:#fda4af;background:#e11d4833;border:1px solid #e11d4866}.badge-priority-alta{color:#fdba74;background:#ea580c33;border:1px solid #ea580c66}.badge-priority-media{color:#a5b4fc;background:#6366f126;border:1px solid #6366f14d}.badge-priority-baja{color:#cbd5e1;background:#94a3b826;border:1px solid #94a3b84d}.table-wrapper{border-radius:var(--radius-md);border:1px solid var(--border-color);overflow-x:auto}.ticket-grid-table{border-collapse:collapse;text-align:left;width:100%;font-size:.88rem}.ticket-grid-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);z-index:10;background:#0f172ae6;padding:14px 16px;font-size:.78rem;font-weight:700;position:sticky;top:0}.ticket-grid-table td{vertical-align:middle;border-bottom:1px solid #ffffff0d;padding:12px 16px}.ticket-grid-table tbody tr{transition:background .15s}.ticket-grid-table tbody tr:hover{background:#ffffff08}.cell-select,.cell-input{color:var(--text-main);font-family:var(--font-main);background:#0f172ab3;border:1px solid #ffffff26;border-radius:6px;outline:none;width:100%;padding:6px 10px;font-size:.83rem;transition:all .2s}.cell-select:focus,.cell-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-glow)}.form-group{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.form-label{color:var(--text-muted);font-size:.83rem;font-weight:600}.form-input,.form-select,.form-textarea{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-main);font-family:var(--font-main);outline:none;padding:10px 14px;font-size:.9rem;transition:all .2s}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-glow)}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0a0f1abf;justify-content:center;align-items:center;padding:20px;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border-color);border-radius:var(--radius-lg);background:#1e293b;width:100%;max-width:650px;max-height:90vh;padding:24px;animation:.25s ease-out slideUp;position:relative;overflow-y:auto;box-shadow:0 20px 40px #00000080}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.file-dropzone{border-radius:var(--radius-md);text-align:center;cursor:pointer;background:#0f172a66;border:2px dashed #fff3;padding:20px;transition:all .2s}.file-dropzone:hover{border-color:var(--primary);background:#6366f10d}.attachment-preview-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;margin-top:12px;display:grid}.attachment-card{border:1px solid var(--border-color);border-radius:var(--radius-sm);background:#0f172acc;flex-direction:column;align-items:center;padding:8px;font-size:.75rem;display:flex;position:relative}.attachment-card img{object-fit:cover;cursor:pointer;border-radius:4px;width:100%;height:70px;margin-bottom:6px}.timeline-container{margin-top:16px;padding-left:24px;position:relative}.timeline-container:before{content:"";background:#ffffff1a;width:2px;position:absolute;top:4px;bottom:4px;left:7px}.timeline-item{margin-bottom:20px;position:relative}.timeline-dot{background:var(--primary);width:12px;height:12px;box-shadow:0 0 8px var(--primary);border:2px solid #1e293b;border-radius:50%;position:absolute;top:4px;left:-24px}.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:999;background:#0009;position:fixed;inset:0}.drawer-content{border-left:1px solid var(--border-color);z-index:1000;background:#1e293b;flex-direction:column;width:100%;max-width:500px;animation:.3s ease-out slideLeft;display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-10px 0 30px #00000080}@keyframes slideLeft{0%{transform:translate(100%)}to{transform:translate(0)}}@media (width<=1024px){.main-body{flex-direction:column}.content-container{padding:16px}}
