.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.login-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:40px;width:100%;max-width:400px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{font-size:2rem;color:#2c3e50;margin-bottom:10px}.login-header p{color:#7f8c8d;font-size:.9rem}.login-form,.form-group{margin-bottom:20px}.login-btn{width:100%;padding:12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-footer{text-align:center;font-size:.9rem;color:#7f8c8d;margin-top:16px}.login-footer a{color:#667eea;text-decoration:none;font-weight:500}.login-footer a:hover{text-decoration:underline}@media (max-width: 480px){.login-container{padding:10px}.login-card{padding:30px 20px}.login-header h1{font-size:1.5rem}.form-group input{font-size:16px}}.portal-login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#0f766e,#134e4a,#0d9488);padding:20px;overflow-y:auto}.portal-login-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:40px;width:100%;max-width:420px}.portal-login-header{text-align:center;margin-bottom:28px}.portal-login-header h1{font-size:1.75rem;color:#134e4a;margin-bottom:8px}.portal-login-header p{color:#64748b;font-size:.9rem}.portal-login-form{margin-bottom:20px}.portal-form-group{margin-bottom:18px}.portal-form-group label{display:block;margin-bottom:6px;color:#334155;font-weight:500;font-size:.9rem}.portal-form-group input[type=text],.portal-form-group input[type=email],.portal-form-group input[type=tel],.portal-form-group input[type=password]{width:100%;padding:12px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s}.portal-form-group input:focus{outline:none;border-color:#0d9488}.portal-toggle-label{display:flex!important;align-items:center;gap:8px;cursor:pointer;font-weight:400!important}.portal-toggle-label input{width:auto}.portal-error{background:#fef2f2;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:18px;border:1px solid #fecaca;font-size:.9rem}.portal-login-btn{width:100%;padding:14px;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s}.portal-login-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0d948866}.portal-login-btn:disabled{opacity:.7;cursor:not-allowed}.portal-forget-link{background:none;border:none;color:#64748b;font-size:.85rem;cursor:pointer;padding:0;text-decoration:underline}.portal-forget-link:hover:not(:disabled){color:#0d9488}.portal-blocked-card{text-align:center}.portal-blocked-content{padding:10px 0;display:flex;flex-direction:column;align-items:stretch;gap:0}.portal-blocked-msg{color:#475569;margin-bottom:20px;font-size:.95rem}.portal-unlock-code{font-size:2rem;font-weight:700;letter-spacing:.3em;color:#0f766e;background:#f0fdfa;border:2px dashed #0d9488;border-radius:12px;padding:20px 24px;margin:0 auto 20px;max-width:280px;font-family:Courier New,monospace}.portal-blocked-hint{color:#94a3b8;font-size:.85rem;margin-bottom:0}.portal-blocked-actions{margin-top:24px;width:100%}.portal-refresh-code-btn{display:block;width:100%;padding:12px 20px;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s,box-shadow .2s;flex-shrink:0}.portal-refresh-code-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0d948866}.portal-refresh-code-btn:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 640px){.portal-login-container{padding:16px 12px;align-items:flex-start;padding-top:max(20px,env(safe-area-inset-top))}.portal-login-card{padding:24px 20px;border-radius:12px}.portal-login-header h1{font-size:1.4rem}.portal-form-group input[type=text],.portal-form-group input[type=password]{padding:14px 16px;font-size:16px}.portal-login-btn,.portal-refresh-code-btn{padding:16px;min-height:48px}}.portal-must-change-password{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#0f766e,#134e4a,#0d9488)}.portal-must-change-card{background:#fff;border-radius:16px;box-shadow:0 20px 60px #0000004d;padding:32px;max-width:420px;width:100%}.portal-must-change-card h1{font-size:1.5rem;color:#134e4a;margin-bottom:12px}.portal-must-change-card p{color:#64748b;margin-bottom:24px;line-height:1.5}.portal-must-change-card .portal-form-group{margin-bottom:18px}.portal-must-change-card .portal-form-group label{display:block;margin-bottom:6px;color:#334155;font-weight:500}.portal-must-change-card .portal-form-group input{width:100%;padding:12px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.portal-must-change-msg{padding:12px;border-radius:8px;margin-bottom:16px}.portal-must-change-msg.error{background:#fef2f2;color:#dc2626}.portal-must-change-msg.success{background:#f0fdf4;color:#16a34a}.portal-must-change-card .portal-submit-btn{width:100%;padding:14px;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.portal-must-change-card .portal-submit-btn:disabled{opacity:.7;cursor:not-allowed}.chat-widget-fab{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0));right:88px;width:56px;height:56px;border-radius:50%;background:linear-gradient(135deg,#0f766e,#134e4a);color:#fff;border:none;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 12px #00000040;z-index:999;display:flex;align-items:center;justify-content:center;transition:transform .2s,box-shadow .2s}.chat-widget-fab:hover{transform:scale(1.05);box-shadow:0 6px 16px #0000004d}.chat-widget-panel{position:fixed;bottom:calc(90px + env(safe-area-inset-bottom,0));right:16px;width:360px;max-width:calc(100vw - 48px);height:480px;max-height:calc(100vh - 140px);background:#fff;border-radius:16px;box-shadow:0 8px 32px #0003;z-index:998;display:flex;flex-direction:column;overflow:hidden}.chat-widget-header{padding:16px 20px;background:linear-gradient(135deg,#0f766e,#134e4a);color:#fff;display:flex;justify-content:space-between;align-items:center;font-weight:600}.chat-widget-close{background:none;border:none;color:#fff;font-size:1.2rem;cursor:pointer;padding:4px;opacity:.9}.chat-widget-close:hover{opacity:1}.chat-widget-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.chat-widget-welcome{color:#64748b;font-size:.9rem;text-align:center;padding:20px 0}.chat-widget-welcome p{margin:0 0 8px}.chat-widget-msg{max-width:85%;padding:10px 14px;border-radius:12px;font-size:.95rem;line-height:1.5}.chat-widget-msg.user{align-self:flex-end;background:#0d9488;color:#fff}.chat-widget-msg.assistant{align-self:flex-start;background:#f1f5f9;color:#334155}.chat-widget-msg.staff{align-self:flex-start;background:#e0e7ff;color:#3730a3;border-left:3px solid #4f46e5}.chat-widget-role-label{display:block;font-size:.75rem;font-weight:600;margin-bottom:4px;color:#4f46e5}.chat-widget-transferred-banner{padding:10px 14px;background:#fef3c7;color:#92400e;border-radius:10px;font-size:.9rem;margin-bottom:8px}.chat-widget-closed-banner{background:#f1f5f9;color:#475569}.chat-widget-msg-finalized{align-self:center;padding:10px 14px;background:#f1f5f9;color:#64748b;border-radius:10px;font-size:.85rem;font-style:italic;text-align:center;max-width:90%}.chat-widget-choice-card{align-self:flex-start;max-width:85%;padding:14px 16px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:12px;margin-top:4px}.chat-widget-choice-question{margin:0 0 12px;font-size:.95rem;color:#0c4a6e;font-weight:500}.chat-widget-choice-buttons{display:flex;flex-wrap:wrap;gap:10px}.chat-widget-choice-btn{padding:10px 16px;border-radius:10px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;transition:opacity .2s,transform .1s}.chat-widget-choice-btn:hover:not(:disabled){opacity:.95;transform:scale(1.02)}.chat-widget-choice-btn:disabled{opacity:.6;cursor:not-allowed}.chat-widget-choice-btn.ia{background:#0d9488;color:#fff}.chat-widget-choice-btn.person{background:#4f46e5;color:#fff}.chat-widget-typing{animation:chat-typing 1s ease-in-out infinite}@keyframes chat-typing{0%,to{opacity:.4}50%{opacity:1}}.chat-widget-file-input{position:absolute;width:0;height:0;opacity:0;pointer-events:none}.chat-widget-attachments{display:flex;flex-wrap:wrap;gap:6px;padding:0 0 8px}.chat-widget-attachment-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:#e2e8f0;border-radius:8px;font-size:.8rem;color:#475569;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-widget-attachment-tag button{padding:0 2px;background:none;border:none;color:#64748b;cursor:pointer;font-size:1.1rem;line-height:1}.chat-widget-attachment-tag button:hover{color:#0f766e}.chat-widget-form{padding:12px 16px;border-top:1px solid #e2e8f0;display:flex;flex-direction:column;gap:8px}.chat-widget-form-row{display:flex;gap:10px;align-items:flex-end}.chat-widget-form-row textarea{flex:1;padding:10px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:.95rem;font-family:inherit;resize:none;min-height:44px}.chat-widget-form-actions{display:flex;gap:8px;align-items:center;flex-shrink:0}.chat-widget-attach-btn{padding:10px 12px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:10px;cursor:pointer;font-size:1.1rem}.chat-widget-attach-btn:hover:not(:disabled){background:#e2e8f0;color:#0f766e}.chat-widget-attach-btn:disabled{opacity:.5;cursor:not-allowed}.chat-widget-form-row textarea:focus{outline:none;border-color:#0d9488}.chat-widget-form-row textarea:disabled{background:#f8fafc}.chat-widget-form button{padding:10px 18px;background:#0d9488;color:#fff;border:none;border-radius:10px;font-weight:500;cursor:pointer;flex-shrink:0}.chat-widget-form button:hover:not(:disabled){background:#0f766e}.chat-widget-form button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 480px){.chat-widget-fab{right:16px}.chat-widget-panel{right:12px;bottom:calc(80px + env(safe-area-inset-bottom,0));width:calc(100vw - 24px)}}.portal-layout{min-height:100vh;background:#f8fafc;padding-bottom:env(safe-area-inset-bottom,0)}.portal-notif-prompt{background:linear-gradient(135deg,#0f766e,#134e4a);color:#fff;padding:12px 16px;box-shadow:0 2px 8px #00000026;position:relative;z-index:101}.portal-notif-prompt-inner{max-width:1200px;margin:0 auto;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.portal-notif-prompt-text{flex:1;min-width:200px;font-size:.95rem}.portal-notif-prompt-actions{display:flex;align-items:center;gap:8px}.portal-notif-prompt-btn{padding:8px 16px;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;border:none;-webkit-tap-highlight-color:transparent}.portal-notif-prompt-btn.primary{background:#fff;color:#134e4a}.portal-notif-prompt-btn.primary:hover:not(:disabled){background:#f0fdfa}.portal-notif-prompt-btn.secondary{background:#fff3;color:#fff}.portal-notif-prompt-btn.secondary:hover:not(:disabled){background:#ffffff4d}.portal-notif-prompt-btn:disabled{opacity:.8;cursor:not-allowed}.portal-notif-prompt-close{position:absolute;top:8px;right:12px;background:transparent;border:none;color:#ffffffe6;font-size:1.1rem;cursor:pointer;padding:4px;line-height:1;-webkit-tap-highlight-color:transparent}.portal-notif-prompt-close:hover{color:#fff}@media (max-width: 600px){.portal-notif-prompt-inner{padding-right:32px}.portal-notif-prompt-actions{width:100%}.portal-notif-prompt-btn{flex:1}}.portal-header{background:linear-gradient(135deg,#0f766e,#134e4a);color:#fff;padding:12px 16px;box-shadow:0 2px 8px #00000026;position:sticky;top:0;z-index:100}.portal-header-content{max-width:1200px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.portal-header-left{display:flex;align-items:center;gap:12px}.portal-menu-btn{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:8px;background:#ffffff26;border:none;border-radius:8px;cursor:pointer;-webkit-tap-highlight-color:transparent}.portal-menu-btn span{display:block;width:100%;height:2px;background:#fff;border-radius:1px;transition:transform .3s,opacity .3s}.portal-menu-btn span:nth-child(1).open{transform:translateY(7px) rotate(45deg)}.portal-menu-btn span:nth-child(2).open{opacity:0}.portal-menu-btn span:nth-child(3).open{transform:translateY(-7px) rotate(-45deg)}.portal-header h1{font-size:1.25rem;margin:0;font-weight:600}.portal-user{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.portal-notif-wrap{position:relative}.portal-notif-btn{position:relative;background:#ffffff26;border:none;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:1.2rem;-webkit-tap-highlight-color:transparent}.portal-notif-btn:hover{background:#ffffff40}.portal-notif-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:.7rem;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}.portal-notif-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:99999;display:flex;align-items:flex-start;justify-content:flex-end;padding:16px;pointer-events:none}.portal-notif-modal>*{pointer-events:auto}.portal-notif-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1}.portal-notif-dropdown{position:relative;z-index:2;width:100%;max-width:360px;max-height:calc(100vh - 80px);background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000040;overflow:hidden;display:flex;flex-direction:column}.portal-notif-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;align-items:center;font-weight:600;font-size:1.1rem;color:#1e293b;flex-shrink:0}.portal-notif-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#64748b;padding:4px 8px;line-height:1;-webkit-tap-highlight-color:transparent}.portal-notif-close:hover{color:#1e293b}.portal-notif-actions{padding:8px 20px 12px;border-bottom:1px solid #f1f5f9}.portal-notif-read-all{font-size:.85rem;color:#0d9488;background:none;border:none;cursor:pointer;font-weight:500;padding:4px 0;-webkit-tap-highlight-color:transparent}.portal-notif-read-all:hover{text-decoration:underline}.portal-notif-list{flex:1;min-height:120px;max-height:400px;overflow-y:auto;-webkit-overflow-scrolling:touch}.portal-notif-empty{padding:24px;text-align:center;color:#94a3b8;font-size:.9rem}.portal-notif-item{padding:12px 16px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .2s}.portal-notif-item:hover{background:#f8fafc}.portal-notif-item.unread{background:#f0fdfa}.portal-notif-item-title{font-weight:600;color:#1e293b;font-size:.9rem}.portal-notif-item-msg{font-size:.85rem;color:#64748b;margin-top:4px}.portal-notif-item-date{font-size:.75rem;color:#94a3b8;margin-top:4px}.portal-user span{font-size:.9rem;opacity:.95}.portal-logout-btn{padding:8px 16px;background:#fff3;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:6px;cursor:pointer;font-size:.9rem;transition:background .2s;-webkit-tap-highlight-color:transparent}.portal-logout-btn:hover{background:#ffffff4d}.portal-nav{background:#fff;padding:0 24px;box-shadow:0 1px 3px #00000014;max-width:1200px;margin:0 auto}.portal-nav-inner{display:flex;flex-wrap:wrap;gap:0;align-items:flex-start}.portal-nav-section{display:flex;flex-direction:column;padding:4px 12px 4px 0;margin-right:8px;border-right:1px solid #e2e8f0;min-width:140px}.portal-nav-section:last-child{margin-right:0;padding-right:0;border-right:none}.portal-nav-section-title{display:flex;align-items:center;justify-content:space-between;width:100%;font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-bottom:0;padding:10px 12px;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:background .2s,color .2s;text-align:left}.portal-nav-section-title:hover{background:#f1f5f9;color:#64748b}.portal-nav-section-chevron{font-size:.7rem;opacity:.8}.portal-nav-section-items{display:none;flex-wrap:wrap;gap:4px;padding:8px 0 0 12px;border-left:2px solid #e2e8f0;margin-left:8px}.portal-nav-section.expanded .portal-nav-section-items{display:flex}.portal-nav-overlay{display:none}.portal-nav-item{padding:12px 16px;text-decoration:none;color:#64748b;font-weight:500;font-size:.9rem;border-bottom:3px solid transparent;transition:color .2s,border-color .2s;display:inline-flex;align-items:center}.portal-nav-item:hover{color:#0d9488}.portal-nav-item.active{color:#0d9488;border-bottom-color:#0d9488}.portal-nav-icon{margin-right:6px;font-size:1rem}.portal-nav-label{white-space:nowrap}.portal-main{max-width:1200px;margin:0 auto;padding:24px}@media (max-width: 768px){.portal-header h1{font-size:1.15rem}.portal-main{padding:20px 16px}}@media (max-width: 640px){.portal-header{padding:12px 16px}.portal-menu-btn{display:flex}.portal-header h1{font-size:1.1rem}.portal-user-name{max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.portal-nav{position:fixed;top:0;left:0;right:0;bottom:0;padding:70px 16px 24px;max-width:none;margin:0;z-index:99;transform:translate(-100%);transition:transform .3s ease;overflow-y:auto}.portal-nav.open{transform:translate(0)}.portal-nav-inner{display:flex;flex-direction:column;gap:20px}.portal-nav-section{margin-right:0;padding:0 0 12px;border-right:none;border-bottom:1px solid #e2e8f0;min-width:auto}.portal-nav-section:last-child{border-bottom:none;padding-bottom:0}.portal-nav-section-title{font-size:.9rem;margin-bottom:0;padding:12px 16px;color:#64748b}.portal-nav-section-items{display:none;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0 0 16px;margin-left:0;border-left:none}.portal-nav-section.expanded .portal-nav-section-items{display:grid}.portal-nav-item{padding:12px 14px;border-radius:8px;border-bottom:none;border-left:none;font-size:.85rem;background:#f8fafc;flex-direction:column;align-items:flex-start;gap:4px}.portal-nav-item .portal-nav-icon{margin-right:0;font-size:1.25rem}.portal-nav-item .portal-nav-label{white-space:normal;line-height:1.2}.portal-nav-item.active{background:#f0fdfa;border:2px solid #0d9488}.portal-nav-overlay{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:98;-webkit-tap-highlight-color:transparent}.portal-main{padding:16px 12px}.portal-notif-modal{align-items:stretch;justify-content:stretch;padding:0}.portal-notif-dropdown{max-width:none;max-height:none;width:100%;flex:1;border-radius:0;margin:0}.portal-notif-list{max-height:none;flex:1}.portal-notif-item{padding:16px 20px;font-size:1rem}.portal-notif-item-title{font-size:1rem}.portal-notif-item-msg{font-size:.95rem}}.portal-contact-fab{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0));right:16px;display:flex;flex-direction:column;gap:10px;z-index:90}.portal-fab-btn{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.5rem;text-decoration:none;box-shadow:0 4px 12px #0003;transition:transform .2s,box-shadow .2s}.portal-fab-btn:hover{transform:scale(1.05);box-shadow:0 6px 16px #00000040}.portal-fab-btn.whatsapp{background:#25d366;color:#fff}.portal-fab-btn.call{background:#0d9488;color:#fff}.portal-dashboard h2{margin:0 0 24px;color:#334155;font-size:1.5rem}.portal-installation-debt-banner{background:#fef3c7;border:1px solid #f59e0b;border-radius:12px;padding:16px 20px;margin-bottom:20px}.portal-installation-debt-banner strong{color:#92400e}.portal-installation-debt-banner p{margin:8px 0 0;color:#78350f;font-size:.95rem}.portal-installation-debt-banner a{color:#0d9488;font-weight:500}.portal-installation-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.portal-installation-summary{font-size:.95rem;color:#475569}.portal-installation-debt{margin:0 0 12px;color:#92400e}.portal-installation-paid{margin:0 0 12px;color:#059669}.portal-installation-abonos{margin-top:12px}.portal-installation-abonos strong{color:#334155;display:block;margin-bottom:8px}.portal-installation-abonos-list{margin:0;padding-left:20px;color:#475569}.portal-installation-abonos-list li{margin-bottom:4px}.portal-receipt-ref{color:#64748b;font-size:.9em}.portal-service-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.portal-service-card h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.service-info-grid{display:flex;flex-wrap:wrap;gap:16px 24px}.service-info-grid .label{color:#64748b;margin-right:6px}.status-badge{padding:4px 10px;border-radius:6px;font-size:.85rem;font-weight:500}.status-badge.status-activo{background:#d1fae5;color:#065f46}.status-badge.status-suspendido{background:#fef3c7;color:#92400e}.status-badge.status-baja{background:#fee2e2;color:#991b1b}.portal-announcements{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px}.portal-announcements h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.announcement-item{padding:12px 16px;border-radius:8px;margin-bottom:8px;border-left:4px solid #0d9488}.announcement-item.type-warning{background:#fef3c7;border-left-color:#f59e0b}.announcement-item.type-info{background:#f0fdfa;border-left-color:#0d9488}.announcement-item p{margin:8px 0 0;font-size:.9rem;color:#475569}.portal-balance-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.portal-charges-title{margin:0 0 16px;font-size:1.1rem;color:#334155}.portal-charges-breakdown{margin-bottom:16px}.portal-charge-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:.95rem}.portal-charge-row span:first-child{color:#64748b}.portal-charge-row .credit-amount,.portal-charge-row .payment-amount{color:#059669;font-weight:500}.portal-charge-row-total{border-top:1px solid #e2e8f0;margin-top:8px;padding-top:12px;font-weight:600}.portal-charge-row-total span:first-child{color:#334155}.portal-amount{font-size:1.5rem;font-weight:700;color:#0f766e}.portal-charge-row-total .portal-amount{font-size:1.5rem}.portal-credit-debt-section{margin-top:20px;padding-top:16px;border-top:1px solid #e2e8f0}.portal-section-subtitle{margin:0 0 12px;font-size:.95rem;color:#64748b;font-weight:600}.portal-link-parcelas{display:inline-block;margin-top:12px;font-size:.9rem;color:#0d9488;text-decoration:none}.portal-link-parcelas:hover{text-decoration:underline}.portal-status{padding:10px 14px;border-radius:8px;font-weight:500;margin-bottom:12px}.portal-status.paid{background:#d1fae5;color:#065f46}.portal-status.pending{background:#fef3c7;color:#92400e}.portal-last-payment{font-size:.9rem;color:#64748b}.portal-payment-reminder{margin-top:12px;padding:10px 14px;background:#f0fdfa;border-radius:8px;font-size:.9rem;color:#0f766e}.portal-service-status-banner{padding:16px 20px;border-radius:12px;margin-bottom:20px}.portal-service-status-banner.status-mantenimiento{background:#fef3c7;border-left:4px solid #f59e0b;color:#92400e}.portal-service-status-banner.status-problemas{background:#fee2e2;border-left:4px solid #dc2626;color:#991b1b}.portal-service-status-banner p{margin:8px 0 0;font-size:.95rem}.portal-last-receipt-link{margin-top:12px}.portal-btn-receipt{display:inline-block;padding:10px 16px;background:#0d9488;color:#fff;border-radius:8px;text-decoration:none;font-weight:500;font-size:.95rem}.portal-btn-receipt:hover{background:#0f766e}.portal-contact-quick{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.portal-contact-quick h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.portal-contact-buttons{display:flex;gap:12px;flex-wrap:wrap}.portal-contact-btn{display:inline-flex;align-items:center;padding:12px 20px;border-radius:8px;text-decoration:none;font-weight:600;font-size:.95rem;transition:opacity .2s}.portal-contact-btn:hover{opacity:.9}.portal-contact-btn.whatsapp{background:#25d366;color:#fff}.portal-contact-btn.call{background:#0d9488;color:#fff}.portal-loading{text-align:center;padding:40px;color:#64748b}.portal-error-box{background:#fef2f2;color:#dc2626;padding:16px;border-radius:8px;border:1px solid #fecaca}@media (max-width: 640px){.portal-dashboard h2{font-size:1.25rem;margin-bottom:16px}.portal-balance-card,.portal-payment-methods{padding:16px;margin-bottom:16px}.portal-balance-header{flex-direction:column;align-items:flex-start;gap:8px}.portal-amount{font-size:1.5rem}.payment-method-item .method-detail{margin-left:0;margin-top:4px;font-size:.85rem;word-break:break-all}}.portal-payments h2{margin:0 0 20px;color:#334155;font-size:1.5rem}.portal-payment-methods{background:#fff;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.portal-payment-methods h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.payment-method-item{display:flex;flex-direction:column;gap:4px;padding:12px 0;border-bottom:1px solid #f1f5f9}.payment-method-item:last-of-type{border-bottom:none}.payment-method-item .method-icon{font-size:1.2rem}.payment-method-item .method-detail{font-family:monospace;font-size:.95rem;color:#0f766e;margin-left:28px}.payment-warning{margin:16px 0 0;padding:12px;background:#fef3c7;color:#92400e;border-radius:8px;font-size:.9rem;font-weight:500}.portal-empty{background:#fff;padding:40px;text-align:center;color:#64748b;border-radius:12px}.portal-table-wrap{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000001a}.portal-table{width:100%;border-collapse:collapse}.portal-table th,.portal-table td{padding:14px 18px;text-align:left}.portal-table th{background:#f8fafc;color:#475569;font-weight:600;font-size:.85rem}.portal-table tr:nth-child(2n){background:#fafafa}.portal-table tr:hover{background:#f1f5f9}@media (max-width: 640px){.portal-payments h2{font-size:1.25rem}.portal-payment-methods{padding:16px;margin-bottom:16px}.payment-method-item .method-detail{margin-left:0;margin-top:4px;font-size:.85rem;word-break:break-all}.portal-table-wrap{overflow:visible;border-radius:12px}.portal-table thead{display:none}.portal-table,.portal-table tbody,.portal-table tr,.portal-table td{display:block}.portal-table tbody{display:flex;flex-direction:column;gap:12px}.portal-table tr{padding:16px;background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014}.portal-table td{padding:6px 0;border:none;display:flex;justify-content:space-between;align-items:center;gap:12px}.portal-table td:before{content:attr(data-label);font-weight:600;color:#64748b;font-size:.85rem}.portal-table td:first-child{font-weight:600;color:#334155}.portal-empty{padding:24px 16px}}.portal-receipts h2{margin:0 0 20px;color:#334155;font-size:1.5rem}.portal-receipt-list{display:flex;flex-direction:column;gap:12px}.portal-receipt-item{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;flex-wrap:wrap;gap:12px}.portal-receipt-info{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.portal-receipt-info .receipt-num{font-weight:600;color:#0f766e}.portal-receipt-info .receipt-date{color:#64748b;font-size:.9rem}.portal-receipt-info .receipt-amount{font-weight:600;color:#334155}.portal-download-btn{padding:10px 18px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s}.portal-download-btn:hover{background:#0f766e}@media (max-width: 640px){.portal-receipts h2{font-size:1.25rem}.portal-receipt-item{flex-direction:column;align-items:stretch;padding:16px;gap:12px}.portal-receipt-info{flex-direction:column;gap:6px;align-items:flex-start}.portal-download-btn{width:100%;padding:14px;min-height:48px}}.portal-usage h2{margin:0 0 20px;color:#334155;font-size:1.5rem}.usage-summary{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.usage-total{display:flex;flex-direction:column;gap:4px}.usage-label{color:#64748b;font-size:.95rem}.usage-value{font-size:1.75rem;font-weight:700;color:#0f766e}.usage-note{margin:16px 0 0;font-size:.9rem;color:#64748b}.usage-list h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.usage-item{display:flex;align-items:center;gap:16px;padding:12px 16px;background:#fff;border-radius:8px;margin-bottom:8px;box-shadow:0 1px 2px #0000000f;flex-wrap:wrap}.usage-status{padding:4px 10px;border-radius:6px;font-size:.85rem;font-weight:500}.usage-status.status-conectado{background:#d1fae5;color:#065f46}.usage-status.status-desconectado{background:#f1f5f9;color:#64748b}.usage-date{color:#64748b;font-size:.9rem}.usage-gb{font-weight:600;color:#0f766e}@media (max-width: 640px){.portal-usage h2{font-size:1.25rem}.usage-summary{padding:16px}.usage-value{font-size:1.5rem}.usage-item{flex-direction:column;align-items:flex-start}}.portal-invoices h2{margin:0 0 8px;color:#334155;font-size:1.5rem}.portal-invoices-desc{color:#64748b;font-size:.9rem;margin-bottom:20px}.invoice-list{display:flex;flex-direction:column;gap:12px}.invoice-item{background:#fff;padding:16px 20px;border-radius:10px;box-shadow:0 1px 3px #00000014}.invoice-main{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.invoice-folio{font-weight:500;color:#334155;font-size:.9rem}.invoice-amount{font-weight:700;color:#0f766e}.invoice-meta{display:flex;gap:12px;font-size:.85rem;color:#64748b}.invoice-status{padding:2px 8px;border-radius:4px;font-size:.8rem}.invoice-status.status-Vigente{background:#d1fae5;color:#065f46}.invoice-download{display:inline-block;margin-top:10px;color:#0d9488;font-size:.9rem;text-decoration:none}.invoice-download:hover{text-decoration:underline}@media (max-width: 640px){.portal-invoices h2{font-size:1.25rem}.invoice-main{flex-direction:column;align-items:flex-start}}.portal-faq h2{margin:0 0 8px;color:#334155;font-size:1.5rem}.portal-faq-desc{color:#64748b;font-size:.9rem;margin-bottom:24px}.faq-list{display:flex;flex-direction:column;gap:8px}.faq-item{background:#fff;border-radius:10px;box-shadow:0 1px 3px #00000014;overflow:hidden}.faq-question{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;cursor:pointer;font-weight:500;color:#334155}.faq-question:hover{background:#f8fafc}.faq-toggle{font-size:1.2rem;color:#0d9488;font-weight:300}.faq-answer{padding:12px 20px 16px;color:#64748b;font-size:.95rem;line-height:1.5;border-top:1px solid #f1f5f9;margin:0 20px 16px}@media (max-width: 640px){.portal-faq h2{font-size:1.25rem}.faq-question{padding:14px 16px}}.portal-profile h2{margin:0 0 20px;color:#334155;font-size:1.5rem}.profile-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.profile-card h3{margin:0 0 20px;color:#334155;font-size:1.1rem}.profile-hint{color:#64748b;font-size:.9rem;margin:-8px 0 16px}.profile-card .portal-form-group{margin-bottom:16px}.profile-card input{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.profile-card input:disabled{background:#f8fafc;color:#64748b}.profile-msg{margin:12px 0;padding:10px 12px;border-radius:8px;font-size:.9rem}.profile-msg.success{background:#d1fae5;color:#065f46}.profile-msg.error{background:#fee2e2;color:#991b1b}.installation-info .info-row{margin-bottom:10px}.installation-info .label{color:#64748b;margin-right:8px}.form-actions{display:flex;gap:12px;margin-top:16px}.portal-submit-btn.secondary{background:#e2e8f0;color:#334155}.portal-submit-btn.secondary:hover{background:#cbd5e1}@media (max-width: 640px){.portal-profile h2{font-size:1.25rem}.profile-card{padding:16px}.form-actions{flex-direction:column}}.portal-referral h2{margin:0 0 8px;color:#334155;font-size:1.5rem}.portal-referral-desc{color:#64748b;font-size:.9rem;margin-bottom:24px}.referral-code-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.referral-code-card h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.code-display{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.code-value{font-size:1.5rem;font-weight:700;color:#0f766e;font-family:monospace;letter-spacing:1px}.copy-btn{padding:10px 20px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.copy-btn:hover:not(:disabled){background:#0f766e}.copy-btn:disabled{opacity:.6;cursor:not-allowed}.code-hint{margin:16px 0 0;font-size:.9rem;color:#64748b}.referrals-list{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.referrals-list h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.referral-item{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}.referral-item:last-child{border-bottom:none}.ref-name{font-weight:500;color:#334155}.ref-date{font-size:.9rem;color:#64748b}.ref-status{padding:4px 10px;border-radius:6px;font-size:.85rem;font-weight:500}.ref-status.status-aplicado{background:#d1fae5;color:#065f46}.ref-status.status-pendiente{background:#fef3c7;color:#92400e}@media (max-width: 640px){.portal-referral h2{font-size:1.25rem}.code-display{flex-direction:column;align-items:flex-start}.code-value{font-size:1.25rem}}.portal-contract h2{margin:0 0 20px;color:#334155;font-size:1.5rem}.contract-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.contract-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #f1f5f9}.contract-header h3{margin:0;color:#334155;font-size:1.2rem}.download-contract-btn{padding:10px 20px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.download-contract-btn:hover{background:#0f766e}.contract-details{margin-bottom:20px}.contract-row{display:flex;gap:12px;margin-bottom:10px}.contract-row .label{color:#64748b;min-width:140px}.contract-terms{margin-top:24px;padding-top:20px;border-top:1px solid #f1f5f9}.contract-terms h4{margin:0 0 12px;color:#334155;font-size:1rem}.terms-content{font-size:.9rem;color:#475569;line-height:1.6;white-space:pre-wrap}@media (max-width: 640px){.portal-contract h2{font-size:1.25rem}.contract-header{flex-direction:column;align-items:flex-start}.contract-row{flex-direction:column;gap:4px}}.portal-credit-request h2{margin:0 0 8px;color:#334155;font-size:1.5rem}.credit-request-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}.portal-new-btn{padding:10px 20px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.portal-new-btn:hover{background:#0f766e}.credit-request-desc{color:#64748b;font-size:.9rem;margin-bottom:16px}.credit-monthly-fee{background:#f0fdfa;padding:10px 14px;border-radius:8px;color:#0f766e;font-weight:500;margin-bottom:20px}.credit-request-form{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.credit-request-form .portal-form-group{margin-bottom:16px}.credit-request-form select,.credit-request-form input{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.portal-credit-request h3{margin:0 0 16px;color:#334155;font-size:1.1rem}.credit-request-list{display:flex;flex-direction:column;gap:12px}.credit-request-item{background:#fff;padding:16px 20px;border-radius:10px;box-shadow:0 1px 3px #00000014;border-left:4px solid #94a3b8}.credit-request-item.status-aprobado{border-left-color:#22c55e}.credit-request-item.status-rechazado{border-left-color:#ef4444}.credit-request-item.status-pendiente{border-left-color:#f59e0b}.request-main{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}.request-type{font-weight:500;color:#334155}.request-status{padding:4px 10px;border-radius:6px;font-size:.85rem;font-weight:500}.request-status.status-pendiente{background:#fef3c7;color:#92400e}.request-status.status-aprobado{background:#d1fae5;color:#065f46}.request-status.status-rechazado{background:#fee2e2;color:#991b1b}.request-approved,.request-notes{margin-top:8px;font-size:.9rem;color:#64748b}.request-date{margin-top:8px;font-size:.85rem;color:#94a3b8}@media (max-width: 640px){.portal-credit-request h2{font-size:1.25rem}.credit-request-form{padding:16px}}.portal-credits h2{margin:0 0 8px;color:#334155;font-size:1.5rem}.portal-credits-desc{color:#64748b;font-size:.9rem;margin-bottom:16px}.link-request-credit{display:inline-block;color:#0d9488;font-weight:500;margin-bottom:24px;text-decoration:none}.link-request-credit:hover{text-decoration:underline}.credits-layout{display:grid;grid-template-columns:280px 1fr;gap:24px}.credits-list{display:flex;flex-direction:column;gap:12px}.credit-card{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px #00000014;cursor:pointer;border:2px solid transparent;transition:border-color .2s}.credit-card:hover{border-color:#e2e8f0}.credit-card.selected{border-color:#0d9488;background:#f0fdfa}.credit-card.status-liquidado{opacity:.85}.credit-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.credit-type{font-weight:600;color:#334155}.status-badge.status-parcial{background:#dbeafe;color:#1e40af}.status-badge.status-liquidado{background:#d1fae5;color:#065f46}.credit-card-amounts{display:flex;flex-direction:column;gap:4px;font-size:.9rem;color:#64748b}.credit-card-date{font-size:.8rem;color:#94a3b8;margin-top:8px}.credit-detail{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #00000014}.credit-detail h3{margin:0 0 20px;color:#334155;font-size:1.2rem}.detail-summary{margin-bottom:24px}.summary-row{display:flex;justify-content:space-between;margin-bottom:8px}.summary-row.highlight{padding-top:12px;border-top:1px solid #e2e8f0;font-size:1.1rem}.payment-form{margin-bottom:24px;padding:20px;background:#f8fafc;border-radius:10px}.payment-form h4{margin:0 0 16px;font-size:1rem}.payment-form .form-hint{color:#64748b;font-size:.9rem;margin:-8px 0 16px}.proof-item .proof-status{padding:2px 8px;border-radius:4px;font-size:.8rem;font-weight:500}.proof-item .proof-status.status-pendiente{background:#fef3c7;color:#92400e}.proof-item .proof-status.status-aprobado{background:#d1fae5;color:#065f46}.proof-item .proof-status.status-rechazado{background:#fee2e2;color:#991b1b}.parcelas-hint{font-size:.85rem;color:#64748b;margin:-4px 0 12px}.parcela-item{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}.parcela-num{font-weight:600;color:#0d9488}.payment-form .portal-form-group{margin-bottom:14px}.payment-form input,.payment-form select{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.credit-liquidated{color:#065f46;background:#d1fae5;padding:12px 16px;border-radius:8px;font-weight:500}.payments-history{margin-top:24px;padding-top:20px;border-top:1px solid #e2e8f0}.payments-history h4{margin:0 0 12px;font-size:1rem}.payment-item{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f8fafc;border-radius:6px;margin-bottom:8px;font-size:.9rem}@media (max-width: 768px){.credits-layout{grid-template-columns:1fr}}.portal-tickets h2{margin:0;color:#334155;font-size:1.5rem}.portal-tickets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:12px}.portal-new-ticket-btn{padding:10px 20px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background .2s}.portal-new-ticket-btn:hover{background:#0f766e}.portal-ticket-form{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.portal-ticket-form .portal-form-group{margin-bottom:16px}.portal-ticket-form label{display:block;margin-bottom:6px;color:#334155;font-weight:500}.portal-ticket-form input,.portal-ticket-form textarea{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.portal-ticket-form textarea{resize:vertical;min-height:80px}.portal-submit-btn{padding:12px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.portal-submit-btn:disabled{opacity:.7;cursor:not-allowed}.portal-ticket-list{display:flex;flex-direction:column;gap:12px}.portal-ticket-item{background:#fff;padding:16px 20px;border-radius:10px;box-shadow:0 1px 3px #00000014}.portal-ticket-main{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.portal-ticket-main .ticket-num{font-weight:600;color:#64748b;font-size:.9rem}.portal-ticket-main .ticket-title{flex:1;font-weight:500;color:#334155}.ticket-status{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500}.ticket-status.status-abierto{background:#dbeafe;color:#1e40af}.ticket-status.status-en_proceso{background:#fef3c7;color:#92400e}.ticket-status.status-rechazado{background:#ffedd5;color:#c2410c}.ticket-status.status-resuelto,.ticket-status.status-cerrado{background:#d1fae5;color:#065f46}.portal-ticket-meta{margin-top:8px;font-size:.85rem;color:#94a3b8}.portal-ticket-item{cursor:pointer}.back-tickets-btn{background:none;border:none;color:#0d9488;cursor:pointer;font-size:.95rem;margin-bottom:16px;padding:0}.back-tickets-btn:hover{text-decoration:underline}.ticket-detail{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.ticket-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.ticket-detail-header h2{margin:0;font-size:1.25rem}.ticket-desc{color:#64748b;margin:12px 0 20px;line-height:1.5}.ticket-comments{margin-top:24px;padding-top:20px;border-top:1px solid #f1f5f9}.ticket-comments h4{margin:0 0 16px;font-size:1rem;color:#334155}.comment-item{padding:12px 16px;border-radius:8px;margin-bottom:12px}.comment-item.from-client{background:#f0fdfa;border-left:4px solid #0d9488}.comment-item.from-staff{background:#f8fafc;border-left:4px solid #94a3b8}.comment-author{font-weight:600;color:#334155;margin-right:8px}.comment-date{font-size:.8rem;color:#94a3b8}.comment-text{margin:8px 0 0;font-size:.95rem;line-height:1.5}.comment-form{margin-top:20px}.comment-form textarea{width:100%;padding:12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem;margin-bottom:12px;resize:vertical}@media (max-width: 640px){.portal-tickets h2{font-size:1.25rem}.portal-tickets-header{flex-direction:column;align-items:stretch;margin-bottom:16px}.portal-new-ticket-btn{width:100%;padding:14px;min-height:48px}.portal-ticket-form{padding:16px}.portal-submit-btn{width:100%;padding:14px;min-height:48px}.portal-ticket-main{flex-direction:column;align-items:flex-start;gap:8px}.portal-ticket-main .ticket-title{flex:none}}.portal-payment-proofs h2{margin:0 0 8px;color:#334155;font-size:1.5rem}.portal-proof-desc{color:#64748b;font-size:.9rem;margin-bottom:24px}.portal-proof-form{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:28px}.portal-proof-form .portal-form-group{margin-bottom:16px}.portal-proof-type-options{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}.portal-radio-option{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-weight:500;color:#334155}.portal-radio-option input[type=radio]{width:18px;height:18px;cursor:pointer}.portal-radio-option:has(input:disabled){opacity:.6;cursor:not-allowed}.portal-debt-badge{background:#fef3c7;color:#92400e;padding:4px 10px;border-radius:6px;font-size:.85rem}.portal-instalacion-hint{margin:8px 0 0;font-size:.9rem;color:#64748b}.proof-type-badge{font-size:.8rem;padding:2px 8px;border-radius:6px;background:#e2e8f0;color:#475569}.portal-proof-form label{display:block;margin-bottom:6px;color:#334155;font-weight:500}.portal-proof-form input[type=file],.portal-proof-form input[type=number],.portal-proof-form input[type=text]{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.portal-proof-form input[type=file]{padding:8px}.portal-upload-btn{padding:12px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;margin-top:8px}.portal-upload-btn:hover:not(:disabled){background:#0f766e}.portal-upload-btn:disabled{opacity:.7;cursor:not-allowed}.portal-payment-proofs h3{margin:0 0 16px;color:#334155;font-size:1.2rem}.portal-proof-list{display:flex;flex-direction:column;gap:12px}.portal-proof-item{background:#fff;padding:16px 20px;border-radius:10px;box-shadow:0 1px 3px #00000014;border-left:4px solid #94a3b8}.portal-proof-item.status-aprobado{border-left-color:#22c55e}.portal-proof-item.status-rechazado{border-left-color:#ef4444}.proof-info{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.proof-name{font-weight:500;color:#334155}.proof-date{font-size:.9rem;color:#64748b}.proof-status{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500}.proof-status.status-pendiente{background:#fef3c7;color:#92400e}.proof-status.status-aprobado{background:#d1fae5;color:#065f46}.proof-status.status-rechazado{background:#fee2e2;color:#991b1b}@media (max-width: 640px){.portal-payment-proofs h2{font-size:1.25rem}.portal-proof-form{padding:16px}.portal-proof-form input[type=file]{font-size:.9rem}.portal-upload-btn{width:100%;padding:14px;min-height:48px}.portal-proof-item{padding:14px 16px}.proof-info{flex-direction:column;align-items:flex-start;gap:8px}}.portal-installation .portal-empty{background:#fff;padding:40px;text-align:center;color:#64748b;border-radius:12px}.portal-installation h2{margin:0 0 20px;color:#334155;font-size:1.5rem}.installation-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.installation-card h3{margin:0 0 20px;color:#334155;font-size:1.2rem;padding-bottom:12px;border-bottom:1px solid #f1f5f9}.installation-details{display:flex;flex-direction:column;gap:12px}.installation-row{display:flex;gap:12px;align-items:flex-start}.installation-row .label{color:#64748b;min-width:160px;flex-shrink:0}.installation-row .status-badge{padding:4px 10px;border-radius:6px;font-size:.85rem;font-weight:500}.installation-row .status-badge.status-completada{background:#dcfce7;color:#166534}.installation-row .status-badge.status-pendiente{background:#fef3c7;color:#92400e}.installation-row .status-badge.status-cancelada{background:#fee2e2;color:#991b1b}@media (max-width: 640px){.portal-installation h2{font-size:1.25rem}.installation-row{flex-direction:column;gap:4px}.installation-row .label{min-width:auto}}.portal-packages .portal-empty{background:#fff;padding:40px;text-align:center;color:#64748b;border-radius:12px}.portal-packages h2{margin:0 0 12px;color:#334155;font-size:1.5rem}.portal-packages-intro{margin:0 0 24px;color:#64748b;font-size:.95rem}.packages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.package-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:12px}.package-header{display:flex;flex-direction:column;gap:4px}.package-header h3{margin:0;color:#334155;font-size:1.15rem}.package-speed{font-size:.9rem;color:#0d9488;font-weight:500}.package-price{font-size:1.5rem;font-weight:700;color:#0d9488}.package-period{font-size:.9rem;font-weight:400;color:#64748b}.package-description{margin:0;font-size:.9rem;color:#475569;line-height:1.5;flex:1}.package-request-btn{display:inline-block;padding:10px 16px;background:#0d9488;color:#fff;text-align:center;border-radius:8px;text-decoration:none;font-weight:500;font-size:.9rem;margin-top:8px}.package-request-btn:hover{background:#0f766e}@media (max-width: 640px){.portal-packages h2{font-size:1.25rem}.packages-grid{grid-template-columns:1fr}}.portal-change-address h2{margin:0 0 12px;color:#334155;font-size:1.5rem}.portal-change-address-intro{margin:0 0 24px;color:#64748b;font-size:.95rem;line-height:1.5}.change-address-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;max-width:600px}.change-address-form .form-group{margin-bottom:20px}.change-address-form label{display:block;margin-bottom:8px;color:#334155;font-weight:500;font-size:.95rem}.change-address-form textarea{width:100%;padding:12px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;font-family:inherit;resize:vertical}.change-address-form textarea:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 2px #0d948833}.change-address-form textarea:disabled{background:#f8fafc;cursor:not-allowed}.form-message{padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.95rem}.form-message.success{background:#dcfce7;color:#166534}.form-message.error{background:#fee2e2;color:#991b1b}.submit-btn{padding:12px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;font-weight:500;font-size:1rem;cursor:pointer}.submit-btn:hover:not(:disabled){background:#0f766e}.submit-btn:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 640px){.portal-change-address h2{font-size:1.25rem}.change-address-form{padding:16px}}.dashboard{max-width:1200px;margin:0 auto}.cutoff-countdown{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:20px 30px;border-radius:12px;display:flex;align-items:center;gap:20px;box-shadow:0 4px 15px #667eea4d;min-width:250px;transition:transform .2s ease,box-shadow .2s ease}.cutoff-countdown:hover{transform:translateY(-3px);box-shadow:0 6px 20px #667eea66}.cutoff-countdown-icon{font-size:3rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.cutoff-countdown-content{flex:1}.cutoff-countdown-label{font-size:.85rem;opacity:.9;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.cutoff-countdown-days{font-size:3rem;font-weight:700;line-height:1;margin:5px 0;color:#fff;transition:color .3s ease}.cutoff-countdown-days.warning{color:#f39c12;animation:warning-pulse 1.5s ease-in-out infinite}.cutoff-countdown-days.urgent{color:#e74c3c;animation:urgent-pulse 1s ease-in-out infinite}@keyframes warning-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes urgent-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.9}}.cutoff-countdown-subtitle{font-size:.8rem;opacity:.85;margin-top:5px}.current-date-card{background:linear-gradient(135deg,#27ae60,#229954);color:#fff;padding:20px 30px;border-radius:12px;display:flex;align-items:center;gap:20px;box-shadow:0 4px 15px #27ae604d;min-width:250px;transition:transform .2s ease,box-shadow .2s ease}.current-date-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px #27ae6066}.current-date-icon{font-size:3rem}.current-date-content{flex:1}.current-date-label{font-size:.85rem;opacity:.9;margin-bottom:5px;text-transform:uppercase;letter-spacing:.5px;font-weight:500}.current-date-day{font-size:3rem;font-weight:700;line-height:1;margin:5px 0;color:#fff}.current-date-subtitle{font-size:.9rem;opacity:.9;margin-top:5px;text-transform:capitalize;font-weight:500}.current-date-time{font-size:1.1rem;opacity:.85;margin-top:8px;font-weight:600;letter-spacing:1px}@media (max-width: 768px){.cutoff-countdown,.current-date-card{width:100%;min-width:auto;padding:15px 20px}.cutoff-countdown-icon,.current-date-icon,.cutoff-countdown-days,.current-date-day{font-size:2.5rem}.current-date-time{font-size:1rem}}.dashboard h1{color:#2c3e50;margin-bottom:30px;font-size:2rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.stat-card{background:#fff;border-radius:12px;padding:25px;display:flex;align-items:center;gap:20px;box-shadow:0 2px 10px #0000001a;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer}.stat-card:hover{transform:translateY(-5px);box-shadow:0 5px 20px #00000026;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.stat-card:hover .stat-info h3,.stat-card:hover .stat-number{color:#fff}.stat-icon{font-size:3rem}.stat-info h3{color:#7f8c8d;font-size:.9rem;font-weight:500;margin-bottom:5px}.stat-number{color:#2c3e50;font-size:2rem;font-weight:700;margin:0}.dashboard-loading{text-align:center;padding:50px;color:#7f8c8d}@media (max-width: 768px){.dashboard{max-width:100%}.dashboard h1{font-size:1.5rem}.stats-grid{grid-template-columns:1fr;gap:15px}.stat-card{padding:20px}.stat-icon{font-size:2.5rem}.stat-number{font-size:1.5rem}.revenue-section{padding:20px;margin-top:30px}.revenue-section h2{font-size:1.3rem}.revenue-grid{grid-template-columns:1fr;gap:15px}.revenue-card{padding:20px}}@media (max-width: 480px){.dashboard h1{font-size:1.2rem}.stat-card{padding:15px;flex-direction:column;text-align:center}.stat-icon{font-size:2rem}.stat-number{font-size:1.3rem}.revenue-section{padding:15px}.revenue-section h2{font-size:1.1rem}}.revenue-section{margin-top:40px;padding:30px;background:#f8f9fa;border-radius:12px}.revenue-section h2{margin-bottom:25px;color:#333;font-size:24px}.revenue-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.revenue-card{background:#fff;padding:25px;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;align-items:center;gap:20px;transition:transform .3s ease,box-shadow .3s ease}.revenue-card:hover{transform:translateY(-5px);box-shadow:0 8px 16px #00000026}.revenue-card.net-revenue{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.revenue-card.with-installations{border-left:4px solid #27ae60}.revenue-card.with-installations:hover{border-left-color:#229954;box-shadow:0 8px 16px #27ae6033}.revenue-card.without-installations{border-left:4px solid #3498db}.revenue-card.without-installations:hover{border-left-color:#2980b9;box-shadow:0 8px 16px #3498db33}.revenue-card.net-revenue.with-installations{background:linear-gradient(135deg,#27ae60,#229954);color:#fff;border-left:4px solid #1e8449}.revenue-card.net-revenue.without-installations{background:linear-gradient(135deg,#3498db,#2980b9);color:#fff;border-left:4px solid #21618c}.revenue-icon{font-size:48px;min-width:60px;text-align:center}.revenue-info{flex:1}.revenue-info h3{margin:0 0 10px;font-size:18px;font-weight:600}.revenue-amount{font-size:32px;font-weight:700;margin:0;color:#333}.revenue-card.net-revenue .revenue-amount,.revenue-amount.net{color:#fff}.revenue-subtitle{margin:8px 0 0;font-size:14px;color:#666;font-style:italic}.revenue-card.net-revenue .revenue-subtitle{color:#ffffffe6}.network-stats-card{padding:25px}.network-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:15px}.network-stat-item{background:#fff;padding:0;border-radius:12px;border-left:4px solid #667eea;box-shadow:0 2px 8px #0000001a;transition:transform .2s ease,box-shadow .2s ease;overflow:hidden}.network-stat-item:hover{transform:translateY(-3px);box-shadow:0 4px 12px #00000026}.network-stat-header{padding:20px;display:flex;justify-content:space-between;align-items:center;gap:15px;border-bottom:2px solid #e0e0e0;transition:background-color .2s ease}.network-stat-header:hover{background-color:#f8f9fa}.network-stat-header h4{margin:0;color:#2c3e50;font-size:1.3rem;font-weight:700;flex:1}.network-stat-header-summary{display:flex;gap:20px;flex:1;justify-content:flex-end;align-items:center;font-size:.9rem}.network-summary-item{display:flex;gap:8px;align-items:center}.network-summary-item strong{color:#666;font-weight:500}.network-toggle-icon{font-size:1.2rem;color:#667eea;font-weight:700;min-width:20px;text-align:center;transition:transform .3s ease}.network-stat-item.expanded .network-toggle-icon{transform:rotate(0)}.network-stat-item.collapsed .network-toggle-icon{transform:rotate(-90deg)}.network-stat-details{max-height:0;overflow:hidden;transition:max-height .4s ease-out,padding .4s ease-out;padding:0 20px}.network-stat-details.expanded{max-height:3000px;padding:20px}.network-stat-details.collapsed{max-height:0;padding:0 20px}.network-stat-details{display:flex;flex-direction:column;gap:16px}.network-stat-section{background:#f8f9fa;padding:12px;border-radius:8px;border:1px solid #e0e0e0}.network-stat-section-title{font-weight:700;font-size:.95rem;color:#667eea;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid #ddd;text-transform:uppercase;letter-spacing:.5px}.network-stat-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e8e8e8}.network-stat-row:last-child{border-bottom:none}.network-stat-row.profit{margin-top:8px;padding-top:12px;border-top:2px solid #667eea;font-weight:700;background:#667eea0d;border-radius:6px;padding-left:8px;padding-right:8px;margin-bottom:4px}.network-stat-row.highlight-positive{background:#27ae601a;border-radius:4px;padding-left:6px;padding-right:6px}.network-stat-row.highlight-negative{background:#e74c3c1a;border-radius:4px;padding-left:6px;padding-right:6px}.network-stat-row span{color:#555;font-size:.9rem;font-weight:500}.network-stat-row strong{color:#2c3e50;font-size:1rem;font-weight:600}.network-stat-row.profit strong.profit-positive{color:#27ae60;font-size:1.2rem}.network-stat-row.profit strong.profit-negative{color:#e74c3c;font-size:1.2rem}.network-stat-row.highlight-positive strong{color:#27ae60}.network-stat-row.highlight-negative strong{color:#e74c3c}.growth-section{margin-top:40px;padding:30px;background:#f8f9fa;border-radius:12px}.growth-section h2{color:#2c3e50;margin-bottom:10px;font-size:24px}.growth-description{color:#7f8c8d;margin-bottom:30px;font-size:.95rem}.growth-charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:25px}.growth-chart-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.growth-chart-card:hover{transform:translateY(-5px);box-shadow:0 5px 20px #00000026}.growth-chart-card h3{color:#2c3e50;margin-bottom:20px;font-size:1.2rem;text-align:center}.last-month-summary{background:#fff;border-radius:12px;padding:25px;margin-bottom:30px;box-shadow:0 2px 10px #0000001a}.last-month-summary h3{color:#2c3e50;margin-bottom:20px;font-size:1.3rem}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.summary-card{display:flex;align-items:center;gap:15px;padding:15px;background:#f8f9fa;border-radius:8px;border-left:4px solid #667eea;transition:transform .2s ease}.summary-card:hover{transform:translateY(-3px);box-shadow:0 4px 12px #0000001a}.summary-icon{font-size:2.5rem}.summary-content{flex:1}.summary-label{color:#7f8c8d;font-size:.9rem;margin-bottom:5px}.summary-value{color:#2c3e50;font-size:1.5rem;font-weight:700;margin-bottom:5px}.summary-growth{font-size:.85rem;font-weight:600}@media (max-width: 768px){.growth-charts{grid-template-columns:1fr}.growth-chart-card{min-width:100%}.summary-cards{grid-template-columns:1fr}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:12px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 10px 40px #0000004d;margin:10px}@media (max-width: 768px){.modal-overlay{padding:20px 10px 10px;align-items:flex-start}.modal-content{max-width:100%;max-height:95vh;margin:0;border-radius:8px}.modal-header{padding:15px;flex-wrap:wrap}.modal-header h2{font-size:1.2rem}.modal-content form{padding:15px}.form-group{margin-bottom:15px}.form-actions{flex-direction:column;gap:10px}.form-actions button{width:100%}}@media (max-width: 480px){.modal-overlay{padding:10px 5px 5px}.modal-content{max-height:98vh}.modal-header h2{font-size:1rem}.form-group input,.form-group select,.form-group textarea{font-size:16px}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:2px solid #f0f0f0}.modal-header h2{margin:0;color:#2c3e50}.close-btn{background:none;border:none;font-size:2rem;cursor:pointer;color:#7f8c8d;line-height:1;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.modal-content form{padding:20px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .3s ease}.email-input-group{display:flex;gap:10px;align-items:center}.email-input{flex:1}.btn-generate-email{padding:12px 16px;background:#3498db;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .3s ease,transform .2s ease;white-space:nowrap}.btn-generate-email:hover{background:#2980b9;transform:translateY(-2px)}.btn-generate-email:active{transform:translateY(0)}.speed-input-group{display:flex;align-items:center;gap:10px}.speed-input{flex:1}.speed-unit{padding:12px 16px;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;color:#7f8c8d;font-weight:600;font-size:1rem;white-space:nowrap;min-width:60px;text-align:center}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:30px}.btn-cancel{padding:12px 24px;border:2px solid #e0e0e0;background:#fff;border-radius:6px;cursor:pointer;font-size:1rem;transition:all .3s ease}.btn-cancel:hover{background:#f5f5f5}.btn-submit{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.btn-submit:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.checkbox-label{display:flex;align-items:center;gap:10px;cursor:pointer}.checkbox-label input[type=checkbox]{width:auto;margin:0;cursor:pointer}.checkbox-label span{color:#2c3e50;font-weight:500}.form-group small{display:block;margin-top:5px;color:#7f8c8d;font-size:.85rem}.clients-page{max-width:1400px;margin:0 auto}.error-message-banner{padding:1rem 1.25rem;background:#fde8e8;border:1px solid #e57373;border-radius:8px;color:#c62828;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.btn-dismiss-error{background:transparent;border:none;color:#c62828;font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.btn-dismiss-error:hover{opacity:.8}.page-header-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.btn-secondary{background:#fff;color:#2c3e50;border:2px solid #e0e0e0;padding:11px 18px;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;text-decoration:none;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:inline-flex;align-items:center;gap:8px}.btn-secondary:hover{transform:translateY(-2px);border-color:#667eea;box-shadow:0 5px 15px #667eea26}.filters-section{margin-bottom:20px;display:flex;flex-direction:column;gap:15px}.search-bar{width:100%}.search-bar input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem}.search-bar input:focus{outline:none;border-color:#667eea}.network-filter-btn{padding:10px 20px;border:2px solid #e0e0e0;border-radius:6px;background:#fff;color:#2c3e50;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .3s ease;white-space:nowrap}.network-filter-btn:hover{border-color:#667eea;background:#667eea1a;transform:translateY(-2px);box-shadow:0 2px 8px #667eea33}.network-filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 2px 8px #667eea4d}.network-filter-btn.active:hover{background:linear-gradient(135deg,#764ba2,#667eea);transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:20px}@media (max-width: 768px){.clients-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%;padding:10px 20px;font-size:.9rem}.clients-grid{grid-template-columns:1fr;gap:15px}.client-card{padding:15px}.client-header{flex-direction:column;align-items:flex-start;gap:10px}.client-actions{width:100%;justify-content:flex-end}.network-filters{flex-direction:column}.network-filter-btn{width:100%}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.client-header h3{font-size:1.1rem}.client-info p{font-size:.85rem}}.client-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.client-card:hover{transform:translateY(-5px);box-shadow:0 5px 20px #00000026}.client-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.client-title-section{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.client-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.client-number-badge{display:inline-block;padding:4px 10px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.network-type-badge{display:inline-block;padding:4px 10px;background:#3498db;color:#fff;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.client-header h3{color:#2c3e50;margin:0;font-size:1.3rem}.client-actions{display:flex;gap:10px}.client-info{margin-bottom:15px}.client-info p{margin:8px 0;color:#555;font-size:.9rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.whatsapp-link{display:inline-block;padding:4px 10px;background:#25d366;color:#fff;text-decoration:none;border-radius:4px;font-size:.8rem;font-weight:600;transition:background .3s ease,transform .2s ease;margin-left:10px}.whatsapp-link:hover{background:#128c7e;transform:translateY(-2px)}.btn-view{display:inline-block;width:100%;text-align:center;padding:10px;background:#3498db;color:#fff;text-decoration:none;border-radius:6px;transition:background .3s ease}.btn-view:hover{background:#2980b9}.client-detail{max-width:1200px;margin:0 auto}.detail-header{display:flex;align-items:center;gap:20px;margin-bottom:30px;flex-wrap:wrap}.detail-header h1{flex:1;color:#2c3e50;font-size:2rem;margin:0}.btn-back{padding:10px 20px;background:#95a5a6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;transition:background .3s ease}.btn-back:hover{background:#7f8c8d}.btn-download{padding:10px 20px;background:#27ae60;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .3s ease}.btn-download:hover{background:#229954}.client-status-badge{padding:6px 12px;border-radius:20px;font-size:.85rem;font-weight:600}.client-status-badge.status-activo{background:#d4edda;color:#155724}.client-status-badge.status-baja{background:#e2e3e5;color:#383d41}.client-status-actions{margin-top:8px}.client-status-actions .btn-danger{padding:10px 20px;background:#dc3545;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .3s ease}.client-status-actions .btn-danger:hover{background:#c82333}.client-status-actions .btn-primary{padding:10px 20px;background:#27ae60;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:1rem;font-weight:600;transition:background .3s ease}.client-status-actions .btn-primary:hover{background:#229954}.detail-content{display:flex;flex-direction:column;gap:30px}.detail-section{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a;overflow-x:auto}.section-desc{color:#64748b;font-size:.9rem;margin-bottom:16px}.section-desc a{color:#0d9488}.portal-setup{display:flex;flex-direction:column;gap:14px}.portal-check{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:500}.portal-password-row{display:flex;gap:12px;flex-wrap:wrap}.portal-password-row input{flex:1;min-width:200px;padding:10px 14px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.btn-save-portal{padding:10px 20px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.btn-save-portal:hover:not(:disabled){background:#0f766e}.btn-save-portal:disabled{opacity:.7;cursor:not-allowed}.portal-hint{font-size:.85rem;color:#64748b}@media (max-width: 768px){.client-detail{max-width:100%}.detail-header{flex-direction:column;align-items:flex-start;gap:15px}.detail-header h1{font-size:1.5rem}.btn-back,.btn-download{width:100%;text-align:center}.detail-section{padding:15px;overflow-x:auto}.detail-section h2{font-size:1.2rem}.info-grid{grid-template-columns:1fr;gap:15px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-container table{min-width:600px;font-size:.9rem}.table-container th,.table-container td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.detail-header h1{font-size:1.2rem}.detail-section h2{font-size:1rem}.table-container table{min-width:500px;font-size:.85rem}.table-container th,.table-container td{padding:6px;font-size:.8rem}}.detail-section h2{color:#2c3e50;margin-bottom:20px;font-size:1.5rem;border-bottom:2px solid #3498db;padding-bottom:10px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.info-item{padding:15px;background:#f8f9fa;border-radius:8px}.info-item.full-width{grid-column:1 / -1}.info-item strong{display:block;color:#2c3e50;margin-bottom:8px;font-size:.9rem}.info-item p{color:#555;margin:0;font-size:1rem;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.whatsapp-link{display:inline-block;padding:6px 12px;background:#25d366;color:#fff;text-decoration:none;border-radius:6px;font-size:.85rem;font-weight:600;transition:background .3s ease,transform .2s ease;margin-left:10px}.whatsapp-link:hover{background:#128c7e;transform:translateY(-2px);box-shadow:0 3px 10px #25d3664d}table{width:100%;border-collapse:collapse}table thead{background:#f8f9fa}table th{padding:12px;text-align:left;color:#2c3e50;font-weight:600;border-bottom:2px solid #e0e0e0}table td{padding:12px;border-bottom:1px solid #f0f0f0;color:#555}table tbody tr:hover{background:#f8f9fa}.empty-message{color:#7f8c8d;text-align:center;padding:20px;font-style:italic}.error-message-banner{padding:1rem 1.25rem;background:#fde8e8;border:1px solid #e57373;border-radius:8px;color:#c62828;margin:1rem 0}.flash-banner{padding:.75rem 1rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem}.flash-banner.success{background:#e8f5e9;border:1px solid #81c784;color:#2e7d32}.flash-banner.error{background:#fde8e8;border:1px solid #e57373;color:#c62828}.flash-dismiss{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1;opacity:.8}.loading,.error{text-align:center;padding:50px;color:#7f8c8d}.error{color:#e74c3c}.portal-last-access-page{max-width:1200px;margin:0 auto}.portal-last-access-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px}.portal-last-access-header h1{margin:0;color:#2c3e50;font-size:2rem}.portal-last-access-subtitle{margin-top:6px;color:#64748b}.portal-last-access-actions{display:flex;gap:10px;align-items:center}.portal-last-access-error{padding:1rem 1.25rem;background:#fde8e8;border:1px solid #e57373;border-radius:8px;color:#c62828;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.portal-last-access-filters{margin-bottom:14px}.portal-last-access-filters input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem}.portal-last-access-filters input:focus{outline:none;border-color:#667eea}.portal-last-access-table-wrap{background:#fff;border:1px solid #eaeaea;border-radius:10px;overflow:hidden}.portal-last-access-table{width:100%;border-collapse:collapse}.portal-last-access-table th,.portal-last-access-table td{padding:12px 14px;border-bottom:1px solid #f1f1f1;text-align:left;vertical-align:middle}.portal-last-access-table th{background:#f8fafc;color:#334155;font-weight:700;font-size:.95rem}.client-cell{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.client-link{color:#2563eb;text-decoration:none;font-weight:700}.client-link:hover{text-decoration:underline}.client-number{color:#64748b;font-weight:600}.badge{display:inline-block;padding:5px 10px;border-radius:999px;font-size:.85rem;font-weight:700;border:1px solid transparent}.badge-app{background:#10b9811f;color:#047857;border-color:#10b98140}.badge-web{background:#3b82f61f;color:#1d4ed8;border-color:#3b82f640}.badge-enabled{background:#22c55e1f;color:#166534;border-color:#22c55e40}.badge-disabled{background:#64748b1f;color:#475569;border-color:#64748b40}.badge-inactive{background:#ef44441f;color:#b91c1c;border-color:#ef444440}.empty-cell{padding:18px 14px;color:#64748b;text-align:center}.client-contract-page{padding:20px;max-width:1400px;margin:0 auto}.page-header{margin-bottom:30px}.page-header h1{margin:0 0 10px;color:#2c3e50;font-size:2rem}.page-header p{margin:0;color:#666;font-size:1rem}.contract-container{display:grid;grid-template-columns:2fr 1fr;gap:30px}.contract-form-section{display:flex;flex-direction:column;gap:20px}.form-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 8px #0000001a}.form-card h2{margin:0;color:#2c3e50;font-size:1.3rem;border-bottom:2px solid #667eea;padding-bottom:10px}.btn-save-config{padding:8px 16px;background-color:#28a745;color:#fff;border:none;border-radius:5px;cursor:pointer;font-size:.9rem;font-weight:700;transition:background-color .3s ease}.btn-save-config:hover{background-color:#218838}.btn-save-config:active{background-color:#1e7e34}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#2c3e50}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s;box-sizing:border-box}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#667eea}.form-group textarea{resize:vertical;font-family:inherit}.client-info-card{background:#f8f9fa;border-radius:8px;padding:15px;margin-top:15px;border-left:4px solid #667eea}.client-info-card h3{margin:0 0 10px;color:#667eea;font-size:1.1rem}.client-info-card p{margin:5px 0;color:#555;font-size:.95rem}.payment-methods-input{display:flex;gap:10px;margin-bottom:10px}.payment-methods-input input{flex:1}.btn-add{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:background .3s}.btn-add:hover{background:#5568d3}.payment-methods-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.payment-method-tag{display:inline-flex;align-items:center;gap:5px;background:#667eea;color:#fff;padding:6px 12px;border-radius:20px;font-size:.9rem;font-weight:500}.remove-btn{background:#ffffff4d;border:none;color:#fff;width:20px;height:20px;border-radius:50%;cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center;padding:0;transition:background .3s}.remove-btn:hover{background:#ffffff80}.contract-actions-section{position:sticky;top:20px;height:fit-content}.actions-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 8px #0000001a}.actions-card h2{margin:0 0 20px;color:#2c3e50;font-size:1.3rem;border-bottom:2px solid #667eea;padding-bottom:10px}.action-buttons{display:flex;flex-direction:column;gap:12px}.btn-primary,.btn-secondary,.btn-whatsapp{width:100%;padding:12px 20px;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .3s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover:not(:disabled){background:#5568d3}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover:not(:disabled){background:#5a6268}.btn-whatsapp{background:#25d366;color:#fff}.btn-whatsapp:hover:not(:disabled){background:#20ba5a}.btn-primary:disabled,.btn-secondary:disabled,.btn-whatsapp:disabled{opacity:.5;cursor:not-allowed}.warning-text{margin-top:15px;padding:10px;background:#fff3cd;border-left:4px solid #ffc107;border-radius:4px;color:#856404;font-size:.9rem}@media (max-width: 1024px){.contract-container{grid-template-columns:1fr}.contract-actions-section{position:static}}@media (max-width: 768px){.client-contract-page{padding:15px}.page-header h1{font-size:1.5rem}.form-card,.actions-card{padding:20px}.payment-methods-input{flex-direction:column}.btn-add{width:100%}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.form-card h2,.actions-card h2{font-size:1.1rem}}.contracts-page{padding:20px;max-width:1400px;margin:0 auto}.page-header h1{margin:0;color:#2c3e50;font-size:2rem}.search-input{padding:10px 15px;border:1px solid #ddd;border-radius:5px;font-size:1rem;min-width:250px}.contracts-table-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.contracts-table{width:100%;border-collapse:collapse;font-size:.95rem}.contracts-table thead{background-color:#f8f9fa}.contracts-table th{padding:15px;text-align:left;font-weight:700;color:#2c3e50;border-bottom:2px solid #dee2e6}.contracts-table td{padding:15px;border-bottom:1px solid #dee2e6}.contracts-table tbody tr:hover{background-color:#f8f9fa}.table-actions{display:flex;gap:8px;align-items:center}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:5px 8px;border-radius:4px;transition:background-color .2s}.btn-icon:hover{background-color:#e9ecef}.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.empty-state p{margin:10px 0;color:#666;font-size:1.1rem}.loading{text-align:center;padding:60px 20px;font-size:1.2rem;color:#666}@media (max-width: 768px){.contracts-page{padding:15px}.page-header{flex-direction:column;align-items:flex-start}.page-header h1{font-size:1.5rem}.search-input{width:100%;min-width:auto}.contracts-table-container{padding:10px}.contracts-table{font-size:.85rem;min-width:800px}.contracts-table th,.contracts-table td{padding:10px 8px}}.packages-page{max-width:1400px;margin:0 auto}.packages-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.package-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a;transition:transform .2s ease,box-shadow .2s ease}.package-card:hover{transform:translateY(-5px);box-shadow:0 5px 20px #00000026}.package-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.package-header h3{color:#2c3e50;margin:0;font-size:1.5rem}.package-actions{display:flex;gap:10px}.package-info{display:flex;flex-direction:column;gap:15px}.package-speed,.package-price{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f8f9fa;border-radius:8px}.speed-label,.price-label{color:#7f8c8d;font-weight:500}.speed-value{color:#3498db;font-weight:700;font-size:1.1rem}.price-value{color:#27ae60;font-weight:700;font-size:1.2rem}.package-description{padding:12px;background:#f8f9fa;border-radius:8px}.package-description p{color:#555;margin:0}@media (max-width: 768px){.packages-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.packages-grid{grid-template-columns:1fr;gap:15px}.package-card{padding:15px}.package-header{flex-direction:column;align-items:flex-start;gap:10px}.package-actions{width:100%;justify-content:flex-end}.package-filters{flex-direction:column}.package-filter-btn{width:100%}}@media (max-width: 480px){.page-header h1,.package-header h3{font-size:1.2rem}}.package-filters{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}.package-filter-btn{padding:10px 20px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;color:#555;transition:all .2s ease}.package-filter-btn:hover{border-color:#3498db;color:#3498db}.package-filter-btn.active{background:#3498db;border-color:#3498db;color:#fff}.package-card.inactive{opacity:.7;background:#f5f5f5}.package-header h3{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.status-badge{padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:600;text-transform:uppercase}.status-badge.active-badge{background:#27ae60;color:#fff}.status-badge.inactive-badge{background:#e74c3c;color:#fff}.package-network{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#e8f4f8;border-radius:8px;margin-bottom:10px}.network-label{color:#7f8c8d;font-weight:500}.network-value{color:#3498db;font-weight:700;font-size:1rem}.payments-page{max-width:1400px;margin:0 auto}.payments-page .error-message-banner{padding:1rem 1.25rem;background:#fde8e8;border:1px solid #e57373;border-radius:8px;color:#c62828;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.payments-page .btn-dismiss-error{background:transparent;border:none;color:inherit;font-size:1.5rem;cursor:pointer;padding:0 .25rem;line-height:1}.payments-flash{padding:.75rem 1.25rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.payments-flash.flash-info{background:#e3f2fd;border:1px solid #64b5f6;color:#1565c0}.payments-flash.flash-error{background:#fde8e8;border:1px solid #e57373;color:#c62828}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:15px}@media (max-width: 768px){.payments-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.month-card-header{padding:15px}.month-card-title h2{font-size:1.2rem}.month-card-stats{flex-direction:column;gap:10px}.stat-item{width:100%}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-container table{min-width:800px;font-size:.9rem}.table-container th,.table-container td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.month-card-title h2{font-size:1rem}.table-container table{min-width:700px;font-size:.85rem}.table-container th,.table-container td{padding:6px;font-size:.8rem}}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:8px;cursor:pointer;font-size:16px;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.stat-value.free-month{color:#fbbf24}.payments-table-container{background:#f8f9fa;border-radius:8px;padding:20px;overflow-x:auto}.payments-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden}.payments-table thead{background:#f8f9fa}.payments-table th{padding:12px;text-align:left;color:#2c3e50;font-weight:600;border-bottom:2px solid #e0e0e0}.payments-table td{padding:12px;border-bottom:1px solid #f0f0f0;color:#555}.payments-table tbody tr:hover{background:#f8f9fa}.payments-table .amount{color:#27ae60;font-weight:600}.free-badge{margin-left:5px;font-size:1rem}.revenue-type-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:.85em;font-weight:600;white-space:nowrap}.revenue-type-badge.payment{background-color:#e3f2fd;color:#1976d2}.revenue-type-badge.installation{background-color:#fff3e0;color:#f57c00}.revenue-type-badge.personalized{background-color:#f3e5f5;color:#7b1fa2}.filters-section{background:#fff;border-radius:12px;padding:20px;margin-bottom:20px;box-shadow:0 2px 10px #0000001a}.date-filter{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.date-filter label{font-weight:600;color:#2c3e50}.date-filter input[type=date]{padding:8px 12px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .3s ease}.date-filter input[type=date]:focus{outline:none;border-color:#667eea}.date-filter span{color:#7f8c8d;font-weight:500}.btn-clear-filter{padding:8px 15px;background:#e74c3c;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:background .3s ease}.btn-clear-filter:hover{background:#c0392b}.header-actions{display:flex;gap:10px;align-items:center}.btn-secondary{padding:10px 20px;background:#6c757d;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:background .3s ease}.btn-secondary:hover{background:#5a6268}.chart-container{background:#fff;border-radius:12px;padding:25px;margin-bottom:20px;box-shadow:0 2px 10px #0000001a}.chart-container h3{margin:0 0 20px;color:#2c3e50;font-size:1.3rem}.chart{display:flex;align-items:flex-end;justify-content:space-around;height:300px;gap:10px;padding:20px 0;border-bottom:2px solid #e0e0e0;margin-bottom:15px}.chart-bar-container{flex:1;display:flex;flex-direction:column;align-items:center;height:100%;max-width:120px}.chart-bar-wrapper{flex:1;width:100%;display:flex;align-items:flex-end;justify-content:center;position:relative}.chart-bar{width:80%;min-height:20px;border-radius:8px 8px 0 0;transition:all .3s ease;position:relative;display:flex;align-items:flex-start;justify-content:center;padding-top:5px;cursor:pointer}.chart-bar:hover{opacity:.8;transform:scaleY(1.05)}.chart-value{color:#fff;font-size:11px;font-weight:700;text-shadow:0 1px 2px rgba(0,0,0,.3)}.chart-label{margin-top:10px;font-size:12px;color:#7f8c8d;text-align:center;font-weight:600}.chart-legend{display:flex;justify-content:center;gap:30px;margin-top:15px}.legend-item{display:flex;align-items:center;gap:8px;font-size:14px;color:#555}.legend-color{width:20px;height:20px;border-radius:4px;display:inline-block}.month-actions{display:flex;gap:15px;margin-bottom:20px;align-items:center;flex-wrap:wrap}.search-input{width:100%;padding:10px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:14px;transition:border-color .3s ease}.btn-export-pdf{padding:10px 20px;background:#27ae60;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:background .3s ease;white-space:nowrap}.btn-export-pdf:hover{background:#229954}.btn-preview-pdf{padding:10px 20px;background:#3498db;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;transition:background .3s ease;white-space:nowrap}.btn-preview-pdf:hover{background:#2980b9}.search-results-info{margin-top:15px;padding:10px;background:#e8f5e9;border-radius:8px;text-align:center;color:#2e7d32;font-size:14px}.no-results{text-align:center;padding:30px;color:#7f8c8d;font-style:italic}@media (max-width: 768px){.month-card-stats{flex-direction:column;gap:15px}.stat-item{flex-direction:row;justify-content:space-between;align-items:center}.stat-value{font-size:1.1rem}.header-actions{flex-direction:column;width:100%}.btn-secondary,.btn-primary{width:100%}.date-filter{flex-direction:column;align-items:stretch}.date-filter input[type=date]{width:100%}.month-actions{flex-direction:column}.search-box,.btn-export-pdf{width:100%}.chart{height:200px;gap:5px}.chart-bar{width:90%}.chart-value{font-size:9px}.chart-label{font-size:10px}}.credits-page{padding:20px;max-width:1400px;margin:0 auto}.credits-flash{padding:.75rem 1.25rem;border-radius:8px;margin-bottom:1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.credits-flash.flash-success{background:#e8f5e9;border:1px solid #81c784;color:#2e7d32}.credits-flash.flash-error{background:#fde8e8;border:1px solid #e57373;color:#c62828}.credits-flash .flash-dismiss{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:0 .25rem;line-height:1;opacity:.8}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.page-header h1{margin:0;color:#2c3e50}.header-actions{display:flex;gap:10px;flex-wrap:wrap}.search-input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px}.filter-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer}.credits-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.credits-table{width:100%;border-collapse:collapse}.credits-table thead{background:#f8f9fa}.credits-table th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #dee2e6}.credits-table td{padding:12px;border-bottom:1px solid #dee2e6}.credits-table tbody tr:hover{background:#f8f9fa}.client-number{font-size:.85em;color:#6c757d;margin-top:4px}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.85em;font-weight:600}.badge-pending{background:#fff3cd;color:#856404}.badge-partial{background:#cfe2ff;color:#084298}.badge-paid{background:#d1e7dd;color:#0f5132}.btn-pagare{background:#6c757d;color:#fff;border:none;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:.9em;font-weight:500;transition:background .2s}.btn-pagare:hover{background:#5a6268}.btn-pay{background:#28a745;color:#fff;border:none;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:.9em;font-weight:500;transition:background .2s}.btn-pay:hover{background:#218838}.btn-delete{background:#dc3545;color:#fff;border:none;padding:6px 16px;border-radius:4px;cursor:pointer;font-size:.9em;font-weight:500;transition:background .2s}.btn-delete:hover{background:#c82333}.text-danger{color:#dc3545}.text-success{color:#28a745}.no-data{text-align:center;padding:40px;color:#6c757d}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 6px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #dee2e6}.modal-header h2{margin:0;color:#2c3e50;font-size:1.5em}.close-btn{background:none;border:none;font-size:28px;color:#6c757d;cursor:pointer;line-height:1;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#2c3e50}.modal-body{padding:20px}.credit-info{background:#f8f9fa;padding:15px;border-radius:4px;margin-bottom:20px}.credit-info p{margin:8px 0;color:#495057}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500;color:#2c3e50}.form-group input,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.form-group textarea{resize:vertical}.modal-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:20px}.btn-cancel{background:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px}.btn-cancel:hover{background:#5a6268}.btn-submit{background:#007bff;color:#fff;border:none;padding:10px 20px;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500}.btn-submit:hover{background:#0056b3}.loading{text-align:center;padding:40px;color:#6c757d;font-size:16px}@media (max-width: 768px){.credits-page{padding:10px}.page-header{flex-direction:column;align-items:stretch}.header-actions{flex-direction:column}.search-input,.filter-select{width:100%}.credits-table{font-size:.9em}.credits-table th,.credits-table td{padding:8px}}.provider-payments-page{max-width:1400px;margin:0 auto}.provider-payments-loading{text-align:center;padding:50px;font-size:1.2rem;color:#666}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.summary-section{margin-bottom:40px}.summary-section h2{color:#2c3e50;margin-bottom:20px;font-size:1.5rem}.summary-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:30px}.summary-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a;border-left:4px solid}.summary-card.ont{border-left-color:#3498db}.summary-card.satelital{border-left-color:#e74c3c}.summary-card h3{color:#2c3e50;margin-bottom:20px;font-size:1.3rem}.summary-stats{display:flex;flex-direction:column;gap:15px}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f8f9fa;border-radius:8px}.stat-label{font-weight:600;color:#555}@media (max-width: 768px){.provider-payments-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.summary-cards{grid-template-columns:1fr}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table-container table{min-width:800px;font-size:.9rem}.table-container th,.table-container td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.summary-card{padding:15px}.table-container table{min-width:700px;font-size:.85rem}.table-container th,.table-container td{padding:6px;font-size:.8rem}}.stat-value{font-weight:700;font-size:1.1rem;color:#2c3e50}.stat-value.paid{color:#27ae60}.stat-value.remaining{color:#e74c3c}.payments-section{margin-top:40px}.payments-section h2{color:#2c3e50;margin-bottom:30px;font-size:1.5rem}.network-section{margin-bottom:40px;background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a}.network-section h3{color:#2c3e50;margin-bottom:20px;font-size:1.3rem;padding-bottom:10px;border-bottom:2px solid #e0e0e0}.table-container{overflow-x:auto}table{width:100%;border-collapse:collapse;margin-top:15px}thead{background:#f8f9fa}th{padding:12px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #e0e0e0}td{padding:12px;border-bottom:1px solid #e0e0e0;color:#555}tbody tr:hover{background:#f8f9fa}.paid-amount{color:#27ae60;font-weight:600}.remaining-amount{color:#e74c3c;font-weight:600}.paid-complete{color:#27ae60;font-weight:600}.btn-edit,.btn-delete{padding:6px 12px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;margin-right:8px;transition:all .2s ease}.btn-edit:hover{background:#2980b9;transform:translateY(-1px)}.btn-delete:hover{background:#c0392b;transform:translateY(-1px)}.empty-message{text-align:center;padding:40px;color:#999;font-size:1.1rem}@media (max-width: 768px){.summary-cards{grid-template-columns:1fr}.page-header{flex-direction:column;align-items:flex-start;gap:15px}table{font-size:.9rem}th,td{padding:8px}.btn-edit,.btn-delete{padding:4px 8px;font-size:.8rem;margin-right:4px}}.installations-page{max-width:1400px;margin:0 auto}.installations-table-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;overflow-x:auto}.installations-table{width:100%;border-collapse:collapse}.installations-table thead{background:#f8f9fa}.installations-table th{padding:12px;text-align:left;color:#2c3e50;font-weight:600;border-bottom:2px solid #e0e0e0}.installations-table td{padding:12px;border-bottom:1px solid #f0f0f0;color:#555}.installations-table tbody tr:hover{background:#f8f9fa}@media (max-width: 768px){.installations-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.installations-table-container{padding:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.installations-table{min-width:1000px;font-size:.9rem}.installations-table th,.installations-table td{padding:8px;white-space:nowrap}.month-card{border-radius:8px}.month-card-header{padding:15px}.month-card-title h2{font-size:1.2rem}.month-card-stats{flex-direction:column;gap:10px}.stat-item{width:100%}.table-actions{flex-direction:column;gap:5px}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.installations-table{min-width:800px;font-size:.85rem}.installations-table th,.installations-table td{padding:6px;font-size:.8rem}.month-card-title h2{font-size:1rem}}.btn-icon.btn-complete{color:#0d6efd}.btn-icon.btn-complete:hover{color:#0a58ca}.btn-icon.btn-complete:disabled{opacity:.7;cursor:not-allowed}.folios-page{max-width:1400px;margin:0 auto}.folios-table-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;overflow-x:auto}.folios-table{width:100%;border-collapse:collapse}.folios-table thead{background:#f8f9fa}.folios-table th{padding:10px 8px;text-align:left;color:#2c3e50;font-weight:600;border-bottom:2px solid #e0e0e0;font-size:.9rem}.folios-table td{padding:10px 8px;border-bottom:1px solid #f0f0f0;color:#555;font-size:.9rem}.folios-table tbody tr:hover{background:#f8f9fa}@media (max-width: 768px){.folios-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.folios-table-container{padding:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.folios-table{min-width:800px;font-size:.85rem}.folios-table th,.folios-table td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.folios-table{min-width:700px;font-size:.8rem}.folios-table th,.folios-table td{padding:6px}}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:capitalize}.status-completado{background:#d4edda;color:#155724}.status-cancelado{background:#f8d7da;color:#721c24}.resolution-method-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:500;background:#e3f2fd;color:#1565c0;white-space:nowrap}.table-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-start}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:5px 8px;transition:transform .2s ease,opacity .2s ease;opacity:.7;min-width:32px;text-align:center}.btn-icon:hover{transform:scale(1.2);opacity:1}.btn-icon:active{transform:scale(1.1)}.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:20px}.loading-spinner-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#fffffff2;display:flex;align-items:center;justify-content:center;z-index:9999;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.loading-spinner-fullscreen .loading-spinner-container{padding:0}.loading-spinner{position:relative;display:inline-block}.spinner-ring{position:absolute;border:4px solid transparent;border-top-color:#667eea;border-radius:50%;animation:spin 1.2s cubic-bezier(.5,0,.5,1) infinite}.spinner-ring:nth-child(1){animation-delay:-.45s}.spinner-ring:nth-child(2){animation-delay:-.3s}.spinner-ring:nth-child(3){animation-delay:-.15s}.spinner-ring:nth-child(4){animation-delay:0s}.spinner-small .spinner-ring{width:30px;height:30px;border-width:3px}.spinner-medium .spinner-ring{width:50px;height:50px;border-width:4px}.spinner-large .spinner-ring{width:80px;height:80px;border-width:6px}.spinner-small .spinner-ring:nth-child(1){top:0;left:0}.spinner-small .spinner-ring:nth-child(2){top:3px;left:3px}.spinner-small .spinner-ring:nth-child(3){top:6px;left:6px}.spinner-small .spinner-ring:nth-child(4){top:9px;left:9px}.spinner-medium .spinner-ring:nth-child(1){top:0;left:0}.spinner-medium .spinner-ring:nth-child(2){top:5px;left:5px}.spinner-medium .spinner-ring:nth-child(3){top:10px;left:10px}.spinner-medium .spinner-ring:nth-child(4){top:15px;left:15px}.spinner-large .spinner-ring:nth-child(1){top:0;left:0}.spinner-large .spinner-ring:nth-child(2){top:8px;left:8px}.spinner-large .spinner-ring:nth-child(3){top:16px;left:16px}.spinner-large .spinner-ring:nth-child(4){top:24px;left:24px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.loading-message{margin:0;color:#667eea;font-size:16px;font-weight:500;text-align:center;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.loading-spinner-container.with-dots .loading-message:after{content:"...";animation:dots 1.5s steps(4,end) infinite}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%,to{content:"..."}}.loading-spinner-minimal{padding:20px}.loading-spinner-inline{display:inline-block;padding:0;margin:0 8px;vertical-align:middle}.loading-spinner-inline .spinner-ring{width:16px;height:16px;border-width:2px}.loading-spinner-inline .spinner-ring:nth-child(1){top:0;left:0}.loading-spinner-inline .spinner-ring:nth-child(2){top:2px;left:2px}.loading-spinner-inline .spinner-ring:nth-child(3){top:4px;left:4px}.loading-spinner-inline .spinner-ring:nth-child(4){top:6px;left:6px}.loading-spinner-inline .loading-message{display:none}@media (max-width: 768px){.loading-message{font-size:14px}.spinner-large .spinner-ring{width:60px;height:60px;border-width:5px}}.tickets-page{padding:20px}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:20px}.stat-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center}.tickets-container{display:grid;grid-template-columns:1fr 400px;gap:20px}.tickets-list{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a}.ticket-details{background:#fff;border-radius:8px;padding:20px;box-shadow:0 2px 4px #0000001a;max-height:calc(100vh - 200px);overflow-y:auto}.ticket-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;border-bottom:2px solid #eee;padding-bottom:10px}.ticket-info p{margin:10px 0}.ticket-actions{display:flex;gap:10px;margin:20px 0;padding-top:20px;border-top:2px solid #eee}.comments-section{margin-top:20px;padding-top:20px;border-top:2px solid #eee}.comment{background:#f8f9fa;padding:10px;border-radius:4px;margin-bottom:10px}.comment small{color:#7f8c8d}.add-comment{margin-top:15px}.add-comment textarea{width:100%;padding:8px;border:1px solid #ddd;border-radius:4px;margin-bottom:10px;box-sizing:border-box}.badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:700}.badge.priority-alta{background:#e74c3c;color:#fff}.badge.priority-media{background:#f39c12;color:#fff}.badge.priority-baja{background:#3498db;color:#fff}.badge.status-abierto{background:#e74c3c;color:#fff}.badge.status-en_proceso{background:#f39c12;color:#fff}.badge.status-resuelto{background:#2ecc71;color:#fff}.badge.status-rechazado{background:#e67e22;color:#fff}.badge.status-cerrado{background:#95a5a6;color:#fff}.btn-reject{padding:8px 16px;background:#e67e22;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.btn-reject:hover{background:#d35400}@media (max-width: 1024px){.tickets-container{grid-template-columns:1fr}}.receipts-page{max-width:1400px;margin:0 auto}.page-header h1{color:#2c3e50;font-size:2rem}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.search-bar{margin-bottom:20px}.search-bar input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .3s ease,box-shadow .3s ease}.search-bar input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.receipts-table-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;overflow-x:auto}.receipts-table{width:100%;border-collapse:collapse}.receipts-table thead{background:#f8f9fa}.receipts-table th{padding:10px 8px;text-align:left;color:#2c3e50;font-weight:600;border-bottom:2px solid #e0e0e0;font-size:.9rem}.receipts-table td{padding:10px 8px;border-bottom:1px solid #f0f0f0;color:#555;font-size:.9rem}.receipts-table tbody tr:hover{background:#f8f9fa}@media (max-width: 768px){.receipts-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.receipts-table-container{padding:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.receipts-table{min-width:800px;font-size:.85rem}.receipts-table th,.receipts-table td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.receipts-table{min-width:700px;font-size:.8rem}.receipts-table th,.receipts-table td{padding:6px}}.receipt-type-badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:.8rem;font-weight:500;white-space:nowrap}.receipt-type-mensualidad{background:#d4edda;color:#155724}.receipt-type-instalacion{background:#cfe2ff;color:#084298}.table-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-start;align-items:center}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:6px 10px;transition:all .2s ease;opacity:.75;min-width:36px;text-align:center;border-radius:4px;position:relative}.btn-icon:hover{transform:scale(1.15);opacity:1;background:#667eea1a}.btn-icon:active{transform:scale(1.05)}.btn-icon:after{content:attr(title);position:absolute;bottom:100%;left:50%;transform:translate(-50%);background:#2c3e50;color:#fff;padding:4px 8px;border-radius:4px;font-size:.75rem;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;margin-bottom:5px;z-index:1000}.btn-icon:hover:after{opacity:1}.amount{font-weight:600;color:#27ae60}.loading{text-align:center;padding:40px;color:#999;font-size:1.2rem}.payments-by-month{display:flex;flex-direction:column;gap:20px;margin-top:20px}.month-card{background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a;overflow:hidden;transition:box-shadow .3s ease}.month-card:hover{box-shadow:0 4px 20px #00000026}.month-card-header{padding:20px;cursor:pointer;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;transition:background .3s ease}.month-card-header:hover{background:linear-gradient(135deg,#764ba2,#667eea)}.month-card-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.month-card-title h2{margin:0;font-size:1.5rem;font-weight:600}.month-toggle{font-size:1.2rem;transition:transform .3s ease}.month-card-stats{display:flex;gap:30px;flex-wrap:wrap}.stat-item{display:flex;flex-direction:column;gap:5px}.stat-label{font-size:.85rem;opacity:.9;font-weight:400}.stat-value{font-size:1.3rem;font-weight:700}.stat-value.amount{color:#4ade80}.month-card-content{padding:20px;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;max-height:0}to{opacity:1;max-height:1000px}}.empty-state{text-align:center;padding:50px;color:#7f8c8d}.payment-proofs-page{max-width:1400px;margin:0 auto}.payment-proofs-page h1{margin:0 0 8px;color:#2c3e50;font-size:1.75rem}.filter-bar select{padding:10px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.proofs-grid{display:grid;grid-template-columns:320px 1fr;gap:24px;min-height:400px}.proofs-list{display:flex;flex-direction:column;gap:16px;max-height:70vh;overflow-y:auto}.proofs-network-group{display:flex;flex-direction:column;gap:8px}.proofs-network-header{font-size:.85rem;font-weight:600;color:#0f766e;text-transform:uppercase;letter-spacing:.05em;padding:8px 0 4px;border-bottom:2px solid #0d9488;margin-bottom:4px}.proof-card{background:#fff;padding:16px;border-radius:10px;box-shadow:0 1px 3px #0000001a;cursor:pointer;border:2px solid transparent;transition:border-color .2s,box-shadow .2s}.proof-card:hover{box-shadow:0 4px 12px #0000001a}.proof-card.selected{border-color:#0d9488;box-shadow:0 0 0 2px #0d948833}.proof-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.proof-client{font-weight:600;color:#334155}.proof-card .proof-status{padding:4px 10px;border-radius:6px;font-size:.75rem;font-weight:500}.proof-card .proof-status.status-pendiente{background:#fef3c7;color:#92400e}.proof-card .proof-status.status-aprobado{background:#d1fae5;color:#065f46}.proof-card .proof-status.status-rechazado{background:#fee2e2;color:#991b1b}.proof-card-meta{font-size:.85rem;color:#64748b;margin-bottom:4px}.proof-amount{font-weight:600;color:#0f766e}.proof-detail{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow-y:auto}.detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.detail-header h3{margin:0;color:#334155}.status-badge{padding:6px 12px;border-radius:8px;font-size:.85rem;font-weight:500}.preview-area{margin-bottom:20px;text-align:center}.preview-area img{max-width:100%;max-height:400px;border-radius:8px;border:1px solid #e2e8f0}.pdf-preview{width:100%;height:450px;border:1px solid #e2e8f0;border-radius:8px}.open-new-btn{display:inline-block;margin-top:12px;color:#0d9488;text-decoration:none;font-size:.9rem}.open-new-btn:hover{text-decoration:underline}.detail-info{margin-bottom:20px;font-size:.95rem}.proof-linked{padding:10px 12px;background:#d1fae5;color:#065f46;border-radius:8px;font-size:.9rem;margin-bottom:16px}.review-actions textarea{width:100%;padding:12px;border:2px solid #e2e8f0;border-radius:8px;margin-bottom:12px;font-size:1rem;resize:vertical}.btn-approve{padding:12px 24px;background:#22c55e;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.btn-approve:hover:not(:disabled){background:#16a34a}.btn-reject{padding:12px 24px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.btn-approve:disabled,.btn-reject:disabled{opacity:.7;cursor:not-allowed}.no-selection{text-align:center;color:#94a3b8;padding:60px 20px}@media (max-width: 900px){.proofs-grid{grid-template-columns:1fr}}.credit-requests-page{max-width:1200px;margin:0 auto}.credit-requests-page .page-header h1{color:#2c3e50;margin:0 0 8px}.credit-requests-page .page-desc{color:#64748b;font-size:.95rem;margin:0}.filter-bar{margin-bottom:20px}.filter-bar select{padding:8px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem}.credit-requests-layout{display:grid;grid-template-columns:320px 1fr;gap:24px}.requests-list{display:flex;flex-direction:column;gap:16px}.requests-network-group{display:flex;flex-direction:column;gap:8px}.requests-network-header{font-size:.85rem;font-weight:600;color:#0f766e;text-transform:uppercase;letter-spacing:.05em;padding:8px 0 4px;border-bottom:2px solid #0d9488;margin-bottom:4px}.request-card{background:#fff;border-radius:10px;padding:16px;box-shadow:0 1px 3px #00000014;cursor:pointer;border:2px solid transparent;transition:border-color .2s}.request-card:hover{border-color:#e2e8f0}.request-card.selected{border-color:#0d9488;background:#f0fdfa}.request-card.status-pendiente{border-left:4px solid #f59e0b}.request-card.status-aprobado{border-left:4px solid #22c55e}.request-card.status-rechazado{border-left:4px solid #ef4444}.request-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.client-name{font-weight:600;color:#334155}.status-badge{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500}.status-badge.status-pendiente{background:#fef3c7;color:#92400e}.status-badge.status-aprobado{background:#d1fae5;color:#065f46}.status-badge.status-rechazado{background:#fee2e2;color:#991b1b}.request-card-body{font-size:.9rem;color:#64748b}.request-card-date{font-size:.8rem;color:#94a3b8;margin-top:6px}.request-detail{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #00000014}.request-detail h3{margin:0 0 20px;color:#334155;font-size:1.2rem}.detail-info p{margin:8px 0}.approval-options{margin:20px 0;padding:16px;background:#f8fafc;border-radius:8px}.approval-options h4{margin:0 0 12px;font-size:.95rem}.radio-option{display:block;margin-bottom:8px;cursor:pointer}.radio-option input{margin-right:8px}.amount-input{margin-top:12px;margin-left:24px}.amount-input label{display:block;margin-bottom:4px;font-size:.9rem}.amount-input input{padding:8px 12px;border:2px solid #e2e8f0;border-radius:6px;width:150px}.review-actions{margin-top:20px}.review-actions textarea{width:100%;padding:12px;border:2px solid #e2e8f0;border-radius:8px;font-size:.95rem;margin-bottom:12px;resize:vertical}.action-buttons{display:flex;gap:12px}.btn-approve{padding:10px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.btn-approve:hover:not(:disabled){background:#0f766e}.btn-reject{padding:10px 24px;background:#ef4444;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500}.btn-reject:hover:not(:disabled){background:#dc2626}.select-hint{color:#94a3b8;text-align:center;padding:40px 20px}.result-approved{color:#065f46;background:#d1fae5;padding:12px;border-radius:8px}.result-notes{color:#64748b;font-size:.9rem}@media (max-width: 768px){.credit-requests-layout{grid-template-columns:1fr}}.settings-page{max-width:800px;margin:0 auto}.settings-page h1{color:#2c3e50;margin-bottom:30px;font-size:2rem}.settings-tabs{display:flex;gap:10px;margin-bottom:30px;border-bottom:2px solid #e0e0e0}.tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;color:#7f8c8d;transition:all .3s ease;font-weight:500}.tab:hover{color:#2c3e50;background:#f8f9fa}.tab.active{color:#667eea;border-bottom-color:#667eea}.settings-content{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 10px #0000001a}.portal-config-section h3{margin:0 0 8px;font-size:1.2rem;color:#2c3e50}.section-desc{color:#7f8c8d;font-size:.9rem;margin-bottom:16px}.portal-list{list-style:none;padding:0;margin:0}.portal-list li{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:8px}.btn-small{padding:6px 12px;font-size:.85rem;border-radius:6px;cursor:pointer;border:none}.btn-danger{background:#fee2e2;color:#991b1b}.btn-danger:hover{background:#fecaca}@media (max-width: 768px){.settings-page{max-width:100%}.settings-page h1{font-size:1.5rem}.settings-tabs{flex-wrap:wrap;gap:5px}.tab{padding:10px 15px;font-size:.9rem;flex:1;min-width:calc(50% - 5px)}.settings-content{padding:20px}.backup-actions{flex-direction:column;gap:20px}.backup-export,.backup-import{width:100%}}@media (max-width: 480px){.settings-page h1{font-size:1.2rem}.tab{min-width:100%;font-size:.85rem}.settings-content{padding:15px}}.error-message{background:#fee;color:#c33;padding:12px;border-radius:6px;margin-bottom:20px;border:1px solid #fcc}.success-message{background:#dfd;color:#3c3;padding:12px;border-radius:6px;margin-bottom:20px;border:1px solid #cfc}.settings-form{margin-bottom:30px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500}.form-group input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .3s ease}.form-group input:focus{outline:none;border-color:#667eea}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.user-info{margin-top:30px;padding-top:30px;border-top:2px solid #f0f0f0}.user-info h3{color:#2c3e50;margin-bottom:20px}.info-item{margin-bottom:15px;padding:12px;background:#f8f9fa;border-radius:6px;display:flex;align-items:center;gap:10px}.info-item strong{color:#2c3e50;min-width:150px}.backup-section{margin-top:20px}.backup-info{margin-bottom:30px}.backup-info h3{color:#2c3e50;margin-bottom:15px;font-size:1.5rem}.backup-info p{color:#555;margin-bottom:20px;line-height:1.6}.warning-box{background:#fff3cd;border:2px solid #ffc107;border-radius:8px;padding:20px;margin-top:20px}.warning-box strong{color:#856404;display:block;margin-bottom:10px;font-size:1.1rem}.warning-box ul{margin:10px 0 0 20px;color:#856404}.warning-box li{margin-bottom:8px;line-height:1.5}.backup-actions{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:30px}.backup-export,.backup-import{background:#f8f9fa;border-radius:12px;padding:25px;border:2px solid #e0e0e0}.backup-export h4,.backup-import h4{color:#2c3e50;margin-bottom:10px;font-size:1.2rem}.backup-export p,.backup-import p{color:#7f8c8d;margin-bottom:20px;font-size:.95rem}.btn-export{width:100%;padding:15px 24px;background:linear-gradient(135deg,#27ae60,#229954);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-export:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #27ae6066}.btn-export:disabled{opacity:.6;cursor:not-allowed}.import-form{margin-top:20px}.import-form .form-group{margin-bottom:20px}.import-form input[type=file]{width:100%;padding:10px;border:2px dashed #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:border-color .3s ease}.import-form input[type=file]:hover{border-color:#667eea}.import-form input[type=file]:focus{outline:none;border-color:#667eea}.file-info{margin-top:10px;padding:10px;background:#d4edda;border:1px solid #c3e6cb;border-radius:6px;color:#155724;font-size:.9rem}.import-form input[type=checkbox]{width:auto;margin-right:8px;cursor:pointer}.btn-import{width:100%;padding:15px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-top:10px}.btn-import:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.btn-import:disabled{opacity:.6;cursor:not-allowed}.server-section{margin-top:20px}.server-usage-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #e0e0e0}.server-usage-section h3{margin:0 0 8px;font-size:1.2rem;color:#2c3e50}.server-usage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:20px;margin-top:16px}.usage-card{background:#f8f9fa;border-radius:12px;padding:16px;border:1px solid #e9ecef}.usage-card h4{margin:0 0 12px;font-size:1rem;color:#495057}.usage-bar-wrap{height:12px;background:#e9ecef;border-radius:6px;overflow:hidden;margin-bottom:8px}.usage-bar{height:100%;border-radius:6px;transition:width .5s ease}.usage-stats{display:flex;justify-content:space-between;font-size:.8rem;color:#6c757d}.usage-cpu-stats{font-size:.9rem;color:#495057}.usage-cpu-stats div{margin-bottom:4px}.usage-meta{font-size:.75rem;color:#adb5bd;margin-top:8px}.usage-uptime .usage-uptime-value{font-size:1.25rem;font-weight:700;color:#2c3e50;font-variant-numeric:tabular-nums}.server-info{margin-bottom:30px}.server-info h3{color:#2c3e50;margin-bottom:15px;font-size:1.5rem}.server-info p{color:#555;margin-bottom:20px;line-height:1.6}.server-actions{margin-top:30px}.server-restart{background:#f8f9fa;border-radius:12px;padding:25px;border:2px solid #e0e0e0}.server-restart h4{color:#2c3e50;margin-bottom:10px;font-size:1.2rem}.server-restart p{color:#7f8c8d;margin-bottom:20px;font-size:.95rem}.btn-restart-server{width:100%;padding:15px 24px;background:linear-gradient(135deg,#e74c3c,#c0392b);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-restart-server:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 5px 15px #e74c3c66}.btn-restart-server:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.backup-actions{grid-template-columns:1fr;gap:20px}.settings-tabs{flex-wrap:wrap}.tab{font-size:.9rem;padding:10px 15px}}.users-page{max-width:1200px;margin:0 auto}.access-denied{text-align:center;padding:50px;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.access-denied h2{color:#e74c3c;margin-bottom:10px}.access-denied p{color:#7f8c8d}.users-table-container{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 10px #0000001a;overflow-x:auto}.users-table{width:100%;border-collapse:collapse}.users-table thead{background:#f8f9fa}.users-table th{padding:12px;text-align:left;color:#2c3e50;font-weight:600;border-bottom:2px solid #e0e0e0}.users-table td{padding:12px;border-bottom:1px solid #f0f0f0;color:#555}.users-table tbody tr:hover{background:#f8f9fa}@media (max-width: 768px){.users-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.users-table-container{padding:10px;overflow-x:auto;-webkit-overflow-scrolling:touch}.users-table{min-width:600px;font-size:.9rem}.users-table th,.users-table td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.users-table{min-width:500px;font-size:.85rem}.users-table th,.users-table td{padding:6px;font-size:.8rem}}.role-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:600;text-transform:capitalize}.role-admin{background:#e74c3c;color:#fff}.role-editor{background:#3498db;color:#fff}.role-viewer{background:#95a5a6;color:#fff}.empty-state,.loading{text-align:center;padding:50px;color:#7f8c8d}.whatsapp-page{max-width:1400px;margin:0 auto}.whatsapp-header{margin-bottom:30px}.whatsapp-header h1{color:#2c3e50;font-size:2rem;margin-bottom:10px}.whatsapp-header p{color:#7f8c8d;font-size:1rem}.whatsapp-container{display:grid;grid-template-columns:1fr 1fr;gap:30px}.whatsapp-sidebar{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a}.whatsapp-sidebar h3{color:#2c3e50;margin-bottom:20px;font-size:1.3rem}.whatsapp-form .form-group{margin-bottom:20px}.whatsapp-form label{display:block;margin-bottom:8px;color:#2c3e50;font-weight:500}.whatsapp-form input,.whatsapp-form textarea{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;font-family:inherit;transition:border-color .3s ease}.whatsapp-form input:focus,.whatsapp-form textarea:focus{outline:none;border-color:#25d366}.whatsapp-form small{display:block;margin-top:5px;color:#7f8c8d;font-size:.85rem}.whatsapp-form textarea{resize:vertical;min-height:100px}@media (max-width: 768px){.whatsapp-page{max-width:100%}.whatsapp-header h1{font-size:1.5rem}.whatsapp-container{grid-template-columns:1fr;gap:20px}.whatsapp-sidebar{padding:20px}.btn-send-whatsapp{width:100%}}@media (max-width: 480px){.whatsapp-header h1{font-size:1.2rem}.whatsapp-sidebar{padding:15px}.whatsapp-form input,.whatsapp-form textarea{font-size:16px}}.btn-send-whatsapp{width:100%;padding:14px;background:linear-gradient(135deg,#25d366,#128c7e);color:#fff;border:none;border-radius:6px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;margin-bottom:30px}.btn-send-whatsapp:hover{transform:translateY(-2px);box-shadow:0 5px 15px #25d36666}.templates-section{margin-top:30px;padding-top:30px;border-top:2px solid #f0f0f0}.templates-section h4{color:#2c3e50;margin-bottom:15px;font-size:1.1rem}.templates-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.template-btn{padding:10px 15px;background:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .3s ease;text-align:center}.template-btn:hover{background:#25d366;color:#fff;border-color:#25d366;transform:translateY(-2px)}.whatsapp-content{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a}.whatsapp-info h2{color:#2c3e50;margin-bottom:20px;font-size:1.5rem}.info-steps{margin-bottom:30px}.step{display:flex;gap:15px;margin-bottom:20px;padding:15px;background:#f8f9fa;border-radius:8px}.step-number{display:flex;align-items:center;justify-content:center;width:35px;height:35px;background:#25d366;color:#fff;border-radius:50%;font-weight:700;font-size:1.1rem;flex-shrink:0}.step-content h4{color:#2c3e50;margin-bottom:5px;font-size:1rem}.step-content p{color:#7f8c8d;font-size:.9rem;margin:0}.whatsapp-tips{background:#e8f5e9;border-left:4px solid #25D366;padding:20px;border-radius:6px}.whatsapp-tips h3{color:#2c3e50;margin-bottom:15px;font-size:1.2rem}.whatsapp-tips ul{list-style:none;padding:0;margin:0}.whatsapp-tips li{padding:8px 0 8px 25px;position:relative;color:#555}.whatsapp-tips li:before{content:"✓";position:absolute;left:0;color:#25d366;font-weight:700}@media (max-width: 1024px){.whatsapp-container{grid-template-columns:1fr}}.portal-chats-page{padding:16px;max-width:1200px;margin:0 auto;min-height:0;display:flex;flex-direction:column;box-sizing:border-box}.portal-chats-header{margin-bottom:16px;flex-shrink:0}.portal-chats-header h1{margin:0 0 8px;font-size:1.5rem;color:#1e293b}.portal-chats-header p{margin:0;color:#64748b;font-size:.95rem}.portal-chats-layout{display:flex;gap:24px;flex:1;min-height:420px;height:calc(100vh - 160px);max-height:720px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.portal-chats-list{width:320px;min-width:0;flex-shrink:0;border-right:1px solid #e2e8f0;overflow-y:auto;-webkit-overflow-scrolling:touch}.portal-chats-list ul{list-style:none;margin:0;padding:0}.portal-chats-item{padding:14px 16px;border-bottom:1px solid #f1f5f9;cursor:pointer;transition:background .15s}.portal-chats-item:hover{background:#f8fafc}.portal-chats-item.active{background:#f0f9ff;border-left:3px solid #0d9488}.portal-chats-item.transferred{border-left:3px solid #f59e0b}.portal-chats-item-name{font-weight:600;color:#1e293b;margin-bottom:4px}.portal-chats-item-preview{font-size:.85rem;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.portal-chats-item-meta{font-size:.75rem;color:#94a3b8;margin-top:6px;display:flex;align-items:center;gap:8px}.portal-chats-badge{background:#f59e0b;color:#fff;padding:2px 8px;border-radius:6px;font-size:.7rem}.portal-chats-empty{padding:24px;text-align:center;color:#94a3b8}.portal-chats-detail{flex:1;display:flex;flex-direction:column;min-width:0;min-height:0}.portal-chats-detail-empty{flex:1;display:flex;align-items:center;justify-content:center;color:#94a3b8;padding:24px}.portal-chats-detail-header{padding:16px 20px;border-bottom:1px solid #e2e8f0;background:#f8fafc;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.portal-chats-detail-header>div:first-child{min-width:0}.portal-chats-back-btn{display:none}.portal-chats-finalize-btn{flex-shrink:0;padding:8px 16px;background:#64748b;color:#fff;border:none;border-radius:8px;font-size:.9rem;cursor:pointer}.portal-chats-finalize-btn:hover:not(:disabled){background:#475569}.portal-chats-finalize-btn:disabled{opacity:.7;cursor:not-allowed}.portal-chats-badge-closed{background:#64748b!important}.portal-chats-detail-header h2{margin:0 0 4px;font-size:1.1rem;color:#1e293b}.portal-chats-detail-header p{margin:0;font-size:.9rem;color:#64748b}.portal-chats-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.portal-chats-msg{max-width:85%;padding:10px 14px;border-radius:12px;font-size:.95rem}.portal-chats-msg-role{display:block;font-size:.75rem;font-weight:600;margin-bottom:4px;color:#64748b}.portal-chats-msg.user{align-self:flex-start;background:#f1f5f9;color:#334155}.portal-chats-msg.assistant{align-self:flex-start;background:#e0f2fe;color:#0c4a6e}.portal-chats-msg.staff{align-self:flex-end;background:#0d9488;color:#fff}.portal-chats-msg.staff .portal-chats-msg-role{color:#ffffffe6}.portal-chats-reply-form{padding:16px 20px;border-top:1px solid #e2e8f0;display:flex;gap:12px;align-items:flex-end}.portal-chats-reply-form textarea{flex:1;padding:12px 14px;border:1px solid #e2e8f0;border-radius:10px;font-size:.95rem;font-family:inherit;resize:none;min-height:44px}.portal-chats-reply-form textarea:focus{outline:none;border-color:#0d9488}.portal-chats-reply-form button{padding:12px 20px;background:#0d9488;color:#fff;border:none;border-radius:10px;font-weight:500;cursor:pointer}.portal-chats-reply-form button:hover:not(:disabled){background:#0f766e}.portal-chats-reply-form button:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.portal-chats-page{padding:12px;height:100%;min-height:100dvh}.portal-chats-header{margin-bottom:12px}.portal-chats-header h1{font-size:1.25rem}.portal-chats-header p{font-size:.875rem}.portal-chats-layout{flex-direction:column;height:calc(100dvh - 100px);min-height:280px;max-height:none;border-radius:10px}.portal-chats-list{width:100%;max-height:40vh;min-height:120px;border-right:none;border-bottom:1px solid #e2e8f0;flex-shrink:0}.portal-chats-list.show-only-on-mobile{max-height:none;flex:1}.portal-chats-list.hide-on-mobile{display:none}.portal-chats-detail{flex:1;min-height:0;display:flex;flex-direction:column}.portal-chats-detail.hide-on-mobile{display:none}.portal-chats-detail.show-only-on-mobile{display:flex}.portal-chats-back-btn{display:inline-flex;align-items:center;padding:6px 10px;margin:-4px 0 -4px -4px;background:transparent;border:none;border-radius:8px;color:#0d9488;font-size:.9rem;font-weight:500;cursor:pointer}.portal-chats-back-btn:hover{background:#f0fdfa}.portal-chats-detail-header{padding:12px 14px;flex-wrap:wrap;gap:10px}.portal-chats-detail-header .portal-chats-back-btn{order:-1;width:100%;margin-bottom:4px}.portal-chats-detail-header h2{font-size:1rem}.portal-chats-detail-header p{font-size:.8rem}.portal-chats-finalize-btn{padding:6px 12px;font-size:.85rem}.portal-chats-messages{padding:12px;min-height:0;-webkit-overflow-scrolling:touch}.portal-chats-msg{max-width:92%;padding:8px 12px;font-size:.9rem}.portal-chats-reply-form{padding:12px 14px;flex-wrap:wrap}.portal-chats-reply-form textarea{min-height:40px;font-size:16px}.portal-chats-reply-form button{padding:10px 16px}}.client-notifications-page{padding:20px;max-width:900px;margin:0 auto}.client-notifications-header{margin-bottom:24px}.client-notifications-header h1{font-size:1.75rem;color:#1e293b;margin-bottom:8px}.client-notifications-header p{color:#64748b;font-size:.95rem}.client-notifications-container{display:flex;flex-direction:column;gap:24px}.client-notifications-form-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.client-notifications-form-card h2{font-size:1.25rem;color:#334155;margin-bottom:20px}.notif-form .form-group{margin-bottom:18px}.notif-form .form-group label{display:block;font-weight:500;color:#475569;margin-bottom:6px;font-size:.9rem}.notif-form input,.notif-form textarea,.notif-form select{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem}.notif-form input:focus,.notif-form textarea:focus,.notif-form select:focus{outline:none;border-color:#0d9488}.notif-form textarea{resize:vertical;min-height:100px}.notif-error{background:#fef2f2;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.notif-success{background:#f0fdf4;color:#16a34a;padding:12px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.btn-send-notif{width:100%;padding:14px;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .2s}.btn-send-notif:hover:not(:disabled){opacity:.95}.btn-send-notif:disabled{opacity:.7;cursor:not-allowed}.form-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}.form-actions .btn-send-notif{flex:1;min-width:180px}.btn-save-template{padding:14px 20px;background:#64748b;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:500;cursor:pointer;transition:opacity .2s}.btn-save-template:hover:not(:disabled){opacity:.9}.btn-save-template:disabled{opacity:.5;cursor:not-allowed}.templates-section{margin-top:28px;padding-top:20px;border-top:1px solid #e2e8f0}.templates-section h3{font-size:1rem;color:#475569;margin-bottom:12px}.templates-list{display:flex;flex-direction:column;gap:8px}.template-card{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}.template-info{flex:1;cursor:pointer}.template-info:hover{color:#0d9488}.template-info strong{display:block;font-size:.95rem;color:#334155}.template-preview{font-size:.85rem;color:#64748b;display:block;margin-top:2px}.btn-delete-template{background:none;border:none;cursor:pointer;padding:6px;opacity:.6}.btn-delete-template:hover{opacity:1}.client-notifications-info{background:#f8fafc;border-radius:12px;padding:20px;border:1px solid #e2e8f0}.client-notifications-info h3{font-size:1.1rem;color:#334155;margin-bottom:12px}.client-notifications-info ul{margin:0;padding-left:20px;color:#64748b;font-size:.9rem;line-height:1.6}.client-notifications-info li{margin-bottom:6px}@media (max-width: 640px){.client-notifications-page{padding:12px}.client-notifications-form-card{padding:16px}}.portal-unlock-page{padding:24px;max-width:520px;margin:0 auto}.portal-unlock-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:28px}.portal-unlock-card h1{font-size:1.5rem;color:#1e293b;margin-bottom:12px}.portal-unlock-desc{color:#64748b;font-size:.95rem;margin-bottom:24px;line-height:1.5}.portal-unlock-form .form-group{margin-bottom:20px}.portal-unlock-form label{display:block;font-weight:500;color:#475569;margin-bottom:8px;font-size:.9rem}.code-input{width:100%;padding:14px 18px;font-size:1.5rem;letter-spacing:.2em;font-family:Courier New,monospace;text-align:center;border:2px solid #e2e8f0;border-radius:8px}.code-input:focus{outline:none;border-color:#0d9488}.action-radio label{display:flex;align-items:flex-start;gap:10px;font-weight:400;cursor:pointer;margin-bottom:12px;padding:12px;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.action-radio label:hover{background:#f1f5f9}.client-info-box{padding:12px 16px;border-radius:8px;margin-bottom:16px}.client-info-box.success{background:#f0fdf4;border:1px solid #86efac;color:#166534}.client-info-box.error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.action-radio input[type=radio]{margin-top:3px}.action-radio span{font-weight:600;color:#334155}.portal-unlock-error{background:#fef2f2;color:#dc2626;padding:12px;border-radius:8px;margin-bottom:16px}.portal-unlock-success{background:#f0fdf4;color:#16a34a;padding:12px;border-radius:8px;margin-bottom:16px}.btn-unlock{width:100%;padding:14px;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.btn-unlock:disabled{opacity:.6;cursor:not-allowed}.ip-credentials-page{max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.page-header h1{color:#2c3e50;font-size:2rem;margin:0}.btn-primary{padding:12px 24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 5px 15px #667eea66}.search-container{margin-bottom:20px}.search-input{width:100%;padding:12px;border:2px solid #e0e0e0;border-radius:6px;font-size:1rem;transition:border-color .3s ease}.search-input:focus{outline:none;border-color:#667eea}.ip-credentials-table-container{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 10px #0000001a;overflow-x:auto}.ip-credentials-table{width:100%;border-collapse:collapse}.ip-credentials-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ip-credentials-table th{padding:15px;text-align:left;font-weight:600;font-size:.9rem;white-space:nowrap}.ip-credentials-table tbody tr{border-bottom:1px solid #f0f0f0;transition:background .2s ease}.ip-credentials-table tbody tr:hover{background:#f8f9fa}@media (max-width: 768px){.ip-credentials-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.ip-credentials-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.ip-credentials-table{min-width:800px;font-size:.85rem}.ip-credentials-table th,.ip-credentials-table td{padding:10px;white-space:nowrap}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.ip-credentials-table{min-width:700px;font-size:.8rem}.ip-credentials-table th,.ip-credentials-table td{padding:8px}}.ip-credentials-table td{padding:15px;color:#555;font-size:.9rem}.custom-name{font-style:italic;color:#667eea}.client-number{color:#7f8c8d;font-size:.8rem}.device-type-badge{display:inline-block;padding:4px 10px;background:#3498db;color:#fff;border-radius:12px;font-size:.8rem;font-weight:600}.ip-address{background:#f0f0f0;padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;color:#2c3e50}.password-cell{display:flex;align-items:center;gap:8px}.password-text{background:#f0f0f0;padding:4px 8px;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;color:#2c3e50;min-width:100px}.btn-toggle-password{background:none;border:none;cursor:pointer;font-size:1rem;padding:4px;transition:transform .2s ease}.btn-toggle-password:hover{transform:scale(1.2)}.table-actions{display:flex;gap:10px}.empty-state{text-align:center;padding:50px;color:#7f8c8d;background:#fff;border-radius:12px;box-shadow:0 2px 10px #0000001a}.loading{text-align:center;padding:50px;color:#7f8c8d}.networks-page{max-width:1400px;margin:0 auto}.filters-section{margin-bottom:20px}.network-filters{display:flex;gap:10px;flex-wrap:wrap}.network-filter-btn{padding:10px 20px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.network-filter-btn:hover{border-color:#3498db;background:#f0f8ff}.network-filter-btn.active{background:#3498db;color:#fff;border-color:#3498db}.networks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.network-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a;transition:transform .2s ease,box-shadow .2s ease;border-left:4px solid #3498db}.network-card:hover{transform:translateY(-5px);box-shadow:0 5px 20px #00000026}.network-card.inactive{opacity:.7;border-left-color:#95a5a6}.network-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.network-title-section{display:flex;align-items:center;gap:10px;flex:1}.network-title-section h3{color:#2c3e50;margin:0}@media (max-width: 768px){.networks-page{max-width:100%}.page-header{flex-direction:column;align-items:flex-start;gap:15px}.page-header h1{font-size:1.5rem}.btn-primary{width:100%}.networks-grid{grid-template-columns:1fr;gap:15px}.network-card{padding:15px}.network-header{flex-direction:column;align-items:flex-start;gap:10px}.network-actions{width:100%;justify-content:flex-end}.network-filters{flex-direction:column}.network-filter-btn{width:100%}}@media (max-width: 480px){.page-header h1{font-size:1.2rem}.network-title-section h3{font-size:1.1rem}}.inactive-badge{background:#95a5a6;color:#fff;padding:4px 10px;border-radius:12px;font-size:.75rem;font-weight:500}.network-actions{display:flex;gap:10px}.btn-icon{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:5px;transition:transform .2s ease}.btn-icon:hover{transform:scale(1.2)}.network-info{display:flex;flex-direction:column;gap:15px}.network-description{padding:12px;background:#f8f9fa;border-radius:8px}.network-description p{color:#555;margin:0;font-size:.9rem;line-height:1.5}.network-meta{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f8f9fa;border-radius:8px;font-size:.85rem}.network-status{color:#555;font-weight:500}.network-date{color:#7f8c8d;font-size:.8rem}.empty-state p{font-size:1.1rem;margin:0}.monthly-growth{padding:20px;max-width:1400px;margin:0 auto}.monthly-growth-header{display:flex;align-items:center;gap:20px;margin-bottom:30px}.monthly-growth-header h1{color:#2c3e50;margin:0;font-size:2rem}.btn-back{padding:10px 20px;background:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:1rem;transition:background .3s}.btn-back:hover{background:#5568d3}.growth-comparison{margin-bottom:40px}.growth-comparison h2{color:#2c3e50;margin-bottom:20px}.comparison-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.comparison-card{background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a}.comparison-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #f0f0f0}.comparison-header h3{margin:0;color:#2c3e50;font-size:1.2rem}.growth-indicator{font-size:1.1rem;font-weight:700}.comparison-body{display:flex;flex-direction:column;gap:12px}.comparison-item{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.comparison-item.growth{padding-top:12px;border-top:1px solid #f0f0f0;font-weight:700}.comparison-label{color:#7f8c8d;font-size:.95rem}@media (max-width: 768px){.monthly-growth{max-width:100%;padding:15px}.monthly-growth-header{flex-direction:column;align-items:flex-start;gap:15px}.monthly-growth-header h1{font-size:1.5rem}.btn-back{width:100%}.comparison-grid{grid-template-columns:1fr;gap:15px}.comparison-card{padding:20px}.details-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.details-table{min-width:600px;font-size:.9rem}.details-table th,.details-table td{padding:8px;white-space:nowrap}}@media (max-width: 480px){.monthly-growth-header h1{font-size:1.2rem}.comparison-card{padding:15px}.details-table{min-width:500px;font-size:.85rem}.details-table th,.details-table td{padding:6px;font-size:.8rem}}.comparison-value{color:#2c3e50;font-size:1rem;font-weight:500}.month-details{margin-top:40px}.month-details h2{color:#2c3e50;margin-bottom:25px}.details-section{margin-bottom:40px;background:#fff;border-radius:12px;padding:25px;box-shadow:0 2px 10px #0000001a}.details-section h3{color:#2c3e50;margin-bottom:20px;font-size:1.3rem}.details-table-container{overflow-x:auto}.details-table{width:100%;border-collapse:collapse;margin-top:15px}.details-table th{background:#f8f9fa;color:#2c3e50;padding:12px;text-align:left;font-weight:600;border-bottom:2px solid #dee2e6}.details-table td{padding:12px;border-bottom:1px solid #dee2e6;color:#495057}.details-table tr:hover{background:#f8f9fa}.no-data{color:#7f8c8d;font-style:italic;text-align:center;padding:30px}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:.85rem;font-weight:500;text-transform:capitalize}.status-pendiente{background:#fff3cd;color:#856404}.status-en-proceso{background:#cfe2ff;color:#084298}.status-completado{background:#d1e7dd;color:#0f5132}.status-cancelado{background:#f8d7da;color:#842029}.monthly-growth-loading,.monthly-growth-error{text-align:center;padding:50px;font-size:1.2rem;color:#7f8c8d}.monthly-growth-error{color:#e74c3c}.monthly-reports{padding:20px;min-height:100vh;background-color:#f5f7fa}.reports-header{margin-bottom:30px;display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.reports-header h1{color:#2c3e50;margin:0 0 10px;font-size:28px}.reports-header .subtitle{color:#7f8c8d;margin:0;font-size:14px}.refresh-btn{padding:10px 20px;background-color:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;box-shadow:0 2px 4px #0000001a;transition:all .3s;white-space:nowrap}.refresh-btn:hover:not(:disabled){background-color:#5568d3;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.refresh-btn:disabled{opacity:.6;cursor:not-allowed}.current-month-badge{display:inline-block;margin-left:10px;padding:4px 8px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.no-reports-wrapper{margin-bottom:24px}.no-reports-wrapper .annual-reports-section{margin-top:24px}.no-reports{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.no-reports p{color:#7f8c8d;font-size:16px;margin:10px 0}.no-reports .hint{font-size:14px;color:#95a5a6;font-style:italic}.reports-content{display:flex;flex-direction:column;gap:30px}.annual-reports-section{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px}.annual-reports-section h2{color:#2c3e50;margin:0 0 10px;font-size:22px}.section-description{color:#7f8c8d;margin:0 0 20px;font-size:14px}.years-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:20px}.year-card{background:linear-gradient(135deg,#f5f7fa,#fff);border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;border:2px solid transparent}.year-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:#667eea}.year-name{display:flex;align-items:center;gap:10px;margin-bottom:15px;font-size:20px;font-weight:600;color:#2c3e50}.year-icon{font-size:24px}.generate-annual-btn{width:100%;padding:12px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 4px #0000001a;transition:all .3s}.generate-annual-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #00000026;background:linear-gradient(135deg,#5568d3,#6a3d8f)}.generate-annual-btn:disabled{opacity:.6;cursor:not-allowed}.generate-annual-btn.highlight-btn{background:linear-gradient(135deg,#f39c12,#e67e22);animation:pulse 2s infinite}.generate-annual-btn.highlight-btn:hover:not(:disabled){background:linear-gradient(135deg,#e67e22,#d35400)}@keyframes pulse{0%,to{box-shadow:0 2px 4px #0000001a}50%{box-shadow:0 4px 12px #f39c1266}}.year-card.current-year-highlight{border-color:#f39c12;background:linear-gradient(135deg,#fff9e6,#fff);box-shadow:0 4px 12px #f39c1233}.end-of-year-badge{display:inline-block;margin-left:10px;padding:4px 10px;background:linear-gradient(135deg,#f39c12,#e67e22);color:#fff;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;animation:pulse-badge 2s infinite}@keyframes pulse-badge{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.end-of-year-banner{display:flex;align-items:center;gap:15px;padding:15px 20px;background:linear-gradient(135deg,#fff9e6,#ffe6cc);border-radius:10px;border:2px solid #f39c12;margin-bottom:20px;box-shadow:0 2px 8px #f39c1233}.banner-icon{font-size:32px;flex-shrink:0}.banner-content{flex:1;display:flex;flex-direction:column;gap:5px}.banner-content strong{color:#d35400;font-size:16px}.banner-content span{color:#7f8c8d;font-size:14px}.months-list h2{color:#2c3e50;margin-bottom:20px;font-size:20px}.months-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.month-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:all .3s ease;border:2px solid transparent}.month-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:#667eea}.month-card.selected{border-color:#667eea;background:#f0f4ff}.month-name{font-size:18px;font-weight:600;color:#2c3e50;margin-bottom:15px;text-transform:capitalize}.month-stats{display:flex;flex-direction:column;gap:8px}.stat-item{display:flex;justify-content:space-between;align-items:center;padding:6px 0;border-bottom:1px solid #ecf0f1}.stat-item:last-child{border-bottom:none}.stat-label{color:#7f8c8d;font-size:14px}.stat-value{color:#2c3e50;font-weight:600;font-size:14px}.loading-month{text-align:center;padding:40px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.loading-month p{color:#7f8c8d;font-size:16px}.month-summary{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.summary-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #ecf0f1}.summary-header h2{color:#2c3e50;margin:0;font-size:24px}.generate-pdf-btn{padding:12px 24px;background-color:#667eea;color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;display:flex;align-items:center;gap:8px;box-shadow:0 2px 4px #0000001a;transition:all .3s}.generate-pdf-btn:hover{background-color:#5568d3;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.summary-card{background:linear-gradient(135deg,#f5f7fa,#fff);border-radius:12px;padding:20px;display:flex;align-items:center;gap:15px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.summary-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.summary-card.highlight{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.summary-card.highlight .card-label,.summary-card.highlight .card-value{color:#fff}.card-icon{font-size:32px;flex-shrink:0}.card-content{flex:1}.card-label{font-size:14px;color:#7f8c8d;margin-bottom:8px;font-weight:500}.summary-card.highlight .card-label{color:#ffffffe6}.card-value{font-size:24px;font-weight:700;color:#2c3e50}.card-value.positive{color:#27ae60}.card-value.negative{color:#e74c3c}.summary-card.highlight .card-value.positive{color:#fff}.summary-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;padding-top:20px;border-top:2px solid #ecf0f1}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:#f8f9fa;border-radius:8px}.detail-item span{color:#7f8c8d;font-size:14px}.detail-item strong{color:#2c3e50;font-size:16px;font-weight:600}.loading{text-align:center;padding:60px 20px;color:#7f8c8d;font-size:18px}.month-breakdown{background:#fff;border-radius:12px;padding:30px;box-shadow:0 2px 8px #0000001a}.breakdown-header{margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid #ecf0f1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px}.breakdown-header h2{color:#2c3e50;margin:0;font-size:24px}.btn-generate-pdf-month{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease}.btn-generate-pdf-month:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.breakdown-section{margin-bottom:30px}.breakdown-section.collapsible{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease}.breakdown-section.collapsible:hover{box-shadow:0 4px 12px #00000026}.section-header{display:flex;justify-content:space-between;align-items:center;cursor:pointer;-webkit-user-select:none;user-select:none;padding:10px 0;border-bottom:2px solid #e0e0e0;margin-bottom:20px;transition:all .2s ease}.section-header:hover{border-bottom-color:#667eea}.section-header h3{margin:0;color:#2c3e50;font-size:20px;font-weight:600}.collapse-btn{background:none;border:none;font-size:16px;color:#667eea;cursor:pointer;padding:5px 10px;border-radius:4px;transition:all .2s ease;display:flex;align-items:center;justify-content:center;min-width:30px;height:30px}.collapse-btn:hover{background-color:#f0f0f0;transform:scale(1.1)}.section-content{animation:slideDown .3s ease-out;overflow:hidden}@keyframes slideDown{0%{opacity:0;max-height:0;transform:translateY(-10px)}to{opacity:1;max-height:5000px;transform:translateY(0)}}.breakdown-section{margin-bottom:40px}.breakdown-section:last-child{margin-bottom:0}.breakdown-section h3{color:#2c3e50;margin:0 0 20px;font-size:20px;padding-bottom:10px;border-bottom:1px solid #ecf0f1}.table-container{overflow-x:auto;border-radius:8px;box-shadow:0 1px 4px #0000001a}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.data-table th{padding:12px;text-align:left;font-weight:600;font-size:14px}.data-table tbody tr{border-bottom:1px solid #ecf0f1;transition:background-color .2s}.data-table tbody tr:hover{background-color:#f8f9fa}.data-table td{padding:12px;font-size:14px;color:#2c3e50}.data-table tfoot{background-color:#f8f9fa;font-weight:600}.data-table tfoot td{padding:12px;border-top:2px solid #ecf0f1}.amount{text-align:right;font-weight:600;color:#2c3e50}.amount.negative{color:#e74c3c}.amount.positive{color:#27ae60}.network-breakdown-table .amount{white-space:nowrap}.type-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600}.type-badge.monthly{background-color:#e8f5e9;color:#27ae60}.type-badge.installation{background-color:#e3f2fd;color:#3498db}.type-badge.provider{background-color:#fff3e0;color:#f57c00}.type-badge.invoice{background-color:#f3e5f5;color:#9c27b0}.type-badge.normal{background-color:#e8f5e9;color:#2e7d32}.provider-expense-row{background-color:#fff9e6}.provider-expense-row:hover{background-color:#fff3cd}.provider-badge{margin-left:8px;font-size:12px;opacity:.7}.no-data-message{text-align:center;padding:40px 20px;background:#f8f9fa;border-radius:8px;border:1px dashed #dee2e6}.no-data-message p{color:#7f8c8d;margin:8px 0}.no-data-message .hint{font-size:12px;color:#95a5a6;font-style:italic}.card-subtext{font-size:12px;color:#7f8c8d;margin-top:4px}.network-breakdown{display:flex;flex-direction:column;gap:20px}.network-breakdown-card{background:#f8f9fa;border-radius:12px;padding:20px;border:1px solid #ecf0f1}.network-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:15px;border-bottom:2px solid #ecf0f1}.network-header h4{color:#2c3e50;margin:0;font-size:18px}.network-summary{display:flex;align-items:center;gap:10px}.final-profit{font-size:20px;font-weight:700;padding:8px 16px;border-radius:8px;background:#fff}.final-profit.positive{color:#27ae60}.final-profit.negative{color:#e74c3c}.network-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.network-section{background:#fff;border-radius:8px;padding:15px}.section-title{font-weight:600;color:#2c3e50;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #ecf0f1;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px}.detail-row span{color:#7f8c8d}.detail-row strong{color:#2c3e50;font-weight:600}.detail-row.positive strong{color:#27ae60}.detail-row.negative strong{color:#e74c3c}.detail-row.profit{padding:10px 0;border-top:1px solid #ecf0f1;margin-top:8px}.detail-row.profit.highlight{background:#27ae601a;padding:12px;border-radius:6px;margin-top:12px;border-top:2px solid #27ae60;font-weight:600}.detail-row.profit.highlight.negative{background:#e74c3c1a;border-top-color:#e74c3c}@media (max-width: 768px){.months-grid,.summary-cards{grid-template-columns:1fr}.breakdown-header{flex-direction:column;align-items:flex-start;gap:15px}.data-table{font-size:12px}.data-table th,.data-table td{padding:8px}.network-details{grid-template-columns:1fr}.network-header{flex-direction:column;align-items:flex-start;gap:10px}}.financial-projections-page{padding:20px}.controls{display:flex;align-items:center;gap:10px}.controls select{padding:8px;border:1px solid #ddd;border-radius:4px}.projection-section{background:#fff;border-radius:8px;padding:20px;margin-bottom:20px;box-shadow:0 2px 4px #0000001a}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.stat-card{background:#f8f9fa;padding:20px;border-radius:8px;text-align:center}.stat-card h3{margin:0 0 10px;font-size:14px;color:#7f8c8d}.stat-card p{margin:0;font-size:24px;font-weight:700;color:#2c3e50}.chart-container{margin:20px 0}.projections-table{margin-top:20px;overflow-x:auto}.projections-table table{width:100%;border-collapse:collapse}.projections-table th,.projections-table td{padding:10px;text-align:left;border-bottom:1px solid #eee}.projections-table th{background:#f8f9fa;font-weight:700}.electronic-invoices{max-width:1000px;margin:0 auto}.electronic-invoices h1{margin:0 0 8px;color:#2c3e50;font-size:1.75rem}.page-desc{color:#64748b;margin-bottom:24px;font-size:.95rem}.ei-tabs{display:flex;gap:8px;margin-bottom:24px}.ei-tabs button{padding:10px 20px;background:#f1f5f9;border:none;border-radius:8px;cursor:pointer;font-weight:500;color:#64748b}.ei-tabs button.active{background:#0d9488;color:#fff}.ei-config-section{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.ei-form{display:flex;flex-direction:column;gap:16px;max-width:500px}.ei-form-row label{display:block;margin-bottom:6px;font-weight:500;color:#334155}.ei-form-row input,.ei-form-row select{width:100%;padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:1rem}.ei-save-btn{padding:12px 24px;background:#0d9488;color:#fff;border:none;border-radius:8px;cursor:pointer;font-weight:500;align-self:flex-start}.ei-save-btn:disabled{opacity:.7;cursor:not-allowed}.ei-config-status{margin-top:20px;padding:12px;background:#d1fae5;color:#065f46;border-radius:8px;font-size:.9rem}.ei-invoices-section{background:#fff;padding:24px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.ei-note{color:#64748b;font-size:.9rem;margin-bottom:20px}.ei-table-wrap{overflow-x:auto}.ei-table{width:100%;border-collapse:collapse}.ei-table th,.ei-table td{padding:12px 16px;text-align:left}.ei-table th{background:#f8fafc;color:#475569;font-weight:600}.ei-table tr:nth-child(2n){background:#fafafa}.uuid-cell{font-size:.8rem;max-width:180px;overflow:hidden;text-overflow:ellipsis}.status-badge{padding:4px 10px;border-radius:6px;font-size:.8rem;font-weight:500;background:#e2e8f0;color:#475569}.empty-state{text-align:center;padding:40px;color:#64748b}.traffic-container{padding:20px;max-width:1400px;margin:0 auto}.traffic-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:15px}.traffic-header h1{margin:0;color:#2c3e50;font-size:28px}.header-controls{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.auto-refresh-label{display:flex;align-items:center;gap:8px;font-size:14px;color:#555;cursor:pointer}.auto-refresh-label input[type=checkbox]{cursor:pointer}.refresh-interval-select{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer}.refresh-btn{padding:8px 16px;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background .3s}.refresh-btn:hover{background:#2980b9}.generate-sample-btn{padding:8px 16px;background:#9b59b6;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px;transition:background .3s}.generate-sample-btn:hover{background:#8e44ad}.traffic-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:25px}.stat-card{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;text-align:center;border-left:4px solid #3498db}.stat-card.connected{border-left-color:#27ae60}.stat-card.disconnected{border-left-color:#e74c3c}.stat-card.problems{border-left-color:#f39c12}.stat-value{font-size:32px;font-weight:700;color:#2c3e50;margin-bottom:5px}.stat-label{font-size:14px;color:#7f8c8d;text-transform:uppercase;letter-spacing:.5px}.traffic-filters{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.search-input{flex:1;min-width:250px;padding:10px 15px;border:1px solid #ddd;border-radius:4px;font-size:14px}.status-filter{padding:10px 15px;border:1px solid #ddd;border-radius:4px;font-size:14px;background:#fff;cursor:pointer;min-width:180px}.traffic-table-container{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;overflow-x:auto}.traffic-table{width:100%;border-collapse:collapse}.traffic-table thead{background:#f8f9fa}.traffic-table th{padding:12px 15px;text-align:left;font-weight:600;color:#2c3e50;border-bottom:2px solid #e9ecef;font-size:14px;text-transform:uppercase;letter-spacing:.5px}.traffic-table td{padding:12px 15px;border-bottom:1px solid #e9ecef;font-size:14px}.traffic-table tbody tr{transition:background .2s}.traffic-table tbody tr:hover{background:#f8f9fa}.traffic-table tbody tr.row-connected{background:#f0f9f4}.traffic-table tbody tr.row-disconnected{background:#fef0f0}.traffic-table tbody tr.row-problem{background:#fff8e8}.status-badge{display:inline-block;padding:4px 12px;border-radius:12px;color:#fff;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.client-info{display:flex;flex-direction:column;gap:4px}.client-link{color:#3498db;text-decoration:none;font-weight:500;transition:color .2s}.client-link:hover{color:#2980b9;text-decoration:underline}.traffic-detail-link{color:#27ae60;font-weight:600;cursor:pointer;transition:color .2s}.traffic-detail-link:hover{color:#229954;text-decoration:underline}.installation-folio{font-size:12px;color:#7f8c8d}.action-link{color:#3498db;text-decoration:none;font-size:13px;transition:color .2s}.action-link:hover{color:#2980b9;text-decoration:underline}.packets-info{display:flex;flex-direction:column;gap:4px;font-size:12px}.packets-sent{color:#3498db;font-weight:500}.packets-received{color:#27ae60;font-weight:500}.no-data{text-align:center;padding:40px;color:#7f8c8d;font-style:italic}.loading{text-align:center;padding:40px;color:#7f8c8d;font-size:16px}@media (max-width: 768px){.traffic-header{flex-direction:column;align-items:flex-start}.header-controls{width:100%;justify-content:space-between}.traffic-stats{grid-template-columns:repeat(2,1fr)}.traffic-filters{flex-direction:column}.search-input{min-width:100%}.traffic-table{font-size:12px}.traffic-table th,.traffic-table td{padding:8px 10px}}.traffic-detail-container{padding:20px;max-width:1400px;margin:0 auto}.header-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:10px}.back-btn{background:#3498db;color:#fff;border:none;padding:10px 20px;border-radius:5px;cursor:pointer;font-size:14px;transition:background .3s}.back-btn:hover{background:#2980b9}.refresh-controls{display:flex;align-items:center;gap:10px}.auto-refresh-label{display:flex;align-items:center;gap:5px;font-size:14px}.refresh-interval-select{padding:5px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.refresh-btn{background:#27ae60;color:#fff;border:none;padding:8px 16px;border-radius:5px;cursor:pointer;font-size:14px;transition:background .3s}.refresh-btn:hover{background:#229954}.traffic-detail-header{display:flex;justify-content:space-between;align-items:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;margin-bottom:30px;color:#fff;box-shadow:0 4px 6px #0000001a}.client-header-info h1{margin:0 0 10px;font-size:28px;font-weight:700}.client-number{display:inline-block;background:#fff3;padding:4px 12px;border-radius:20px;font-size:14px;margin-left:10px}.client-address{margin:10px 0 0;opacity:.9;font-size:14px}.status-indicator-large{padding:12px 24px;border-radius:25px;font-weight:700;font-size:16px;text-transform:uppercase;box-shadow:0 2px 4px #0003}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:30px}.metric-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s;border-left:4px solid #3498db}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.speed-card{border-left-color:#27ae60}.latency-card{border-left-color:#f39c12}.packet-loss-card{border-left-color:#e74c3c}.packets-card,.connection-card{border-left-color:#3498db}.uptime-card{border-left-color:#9b59b6}.package-card{border-left-color:#16a085}.installation-card{border-left-color:#e67e22}.notes-card{border-left-color:#95a5a6}.update-card{border-left-color:#34495e}.metric-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.metric-header h3{margin:0;font-size:16px;color:#2c3e50;font-weight:600}.metric-icon{font-size:24px}.metric-value-large{font-size:32px;font-weight:700;color:#2c3e50;margin:10px 0}.metric-comparison{font-size:14px;color:#7f8c8d;margin-top:8px}.metric-quality{font-size:14px;font-weight:600;margin-top:8px}.connection-details{display:flex;flex-direction:column;gap:12px}.connection-item{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #ecf0f1}.connection-item:last-child{border-bottom:none}.connection-label{font-weight:600;color:#7f8c8d;font-size:14px}.connection-value{color:#2c3e50;font-size:14px;font-family:monospace}.metric-subtitle{font-size:13px;color:#7f8c8d;margin-top:8px}.package-details{display:flex;flex-direction:column;gap:8px}.package-name{font-size:18px;font-weight:700;color:#2c3e50}.package-speed{font-size:14px;color:#7f8c8d}.installation-details{display:flex;flex-direction:column;gap:8px}.installation-folio{font-size:16px;font-weight:600;color:#2c3e50}.installation-status{font-size:14px;color:#7f8c8d}.notes-content{font-size:14px;color:#2c3e50;line-height:1.6;padding:10px;background:#f8f9fa;border-radius:5px}.update-details{display:flex;flex-direction:column;gap:8px}.update-time{font-size:16px;font-weight:600;color:#2c3e50}.update-created{font-size:13px;color:#7f8c8d}.packets-stats{display:flex;flex-direction:column;gap:12px;margin-top:10px}.packet-stat-item{display:flex;justify-content:space-between;align-items:center;padding:10px;background:#f8f9fa;border-radius:6px;border-left:3px solid #3498db}.packet-stat-label{font-weight:600;color:#7f8c8d;font-size:14px}.packet-stat-value{font-size:18px;font-weight:700;color:#2c3e50}.packet-stat-value.success{color:#27ae60}.no-data-message{text-align:center;padding:60px 20px;background:#fff;border-radius:10px;box-shadow:0 2px 8px #0000001a}.no-data-message h2{color:#2c3e50;margin-bottom:10px}.no-data-message p{color:#7f8c8d}.loading{text-align:center;padding:40px;font-size:18px;color:#7f8c8d}@media (max-width: 768px){.metrics-grid{grid-template-columns:1fr}.traffic-detail-header{flex-direction:column;align-items:flex-start;gap:15px}.status-indicator-large{align-self:flex-start}}.stock-page{padding:20px;max-width:1400px;margin:0 auto}.stock-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;flex-wrap:wrap;gap:20px}.stock-page .page-header h1{color:#2c3e50;margin:0;font-size:2rem}.stock-filters{display:flex;flex-wrap:wrap;gap:15px;margin-bottom:30px;align-items:center}.search-box{flex:1;min-width:250px}.search-input{width:100%;padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:border-color .3s}.search-input:focus{outline:none;border-color:#3498db}.filter-buttons{display:flex;gap:10px;flex-wrap:wrap}.filter-btn{padding:10px 20px;border:2px solid #e0e0e0;background:#fff;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;transition:all .3s;color:#555}.filter-btn:hover{border-color:#3498db;background:#f0f8ff}.filter-btn.active{background:#3498db;color:#fff;border-color:#3498db}.category-filter{min-width:200px}.category-select{width:100%;padding:12px 15px;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;background:#fff;cursor:pointer;transition:border-color .3s}.category-select:focus{outline:none;border-color:#3498db}.stock-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.stock-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a;transition:transform .2s,box-shadow .2s;border-left:4px solid #3498db}.stock-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stock-card.low{border-left-color:#f39c12;background:linear-gradient(to right,#fff9e6,#fff 10%)}.stock-card.out{border-left-color:#e74c3c;background:linear-gradient(to right,#ffe6e6,#fff 10%)}.stock-card.ok{border-left-color:#27ae60}.stock-card-header{display:flex;align-items:center;gap:10px;margin-bottom:15px;padding-bottom:15px;border-bottom:1px solid #e0e0e0}.stock-status-badge{font-size:1.5rem;flex-shrink:0}.stock-card-header h3{margin:0;color:#2c3e50;font-size:1.2rem;flex:1}.stock-card-body{margin-bottom:15px}.stock-description{color:#7f8c8d;font-size:.9rem;margin:0 0 15px;line-height:1.5}.stock-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.stock-info-item{display:flex;flex-direction:column;gap:4px}.stock-label{font-size:.85rem;color:#7f8c8d;font-weight:500}.stock-value{font-size:1rem;color:#2c3e50;font-weight:600}.stock-value.low{color:#f39c12}.stock-value.out{color:#e74c3c}.stock-card-actions{display:flex;gap:10px;padding-top:15px;border-top:1px solid #e0e0e0}.btn-edit,.btn-delete{flex:1;padding:10px;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .3s}.btn-edit{background:#3498db;color:#fff}.btn-edit:hover{background:#2980b9}.btn-delete{background:#e74c3c;color:#fff}.btn-delete:hover{background:#c0392b}.empty-state{text-align:center;padding:60px 20px;color:#7f8c8d}.empty-state p{font-size:1.1rem;margin-bottom:20px}@media (max-width: 768px){.stock-grid{grid-template-columns:1fr}.stock-filters{flex-direction:column}.search-box,.category-filter{width:100%}}.layout{display:flex;min-height:100vh}.sidebar{width:250px;background:linear-gradient(180deg,#2c3e50,#34495e);color:#fff;display:flex;flex-direction:column;transition:width .3s ease;box-shadow:2px 0 10px #0000001a}.sidebar.closed{width:70px}.sidebar-header{padding:12px 15px;display:flex;justify-content:space-between;align-items:center}.sidebar-header h2{font-size:1rem;white-space:nowrap;overflow:hidden}.sidebar.closed .sidebar-header h2{display:none}.toggle-btn{background:#ffffff1a;border:none;color:#fff;padding:5px 10px;cursor:pointer;border-radius:4px;font-size:1rem}.toggle-btn:hover{background:#fff3}.sidebar-nav{flex:1;padding:5px 0;overflow-y:auto}.nav-section{margin-bottom:12px}.nav-section:last-child{margin-bottom:0}.nav-section-title{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#fff9;padding:8px 15px 4px;margin-top:4px}.nav-section:first-child .nav-section-title{margin-top:0;padding-top:0}.sidebar.closed .nav-section{margin-bottom:6px}.nav-item{display:flex;align-items:center;padding:8px 15px;color:#fff;text-decoration:none;transition:all .3s ease;border-left:3px solid transparent}.nav-item:hover{background:#ffffff1a;border-left-color:#3498db}.nav-item.active{background:#ffffff26;border-left-color:#3498db}.nav-icon{font-size:1.1rem;margin-right:10px;min-width:18px}.sidebar.closed .nav-icon{margin-right:0}.nav-label{white-space:nowrap}.sidebar.closed .nav-label{display:none}.sidebar-footer{padding:12px 15px;border-top:1px solid rgba(255,255,255,.1)}.logout-btn{width:100%;display:flex;align-items:center;justify-content:center;padding:8px;background:#e74c3c33;border:1px solid rgba(231,76,60,.5);color:#fff;border-radius:6px;cursor:pointer;transition:all .3s ease;font-size:.85rem;gap:6px}.logout-btn:hover{background:#e74c3c66}.main-content{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f5f5f5}.top-header{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 2px 4px #0000001a;padding:15px 30px;border-bottom:1px solid #e0e0e0}.header-content{display:flex;justify-content:space-between;align-items:center;width:100%}.header-user-info{display:flex;align-items:center;gap:20px}.user-info{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#667eea1a;border-radius:8px;font-size:14px}.user-label{color:#7f8c8d;font-weight:500}.user-name{color:#2c3e50;font-weight:600}.user-role{color:#667eea;font-weight:500;text-transform:capitalize}.page-title{font-size:1.5rem;font-weight:600;color:#2c3e50;margin:0}.logout-btn-fixed{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#ff7f00;border:none;color:#fff;border-radius:6px;cursor:pointer;transition:all .3s ease;font-size:.9rem;font-weight:500}.logout-btn-fixed:hover{background:#e67e22;transform:translateY(-1px);box-shadow:0 4px 8px #ff7f004d}.content-wrapper{flex:1;padding:30px;overflow-y:auto}.mobile-menu-btn{display:none;background:#667eea;color:#fff;border:none;padding:10px 15px;border-radius:6px;font-size:1.5rem;cursor:pointer;margin-right:15px;z-index:1001}.mobile-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}@media (max-width: 768px){.mobile-menu-btn,.mobile-overlay{display:block}.sidebar{position:fixed;height:100vh;z-index:1000;transform:translate(-100%);width:250px;transition:transform .3s ease}.sidebar.mobile-open{transform:translate(0)}.sidebar.closed{transform:translate(-100%)}.top-header{display:flex;align-items:center}.main-content{margin-left:0;width:100%}.top-header{padding:10px 15px}.header-content{flex-direction:column;align-items:flex-start;gap:10px}.page-title{font-size:1.2rem}.header-user-info{flex-direction:column;width:100%;gap:10px}.user-info{width:100%;justify-content:center;font-size:12px;padding:6px 12px}.logout-btn-fixed{width:100%;justify-content:center;padding:8px 16px;font-size:.85rem}.content-wrapper{padding:15px}}@media (max-width: 480px){.sidebar{width:100%}.page-title{font-size:1rem}.user-info{flex-direction:column;text-align:center;gap:4px}.user-label,.user-name,.user-role{display:block}}.investor-layout{display:flex;min-height:100vh;background:#f0fdfa}.investor-sidebar{width:240px;background:linear-gradient(180deg,#0f766e,#0d9488,#14b8a6);color:#fff;display:flex;flex-direction:column;transition:width .3s ease;box-shadow:2px 0 12px #00000026}.investor-sidebar.closed{width:64px}.investor-sidebar-header{padding:16px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid rgba(255,255,255,.1)}.investor-sidebar-header h2{font-size:1rem;font-weight:600;white-space:nowrap;overflow:hidden}.investor-sidebar.closed .investor-sidebar-header h2{display:none}.investor-toggle-btn{background:#ffffff26;border:none;color:#fff;padding:6px 10px;cursor:pointer;border-radius:6px;font-size:.9rem}.investor-toggle-btn:hover{background:#ffffff40}.investor-sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.investor-nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;color:#ffffffe6;text-decoration:none;transition:all .2s;border-left:3px solid transparent}.investor-nav-item:hover{background:#ffffff1a;color:#fff}.investor-nav-item.active{background:#fff3;color:#fff;border-left-color:#fbbf24}.investor-nav-icon{font-size:1.2rem;flex-shrink:0}.investor-nav-label{white-space:nowrap;overflow:hidden}.investor-sidebar-footer{padding:16px;border-top:1px solid rgba(255,255,255,.1)}.investor-back-link{color:#fffc;text-decoration:none;font-size:.9rem;display:block;padding:8px 0}.investor-back-link:hover{color:#fff}.investor-main{flex:1;display:flex;flex-direction:column;overflow:hidden}.investor-header{background:#fff;padding:16px 24px;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;gap:16px}.investor-mobile-btn{display:none;background:none;border:none;font-size:1.5rem;cursor:pointer;padding:4px 8px}.investor-header-content{flex:1;display:flex;justify-content:space-between;align-items:center}.investor-header-content h1{margin:0;font-size:1.5rem;color:#134e4a;font-weight:600}.investor-header-user{display:flex;align-items:center;gap:16px}.investor-header-user span{color:#4a5568;font-size:.9rem}.investor-logout-btn{background:#0f766e;color:#fff;border:none;padding:8px 16px;border-radius:8px;cursor:pointer;font-size:.9rem}.investor-logout-btn:hover{background:#0d9488}.investor-content{flex:1;padding:24px;overflow-y:auto}.investor-mobile-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999}@media (max-width: 768px){.investor-sidebar{position:fixed;left:0;top:0;bottom:0;z-index:1000;transform:translate(-100%);transition:transform .3s}.investor-sidebar.mobile-open{transform:translate(0)}.investor-mobile-overlay{display:block}.investor-mobile-overlay:not([style*="display: none"]){display:block}.investor-mobile-btn{display:block}.investor-content{padding:16px}}.investor-login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px;position:relative;overflow:hidden}.investor-login-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0d9488,#0f766e,#134e4a)}.investor-login-pattern{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 20% 80%,rgba(255,255,255,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.06) 0%,transparent 50%)}.investor-login-card{position:relative;background:#fffffffa;border-radius:20px;box-shadow:0 25px 50px -12px #00000059;padding:48px 40px;width:100%;max-width:420px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.investor-login-header{text-align:center;margin-bottom:32px}.investor-login-logo{font-size:4rem;margin-bottom:16px;filter:drop-shadow(0 4px 6px rgba(13,148,136,.3))}.investor-login-header h1{font-size:1.75rem;color:#134e4a;margin:0 0 8px;font-weight:700}.investor-login-header p{color:#64748b;font-size:.9rem;margin:0}.investor-login-form{margin-bottom:24px}.investor-login-field{margin-bottom:20px}.investor-login-field label{display:block;margin-bottom:8px;color:#134e4a;font-weight:600;font-size:.9rem}.investor-login-field input{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;transition:all .2s;box-sizing:border-box}.investor-login-field input:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 3px #0d948833}.investor-login-field input::placeholder{color:#94a3b8}.investor-login-error{background:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:10px;margin-bottom:20px;border:1px solid #fecaca;font-size:.9rem}.investor-login-btn{width:100%;padding:14px;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border:none;border-radius:10px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.investor-login-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 20px #0d948866}.investor-login-btn:disabled{opacity:.7;cursor:not-allowed}.investor-login-remember{margin-bottom:12px}.investor-login-remember-label{display:flex;align-items:center;gap:8px;font-weight:400;color:#475569;font-size:.9rem;cursor:pointer}.investor-login-remember-label input{width:auto}.investor-login-forget{background:none;border:none;color:#0d9488;font-size:.9rem;cursor:pointer;padding:0;text-decoration:underline}.investor-login-forget:hover:not(:disabled){color:#0f766e}.investor-login-footer{text-align:center;font-size:.9rem;color:#64748b;margin:0}.investor-login-footer a{color:#0d9488;font-weight:600;text-decoration:none}.investor-login-footer a:hover{text-decoration:underline}@media (max-width: 480px){.investor-login-card{padding:32px 24px}.investor-login-header h1{font-size:1.5rem}.investor-login-field input{font-size:16px}}.investor-dashboard{max-width:1400px;margin:0 auto}.investor-loading{text-align:center;padding:60px;color:#4a5568;font-size:1.1rem}.investor-dashboard-header{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-bottom:24px;justify-content:space-between}.investor-page-title{margin:0;color:#134e4a;font-size:1.5rem}.investor-dashboard-month{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.investor-dashboard-month label{font-size:.95rem;color:#475569;font-weight:500}.investor-month-input{padding:8px 12px;border:1px solid rgba(13,148,136,.3);border-radius:8px;font-size:1rem;color:#134e4a}.investor-month-label{font-size:1rem;color:#0d9488;font-weight:600;text-transform:capitalize}.investor-dashboard-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:20px;max-width:900px}.investor-dashboard-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000000f;border:1px solid rgba(13,148,136,.12);display:flex;flex-direction:column;gap:8px}.investor-dashboard-card.highlight{background:linear-gradient(135deg,#0d948814,#0f766e0d);border-color:#0d94884d}.investor-dashboard-card-label{font-size:.9rem;color:#64748b;font-weight:500}.investor-dashboard-card-value{font-size:1.35rem;font-weight:700;color:#134e4a}.investor-dashboard-card-value.income{color:#059669}.investor-dashboard-card-value.expenses{color:#dc2626}.investor-dashboard-card-value.net{color:#0d9488}.investor-dashboard-card-value.my{color:#0d9488;font-size:1.5rem}.investor-dashboard-info-card{margin-top:24px;max-width:900px;display:flex;align-items:flex-start;gap:16px;padding:16px 20px;background:#f8fafc;border:1px solid rgba(13,148,136,.2);border-radius:12px;color:#475569;font-size:.95rem}.investor-dashboard-info-icon{font-size:1.5rem;flex-shrink:0}.investor-dashboard-info-content{flex:1;min-width:0}.investor-dashboard-info-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;flex-wrap:wrap}.investor-dashboard-info-card strong{color:#134e4a}.investor-dashboard-info-amount{font-weight:700;font-size:1.1rem;color:#64748b}.investor-dashboard-info-card p{margin:0;line-height:1.5}@media (max-width: 768px){.investor-dashboard-cards{grid-template-columns:1fr 1fr}}.investor-page{max-width:1400px;margin:0 auto}.investor-page-title{margin:0 0 20px;color:#134e4a;font-size:1.5rem}.investor-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:20px;flex-wrap:wrap}.investor-toolbar-with-month{flex-wrap:wrap}.investor-toolbar-month{display:flex;align-items:center;gap:8px}.investor-toolbar-month label{font-size:.95rem;color:#475569;font-weight:500}.investor-month-input{padding:8px 12px;border:1px solid rgba(13,148,136,.3);border-radius:8px;font-size:.95rem;color:#134e4a}.investor-search{padding:10px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;min-width:250px}.investor-search:focus{outline:none;border-color:#0d9488;box-shadow:0 0 0 2px #0d948833}.investor-total{color:#4a5568;font-size:.95rem}.investor-total strong{color:#134e4a}.investor-table-wrap{background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;overflow:hidden}.investor-data-table{width:100%;border-collapse:collapse}.investor-data-table th,.investor-data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e2e8f0}.investor-data-table th{background:#f7fafc;font-size:.8rem;color:#718096;font-weight:600;text-transform:uppercase}.investor-data-table td{font-size:.95rem;color:#2d3748}.investor-data-table tbody tr:last-child td{border-bottom:none}.investor-data-table tbody tr:hover{background:#f7fafc}.investor-networks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.investor-network-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;border-left:4px solid #0d9488}.investor-network-card h3{margin:0 0 8px;color:#134e4a;font-size:1.2rem}.investor-network-desc{margin:0 0 16px;font-size:.9rem;color:#718096}.investor-network-stats{display:flex;flex-direction:column;gap:10px}.investor-network-stats>div{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e2e8f0}.investor-network-stats>div:last-child{border-bottom:none}.investor-network-stats .label{font-size:.9rem;color:#718096}.investor-network-stats .value{font-weight:600;color:#134e4a}.investor-network-stats .value.positive{color:#0d9488}.investor-network-stats .value.negative{color:#e53e3e}.app{min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}html{overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;overflow-x:hidden;width:100%;max-width:100vw}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.container{width:100%;max-width:100%;padding:0 15px;margin:0 auto}.table-responsive{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive table{min-width:600px}img,video,iframe,svg{max-width:100%;height:auto}div,section,article,main,aside,header,footer{box-sizing:border-box}#root{width:100%;max-width:100vw;overflow-x:hidden}@media (max-width: 768px){.table-responsive{display:block;width:100%}.table-responsive table{width:100%;min-width:100%}}.table-wrapper{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:20px 0}.table-wrapper table{width:100%;min-width:600px}.no-overflow{overflow-x:hidden;max-width:100%}.mobile-full-width{width:100%}@media (max-width: 768px){.page-header{flex-direction:column!important;align-items:flex-start!important;gap:15px!important}.page-header h1{font-size:1.5rem!important}.btn-primary,.btn-secondary,.btn-submit,.btn-cancel{width:100%!important}.grid-responsive{grid-template-columns:1fr!important}.table-wrapper table{min-width:600px;font-size:.9rem}.card,.card-responsive{padding:15px!important}.form-group{margin-bottom:15px!important}}@media (max-width: 480px){.page-header h1{font-size:1.2rem!important}.table-wrapper table{min-width:500px;font-size:.85rem}.table-wrapper th,.table-wrapper td{padding:6px!important;font-size:.8rem}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=tel],select,textarea{font-size:16px!important}}@media (max-width: 768px){.hide-mobile{display:none!important}}@media (min-width: 769px){.show-mobile{display:none!important}}
