@import url(https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap);:root{--primary-color:#e91e63;--primary-dark:#c2185b;--primary-light:#f06292;--secondary-color:#000;--background:#f5f5f5;--surface:#fff;--text-primary:#212121;--text-secondary:#757575;--border-color:#e0e0e0;--hover-bg:#fafafa;--shadow:#0000001a}body.dark-theme{--primary-color:#f06292;--primary-dark:#e91e63;--primary-light:#f48fb1;--secondary-color:#fff;--background:#0d1117;--surface:#161b22;--text-primary:#e6edf3;--text-secondary:#8b949e;--border-color:#30363d;--hover-bg:#21262d;--shadow:#00000080}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5;background-color:var(--background);color:#212121;color:var(--text-primary);font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background-color .3s ease,color .3s ease}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}#root{min-height:100vh}.td-right{text-align:right!important}.col-actions{text-align:center!important}input,select,textarea{background-color:#fff;background-color:var(--surface);border-color:#e0e0e0;border-color:var(--border-color);color:#212121;color:var(--text-primary)}input::placeholder,textarea::placeholder{color:#757575;color:var(--text-secondary);opacity:.7}table{background-color:#fff;background-color:var(--surface)}table,th{color:#212121;color:var(--text-primary)}th{background-color:#fafafa;background-color:var(--hover-bg)}td{border-color:#e0e0e0;border-color:var(--border-color)}button,td{color:#212121;color:var(--text-primary)}body.dark-theme input:focus,body.dark-theme select:focus,body.dark-theme textarea:focus{border-color:#e91e63;border-color:var(--primary-color);box-shadow:0 0 0 2px #f0629233;outline:none}.toast-container{bottom:32px;flex-direction:column;gap:10px;left:50%;pointer-events:none;position:fixed;transform:translateX(-50%);z-index:9999}.toast,.toast-container{align-items:center;display:flex}.toast{animation:toast-slide-in .25s ease;background:var(--surface);border:1px solid var(--border-color);border-left-width:4px;border-radius:8px;box-shadow:0 4px 16px #0000001f,0 1px 4px #00000014;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:14px;font-weight:500;gap:12px;max-width:420px;min-width:300px;overflow:hidden;padding:14px 16px;pointer-events:all;position:relative}.toast-success{border-left-color:#16a34a}.toast-error{border-left-color:#dc2626}.toast-warning{border-left-color:#d97706}.toast-info{border-left-color:#2563eb}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.toast-icon{align-items:center;border-radius:50%;color:#fff;display:flex;flex-shrink:0;font-size:13px;font-weight:700;height:22px;justify-content:center;width:22px}.toast-success .toast-icon{background:#16a34a}.toast-error .toast-icon{background:#dc2626}.toast-warning .toast-icon{background:#d97706}.toast-info .toast-icon{background:#2563eb}.toast-message{color:var(--text-primary);flex:1 1;line-height:1.4}.toast-close{background:none;border:none;color:var(--text-primary);cursor:pointer;flex-shrink:0;font-size:14px;line-height:1;opacity:.4;padding:0}.toast-close:hover{opacity:.8}.toast-progress{animation:toast-progress 4s linear forwards;bottom:0;height:2px;left:0;position:absolute}.toast-success .toast-progress{background:#16a34a}.toast-error .toast-progress{background:#dc2626}.toast-warning .toast-progress{background:#d97706}.toast-info .toast-progress{background:#2563eb}@keyframes toast-progress{0%{width:100%}to{width:0}}@media (max-width:480px){.toast-container{align-items:stretch;bottom:16px;left:12px;right:12px;transform:none}.toast{max-width:none;min-width:0;min-width:auto}}.sidebar{background-color:var(--surface);box-shadow:2px 0 12px var(--shadow);color:var(--text-primary);display:flex;flex-direction:column;height:100vh;left:0;overflow:hidden;position:fixed;top:0;transition:width .3s ease;width:260px;z-index:100}.sidebar.collapsed{width:64px}.sidebar-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:center;min-height:60px;overflow:hidden;padding:20px}.sidebar.collapsed .sidebar-header{padding:12px}.logo-link{align-items:center;cursor:pointer;display:flex;justify-content:center;text-decoration:none;transition:opacity .2s ease}.logo-link:hover{opacity:.85}.sidebar-logo{height:auto;max-width:220px;object-fit:contain;transition:all .3s ease;width:100%}.sidebar-logo.mini{border-radius:4px;height:40px;max-width:40px;object-fit:cover;width:40px}.sidebar-nav{flex:1 1;overflow-y:auto;padding:12px 8px}.menu-list{display:flex;flex-direction:column;gap:2px;list-style:none;margin:0;padding:0}.menu-item{align-items:center;border-radius:8px;color:var(--text-secondary);display:flex;padding:11px 14px;text-decoration:none;transition:all .2s ease;white-space:nowrap}.menu-item:hover{background-color:var(--hover-bg);color:var(--text-primary)}.menu-item.active{background-color:#e91e631a;color:var(--primary-color)}body.dark-theme .menu-item.active{background-color:#f0629226}.menu-icon{align-items:center;display:flex;font-size:20px;justify-content:center;margin-right:12px;min-width:24px;width:24px}.sidebar.collapsed .menu-icon{margin-right:0}.menu-label{font-size:15px;font-weight:500;opacity:1;transition:opacity .2s ease}.sidebar.collapsed .menu-label{opacity:0;overflow:hidden;width:0}.sidebar.collapsed .menu-item{justify-content:center;padding:11px 0}.sidebar-toggle{align-items:center;background:#0000;border:none;border-top:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:14px;transition:all .2s ease}.sidebar-toggle:hover{background-color:var(--hover-bg);color:var(--text-primary)}@media (max-width:768px){.sidebar{transform:translateX(-100%);transition:transform .3s ease}.sidebar.open{transform:translateX(0)}}.header{align-items:center;background-color:var(--surface);border-bottom:1px solid var(--border-color);box-shadow:0 1px 4px var(--shadow);display:flex;justify-content:space-between;min-height:64px;padding:0 24px;position:-webkit-sticky;position:sticky;top:0;z-index:50}.header-left{flex:1 1}.page-title-group{display:flex;flex-direction:column;gap:2px}.page-title{color:var(--text-primary);font-size:18px;font-weight:600;line-height:1.2;margin:0}.page-subtitle{color:var(--text-secondary);font-size:12px;line-height:1.2;margin:0}.header-right{gap:16px}.header-right,.user-menu{align-items:center;display:flex}.user-menu{border-radius:8px;cursor:pointer;gap:12px;padding:6px 12px;transition:background-color .2s ease}.user-menu:hover{background-color:var(--hover-bg)}.user-name{color:var(--text-primary);font-size:14px;font-weight:500}.user-avatar{background-color:var(--primary-color);border-radius:50%;color:var(--surface);font-size:14px;font-weight:600;height:36px;width:36px}.theme-toggle,.user-avatar{align-items:center;display:flex;justify-content:center}.theme-toggle{background:none;border:none;border-radius:8px;color:var(--text-primary);cursor:pointer;padding:8px;transition:all .2s ease}.theme-toggle:hover{background-color:var(--hover-bg)}.theme-toggle svg{transition:transform .3s ease}.theme-toggle:hover svg{transform:rotate(20deg)}.logout-button{align-items:center;background:none;border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;display:flex;justify-content:center;padding:8px;transition:all .2s ease}.logout-button:hover{background-color:var(--hover-bg);color:var(--primary-color)}@media (max-width:768px){.header{padding:0 16px}.page-title{font-size:16px}.page-subtitle,.user-name{display:none}}.layout{background-color:var(--background);min-height:100vh}.main-content{display:flex;flex-direction:column;margin-left:260px;min-height:100vh;overflow-x:hidden;transition:margin-left .3s ease}.main-content.sidebar-collapsed{margin-left:64px}.content{animation:page-fade-in .15s ease;flex:1 1;max-width:100%;min-width:0;overflow-x:hidden;overflow-y:auto;padding:24px}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (max-width:768px){.main-content,.main-content.sidebar-collapsed{margin-left:0}}.login-wrapper{border-radius:16px;box-shadow:0 8px 48px var(--shadow);display:flex;margin:24px;max-width:900px;min-height:540px;overflow:hidden;width:100%}.login-page{background-color:var(--background);min-height:100vh;padding:20px}.brand-panel,.login-page{align-items:center;display:flex;justify-content:center}.brand-panel{background:var(--primary-color);background-image:radial-gradient(circle at 20% 80%,#ffffff14 0,#0000 50%),radial-gradient(circle at 80% 20%,#c2185b99 0,#0000 50%);color:#fff;flex:1 1;flex-direction:column;gap:28px;padding:48px 40px}.brand-logo{border-radius:8px;height:auto;opacity:.95;width:160px}.brand-tagline{text-align:center}.brand-tagline h1{font-size:22px;font-weight:700;letter-spacing:-.3px;margin-bottom:8px}.brand-tagline p{font-size:14px;line-height:1.6;max-width:240px;opacity:.8}.form-panel{align-items:center;background:var(--surface);display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:48px 40px}.form-inner{max-width:340px;width:100%}.form-title{color:var(--text-primary);font-size:22px;font-weight:600;margin-bottom:4px}.form-subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:32px}.login-error{background-color:#fdecea;border-left:4px solid #d32f2f;border-radius:6px;color:#c62828;font-size:14px;margin-bottom:12px;padding:10px 14px}body.dark-theme .login-error{background-color:#d32f2f1f;border-left-color:#ef9a9a;color:#ef9a9a}.form-inner .form-group{margin-bottom:18px}.form-inner label{color:var(--text-primary);display:block;font-size:13px;font-weight:500;margin-bottom:6px}.form-inner input{background-color:var(--surface);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:15px;padding:10px 14px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.form-inner input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631f;outline:none}.code-input{font-size:24px!important;font-weight:600;letter-spacing:8px;text-align:center}.two-fa-message{color:var(--text-secondary);font-size:14px;margin-bottom:20px;text-align:center}.login-button{background-color:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;margin-top:8px;padding:12px;transition:background-color .2s ease,opacity .2s ease;width:100%}.login-button:hover:not(:disabled){background-color:var(--primary-dark)}.login-button:disabled{cursor:not-allowed;opacity:.6}.forgot-password-link{color:var(--primary-color);display:block;font-size:14px;margin-top:16px;text-align:center;text-decoration:none;transition:color .2s ease}.forgot-password-link:hover{color:var(--primary-dark);text-decoration:underline}.back-button{background:none;border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:14px;margin-top:12px;padding:10px;transition:all .2s ease;width:100%}.back-button:hover{border-color:var(--text-secondary);color:var(--text-primary)}@media (max-width:640px){.brand-panel{display:none}.login-wrapper{border-radius:12px;margin:16px;max-width:420px;min-height:auto}.form-panel{padding:36px 28px}}.reset-page{align-items:center;background-color:var(--background);display:flex;justify-content:center;min-height:100vh;padding:20px}.reset-wrapper{border-radius:16px;box-shadow:0 8px 48px var(--shadow);display:flex;margin:24px;max-width:900px;min-height:540px;overflow:hidden;width:100%}.reset-brand-panel{align-items:center;background:var(--primary-color);background-image:radial-gradient(circle at 20% 80%,#ffffff14 0,#0000 50%),radial-gradient(circle at 80% 20%,#c2185b99 0,#0000 50%);color:#fff;display:flex;flex:1 1;flex-direction:column;gap:28px;justify-content:center;padding:48px 40px}.reset-brand-logo{border-radius:8px;height:auto;opacity:.95;width:160px}.reset-brand-tagline{text-align:center}.reset-brand-tagline h1{font-size:22px;font-weight:700;letter-spacing:-.3px;margin-bottom:8px}.reset-brand-tagline p{font-size:14px;line-height:1.6;max-width:240px;opacity:.8}.reset-form-panel{align-items:center;background:var(--surface);display:flex;flex:1 1;flex-direction:column;justify-content:center;padding:48px 40px}.reset-form-inner{max-width:340px;width:100%}.reset-form-inner h2{color:var(--text-primary);font-size:22px;font-weight:600;margin-bottom:4px}.reset-description{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:28px}.reset-error{background-color:#fdecea;border-left:4px solid #d32f2f;border-radius:6px;color:#c62828;font-size:14px;margin-bottom:12px;padding:10px 14px}body.dark-theme .reset-error{background-color:#d32f2f1f;border-left-color:#ef9a9a;color:#ef9a9a}.reset-form-inner .form-group{margin-bottom:18px}.reset-form-inner label{color:var(--text-primary);display:block;font-size:13px;font-weight:500;margin-bottom:6px}.reset-form-inner input{background-color:var(--surface);border:1px solid var(--border-color);border-radius:8px;color:var(--text-primary);font-family:inherit;font-size:15px;padding:10px 14px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.reset-form-inner input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631f;outline:none}.password-requirements{background-color:var(--hover-bg);border-radius:8px;margin-bottom:18px;padding:12px}.requirement{align-items:center;color:var(--text-secondary);display:flex;font-size:13px;gap:8px;padding:3px 0;transition:color .2s ease}.requirement.valid{color:#4caf50}body.dark-theme .requirement.valid{color:#81c784}.reset-button{background-color:var(--primary-color);border:none;border-radius:8px;color:#fff;cursor:pointer;font-family:inherit;font-size:15px;font-weight:600;margin-top:8px;padding:12px;transition:background-color .2s ease,opacity .2s ease;width:100%}.reset-button:hover:not(:disabled){background-color:var(--primary-dark)}.reset-button:disabled{cursor:not-allowed;opacity:.6}.back-to-login{color:var(--primary-color);display:block;font-size:14px;margin-top:16px;text-align:center;text-decoration:none;transition:color .2s ease}.back-to-login:hover{color:var(--primary-dark);text-decoration:underline}.success-message{padding:20px 0;text-align:center}.success-message svg{margin-bottom:16px}.success-message h2{color:var(--text-primary);font-size:22px;font-weight:600;margin-bottom:8px}.success-message p{color:var(--text-secondary);font-size:14px;line-height:1.5;margin-bottom:24px}.reset-button-link{background-color:var(--primary-color);border-radius:8px;color:#fff;display:inline-block;font-size:15px;font-weight:600;padding:12px 32px;text-decoration:none;transition:background-color .2s ease}.reset-button-link:hover{background-color:var(--primary-dark)}@media (max-width:640px){.reset-brand-panel{display:none}.reset-wrapper{border-radius:12px;margin:16px;max-width:420px;min-height:auto}.reset-form-panel{padding:36px 28px}}.dashboard h2{color:var(--text-primary);font-size:28px;font-weight:700;margin-bottom:24px}.dashboard-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:24px}.dashboard-card{background-color:var(--surface);border-left:4px solid var(--primary-color);border-radius:12px;box-shadow:0 2px 8px var(--shadow);padding:24px;transition:transform .2s ease,box-shadow .2s ease}.dashboard-card:hover{box-shadow:0 4px 12px #e91e6333;transform:translateY(-4px)}.dashboard-card h3{color:var(--text-secondary);font-size:14px;font-weight:500;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.dashboard-value{color:var(--primary-color);font-size:32px;font-weight:700;margin:0}@media (max-width:768px){.dashboard h2{font-size:24px}.dashboard-grid{grid-template-columns:1fr}.dashboard-value{font-size:28px}}.user-form{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);max-width:none;padding:24px;width:100%}.user-form h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 8px}.user-form .form-subtitle{color:var(--text-secondary);font-size:14px;margin:0 0 24px}.user-form h4{border-bottom:2px solid var(--border-color);color:var(--text-primary);font-size:16px;font-weight:600;margin:24px 0 16px;padding-bottom:8px}.user-form h4:first-of-type{margin-top:0}.error-message{background-color:#ffebee;border-radius:4px;padding:12px}body.dark-theme .error-message{background-color:#ef444426;color:#fca5a5}.user-form .form-row{grid-gap:16px;display:grid!important;gap:16px;grid-template-columns:repeat(6,1fr)!important;margin-bottom:16px;width:100%}.user-form .form-group{display:flex;flex-direction:column;grid-column:span 2}.user-form .form-group.full-width{grid-column:1/-1}.user-form .form-group.span-1{grid-column:span 1!important}.user-form .form-group.span-2{grid-column:span 2!important}.user-form .form-group.span-3{grid-column:span 3!important}.user-form .form-row.four-columns{grid-template-columns:repeat(4,minmax(0,1fr))!important}.user-form .form-row.four-columns .form-group{grid-column:span 1!important;min-width:0}.user-form .form-row.four-columns .form-group input{min-width:0}.form-group label{color:var(--text-primary);font-size:14px;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{border-radius:4px;transition:border-color .2s ease}.form-group input:disabled,.form-group input[readonly],.form-group select:disabled,.form-group textarea:disabled,.form-group textarea[readonly]{background-color:var(--hover-bg);color:var(--text-secondary);cursor:not-allowed;opacity:.8}body.dark-theme .form-group input[type=date]::-webkit-calendar-picker-indicator,body.dark-theme .form-group input[type=datetime-local]::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(1)}.form-group textarea{min-height:80px}.form-actions{margin-top:24px}.btn-primary,.btn-secondary{border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;padding:10px 24px;transition:all .2s ease}.btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}@media (max-width:900px){.user-form .form-row{grid-template-columns:repeat(6,1fr)!important}.user-form .form-row.four-columns{grid-template-columns:repeat(4,minmax(0,1fr))!important}}@media (max-width:768px){.user-form .form-row,.user-form .form-row.four-columns{grid-template-columns:repeat(2,1fr)!important}.user-form .form-group,.user-form .form-group.span-1,.user-form .form-group.span-2,.user-form .form-group.span-3{grid-column:span 1!important}}@media (max-width:480px){.user-form .form-row,.user-form .form-row.four-columns{grid-template-columns:1fr!important}}.modal-overlay{align-items:center;animation:fadeIn .2s ease;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{animation:slideUp .3s ease;background:var(--surface);border-radius:8px;box-shadow:0 4px 24px var(--shadow);max-width:500px;min-width:400px}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border-color);border-radius:8px 8px 0 0;padding:20px 24px}.modal-header.danger{background-color:#ffebee;border-bottom-color:#ffcdd2}.modal-header.warning{background-color:#fff3e0;border-bottom-color:#ffe0b2}.modal-header.info{background-color:#e3f2fd;border-bottom-color:#bbdefb}.modal-header h3{color:var(--text-primary);font-size:18px;font-weight:600;margin:0}.modal-body{padding:24px}.modal-body p{color:var(--text-secondary);font-size:15px;line-height:1.6;margin:0}.modal-footer{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;padding:16px 24px}.modal-footer .btn-secondary{background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-footer .btn-secondary:hover{background-color:var(--hover-bg);color:var(--text-primary)}.modal-footer .btn-danger{background-color:#d32f2f;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-footer .btn-danger:hover{background-color:#c62828}.modal-footer .btn-warning{background-color:#f57c00;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-footer .btn-warning:hover{background-color:#ef6c00}.modal-footer .btn-info{background-color:#1976d2;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease}.modal-footer .btn-info:hover{background-color:#1565c0}body.dark-theme .modal-overlay{background-color:#000000b3}body.dark-theme .modal-header.danger{background-color:#d32f2f26;border-bottom-color:#d32f2f4d}body.dark-theme .modal-header.warning{background-color:#f57c0026;border-bottom-color:#f57c004d}body.dark-theme .modal-header.info{background-color:#1976d226;border-bottom-color:#1976d24d}@media (max-width:768px){.modal-content{max-width:90%;min-width:300px}.modal-body,.modal-footer,.modal-header{padding:16px}}.action-btn{align-items:center;border:none;border-radius:4px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;gap:0;justify-content:center;min-height:28px;min-width:28px;padding:6px;transition:all .2s ease;white-space:nowrap}.action-btn:disabled{cursor:not-allowed;opacity:.5}.btn-icon{align-items:center;display:flex;flex-shrink:0;font-size:14px;line-height:1}.btn-text{display:none}.action-btn-detail{background-color:#00897b;color:#fff}.action-btn-detail:hover:not(:disabled){background-color:#00acc1}.action-btn-metrics{background-color:#7b1fa2;color:#fff}.action-btn-metrics:hover:not(:disabled){background-color:#8e24aa}.action-btn-edit{background-color:#1565c0;color:#fff}.action-btn-edit:hover:not(:disabled){background-color:#1976d2}.action-btn-delete{background-color:#c62828;color:#fff}.action-btn-delete:hover:not(:disabled){background-color:#d32f2f}.action-btn-primary{background-color:var(--primary-color);color:#fff}.action-btn-primary:hover:not(:disabled){background-color:var(--primary-dark)}body.dark-theme .action-btn-detail{background-color:#00acc1}body.dark-theme .action-btn-detail:hover:not(:disabled){background-color:#26c6da}body.dark-theme .action-btn-metrics{background-color:#9c27b0}body.dark-theme .action-btn-metrics:hover:not(:disabled){background-color:#ab47bc}body.dark-theme .action-btn-edit{background-color:#1976d2}body.dark-theme .action-btn-edit:hover:not(:disabled){background-color:#2196f3}body.dark-theme .action-btn-delete{background-color:#d32f2f}body.dark-theme .action-btn-delete:hover:not(:disabled){background-color:#f44336}@media (max-width:480px){.action-btn{min-height:40px;min-width:40px;padding:10px}.btn-icon{font-size:18px}}.loading-spinner-container{align-items:center;display:flex;flex-direction:column;gap:14px;justify-content:center;padding:48px 24px}.loading-spinner{animation:spinner-rotate .7s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:36px;width:36px}@keyframes spinner-rotate{to{transform:rotate(1turn)}}.loading-spinner-message{color:var(--text-secondary);font-size:14px}.empty-state-container{flex-direction:column;gap:10px;padding:56px 24px}.empty-state-container,.empty-state-icon{align-items:center;display:flex;justify-content:center}.empty-state-icon{color:var(--border-color);font-size:48px;line-height:1;margin-bottom:4px}.empty-state-title{color:var(--text-secondary);font-size:15px;font-weight:600}.empty-state-subtitle{color:var(--text-secondary);font-size:13px;max-width:320px;opacity:.7;text-align:center}.users-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.users-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0}.product-filter-toggle{align-items:center;background-color:var(--hover-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-secondary);cursor:pointer;display:inline-flex;flex-shrink:0;font-size:14px;font-weight:500;gap:8px;padding:10px 14px;transition:all .2s ease;white-space:nowrap}.product-filter-toggle:hover{border-color:var(--primary-color);color:var(--text-primary)}.product-filter-toggle.has-selection{background-color:#e91e630d;border-color:var(--primary-color);color:var(--primary-color);font-weight:600}.product-filter-arrow{font-size:10px;opacity:.7}.product-filter-panel{background:var(--surface);border:1px solid var(--border-color);border-radius:8px;margin-top:10px;padding:16px}.product-filter-empty{color:var(--text-secondary);font-size:13px}.product-filter-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.product-filter-option{align-items:center;border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;display:flex;font-size:13px;gap:8px;padding:8px 10px;transition:all .15s ease;-webkit-user-select:none;user-select:none}.product-filter-option:hover{background-color:var(--hover-bg);border-color:var(--primary-color)}.product-filter-option.selected{background-color:#e91e630d;border-color:var(--primary-color)}.product-filter-option input[type=checkbox]{accent-color:var(--primary-color);cursor:pointer;flex-shrink:0;height:15px;width:15px}.product-type-badge{border-radius:4px;display:inline-block;flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:.3px;padding:2px 7px}.product-type-crv{background-color:#e3f0ff;color:#1565c0}.product-type-cra{background-color:#e8f5e9;color:#2e7d32}.product-type-ph{background-color:#fff3e0;color:#e65100}.product-filter-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.users-content{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);overflow:hidden;padding:0 0 1.5rem}.users-table{border-collapse:collapse;width:100%}.users-table thead{background-color:var(--hover-bg)}.users-table th{color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;padding:14px 16px;text-align:left;text-transform:uppercase}.users-table td,.users-table th{border-bottom:1px solid var(--border-color)}.users-table td{color:var(--text-primary);font-size:14px;padding:16px}.users-table tbody tr:hover{background-color:var(--hover-bg)}.users-table tbody tr:last-child td{border-bottom:none}.users-table .col-checkbox{padding-left:12px;padding-right:4px;text-align:center;width:40px}.batch-actions{align-items:center;background-color:var(--hover-bg);border:1px solid var(--border-color);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:16px;min-height:40px;padding:12px 16px}.batch-actions-left{align-items:center;display:flex;gap:12px}.batch-actions-right{align-items:center;display:flex;gap:8px}.batch-selected-count{color:var(--primary-color);font-size:13px;font-weight:600}.report-select:focus{border-color:var(--primary-color);outline:none}.users-table .col-checkbox input[type=checkbox]{accent-color:var(--primary-color);cursor:pointer;height:16px;width:16px}.users-table td.col-actions,.users-table th.col-actions{text-align:center;vertical-align:middle}body.dark-theme .product-type-crv{background-color:#1565c026;color:#60a5fa}body.dark-theme .product-type-cra{background-color:#2e7d3226;color:#4ade80}body.dark-theme .product-type-ph{background-color:#e6510026;color:#fb923c}body.dark-theme .status-histórico{background-color:#6b728026;color:#9ca3af}.metrics-panel{animation:slideIn .3s ease-out;background:var(--surface);box-shadow:-4px 0 16px var(--shadow);display:flex;flex-direction:column;height:100vh;position:fixed;right:0;top:0;width:400px;z-index:1000}@keyframes slideIn{0%{transform:translateX(100%)}to{transform:translateX(0)}}.metrics-panel-header{align-items:center;border-bottom:1px solid var(--border-color);display:flex;justify-content:space-between;padding:20px 24px}.metrics-panel-header h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0}.btn-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:24px;line-height:1;padding:4px 8px;transition:color .2s ease}.btn-close:hover{color:var(--text-primary)}.metrics-panel-content{flex:1 1;overflow-y:auto;padding:24px}.metrics-cards{display:flex;flex-direction:column;gap:20px}.metric-card{padding:20px}@media (max-width:768px){.users-header{align-items:flex-start;flex-direction:column;gap:16px}.tabs{overflow-x:auto;width:100%}.tab{white-space:nowrap}.filters{flex-direction:column}.filter-group{min-width:auto;width:100%}.btn-clear-filters{width:100%}.users-table{font-size:12px}.users-table td,.users-table th{padding:12px 8px}.metrics-panel{max-width:100%;width:100%}.metric-value{font-size:28px}}.note-form{background:var(--surface);border:2px solid var(--primary-color);border-radius:8px;margin-bottom:16px;padding:12px}.form-row{align-items:flex-end;display:flex;gap:12px}.form-group-inline{display:flex;flex:1 1;flex-direction:column;min-width:150px}.form-group-inline label{color:var(--text-primary);display:block;font-size:12px;font-weight:600;margin-bottom:4px;white-space:nowrap}.note-form .required{color:#c62828;margin-left:2px}.note-form .form-control{background-color:var(--background);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);font-family:inherit;font-size:13px;padding:8px;transition:all .2s ease;width:100%}.note-form .form-control:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px #e91e631a;outline:none}.note-form textarea.form-control{min-height:50px;resize:vertical}.note-form select.form-control{min-height:36px}.note-form .form-control::placeholder{color:var(--text-secondary);font-size:12px}.form-actions-inline{display:flex;flex-direction:column;flex-shrink:0;gap:6px}.btn-cancel{background-color:var(--hover-bg);border:1px solid var(--border-color);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:all .2s ease;white-space:nowrap}.btn-cancel:hover{background-color:var(--border-color)}.btn-cancel:disabled{cursor:not-allowed;opacity:.5}.btn-submit{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:8px 16px;transition:background-color .2s ease;white-space:nowrap}.btn-submit:hover{background-color:var(--primary-dark)}.btn-submit:disabled{cursor:not-allowed;opacity:.5}@media (max-width:1024px){.form-row{flex-wrap:wrap}.form-group-inline{min-width:200px}}@media (max-width:768px){.note-form{padding:12px}.form-row{align-items:stretch;flex-direction:column}.form-group-inline{width:100%}.form-actions-inline{flex-direction:row;width:100%}.btn-cancel,.btn-submit{flex:1 1}}.investor-notes{width:100%}.notes-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.notes-header h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0}.note-form-container{margin-bottom:24px}.empty-notes{background:var(--background);border:2px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);padding:48px 24px;text-align:center}.empty-notes p{margin:8px 0}.notes-table-container{overflow-x:auto;width:100%}.notes-table{background:var(--background);border:1px solid var(--border-color);border-collapse:collapse;border-radius:8px;width:100%}.notes-table thead{background-color:var(--hover-bg)}.notes-table th{border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase;white-space:nowrap}.notes-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:13px;padding:12px;vertical-align:top}.notes-table tbody tr:hover{background-color:var(--hover-bg)}.notes-table tbody tr:last-child td{border-bottom:none}.note-fecha{font-size:12px}.note-fecha,.note-responsable{white-space:nowrap}.note-categoria{border-radius:12px;font-size:12px;font-weight:600;letter-spacing:.5px;padding:4px 12px;text-transform:uppercase}.categoria-blue{background-color:#e3f2fd;color:#1565c0}.categoria-green{background-color:#e8f5e9;color:#2e7d32}.categoria-purple{background-color:#f3e5f5;color:#7b1fa2}.categoria-orange{background-color:#fff3e0;color:#f57c00}.categoria-teal{background-color:#e0f2f1;color:#00897b}.categoria-indigo{background-color:#e8eaf6;color:#3f51b5}.categoria-red{background-color:#ffebee;color:#c62828}.categoria-yellow{background-color:#fffde7;color:#f9a825}.categoria-gray{background-color:#f5f5f5;color:#616161}body.dark-theme .categoria-blue{background-color:#1565c0;color:#e3f2fd}body.dark-theme .categoria-green{background-color:#2e7d32;color:#e8f5e9}body.dark-theme .categoria-purple{background-color:#7b1fa2;color:#f3e5f5}body.dark-theme .categoria-orange{background-color:#f57c00;color:#fff3e0}body.dark-theme .categoria-teal{background-color:#00897b;color:#e0f2f1}body.dark-theme .categoria-indigo{background-color:#3f51b5;color:#e8eaf6}body.dark-theme .categoria-red{background-color:#c62828;color:#ffebee}body.dark-theme .categoria-yellow{background-color:#f9a825;color:#fffde7}body.dark-theme .categoria-gray{background-color:#616161;color:#f5f5f5}.note-author{align-items:center;display:flex;gap:6px}.note-comentario-cell{word-wrap:break-word;max-width:400px;white-space:pre-wrap}.note-proximo-paso-cell{word-wrap:break-word;max-width:300px;white-space:pre-wrap}.note-actions-cell{white-space:nowrap}.note-actions{display:flex;gap:8px}@media (max-width:768px){.notes-header{align-items:flex-start;flex-direction:column;gap:12px}.notes-table{font-size:12px}.notes-table td,.notes-table th{padding:8px}.note-comentario-cell,.note-proximo-paso-cell{max-width:200px}}.investor-investments{width:100%}.investments-header{margin-bottom:16px}.investments-header h3{color:var(--text-primary);font-size:20px;font-weight:600;margin:0}.investments-table-container{overflow-x:auto;width:100%}.investments-table{background:var(--background);border:1px solid var(--border-color);border-collapse:collapse;border-radius:8px;width:100%}.investments-table thead{background-color:var(--hover-bg)}.investments-table th{border-bottom:2px solid var(--border-color);color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;padding:12px;text-align:left;text-transform:uppercase;white-space:nowrap}.investments-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:13px;padding:12px;vertical-align:middle}.investments-table tbody tr:hover{background-color:var(--hover-bg)}.investments-table tbody tr:last-child td{border-bottom:none}.investment-id{color:var(--text-secondary);font-family:monospace;font-weight:600}.investments-table td.amount{font-weight:500;text-align:right}.investments-table td.percentage{color:var(--primary-color);font-weight:600;text-align:center}.investment-status{border-radius:12px;display:inline-block;font-size:11px;font-weight:600;padding:4px 10px;text-align:center;white-space:nowrap}.status-pdte-contrato{background-color:#fff3e0;color:#f57c00}.status-liquidado{background-color:#f5f5f5;color:#616161}.status-pdte-firma,.status-pdte-transferencia{background-color:#fff3e0;color:#f57c00}.status-rechazado{background-color:#ffebee;color:#c62828}.status-en-expansion{background-color:#e3f2fd;color:#1565c0}body.dark-theme .status-pdte-contrato{background-color:#f57c0026;color:#fb923c}body.dark-theme .status-liquidado{background-color:#6b728026;color:#9ca3af}body.dark-theme .status-pdte-firma,body.dark-theme .status-pdte-transferencia{background-color:#f57c0026;color:#fb923c}body.dark-theme .status-en-expansion{background-color:#1565c026;color:#60a5fa}.empty-investments{background:var(--background);border:2px dashed var(--border-color);border-radius:8px;color:var(--text-secondary);padding:48px 24px;text-align:center}.empty-investments p{margin:0}@media (max-width:1200px){.investments-table{font-size:12px}.investments-table td,.investments-table th{padding:10px 8px}}@media (max-width:768px){.investments-table{font-size:11px}.investments-table td,.investments-table th{padding:8px 6px}.investment-id{font-size:10px}}.page-header{border-bottom:2px solid var(--border-color);justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.header-left,.page-header{align-items:center;display:flex}.header-left{gap:16px}.page-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0}.header-actions{align-items:center;display:flex;gap:12px}.report-controls{align-items:center;display:flex;gap:8px}.report-select{background:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:13px;padding:6px 10px}.page-content{display:flex;flex-direction:column;gap:32px}.detail-section{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);padding:24px}.detail-section h3{border-bottom:2px solid var(--primary-color);color:var(--text-primary);font-size:20px;font-weight:600;margin:0 0 20px;padding-bottom:12px}.info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.info-item{display:flex;flex-direction:column;gap:6px}.info-label{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.info-value{color:var(--text-primary);font-size:15px;font-weight:500}.info-item .status-badge{align-self:flex-start;border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px;text-align:center}.status-histórico{background-color:#f5f5f5;color:#616161}.metrics-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.metric-card{background:var(--background);border:1px solid var(--border-color);border-radius:12px;padding:24px;transition:all .2s ease}.metric-card:hover{box-shadow:0 4px 12px var(--shadow);transform:translateY(-2px)}.metric-label{color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.metric-value{color:var(--text-primary);font-size:32px;font-weight:700;line-height:1.2;margin-bottom:8px}.metric-value.primary{color:var(--primary-color)}.metric-description{color:var(--text-secondary);font-size:13px;line-height:1.5}.notes-section{background:#0000;box-shadow:none;padding:0}.error,.loading{color:var(--text-secondary);font-size:16px;padding:48px;text-align:center}.error{color:#c62828}@media (max-width:768px){.page-header{align-items:flex-start;flex-direction:column;gap:16px}.header-left{flex-wrap:wrap;width:100%}.page-header h2{font-size:22px}.header-actions{width:100%}.info-grid,.metrics-grid{grid-template-columns:1fr}.metric-value{font-size:28px}.detail-section{padding:16px}}.phases-section{border:1px solid var(--border-color);border-radius:8px;margin-top:24px;overflow:hidden}.phases-header{align-items:center;cursor:pointer;display:flex;justify-content:space-between;padding:12px 16px;-webkit-user-select:none;user-select:none}.phases-header,.phases-header:hover{background-color:var(--hover-bg)}.phases-header h4{align-items:center;border:none;display:flex;gap:8px;margin:0;padding:0}.expand-icon{display:inline-block;font-size:10px;transition:transform .2s ease}.expand-icon.expanded{transform:rotate(90deg)}.btn-add-phase{background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:background-color .2s ease}.btn-add-phase:hover{background-color:var(--primary-dark)}.phases-content{border-top:1px solid var(--border-color);padding:16px}.no-phases{color:var(--text-secondary);font-size:14px;margin:0;padding:24px;text-align:center}.phases-table{border-collapse:collapse;font-size:14px;width:100%}.phases-table td,.phases-table th{border-bottom:1px solid var(--border-color);padding:10px 12px;text-align:left}.phases-table th{color:var(--text-primary);font-weight:600}.phases-table tbody tr:hover,.phases-table th{background-color:var(--hover-bg)}.phases-table tbody tr:last-child td{border-bottom:none}.btn-action{background-color:var(--surface);border:1px solid var(--border-color);border-radius:4px;cursor:pointer;font-size:12px;margin-right:6px;padding:4px 10px;transition:all .2s ease}.btn-action:hover{background-color:var(--hover-bg)}.btn-action.btn-delete{background-color:#ef4444;border-color:#ef4444;color:#fff}.btn-action.btn-delete:hover{background-color:#dc2626;border-color:#dc2626}.phase-actions{display:flex;gap:8px;justify-content:flex-start}.phases-header .action-btn{padding:6px 12px}.phase-form{max-width:800px}.products-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.products-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0}.tabs{align-items:center}.tab-actions{margin-bottom:6px;margin-left:auto}.filter-group{min-width:200px}.filter-input{background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 14px;transition:all .2s ease;width:100%}.filter-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.btn-clear-filters:hover{background-color:#eee}.products-content{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);overflow:hidden}.products-table{border-collapse:collapse;width:100%}.products-table thead{background-color:var(--hover-bg)}.products-table th{color:var(--text-secondary);font-size:13px;font-weight:600;letter-spacing:.5px;padding:14px 16px;text-align:left;text-transform:uppercase}.products-table td,.products-table th{border-bottom:1px solid var(--border-color)}.products-table td{color:var(--text-primary);font-size:14px;padding:16px}.products-table tbody tr:hover{background-color:var(--hover-bg)}.products-table tbody tr:last-child td{border-bottom:none}.products-table .id-cell{color:var(--primary-color);font-weight:600}.btn-delete,.btn-edit{border:none;border-radius:4px;cursor:pointer;font-size:13px;font-weight:500;padding:6px 12px;transition:all .2s ease}.btn-edit{background-color:#e3f2fd;color:#1976d2}.btn-edit:hover{background-color:#bbdefb}.btn-delete{background-color:#ffebee;color:#c62828}.btn-delete:hover{background-color:#ffcdd2}.btn-primary{transition:background-color .2s ease}.btn-primary:hover{background-color:var(--primary-dark)}.status-badge{padding:4px 12px;text-align:center}.status-en-captacion{background-color:#e3f2fd;color:#1565c0}.status-captado{background-color:#e8f5e9;color:#2e7d32}.status-en-devolucion{background-color:#fff3e0;color:#f57c00}.status-cerrado{background-color:var(--hover-bg);color:#616161}.status-activa{background-color:#e8f5e9;color:#2e7d32}.status-en-liquidacion{background-color:#fff3e0;color:#f57c00}.status-liquidada{background-color:var(--hover-bg);color:#616161}body.dark-theme .status-en-captacion{background-color:#1565c026;color:#60a5fa}body.dark-theme .status-activa,body.dark-theme .status-captado{background-color:#2e7d3226;color:#4ade80}body.dark-theme .status-en-devolucion,body.dark-theme .status-en-liquidacion{background-color:#f57c0026;color:#fb923c}body.dark-theme .status-cerrado,body.dark-theme .status-liquidada{color:#9ca3af}.remittance-panel{align-items:center;background-color:var(--hover-bg);border:1px solid var(--border-color);border-radius:8px;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.remittance-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.selected-count{color:var(--primary-color);font-size:13px;font-weight:600;min-width:160px}.remittance-controls select{background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;padding:6px 10px}.remittance-controls select:focus{border-color:var(--primary-color);outline:none}.remittance-controls .btn-primary:disabled{cursor:not-allowed;opacity:.5}.btn-icon-only{align-items:center;background-color:var(--primary-color);border:none;border-radius:4px;color:#fff;cursor:pointer;display:inline-flex;flex-shrink:0;font-size:14px;justify-content:center;min-height:28px;min-width:28px;padding:6px;transition:background-color .2s ease}.btn-icon-only:hover{background-color:var(--primary-dark)}.btn-icon-only:disabled{cursor:not-allowed;opacity:.5}.products-table .checkbox-col{padding:0 8px;text-align:center;width:40px}.products-table input[type=checkbox]{accent-color:var(--primary-color);cursor:pointer;height:16px;width:16px}@media (max-width:768px){.products-header{align-items:flex-start;flex-direction:column;gap:16px}.tabs{overflow-x:auto;width:100%}.tab{white-space:nowrap}.filters{flex-direction:column}.filter-group{min-width:auto;width:100%}.btn-clear-filters{width:100%}.products-table{font-size:12px}.products-table td,.products-table th{padding:12px 8px}}.investor-autocomplete{position:relative;width:100%}.investor-autocomplete input{background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 14px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.investor-autocomplete input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.investor-dropdown{background-color:var(--surface);border:1px solid var(--border-color);border-radius:0 0 6px 6px;border-top:none;box-shadow:0 4px 8px var(--shadow);left:0;margin-top:-1px;max-height:250px;overflow-y:auto;position:absolute;right:0;top:100%;z-index:1000}.investor-option{color:var(--text-primary);cursor:pointer;font-size:14px;padding:10px 14px;transition:background-color .15s ease}.investor-option:hover{background-color:var(--hover-bg)}.investor-option.selected{background-color:#e91e631a;color:var(--primary-color);font-weight:500}.investor-option.no-results{color:var(--text-secondary);cursor:default;font-style:italic}.investor-option.no-results:hover{background-color:initial}.investor-dropdown::-webkit-scrollbar{width:8px}.investor-dropdown::-webkit-scrollbar-track{background:var(--hover-bg)}.investor-dropdown::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.investor-dropdown::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.pdf-upload{display:flex;flex-direction:column;gap:.5rem}.pdf-upload-label{color:var(--text-primary);font-size:.875rem;font-weight:600}.pdf-upload-empty{align-items:center;display:flex;gap:.5rem}.pdf-upload-has-file{align-items:center;display:flex;gap:.75rem}.pdf-upload-file-badge{align-items:center;background-color:#fef2f2;border:1px solid #fecaca;border-radius:6px;color:#dc2626;display:inline-flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.3rem .65rem}.pdf-upload-file-badge .pdf-icon{font-size:1rem}.pdf-upload-actions{align-items:center;display:flex;gap:.4rem}.btn-pdf{align-items:center;border:none;border-radius:6px;cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:500;gap:.35rem;padding:.4rem .75rem;transition:background-color .15s,box-shadow .15s;white-space:nowrap}.btn-pdf:hover{box-shadow:0 1px 3px #00000026}.btn-choose{background-color:#f3f4f6;border:1px dashed #9ca3af;border-radius:6px;color:#374151;font-weight:400;max-width:220px;overflow:hidden;text-overflow:ellipsis}.btn-choose:hover{background-color:#e5e7eb;border-color:#6b7280}.btn-upload{background-color:#16a34a;color:#fff}.btn-upload:hover{background-color:#15803d}.btn-view{background-color:#2563eb;color:#fff}.btn-view:hover{background-color:#1d4ed8}.btn-pdf:disabled{box-shadow:none;cursor:not-allowed;opacity:.6}@keyframes spin{to{transform:rotate(1turn)}}.spin{animation:spin 1s linear infinite}.pdf-upload-message{color:#6b7280;font-size:.8rem;font-style:italic}.pdf-upload-error{color:#ef4444;font-size:.8rem}body.dark-theme .pdf-upload-file-badge{background-color:#dc26261a;border-color:#dc26264d;color:#f87171}body.dark-theme .btn-choose{background-color:var(--hover-bg);border-color:var(--border-color);color:var(--text-primary)}body.dark-theme .btn-choose:hover{background-color:var(--border-color)}body.dark-theme .pdf-upload-message{color:var(--text-secondary)}.investment-sheets-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.investment-sheets-header h2{color:var(--text-primary);font-size:1.75rem;margin:0}.tabs{gap:.5rem;margin-bottom:1.5rem}.tab{font-size:1rem;padding:.75rem 1.5rem;transition:all .2s}.filters-container{background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.filters{grid-gap:1rem;align-items:end;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.filter-group{display:flex;flex-direction:column}.filter-select{background:var(--surface);border:1px solid #d1d5db;border-radius:4px;font-size:.875rem;padding:.5rem}.filter-select:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a;outline:none}.btn-clear-filters{background-color:var(--text-secondary);border:none;border-radius:4px;color:#fff;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s}.btn-clear-filters:hover{background-color:var(--hover-bg)}.investment-sheets-content{background:var(--surface);border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.investment-sheets-table{border-collapse:collapse;width:100%}.investment-sheets-table thead{background-color:var(--hover-bg);border-bottom:2px solid var(--border-color)}.investment-sheets-table th{color:var(--text-secondary);font-size:.875rem;font-weight:600;padding:.75rem 1rem;text-align:left;white-space:nowrap}.investment-sheets-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:.875rem;padding:.75rem 1rem}.investment-sheets-table tbody tr:hover{background-color:var(--hover-bg)}.investment-sheets-table tbody tr:last-child td{border-bottom:none}.id-cell{color:var(--primary-color);font-family:Courier New,monospace;font-weight:600}.status-badge{border-radius:9999px;font-size:.75rem;padding:.25rem .75rem;text-transform:uppercase;white-space:nowrap}.status-prospecto{background-color:#f3f4f6;color:#374151}.status-pdte-contrato{background-color:#fef3c7;color:#92400e}.status-pdte-firma{background-color:#dbeafe;color:#1e40af}.status-pdte-transferencia{background-color:#fce7f3;color:#9f1239}.status-activo{background-color:#d1fae5;color:#065f46}.status-devuelto-principal{background-color:#fef9c3;color:#854d0e}.status-liquidado{background-color:#e0e7ff;color:#3730a3}.status-rechazado{background-color:#fee2e2;color:#991b1b}body.dark-theme .status-prospecto{background-color:#6b728026;color:#9ca3af}body.dark-theme .status-pdte-contrato{background-color:#f59e0b26;color:#fbbf24}body.dark-theme .status-pdte-firma{background-color:#3b82f626;color:#60a5fa}body.dark-theme .status-pdte-transferencia{background-color:#ec489926;color:#f472b6}body.dark-theme .status-activo{background-color:#16a34a26}body.dark-theme .status-devuelto-principal{background-color:#ca8a0426;color:#facc15}body.dark-theme .status-liquidado{background-color:#6366f126;color:#a5b4fc}body.dark-theme .status-rechazado{background-color:#ef444426;color:#f87171}.investment-sheets-table td.col-actions,.investment-sheets-table th.col-actions{text-align:center;vertical-align:middle}.actions{gap:.5rem}.btn-primary{background-color:#2563eb;padding:.625rem 1.25rem;transition:background-color .2s}.btn-primary:hover{background-color:#1d4ed8}.btn-primary:disabled{background-color:#9ca3af}.btn-secondary{padding:.625rem 1.25rem;transition:all .2s}.btn-secondary:hover{background-color:var(--hover-bg)}.btn-edit{background-color:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.375rem .75rem;transition:background-color .2s}.btn-edit:hover{background-color:#2563eb}.btn-delete{background-color:#ef4444;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.375rem .75rem;transition:background-color .2s}.btn-delete:hover{background-color:#dc2626}.empty-state,.loading{font-size:1.125rem;padding:3rem}.empty-state{color:#9ca3af}.form-container{padding:1rem}.paginator{align-items:center;border-top:1px solid var(--border-color);display:flex;flex-direction:column;gap:10px;margin-top:4px;padding:20px 0 6px}.paginator-info{color:var(--text-secondary);font-size:12px;font-weight:500;letter-spacing:.2px}.paginator-controls{align-items:center;display:flex;gap:3px}.paginator-btn{align-items:center;background:var(--surface);border:1px solid var(--border-color);border-radius:8px;color:var(--text-secondary);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;height:30px;justify-content:center;line-height:1;min-width:30px;padding:0 6px;transition:border-color .15s ease,color .15s ease,background .15s ease,box-shadow .15s ease}.paginator-btn:hover:not(:disabled):not(.active){background:#e91e630a;border-color:var(--primary-color);color:var(--primary-color)}.paginator-btn.active{background:var(--primary-color);border-color:var(--primary-color);box-shadow:0 2px 8px #e91e6359;color:#fff;font-weight:700}.paginator-btn:disabled{cursor:not-allowed;opacity:.3}.paginator-ellipsis{color:var(--text-secondary);font-size:13px;opacity:.6;padding:0 2px;-webkit-user-select:none;user-select:none}.amortization-page{display:flex;flex-direction:column;max-width:100%;overflow-x:hidden;width:100%}.amortization-header{align-items:center;display:flex;flex-shrink:0;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:24px}.amortization-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0}.amortization-controls{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.product-selector{background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;min-width:200px;padding:6px 10px}.product-selector:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.btn-export{background-color:#2e7d32;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:background-color .2s ease;white-space:nowrap}.btn-export:hover{background-color:#1b5e20}.btn-export:disabled{background-color:#9e9e9e;cursor:not-allowed}.btn-csv{background-color:#2e7d32}.btn-csv:hover{background-color:#1b5e20}.tabs{border-bottom:2px solid var(--border-color);display:flex;flex-shrink:0;gap:8px;margin-bottom:16px}.tab{background:none;border:none;border-bottom:3px solid #0000;color:var(--text-secondary);cursor:pointer;font-size:15px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .2s ease}.tab:hover{color:var(--text-primary)}.tab.active{border-bottom-color:var(--primary-color);color:var(--primary-color)}.data-tabs{border-bottom:1px solid var(--border-color);flex-shrink:0;margin-bottom:20px;margin-top:-8px}.data-tabs .tab{font-size:14px;padding:10px 20px}.amortization-content{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);overflow-x:hidden;padding:16px}.phase-section{margin-bottom:24px;max-width:100%;overflow:hidden;width:100%}.phase-table-wrapper{background:var(--surface);display:block;max-width:100%;overflow-x:auto;overflow-y:visible;width:100%}.grand-total-section{margin-top:12px}.amortization-table{border-collapse:collapse;min-width:100%;width:-webkit-max-content;width:max-content}.amortization-table td,.amortization-table th{border-bottom:1px solid var(--border-color);font-size:13px;padding:10px 12px;white-space:nowrap}.amortization-table th{background-color:var(--hover-bg);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.3px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:2}.amortization-table td{background-color:var(--surface);color:var(--text-primary)}.amortization-table td:first-child,.amortization-table th:first-child{left:0;position:-webkit-sticky;position:sticky;z-index:3}.amortization-table thead th:first-child{background-color:var(--hover-bg);z-index:4}.amortization-table tbody tr.investor-row td:first-child{background-color:var(--surface)}.amortization-table td:nth-child(2),.amortization-table th:nth-child(2){left:40px;position:-webkit-sticky;position:sticky;z-index:3}.amortization-table thead th:nth-child(2){background-color:var(--hover-bg);z-index:4}.amortization-table tbody tr.investor-row td:nth-child(2){background-color:var(--surface)}.amortization-table td:nth-child(3),.amortization-table th:nth-child(3){left:220px;position:-webkit-sticky;position:sticky;z-index:3}.amortization-table thead th:nth-child(3){background-color:var(--hover-bg);z-index:4}.amortization-table tbody tr.investor-row td:nth-child(3){background-color:var(--surface)}.amortization-table .phase-header-row td:first-child,.amortization-table .phase-header-row td:nth-child(2),.amortization-table .phase-header-row td:nth-child(3){background-color:var(--primary-color)!important}.amortization-table .subtotal-row td:first-child,.amortization-table .subtotal-row td:nth-child(2),.amortization-table .subtotal-row td:nth-child(3){background-color:#e3f2fd!important}.amortization-table .grand-total-row td:first-child,.amortization-table .grand-total-row td:nth-child(2),.amortization-table .grand-total-row td:nth-child(3){background-color:#fff3e0!important}.amortization-table .col-num{text-align:center;width:40px}.amortization-table .col-name{max-width:180px;min-width:180px;width:180px}.amortization-table .col-currency,.amortization-table .col-date,.amortization-table .col-percent,.amortization-table .col-period{text-align:right}.amortization-table .col-currency{min-width:100px}.amortization-table .col-percent{min-width:80px}.amortization-table .col-date{min-width:100px}.amortization-table .col-period{min-width:80px}.phase-header-row td{background-color:var(--primary-color)!important;border-bottom:2px solid var(--primary-color);color:#fff;font-size:14px;font-weight:700;padding:12px}.phase-header-row td.phase-header-text{left:0;position:-webkit-sticky;position:sticky;z-index:5}.amortization-table tbody tr.investor-row:hover td,.amortization-table tbody tr.investor-row:hover td:first-child,.amortization-table tbody tr.investor-row:hover td:nth-child(2),.amortization-table tbody tr.investor-row:hover td:nth-child(3){background-color:var(--hover-bg)}.subtotal-row td{background-color:#e3f2fd!important;border-bottom:2px solid #bbdefb;color:#1565c0;font-weight:700}.grand-total-row td{background-color:#fff3e0!important;border-bottom:none;border-top:3px solid #ffb74d;color:#e65100;font-size:14px;font-weight:700}.amortization-table .col-name:after,.amortization-table .col-num:after,.amortization-table td:nth-child(3):after,.amortization-table th:nth-child(3):after{background:linear-gradient(90deg,#00000014,#0000);bottom:0;content:"";pointer-events:none;position:absolute;right:0;top:0;width:1px}@media (max-width:768px){.amortization-header{align-items:flex-start;flex-direction:column}.amortization-controls{flex-direction:column;width:100%}.product-selector{min-width:auto;width:100%}.btn-export{width:100%}.data-tabs,.tabs{overflow-x:auto;width:100%}.tab{white-space:nowrap}}.inmueble-form{max-width:1000px}.inmueble-form h3{color:var(--text-primary);font-size:22px;font-weight:700;margin:0 0 24px}.inmueble-form h4{border-bottom:1px solid var(--border-color);color:var(--text-secondary);font-size:14px;font-weight:600;letter-spacing:.5px;margin:24px 0 12px;padding-bottom:8px;text-transform:uppercase}.inmueble-form h4:first-of-type{margin-top:0}.form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,1fr);margin-bottom:4px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group.span-2{grid-column:span 2}.form-group.full-width{grid-column:span 3}.form-group label{color:var(--text-secondary);font-size:13px;font-weight:500}.form-group input,.form-group select,.form-group textarea{background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 12px;transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.form-group input.readonly-calc{background-color:var(--hover-bg);color:var(--text-secondary);cursor:default;font-weight:600}.form-group input.readonly-calc:focus{border-color:var(--border-color);box-shadow:none}.form-group textarea{min-height:60px;resize:vertical}.error-message{background-color:#fdecea;border-radius:6px;color:#c62828;font-size:14px;margin-bottom:16px;padding:12px 16px}.form-actions{border-top:1px solid var(--border-color);display:flex;gap:12px;justify-content:flex-end;margin-top:32px;padding-top:24px}.btn-primary{background-color:var(--primary-color);font-weight:600;padding:10px 24px;transition:all .2s ease}.btn-primary:hover:not(:disabled){opacity:.9}.btn-secondary{padding:10px 24px;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background-color:var(--hover-bg);color:var(--text-primary)}.btn-secondary:disabled{cursor:not-allowed;opacity:.6}@media (max-width:768px){.form-row{grid-template-columns:1fr}.form-group.full-width,.form-group.span-2{grid-column:span 1}}.generar-tickets-overlay{align-items:center;background:#00000080;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.generar-tickets-modal{background:#fff;background:var(--bg-secondary,#fff);border-radius:8px;box-shadow:0 20px 60px #0000004d;max-width:520px;padding:0;width:100%}.generar-tickets-header{align-items:center;border-bottom:1px solid #e5e7eb;border-bottom:1px solid var(--border-color,#e5e7eb);display:flex;justify-content:space-between;padding:1.25rem 1.5rem}.generar-tickets-header h3{color:#111827;color:var(--text-primary,#111827);font-size:1.125rem;font-weight:600;margin:0}.generar-tickets-close{background:none;border:none;color:#6b7280;color:var(--text-secondary,#6b7280);cursor:pointer;font-size:1.5rem;line-height:1;padding:0 .25rem}.generar-tickets-close:hover{color:#111827;color:var(--text-primary,#111827)}.generar-tickets-error{background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;color:#dc2626;font-size:.875rem;margin:1rem 1.5rem 0;padding:.75rem 1rem}.generar-tickets-form{display:flex;flex-direction:column;gap:1rem;padding:1.25rem 1.5rem 1.5rem}.generar-tickets-field{display:flex;flex-direction:column;gap:.375rem}.generar-tickets-field label{color:#374151;color:var(--text-primary,#374151);font-size:.875rem;font-weight:500}.generar-tickets-field input{background:#fff;background:var(--bg-primary,#fff);border:1px solid #d1d5db;border:1px solid var(--border-color,#d1d5db);border-radius:6px;color:#111827;color:var(--text-primary,#111827);font-size:.9rem;padding:.5rem .75rem}.generar-tickets-field input:disabled{background:#f9fafb;background:var(--bg-tertiary,#f9fafb);color:#6b7280;color:var(--text-secondary,#6b7280)}.generar-tickets-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.generar-tickets-calculated{background:#f9fafb;background:var(--bg-tertiary,#f9fafb);border:1px solid #e5e7eb;border:1px solid var(--border-color,#e5e7eb);border-radius:6px;display:flex;gap:1rem;padding:.875rem 1rem}.generar-tickets-calc-item{align-items:center;display:flex;flex:1 1;flex-direction:column;gap:.25rem}.generar-tickets-calc-label{color:#6b7280;color:var(--text-secondary,#6b7280);font-size:.75rem;font-weight:500;letter-spacing:.025em;text-transform:uppercase}.generar-tickets-calc-value{color:#111827;color:var(--text-primary,#111827);font-size:1.25rem;font-weight:700}.generar-tickets-actions{display:flex;gap:.75rem;justify-content:flex-end;padding-top:.5rem}.inmuebles-header{align-items:center;display:flex;justify-content:flex-end;margin-bottom:16px}.inmuebles-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0}.filters-container{margin-bottom:24px}.filters{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.filter-group{flex:1 1;min-width:180px}.filter-input,.filter-select{background-color:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:10px 14px;transition:all .2s ease;width:100%}.filter-input:focus,.filter-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.filter-input::placeholder{color:var(--text-secondary)}.btn-clear-filters{background-color:var(--hover-bg);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-size:14px;font-weight:500;padding:10px 20px;transition:all .2s ease;white-space:nowrap}.btn-clear-filters:hover{background-color:var(--border-color)}.inmuebles-content{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);overflow:hidden}.inmuebles-table{border-collapse:collapse;width:100%}.inmuebles-table thead{background-color:var(--hover-bg)}.inmuebles-table th{color:var(--text-secondary);font-size:12px;font-weight:600;letter-spacing:.5px;text-align:left;text-transform:uppercase;white-space:nowrap}.inmuebles-table td,.inmuebles-table th{border-bottom:1px solid var(--border-color);padding:14px 16px}.inmuebles-table td{color:var(--text-primary);font-size:14px}.inmuebles-table tbody tr:hover{background-color:var(--hover-bg)}.inmuebles-table tbody tr:last-child td{border-bottom:none}.actions-cell{white-space:nowrap}.actions{align-items:center;display:flex;gap:8px;justify-content:center}.empty-state,.loading{color:var(--text-secondary);font-size:16px;padding:48px;text-align:center}.form-container{padding:24px}.status-badge{border-radius:12px;display:inline-block;font-size:12px;font-weight:600;padding:3px 10px}.status-prospecto{background-color:#fff3e0;color:#f57c00}.status-estudio{background-color:#e3f2fd;color:#1565c0}.status-negociacion{background-color:#f3e5f5;color:#6a1b9a}.status-activo{background-color:#e8f5e9;color:#2e7d32}.ocupacion-badge{border-radius:12px;display:inline-block;font-size:11px;font-weight:600;padding:3px 10px;white-space:nowrap}.ocupacion-vacio{background-color:#f5f5f5;color:#616161}.ocupacion-alquilado{background-color:#e8f5e9;color:#2e7d32}.ocupacion-ocupado{background-color:#fce4ec;color:#c62828}body.dark-theme .status-prospecto{background-color:#f57c0026;color:#fb923c}body.dark-theme .status-estudio{background-color:#1565c026;color:#60a5fa}body.dark-theme .status-negociacion{background-color:#6a1b9a26;color:#c084fc}body.dark-theme .status-activo{background-color:#2e7d3226;color:#4ade80}body.dark-theme .ocupacion-vacio{background-color:#6b728026;color:#9ca3af}body.dark-theme .ocupacion-alquilado{background-color:#2e7d3226;color:#4ade80}body.dark-theme .ocupacion-ocupado{background-color:#c6282826;color:#f87171}@media (max-width:768px){.inmuebles-header{align-items:flex-start;gap:16px}.filters,.inmuebles-header{flex-direction:column}.filter-group{min-width:auto;width:100%}.inmuebles-table{font-size:12px}.inmuebles-table td,.inmuebles-table th{padding:10px 8px}}.ig-page{box-sizing:border-box;display:flex;flex-direction:column;gap:16px;padding:16px 0}.ig-header{align-items:center;display:flex;justify-content:flex-end;margin-bottom:8px}.ig-header h2{color:var(--text-primary);font-size:28px;font-weight:700;margin:0}.ig-controls{flex-wrap:wrap;gap:24px}.ig-control-group,.ig-controls{align-items:center;display:flex}.ig-control-group{gap:8px}.ig-control-group label{color:var(--text-secondary);font-weight:500;white-space:nowrap}.ig-select{background:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);cursor:pointer;font-family:inherit;font-size:13px;min-width:200px;padding:6px 10px}.ig-select:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.ig-year-nav{align-items:center;gap:4px}.ig-year-btn{background:none;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;font-family:inherit;font-size:16px;line-height:1;padding:4px 8px;transition:color .15s,background .15s}.ig-year-btn:hover{background:var(--hover-bg);color:var(--text-primary)}.ig-year-label{color:var(--text-primary);display:inline-block;font-size:14px;font-weight:600;min-width:44px;text-align:center}.ig-empty{color:var(--text-secondary);font-size:16px;padding:48px;text-align:center}.ig-table-wrapper{background:var(--surface);border-radius:0;box-shadow:0 2px 8px var(--shadow);overflow-x:auto;width:100%}.ig-table{border-collapse:collapse;width:100%}.ig-table thead th{background:var(--primary-color);border-bottom:2px solid var(--primary-color);color:#fff;font-size:11px;font-weight:600;letter-spacing:.3px;padding:10px 12px;position:-webkit-sticky;position:sticky;text-align:right;text-transform:uppercase;top:0;white-space:nowrap;z-index:2}.ig-table thead th.ig-col-concepto{text-align:left;z-index:4}.ig-col-concepto{background:var(--surface);border-right:1px solid var(--border-color);left:0;max-width:260px;min-width:200px;position:-webkit-sticky;position:sticky;z-index:2}.ig-concepto-cell{color:var(--text-primary);font-size:13px;overflow:hidden;padding:10px 12px;text-overflow:ellipsis;white-space:nowrap}.ig-col-mes{min-width:80px;text-align:right}.ig-col-total{min-width:95px;text-align:right}.ig-category-header td{background-color:var(--hover-bg)!important;border-top:1px solid var(--border-color);color:var(--text-secondary);font-size:11px;font-weight:700;letter-spacing:.3px;padding:6px 12px;text-transform:uppercase}.ig-category-header td,.ig-table tbody td{border-bottom:1px solid var(--border-color)}.ig-table tbody td{background-color:var(--surface);color:var(--text-primary);font-size:13px;padding:10px 12px;vertical-align:middle}.ig-table tbody tr:not(.ig-category-header):hover .ig-col-concepto,.ig-table tbody tr:not(.ig-category-header):hover td{background-color:var(--hover-bg)}.ig-cell{cursor:pointer;text-align:right;white-space:nowrap}.ig-cell-multi{cursor:default;font-style:italic;opacity:.85}.ig-total{background-color:#e3f2fd!important;border-left:2px solid #bbdefb!important;color:#1565c0!important;font-weight:700;text-align:right;white-space:nowrap}.ig-table thead th.ig-col-total{border-left:2px solid #fff6}.ig-grand-total-row td{background-color:#fff3e0!important;border-bottom:none;border-top:3px solid #ffb74d;font-size:13px;font-weight:700}.ig-grand-total-row .ig-col-concepto{color:#e65100;letter-spacing:.04em;text-transform:uppercase}.ig-grand-total-cell{color:#e65100;text-align:right;white-space:nowrap}.ig-grand-total-cell.ig-total{background-color:#ffe0b2!important;border-left:2px solid #ffb74d!important;color:#e65100!important}.ig-spacer-row td{background-color:initial!important;border:none!important;height:12px;padding:0!important}.ig-derived-row td{border-bottom:none;font-size:13px;font-weight:700}.ig-derived-row .ig-col-concepto{letter-spacing:.04em;text-transform:uppercase}.ig-derived-cell,.ig-derived-cell-total{text-align:right;white-space:nowrap}.ig-derived-cell-total{border-left:2px solid #0000}.ig-resultado-row td{background-color:#e91e630f!important;border-top:2px solid var(--primary-color)!important;color:var(--primary-dark)}.ig-resultado-row .ig-derived-cell-total{background-color:#e91e631f!important;border-left-color:var(--primary-color)!important;color:var(--primary-dark)!important}.ig-inversores-row td,.ig-reinversion-row td,.ig-reserva-row td{background-color:var(--hover-bg)!important;border-top:1px solid var(--border-color)!important;color:var(--text-secondary)}.ig-inversores-row .ig-derived-cell-total,.ig-reinversion-row .ig-derived-cell-total,.ig-reserva-row .ig-derived-cell-total{background-color:var(--border-color)!important;border-left-color:var(--text-secondary)!important;color:var(--text-primary)!important}.ig-neta-row td{background-color:var(--hover-bg)!important;border-top:1px solid var(--border-color)!important;color:var(--text-primary);font-style:italic}.ig-neta-row .ig-derived-cell-total{background-color:var(--border-color)!important;border-left-color:var(--text-secondary)!important;color:var(--text-primary)!important;font-style:italic}.ig-no-data{color:var(--text-secondary);font-size:14px;padding:48px;text-align:center}.negative{color:#c0392b}.btn-primary{background:var(--primary-color);border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:filter .15s;white-space:nowrap}.btn-primary:hover{filter:brightness(.9)}.btn-primary:disabled{cursor:not-allowed;opacity:.6}.btn-secondary{background:none;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:all .15s}.btn-secondary:hover{background:var(--hover-bg);color:var(--text-primary)}.btn-danger{background:#e74c3c;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:500;padding:8px 16px;transition:background .15s}.btn-danger:hover{background:#c0392b}.btn-danger:disabled{cursor:not-allowed;opacity:.6}.ig-modal-overlay{align-items:center;background:#0006;display:flex;inset:0;justify-content:center;position:fixed;z-index:1000}.ig-modal{background:var(--surface);border-radius:10px;box-shadow:0 8px 32px #0000002e;max-width:480px;min-width:380px;padding:24px;width:100%}.ig-modal-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.ig-modal-header h3{color:var(--text-primary);font-size:1.1rem;margin:0}.ig-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;font-size:22px;line-height:1;padding:0 4px}.ig-modal-close:hover{color:var(--text-primary)}.ig-modal-form{gap:14px}.ig-form-group,.ig-modal-form{display:flex;flex-direction:column}.ig-form-group{gap:4px}.ig-form-group label{color:var(--text-secondary);font-size:13px;font-weight:500}.ig-form-row{grid-gap:12px;display:grid;gap:12px;grid-template-columns:1fr 1fr}.ig-form-row.ig-form-row-3{grid-template-columns:1fr 2fr 1fr}.ig-input{background:var(--surface);border:1px solid var(--border-color);border-radius:6px;color:var(--text-primary);font-family:inherit;font-size:14px;padding:8px 10px}.ig-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #e91e631a;outline:none}.ig-autocomplete-group{position:relative}.ig-autocomplete-list{background:var(--surface);border:1px solid var(--border-color);border-radius:6px;box-shadow:0 4px 12px #0000001f;left:0;list-style:none;margin:2px 0 0;max-height:180px;overflow-y:auto;padding:4px 0;position:absolute;right:0;top:100%;z-index:10}.ig-autocomplete-item{color:var(--text-primary);cursor:pointer;font-size:14px;padding:7px 12px}.ig-autocomplete-item:hover{background:var(--hover-bg)}.ig-hint{color:var(--text-secondary);font-size:12px;font-weight:400}.ig-form-error{background:#fdecea;border-radius:4px;color:#c0392b;font-size:13px;padding:6px 10px}.ig-modal-actions{align-items:center;display:flex;gap:10px;justify-content:space-between;margin-top:4px}.ig-modal-actions-right{display:flex;gap:10px;margin-left:auto}.inmueble-tickets-page{padding:1.5rem}.inmueble-tickets-header{align-items:center;display:flex;gap:1rem;margin-bottom:2rem}.inmueble-tickets-header h2{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin:0}.it-operacion-card{background:var(--surface);border:1px solid var(--border-color);border-radius:8px;box-shadow:0 1px 3px var(--shadow);margin-bottom:1.5rem;overflow:hidden}.it-operacion-header{border-bottom:1px solid var(--border-color);padding:1.25rem 1.5rem}.it-operacion-title{align-items:center;display:flex;gap:.75rem;margin-bottom:1rem}.it-op-badge{color:var(--text-primary);font-size:1.05rem;font-weight:700}.it-op-count{background:var(--primary-color);border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.2rem .65rem}.it-operacion-meta{display:flex;flex-wrap:wrap;gap:2rem}.it-meta-item{display:flex;flex-direction:column;gap:.2rem}.it-meta-label{color:var(--text-secondary);font-size:.7rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.it-meta-value{color:var(--text-primary);font-size:.95rem;font-weight:600}.it-tickets-table{border-collapse:collapse;width:100%}.it-tickets-table thead{border-bottom:2px solid var(--border-color)}.it-tickets-table th{background:var(--hover-bg);color:var(--text-secondary);font-size:.8rem;font-weight:600;padding:.75rem 1.5rem;text-align:left;white-space:nowrap}.it-tickets-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);font-size:.875rem;padding:.65rem 1.5rem}.it-tickets-table tr:last-child td{border-bottom:none}.it-tickets-table tbody tr:hover td{background:var(--hover-bg)}.it-ticket-id{color:var(--primary-color);font-family:Courier New,monospace;font-weight:600}.it-investor-name{font-weight:500}.it-investor-empty{color:var(--text-secondary)}.it-estado-badge{border-radius:9999px;display:inline-block;font-size:.75rem;font-weight:600;padding:.2rem .65rem;white-space:nowrap}.it-activo{background:#dcfce7;color:#065f46}.it-inactivo{background:#f3f4f6;color:#6b7280}.it-error{background:#dc262614;border:1px solid #dc262640;border-radius:6px;color:#dc2626;margin-bottom:1rem;padding:.75rem 1rem}body.dark-theme .it-activo{background:#16a34a26;color:#4ade80}body.dark-theme .it-inactivo{background:#6b728026;color:#9ca3af}body.dark-theme .it-error{background:#dc26261a;border-color:#dc26264d;color:#f87171}@media (max-width:768px){.inmueble-tickets-header{align-items:flex-start;flex-direction:column;gap:.75rem}.it-operacion-meta{gap:1rem}.it-tickets-table td,.it-tickets-table th{padding:.55rem .75rem}}.cartera-page{display:flex;flex-direction:column;max-width:100%;overflow-x:hidden;width:100%}.cartera-page .tabs{flex-shrink:0}.cartera-error{background:#c6282814;border:1px solid #c6282840;border-radius:6px;color:#c62828;margin:16px;padding:12px 16px}.cartera-content{background:var(--surface);border-radius:8px;box-shadow:0 2px 8px var(--shadow);overflow-x:hidden;padding:16px}.cartera-table-wrapper{background:var(--surface);display:block;max-width:100%;overflow-x:auto;overflow-y:visible;width:100%}.cartera-table{border-collapse:collapse;min-width:100%;width:-webkit-max-content;width:max-content}.cartera-table td,.cartera-table th{border-bottom:1px solid var(--border-color);font-size:13px;padding:10px 12px;white-space:nowrap}.cartera-table th{background-color:var(--hover-bg);color:var(--text-secondary);font-size:11px;font-weight:600;letter-spacing:.3px;position:-webkit-sticky;position:sticky;text-align:left;text-transform:uppercase;top:0;z-index:2}.cartera-table td{background-color:var(--surface);color:var(--text-primary)}.cartera-section-header td{background-color:var(--primary-color)!important;border-bottom:2px solid var(--primary-color);color:#fff;font-size:14px;font-weight:700;padding:12px}.cartera-section-title{left:0;position:-webkit-sticky;position:sticky;z-index:5}.cartera-table td:first-child,.cartera-table th:first-child{left:0;position:-webkit-sticky;position:sticky;z-index:3}.cartera-table thead th:first-child{background-color:var(--hover-bg);z-index:4}.cartera-table tbody .cartera-data-row td:first-child{background-color:var(--surface)}.cartera-table td:nth-child(2),.cartera-table th:nth-child(2){left:52px;position:-webkit-sticky;position:sticky;z-index:3}.cartera-table thead th:nth-child(2){background-color:var(--hover-bg);z-index:4}.cartera-table tbody .cartera-data-row td:nth-child(2){background-color:var(--surface)}.cartera-table td:nth-child(3),.cartera-table th:nth-child(3){left:140px;position:-webkit-sticky;position:sticky;z-index:3}.cartera-table thead th:nth-child(3){background-color:var(--hover-bg);z-index:4}.cartera-table tbody .cartera-data-row td:nth-child(3){background-color:var(--surface)}.cartera-section-header td:first-child,.cartera-section-header td:nth-child(2),.cartera-section-header td:nth-child(3){background-color:var(--primary-color)!important}.cartera-totals-row td:first-child,.cartera-totals-row td:nth-child(2),.cartera-totals-row td:nth-child(3){background-color:#e3f2fd!important}.cartera-table tbody tr.cartera-data-row:hover td,.cartera-table tbody tr.cartera-data-row:hover td:first-child,.cartera-table tbody tr.cartera-data-row:hover td:nth-child(2),.cartera-table tbody tr.cartera-data-row:hover td:nth-child(3){background-color:var(--hover-bg)}.cartera-table td:nth-child(3):after,.cartera-table th:nth-child(3):after{background:linear-gradient(90deg,#0000000f,#0000);bottom:0;content:"";pointer-events:none;position:absolute;right:-1px;top:0;width:4px}.cartera-col-num{min-width:52px;text-align:center;width:52px}.cartera-col-codigo{min-width:88px;width:88px}.cartera-col-activo{max-width:200px;min-width:160px;overflow:hidden;text-overflow:ellipsis}.cartera-td-money{min-width:110px;text-align:right}.cartera-td-number{font-weight:600;text-align:center}.cartera-td-date{min-width:100px;text-align:center}.cartera-td-pct{min-width:100px}.cartera-td-coef,.cartera-td-pct{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.cartera-td-coef{min-width:80px}.cartera-codigo-badge{background-color:var(--primary-color);border-radius:12px;color:#fff;display:inline-block;font-size:11px;font-weight:600;letter-spacing:.3px;padding:3px 10px}.cartera-totals-row td{background-color:#e3f2fd!important;border-bottom:none;border-top:2px solid #bbdefb;color:#1565c0;font-size:13px;font-weight:700}body.dark-theme .cartera-totals-row td{background-color:#1565c01f!important;border-top-color:#3b82f64d;color:#60a5fa}body.dark-theme .cartera-totals-row td:first-child,body.dark-theme .cartera-totals-row td:nth-child(2),body.dark-theme .cartera-totals-row td:nth-child(3){background-color:#1565c01f!important}body.dark-theme .cartera-error{color:#f87171}.cartera-th-timeline{border-left:2px solid var(--border-color);color:var(--text-primary);font-size:12px!important;font-weight:700;text-align:center!important}.cartera-th-quarter{border-left:1px solid var(--border-color);min-width:100px;padding:6px 8px!important;text-align:center!important}.cartera-quarter-header{align-items:center;display:flex;flex-direction:column;gap:2px}.cartera-quarter-op{background-color:var(--primary-color);border-radius:8px;color:#fff;display:inline-block;font-size:10px;font-weight:700;line-height:1.4;padding:1px 6px}.cartera-quarter-label{font-size:11px;font-weight:700;text-transform:none}.cartera-quarter-date{color:var(--text-secondary);font-size:9px;font-weight:400;text-transform:none}.cartera-td-timeline{font-feature-settings:"tnum";border-left:1px solid var(--border-color);color:var(--text-secondary);font-size:12px;font-variant-numeric:tabular-nums;min-width:100px;text-align:right}.cartera-td-active{color:var(--primary-color);font-weight:600}@media (max-width:768px){.cartera-page .tabs{overflow-x:auto;width:100%}.cartera-page .tab{white-space:nowrap}}.notfound-container{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:70vh;overflow:hidden;padding:40px 20px;position:relative}.notfound-logo{margin-bottom:32px;width:280px}.notfound-title{color:#333;color:var(--text-color,#333);font-size:24px;font-weight:600;margin:0 0 12px;text-align:center}.notfound-text{color:#888;color:var(--text-secondary,#888);font-size:16px;margin:0 0 28px;text-align:center}.notfound-link{background:#4a90d9;border-radius:8px;color:#fff;display:inline-block;font-size:15px;font-weight:500;padding:12px 32px;text-decoration:none;transition:background .2s}.notfound-link:hover{background:#3a7bc8}.App{min-height:100vh}
/*# sourceMappingURL=main.dab76aff.css.map*/