:root{--bg-primary:#fff;--bg-secondary:#f8f9fa;--bg-tertiary:#f1f3f5;--bg-card:#fff;--text-primary:#1a1a2e;--text-secondary:#495057;--text-muted:#868e96;--border-color:#e9ecef;--border-hover:#dee2e6;--accent:#4263eb;--accent-hover:#3b5bdb;--accent-light:#dbe4ff;--success:#2b8a3e;--success-bg:#ebfbee;--warning:#e67700;--warning-hover:#d46900;--warning-bg:#fff9db;--danger:#c92a2a;--danger-bg:#fff5f5;--critical:#e03131;--critical-bg:#ffe3e3;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--shadow-lg:0 10px 25px #0000001a;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:"SF Mono", "Fira Code", "Fira Mono", monospace;--transition:.15s ease}[data-theme=dark]{--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#21262d;--bg-card:#161b22;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#6e7681;--border-color:#30363d;--border-hover:#484f58;--accent:#5c7cfa;--accent-hover:#748ffc;--accent-light:#1c2541;--success:#3fb950;--success-bg:#0d2818;--warning:#d29922;--warning-hover:#bb8a1f;--warning-bg:#2a1f00;--danger:#f85149;--danger-bg:#2d1117;--critical:#ff6b6b;--critical-bg:#2d1117;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006;--shadow-lg:0 10px 25px #00000080}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app-layout{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:100;justify-content:space-between;align-items:center;height:56px;padding:0 24px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:32px;display:flex}.app-logo{color:var(--text-primary);letter-spacing:-.02em;font-size:1.5rem;font-weight:700}.main-nav{gap:4px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition);padding:6px 12px;font-size:.875rem;font-weight:500;text-decoration:none}.nav-link:hover{color:var(--text-primary);background:var(--bg-tertiary);text-decoration:none}.nav-link.active{color:var(--accent);background:var(--accent-light)}.header-right{align-items:center;gap:16px;display:flex}.notification-bell{cursor:pointer;border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition);background:0 0;border:none;padding:8px;position:relative}.notification-bell:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-badge{background:var(--danger);color:#fff;border-radius:8px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.625rem;font-weight:700;display:flex;position:absolute;top:2px;right:2px}.agent-info{align-items:center;gap:8px;display:flex}.agent-name{color:var(--text-secondary);font-size:.875rem;font-weight:500}.btn-logout{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);background:0 0;padding:4px 12px;font-size:.8125rem}.btn-logout:hover{border-color:var(--danger);color:var(--danger)}.app-main{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:24px}.page-container{animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-header h2{color:var(--text-primary);font-size:1.25rem;font-weight:600}.page-actions{align-items:center;gap:8px;display:flex}.search-bar{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color var(--transition);align-items:center;gap:8px;padding:6px 12px;display:flex}.search-bar:focus-within{border-color:var(--accent)}.search-bar svg{color:var(--text-muted);flex-shrink:0}.search-bar input{color:var(--text-primary);background:0 0;border:none;outline:none;width:220px;font-size:.875rem}.search-bar input::placeholder{color:var(--text-muted)}.btn-primary{background:var(--accent);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition);white-space:nowrap;border:none;padding:8px 16px;font-size:.875rem;font-weight:500}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);padding:8px 16px;font-size:.875rem;font-weight:500}.btn-secondary:hover{border-color:var(--border-hover);background:var(--bg-tertiary)}.btn-small{padding:4px 10px;font-size:.8125rem}.btn-full{width:100%}.btn-back{color:var(--text-secondary);cursor:pointer;transition:color var(--transition);background:0 0;border:none;margin-bottom:16px;padding:4px 0;font-size:.875rem}.btn-back:hover{color:var(--text-primary)}.table-container{border:1px solid var(--border-color);border-radius:var(--radius-md);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:.8125rem}.data-table thead{background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.data-table th{text-align:left;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;padding:10px 12px;font-size:.75rem;font-weight:600}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition)}.sortable-header:hover{color:var(--text-primary)}.sort-icon{opacity:.5;font-size:.75rem}.data-table td{border-bottom:1px solid var(--border-color);color:var(--text-primary);vertical-align:middle;padding:10px 12px}.data-table tbody tr:last-child td{border-bottom:none}.table-row-clickable{cursor:pointer;transition:background var(--transition)}.table-row-clickable:hover{background:var(--bg-secondary)}.cell-name{font-weight:500}.cell-price{font-family:var(--font-mono);font-size:.8125rem}.cell-notes{text-overflow:ellipsis;white-space:nowrap;max-width:200px;color:var(--text-secondary);font-size:.8125rem;overflow:hidden}.expiration-label{margin-top:2px;font-size:.75rem;font-weight:500}.expiration-label.safe{color:var(--success)}.expiration-label.soon,.expiration-label.warning{color:var(--warning)}.expiration-label.critical{color:var(--critical)}.expiration-label.expired{color:var(--danger)}.status-badge{border-radius:12px;padding:2px 8px;font-size:.75rem;font-weight:500;display:inline-block}.status-vigente{background:var(--success-bg);color:var(--success)}.status-por_vencer{background:var(--warning-bg);color:var(--warning)}.status-vencida{background:var(--danger-bg);color:var(--danger)}.status-en_gestion{background:var(--accent-light);color:var(--accent)}.status-select{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;background:var(--bg-card);color:var(--text-primary);padding:4px 8px;font-size:.75rem;font-weight:500}.status-select.status-vigente{border-color:var(--success)}.status-select.status-por_vencer{border-color:var(--warning)}.status-select.status-vencida{border-color:var(--danger)}.status-select.status-en_gestion{border-color:var(--accent)}.filter-bar{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.filter-btn{border:1px solid var(--border-color);background:var(--bg-card);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);border-radius:20px;padding:6px 14px;font-size:.8125rem}.filter-btn:hover{border-color:var(--accent);color:var(--accent)}.filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.row-critical{border-left:3px solid var(--critical)}.row-expired{border-left:3px solid var(--danger)}.row-warning,.row-soon{border-left:3px solid var(--warning)}.notes-editor{flex-direction:column;gap:4px;display:flex}.notes-editor textarea{border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.8125rem;font-family:var(--font-sans);resize:vertical;background:var(--bg-card);color:var(--text-primary);padding:6px 8px}.notes-actions{gap:4px;display:flex}.notes-display{cursor:pointer;text-align:left;color:var(--text-secondary);border-radius:var(--radius-sm);text-overflow:ellipsis;white-space:nowrap;max-width:200px;transition:background var(--transition);background:0 0;border:none;padding:2px 4px;font-size:.8125rem;overflow:hidden}.notes-display:hover{background:var(--bg-tertiary)}.empty-state{text-align:center;color:var(--text-muted);padding:40px 20px;font-size:.875rem}.loading-state{text-align:center;color:var(--text-muted);padding:40px 20px}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border-radius:var(--radius-lg);width:90%;max-width:440px;max-height:90vh;box-shadow:var(--shadow-lg);padding:24px;overflow-y:auto}.modal-content.modal-large{max-width:560px}.modal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.modal-header h2{font-size:1.125rem;font-weight:600}.modal-close{cursor:pointer;color:var(--text-muted);background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.modal-form{flex-direction:column;gap:16px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.form-group{flex-direction:column;gap:4px;display:flex}.form-group label{color:var(--text-secondary);font-size:.8125rem;font-weight:500}.form-group input,.form-group select{border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-primary);background:var(--bg-card);transition:border-color var(--transition);padding:8px 12px;font-size:.875rem}.form-group input:focus,.form-group select:focus{border-color:var(--accent);outline:none}.form-group textarea{border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:.875rem;font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-card);resize:vertical;transition:border-color var(--transition);padding:8px 12px}.form-group textarea:focus{border-color:var(--accent);outline:none}.form-section{border:1px solid var(--border-color);border-radius:var(--radius-md);margin:0;padding:16px}.form-section legend{color:var(--text-primary);padding:0 8px;font-size:.875rem;font-weight:600}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h3{margin-bottom:0}.form-error{color:var(--danger);font-size:.8125rem}.login-page{background:var(--bg-secondary);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:380px;box-shadow:var(--shadow-md);padding:40px}.login-header{text-align:center;margin-bottom:32px}.login-header h1{margin-bottom:4px;font-size:1.5rem;font-weight:700}.login-header p{color:var(--text-muted);font-size:.875rem}.login-form{flex-direction:column;gap:16px;display:flex}.login-hint{text-align:center;color:var(--text-muted);margin-top:20px;font-size:.8125rem}.profile-header{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);align-items:flex-start;gap:20px;margin-bottom:32px;padding:24px;display:flex}.avatar{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:64px;height:64px;font-size:1.25rem;font-weight:700;display:flex}.profile-info h2{margin-bottom:8px;font-size:1.25rem;font-weight:600}.profile-meta{color:var(--text-secondary);flex-wrap:wrap;gap:16px;margin-bottom:12px;font-size:.875rem;display:flex}.profile-edit-form{flex-direction:column;gap:12px;max-width:360px;display:flex}.profile-edit-actions{gap:8px;display:flex}.profile-policies h3{margin-bottom:16px;font-size:1rem;font-weight:600}.policies-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;display:grid}.policy-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:box-shadow var(--transition);padding:16px}.policy-card:hover{box-shadow:var(--shadow-md)}.card-safe{border-left:3px solid var(--success)}.card-soon,.card-warning{border-left:3px solid var(--warning)}.card-critical{border-left:3px solid var(--critical)}.card-expired{border-left:3px solid var(--danger)}.policy-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.policy-type{font-size:.9375rem;font-weight:600}.policy-card-body{flex-direction:column;gap:8px;display:flex}.policy-detail{justify-content:space-between;font-size:.8125rem;display:flex}.policy-detail .label{color:var(--text-muted)}.theme-toggle{border:1px solid var(--border-color);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition);background:0 0;align-items:center;padding:6px 8px;display:flex}.theme-toggle:hover{border-color:var(--border-hover);color:var(--text-primary)}@media (width<=768px){.app-header{flex-wrap:wrap;gap:8px;height:auto;padding:8px 12px}.header-left{flex-direction:column;align-items:flex-start;gap:8px}.main-nav{width:100%}.nav-link{text-align:center;flex:1}.app-main{padding:16px}.page-header{flex-direction:column;align-items:flex-start}.page-actions{flex-direction:column;width:100%}.search-bar input,.search-bar{width:100%}.profile-header{text-align:center;flex-direction:column;align-items:center}.profile-meta{justify-content:center}.policies-grid,.form-row{grid-template-columns:1fr}.filter-bar{flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}}@media (width<=480px){.login-card{padding:24px}.agent-name{display:none}}.policy-actions{border-top:1px solid var(--border-color);margin-top:12px;padding-top:12px}.btn-renew{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:100%;transition:all var(--transition);border:none;padding:8px 16px;font-size:.875rem;font-weight:600;box-shadow:0 2px 4px #4263eb33}.btn-renew:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #4263eb4d}.btn-renew:disabled{opacity:.5;cursor:not-allowed;background:var(--bg-tertiary);color:var(--text-muted);box-shadow:none}.renewal-info{background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:16px;padding:16px}.renewal-info .info-row{justify-content:space-between;padding:6px 0;font-size:.875rem;display:flex}.renewal-info .info-row .label{color:var(--text-secondary);font-weight:500}.renewal-history{border-top:1px solid var(--border-color);margin-top:20px;padding-top:20px}.renewal-history h4{color:var(--text-primary);margin-bottom:12px;font-size:.9375rem;font-weight:600}.renewal-list{flex-direction:column;gap:8px;max-height:200px;display:flex;overflow-y:auto}.renewal-item{background:var(--bg-secondary);border-radius:var(--radius-sm);border-left:3px solid var(--accent);padding:12px}.renewal-date{color:var(--text-muted);margin-bottom:4px;font-size:.75rem}.renewal-details{flex-direction:column;gap:4px;font-size:.8125rem;display:flex}.app-header{background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-secondary) 100%);box-shadow:0 2px 8px #00000014}.main-nav{background:var(--bg-tertiary);border-radius:var(--radius-md);gap:8px;width:100%;padding:4px;display:flex}.nav-link{border-radius:var(--radius-sm);color:var(--text-secondary);transition:all var(--transition);text-align:center;flex:1;padding:12px 24px;font-size:1rem;font-weight:600;text-decoration:none;position:relative}.nav-link:hover{color:var(--text-primary);background:var(--bg-card);box-shadow:var(--shadow-sm);text-decoration:none}.nav-link.active{color:#fff;background:linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);box-shadow:0 4px 12px #4263eb4d}.nav-link.active:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--accent-hover);width:0;height:0;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.por-vencer{border-radius:var(--radius-sm);color:var(--warning);border:2px solid var(--warning);transition:all var(--transition);text-align:center;background:linear-gradient(135deg,#e677001a 0%,#ff98001a 100%);flex:1;padding:12px 24px;font-size:1rem;font-weight:600;text-decoration:none;position:relative;box-shadow:0 2px 8px #e6770033}.por-vencer:hover{color:var(--warning-hover,#d46900);background:linear-gradient(135deg,#e6770033 0%,#ff980033 100%);text-decoration:none;transform:translateY(-1px);box-shadow:0 4px 12px #e677004d}.por-vencer.active{color:#fff;background:linear-gradient(135deg, var(--warning) 0%, var(--warning-hover,#d46900) 100%);border-color:var(--warning-hover,#d46900);transform:translateY(-1px);box-shadow:0 4px 12px #e6770066}.por-vencer.active:after{content:"";border-left:8px solid #0000;border-right:8px solid #0000;border-top:8px solid var(--warning-hover,#d46900);width:0;height:0;position:absolute;bottom:-8px;left:50%;transform:translate(-50%)}.data-table{box-shadow:var(--shadow-sm)}.data-table thead{background:linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-tertiary) 100%)}.data-table tbody tr{transition:all var(--transition)}.data-table tbody tr:hover{background:linear-gradient(90deg, var(--bg-secondary) 0%, transparent 100%);transform:scale(1.001)}.table-row-clickable{border-left:4px solid #0000}.table-row-clickable.row-safe{border-left-color:var(--success);background:linear-gradient(90deg, var(--success-bg) 0%, transparent 20%)}.table-row-clickable.row-soon,.table-row-clickable.row-warning{border-left-color:var(--warning);background:linear-gradient(90deg, var(--warning-bg) 0%, transparent 20%)}.table-row-clickable.row-critical,.table-row-clickable.row-expired{border-left-color:var(--danger);background:linear-gradient(90deg, var(--danger-bg) 0%, transparent 20%)}.policy-card{box-shadow:var(--shadow-sm);transition:all var(--transition)}.policy-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-safe{border-left:4px solid var(--success);background:linear-gradient(135deg, var(--bg-card) 0%, var(--success-bg) 100%)}.card-soon,.card-warning{border-left:4px solid var(--warning);background:linear-gradient(135deg, var(--bg-card) 0%, var(--warning-bg) 100%)}.card-critical,.card-expired{border-left:4px solid var(--danger);background:linear-gradient(135deg, var(--bg-card) 0%, var(--danger-bg) 100%)}.page-header{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);margin-bottom:24px;padding:16px 20px}.page-header h2{background:linear-gradient(135deg, var(--text-primary) 0%, var(--text-secondary) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:700}.profile-header{box-shadow:var(--shadow-md);background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-secondary) 100%)}.avatar{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);box-shadow:0 4px 12px #4263eb4d}.modal-content{background:linear-gradient(135deg, var(--bg-card) 0%, var(--bg-secondary) 100%);box-shadow:0 20px 60px #0000004d}.btn-primary{background:linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);transition:all var(--transition);box-shadow:0 2px 8px #4263eb4d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #4263eb66}.notification-badge{background:linear-gradient(135deg, var(--danger) 0%, #ff6b6b 100%);animation:2s infinite pulse;box-shadow:0 2px 8px #c92a2a66}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}
