.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3d7e00,#4d9e00,#6ec200);padding:var(--spacing-lg)}.login-container{width:100%;max-width:480px}.login-card{background:var(--color-bg-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl);padding:var(--spacing-2xl);animation:slideUp var(--transition-normal)}.login-header{text-align:center;margin-bottom:var(--spacing-xl)}.login-logo{width:100%;max-width:300px;height:auto;margin:0 auto var(--spacing-xs);border-radius:var(--border-radius-md);display:block}.login-title{font-family:Poppins,sans-serif;font-size:3rem;font-weight:700;color:#007f5b;margin-bottom:var(--spacing-md);letter-spacing:-1px;line-height:1.1;border-radius:12px;padding:0 var(--spacing-md);display:inline-block}.login-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary)}.login-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.login-error{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-danger-light);color:var(--color-danger);border-radius:var(--border-radius-md);font-size:var(--font-size-sm)}.login-error svg{width:20px;height:20px;flex-shrink:0}.login-btn{width:100%;margin-top:var(--spacing-md);background-color:#007f5b;border-color:#007f5b;color:#fff;font-weight:600;padding-top:12px;padding-bottom:12px;transition:background-color .2s}.login-btn:hover{background-color:#006649;border-color:#006649}.login-footer{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:var(--border-width) solid var(--border-color);text-align:center}.login-footer p{font-size:var(--font-size-xs);color:var(--color-text-muted);margin-bottom:var(--spacing-xs)}.login-hint{background:var(--color-bg-tertiary);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);font-size:var(--font-size-xs)!important}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:var(--spacing-md);color:var(--color-text-secondary)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.stat-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:var(--border-width) solid var(--border-color);transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.stat-icon{width:48px;height:48px;border-radius:var(--border-radius-md);display:flex;align-items:center;justify-content:center}.stat-icon svg{width:24px;height:24px}.stat-card-primary .stat-icon{background:var(--color-primary-100);color:var(--color-primary-600)}.stat-card-info .stat-icon{background:var(--color-info-light);color:var(--color-info)}.stat-card-warning .stat-icon{background:var(--color-warning-light);color:var(--color-warning)}.stat-card-success .stat-icon{background:var(--color-success-light);color:var(--color-success)}.stat-card-danger .stat-icon{background:var(--color-danger-light);color:var(--color-danger)}.stat-info{display:flex;flex-direction:column}.stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1}.stat-label{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.placa-link{font-weight:var(--font-weight-semibold);color:var(--color-primary-600)}.placa-link:hover{text-decoration:underline}.cell-propietario{display:flex;flex-direction:column}.propietario-nombre{font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.propietario-cedula{font-size:var(--font-size-xs);color:var(--color-text-muted)}@media (max-width: 768px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat-card{padding:var(--spacing-md)}.stat-icon{width:40px;height:40px}.stat-value{font-size:var(--font-size-xl)}}.filters-bar{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.filters-bar .search-box{flex:1;min-width:250px}.filter-group{display:flex;align-items:center;gap:var(--spacing-sm);color:var(--color-text-muted)}.filter-group svg{width:18px;height:18px}.filter-select{min-width:180px}.th-actions{text-align:center;width:180px}.placa-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);background:var(--color-neutral-100);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);border-radius:var(--border-radius-sm);font-family:Courier New,monospace;letter-spacing:.5px}.cell-propietario-name{max-width:200px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-vehiculo{display:block;font-weight:var(--font-weight-medium)}.cell-color{display:block;font-size:var(--font-size-xs);color:var(--color-text-muted)}.cell-registrado{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.actions-cell{display:flex;align-items:center;justify-content:center;gap:var(--spacing-xs)}.btn-danger-ghost:hover{color:var(--color-danger)!important;background-color:var(--color-danger-light)!important}.row-deleting{opacity:.5;pointer-events:none}.loading-container{display:flex;align-items:center;justify-content:center;min-height:200px}@media (max-width: 1200px){.table{font-size:var(--font-size-xs)}.cell-propietario-name{max-width:150px}.th-actions{width:140px}}@media (max-width: 768px){.filters-bar{flex-direction:column}.filters-bar .search-box,.filter-select{width:100%}}.badge-vigente{display:inline-flex;align-items:center;justify-content:center;background-color:#10b981;color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .5rem;border-radius:4px;letter-spacing:.05em}.vencida-row-highlight{border-left:4px solid var(--color-danger, #ef4444)}.alert-banner{display:flex;align-items:center;gap:var(--spacing-sm);background-color:var(--color-danger-light);color:var(--color-danger);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);border:var(--border-width) solid rgba(239,68,68,.2);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.alert-banner svg{width:20px;height:20px;flex-shrink:0}.page-header-info{display:flex;align-items:center}.patent-form{max-width:900px}.form-error-banner{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);margin:var(--spacing-lg);margin-bottom:0;background:var(--color-danger-light);color:var(--color-danger);border-radius:var(--border-radius-md);font-size:var(--font-size-sm)}.form-error-banner svg{width:20px;height:20px;flex-shrink:0}.form-section{padding:var(--spacing-lg);border-bottom:var(--border-width) solid var(--border-color)}.form-section:last-of-type{border-bottom:none}.form-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--color-primary-100)}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md) var(--spacing-lg)}.form-group-lg{grid-column:span 2}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);padding:var(--spacing-lg);background:var(--color-bg-secondary);border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg)}@media (max-width: 768px){.form-grid{grid-template-columns:1fr}.form-group-lg{grid-column:span 1}.form-actions{flex-direction:column-reverse}.form-actions .btn{width:100%}}.page-header-actions{display:flex;gap:var(--spacing-sm)}.btn-back{margin-right:var(--spacing-md)}.btn-back svg{width:20px;height:20px}.detail-grid{display:grid;grid-template-columns:1fr 320px;gap:var(--spacing-lg)}.detail-cards{display:flex;flex-direction:column;gap:var(--spacing-lg)}.detail-card-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-bottom:var(--border-width) solid var(--border-color);background:var(--color-bg-secondary)}.detail-card-header svg{width:20px;height:20px;color:var(--color-primary-600)}.detail-card-header h3{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.detail-card-body{padding:var(--spacing-lg)}.detail-row{display:flex;justify-content:space-between;padding:var(--spacing-sm) 0;border-bottom:var(--border-width) solid var(--color-neutral-100)}.detail-row:last-child{border-bottom:none}.detail-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.detail-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:right}.detail-placa{font-family:Courier New,monospace;font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-primary-600)}.detail-niv{font-family:Courier New,monospace;font-size:var(--font-size-xs);letter-spacing:.5px}.status-card .detail-card-header svg{color:var(--color-success)}.status-active{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-success);font-weight:var(--font-weight-bold);background:var(--color-success-light);padding:2px 10px;border-radius:var(--border-radius-full);font-size:var(--font-size-xs)}.status-expired{display:inline-flex;align-items:center;gap:var(--spacing-xs);color:var(--color-danger, #ef4444);font-weight:var(--font-weight-bold);background:#ef44441a;padding:2px 10px;border-radius:var(--border-radius-full);font-size:var(--font-size-xs)}.status-indicator{width:8px;height:8px;border-radius:50%;background-color:var(--color-success);display:inline-block}.qr-card{height:fit-content}.qr-card-body{padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center}.qr-wrapper{padding:var(--spacing-md);background:#fff;border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm)}.qr-hint{margin-top:var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);text-align:center}.qr-url{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-tertiary);border-radius:var(--border-radius-sm);font-size:var(--font-size-xs);word-break:break-all}.qr-url code{color:var(--color-text-secondary)}.qr-card-footer{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-tertiary);border-top:var(--border-width) solid var(--border-color);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted)}.carnet-pdf{position:absolute;left:-9999px;top:-9999px}.carnet-content{width:340px;height:227px;padding:12px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);border:2px solid #2563eb;border-radius:8px;font-family:Inter,sans-serif;box-sizing:border-box}.carnet-header{display:flex;align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid #cbd5e1}.carnet-logo{width:36px;height:auto;border-radius:4px}.carnet-title{display:flex;flex-direction:column}.carnet-title-main{font-size:14px;font-weight:700;color:#1e40af}.carnet-title-sub{font-size:9px;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.carnet-body{display:flex;gap:8px}.carnet-info{flex:1}.carnet-field{margin-bottom:4px}.carnet-field-label{display:block;font-size:7px;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.3px}.carnet-field-value{display:block;font-size:10px;font-weight:500;color:#1e293b;line-height:1.2}.carnet-row{display:flex;gap:12px}.carnet-row .carnet-field{flex:1}.carnet-placa{font-size:12px;font-weight:700;color:#2563eb;font-family:Courier New,monospace}.carnet-niv{font-size:8px;font-family:Courier New,monospace;letter-spacing:.3px}.pdf-document{font-family:Arial,sans-serif;color:#333;line-height:1.5;background:#fff}.pdf-header{text-align:left;margin-bottom:20px}.pdf-header h2{color:#000;font-size:16pt;margin-bottom:10px;font-weight:700}.pdf-body{text-align:justify;font-size:11pt;margin-bottom:20px}.pdf-list{margin:10px 0 20px 20px;padding-left:15px}.pdf-list li{margin-bottom:3px}.carnet-wrapper{display:flex;justify-content:center;margin:30px 0}.carnet-design{width:700px;height:250px;background-image:url(/carnet_diseno.png);background-size:100% 100%;background-repeat:no-repeat;position:relative;color:#000;font-family:Arial,sans-serif;font-weight:700;font-size:13px}.pos-data{position:absolute;text-transform:uppercase;white-space:nowrap;font-size:11px;color:#1a1a1a}.pos-placa{top:34%;left:52%;font-size:14px;font-weight:800;color:#000}.pos-marca{top:34%;left:68%}.pos-modelo{top:34%;left:83%}.pos-anio{top:58%;left:52%}.pos-color{top:58%;left:68%}.pos-serial{top:58%;left:83%;font-family:monospace;font-size:10px}.pos-propietario{top:82%;left:52%;max-width:25%;overflow:hidden;text-overflow:ellipsis}.pos-cedula{top:82%;left:83%}.pos-qr{position:absolute;top:48%;left:28%;width:100px;height:100px;display:flex;align-items:center;justify-content:center;padding:4px}.pdf-footer{position:absolute;bottom:20mm;left:20mm;right:20mm;font-size:9pt;text-align:center;border-top:1px solid #ccc;padding-top:10px;color:#666}@media (max-width: 1024px){.detail-grid{grid-template-columns:1fr}.qr-card{max-width:400px}}.carnet-overlay{position:absolute;bottom:45mm;left:15mm;right:15mm;height:85mm}.pos-qr-final{position:absolute;top:48%;left:28%;width:90px;height:90px;display:flex;align-items:center;justify-content:center}.pos-data-final{position:absolute;text-transform:uppercase;white-space:nowrap;font-size:11px;font-family:Arial,sans-serif;font-weight:700;color:#000}.pos-placa-final{top:34%;left:53%;font-size:14px;font-weight:800}.pos-marca-final{top:34%;left:69%}.pos-modelo-final{top:34%;left:84%}.pos-anio-final{top:58%;left:53%}.pos-color-final{top:58%;left:69%}.pos-serial-final{top:58%;left:84%;font-family:monospace;font-size:10px}.pos-propietario-final{top:82%;left:53%;max-width:25%;overflow:hidden;text-overflow:ellipsis}.pos-cedula-final{top:82%;left:84%}@media (max-width: 768px){.page-header-actions{flex-direction:column;width:100%;gap:var(--spacing-xs)}.page-header-actions .btn{width:100%;justify-content:flex-start;padding-top:var(--spacing-md);padding-bottom:var(--spacing-md)}}.solvency-card-container{display:flex;justify-content:center;width:100%;margin-top:10px}.comprobante-design-wrapper{position:relative;width:100%;max-width:100%}.comprobante-bg-img{width:100%;height:auto;display:block}.data-overlay{position:absolute;font-size:8pt;font-weight:700;color:#000;font-family:Arial,sans-serif;white-space:nowrap;text-transform:uppercase}.pos-placa{top:36%;left:53.5%;font-size:9pt}.pos-marca{top:36%;left:66.8%;font-size:9pt}.pos-modelo{top:36%;left:81.4%;font-size:9pt}.pos-anio{top:55%;left:53.5%;font-size:9pt}.pos-color{top:55%;left:66.8%;font-size:9pt}.pos-serial{top:55%;left:81.4%;font-size:8pt}.pos-propietario{top:73.8%;left:53.5%;font-size:7pt;padding-bottom:6px}.pos-cedula{top:73.5%;left:81.4%;font-size:9pt}.validar-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#3d7e00,#4d9e00,#6ec200);padding:var(--spacing-lg)}.validar-container{width:100%;max-width:480px}.validar-card{background:var(--color-bg-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:slideUp var(--transition-normal)}.validar-status{padding:var(--spacing-xl);text-align:center;color:#fff}.validar-status-success{background:linear-gradient(135deg,#059669,#10b981)}.validar-status-expired{background:linear-gradient(135deg,#d97706,#ef4444)}.validar-error .validar-status{background:linear-gradient(135deg,#dc2626,#ef4444);border-radius:var(--border-radius-xl)}.validar-icon{width:64px;height:64px;margin:0 auto var(--spacing-md);border-radius:var(--border-radius-full);display:flex;align-items:center;justify-content:center}.validar-icon svg{width:36px;height:36px}.validar-icon-success,.validar-icon-error{background:#fff3}.validar-status h1{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);margin-bottom:var(--spacing-xs)}.validar-status p{font-size:var(--font-size-sm);opacity:.9}.validar-validity{background:var(--color-bg-secondary);padding:var(--spacing-lg);display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);border-bottom:var(--border-width) solid var(--border-color)}.validity-badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);background:var(--color-success-light);color:var(--color-success);padding:4px 12px;border-radius:var(--border-radius-full);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);letter-spacing:1px}.validity-badge.validity-expired{background:#fee2e2;color:#ef4444}.validity-badge.validity-expired .validity-dot{background-color:#ef4444}.validity-dot{width:10px;height:10px;background-color:var(--color-success);border-radius:50%;animation:pulse 2s infinite}.validity-text{font-size:var(--font-size-base);color:var(--color-text-primary)}@keyframes pulse{0%{transform:scale(.95);box-shadow:0 0 #10b981b3}70%{transform:scale(1);box-shadow:0 0 0 10px #10b98100}to{transform:scale(.95);box-shadow:0 0 #10b98100}}.validar-section{border-bottom:var(--border-width) solid var(--border-color)}.validar-section:last-of-type{border-bottom:none}.validar-section-header{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary)}.validar-section-header svg{width:18px;height:18px;color:var(--color-primary-600)}.validar-section-header h2{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.validar-section-body{padding:var(--spacing-lg)}.validar-placa{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);font-family:poppins,sans-serif;color:var(--color-primary-600);text-align:center;margin-bottom:var(--spacing-md);padding:var(--spacing-sm);background:var(--color-primary-50);border-radius:var(--border-radius-md);letter-spacing:2px}.validar-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) 0;border-bottom:var(--border-width) solid var(--color-neutral-100)}.validar-row:last-child{border-bottom:none}.validar-label{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.validar-value{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary);text-align:right}.validar-niv{font-family:Courier New,monospace;font-size:var(--font-size-xs);letter-spacing:.5px}.validar-registration{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-tertiary);text-align:center;font-size:var(--font-size-xs);color:var(--color-text-muted)}.validar-footer{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-lg);color:#fff;text-align:center}.validar-footer-logo{width:200px;height:auto;border-radius:var(--border-radius-sm)}.validar-footer span{font-size:var(--font-size-sm);opacity:.9}.validar-footer-system{font-size:var(--font-size-xs)!important;opacity:.7!important}.validar-page .loading-container{background:var(--color-bg-primary);border-radius:var(--border-radius-xl);padding:var(--spacing-3xl)}.validar-page .loading-container p{margin-top:var(--spacing-md);color:var(--color-text-secondary)}:root{--color-primary-50: #f0fdf4;--color-primary-100: #dcfce7;--color-primary-200: #bbf7d0;--color-primary-300: #86efac;--color-primary-400: #4ade80;--color-primary-500: #22c55e;--color-primary-600: #007f5b;--color-primary-700: #006649;--color-primary-800: #004d37;--color-primary-900: #003325;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-success: #10b981;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-light: #fef3c7;--color-danger: #ef4444;--color-danger-light: #fee2e2;--color-info: #3b82f6;--color-info-light: #dbeafe;--color-bg-primary: #ffffff;--color-bg-secondary: #f8fafc;--color-bg-tertiary: #f1f5f9;--color-bg-sidebar: linear-gradient(180deg, #4d9e00 0%, #3d7e00 100%);--color-text-primary: #1e293b;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--border-radius-sm: .25rem;--border-radius-md: .5rem;--border-radius-lg: .75rem;--border-radius-xl: 1rem;--border-radius-2xl: 1.5rem;--border-radius-full: 9999px;--border-width: 1px;--border-color: var(--color-neutral-200);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--sidebar-width: 260px;--header-height: 72px;--container-max-width: 1400px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-primary);background-color:var(--color-bg-secondary);min-height:100vh}a{color:var(--color-primary-600);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-700)}img{max-width:100%;height:auto;display:block}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit;font-size:inherit}:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-center{text-align:center}.text-right{text-align:right}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:1;border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:var(--color-primary-600);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-700);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background-color:var(--color-bg-primary);color:var(--color-text-primary);border:var(--border-width) solid var(--border-color)}.btn-secondary:hover:not(:disabled){background-color:var(--color-bg-tertiary);border-color:var(--color-neutral-300)}.btn-danger{background-color:var(--color-danger);color:var(--color-text-inverse)}.btn-danger:hover:not(:disabled){background-color:#dc2626;transform:translateY(-1px)}.btn-ghost{background-color:transparent;color:var(--color-text-secondary)}.btn-ghost:hover:not(:disabled){background-color:var(--color-bg-tertiary);color:var(--color-text-primary)}.btn-sm{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs)}.btn-lg{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-base)}.btn-icon{padding:var(--spacing-sm);width:36px;height:36px}.btn svg{width:18px;height:18px;flex-shrink:0}.form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.form-label.required:after{content:" *";color:var(--color-danger)}.form-input,.form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background-color:var(--color-bg-primary);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-md);transition:all var(--transition-fast)}.form-input:hover,.form-select:hover{border-color:var(--color-neutral-300)}.form-input:focus,.form-select:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-primary-100)}.form-input::placeholder{color:var(--color-text-muted)}.form-input.error,.form-select.error{border-color:var(--color-danger)}.form-input.error:focus,.form-select.error:focus{box-shadow:0 0 0 3px var(--color-danger-light)}.form-error{font-size:var(--font-size-xs);color:var(--color-danger)}.form-hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.card{background-color:var(--color-bg-primary);border-radius:var(--border-radius-lg);box-shadow:var(--shadow-sm);border:var(--border-width) solid var(--border-color)}.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:var(--border-width) solid var(--border-color)}.card-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.card-body{padding:var(--spacing-lg)}.card-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:var(--border-width) solid var(--border-color);background-color:var(--color-bg-secondary);border-radius:0 0 var(--border-radius-lg) var(--border-radius-lg)}.table-container{overflow-x:auto}.table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.table th,.table td{padding:var(--spacing-md);text-align:left;border-bottom:var(--border-width) solid var(--border-color)}.table th{font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background-color:var(--color-bg-secondary);white-space:nowrap}.table tbody tr{transition:background-color var(--transition-fast)}.table tbody tr:hover{background-color:var(--color-bg-tertiary)}.table tbody tr.selected{background-color:var(--color-primary-50)}.badge{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);border-radius:var(--border-radius-full)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge-info{background-color:var(--color-info-light);color:var(--color-info)}.badge-neutral{background-color:var(--color-neutral-200);color:var(--color-info)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);z-index:1000;animation:fadeIn var(--transition-fast)}.modal{background-color:var(--color-bg-primary);border-radius:var(--border-radius-xl);box-shadow:var(--shadow-xl);max-width:500px;width:100%;max-height:90vh;overflow:auto;animation:slideUp var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:var(--border-width) solid var(--border-color)}.modal-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.modal-body{padding:var(--spacing-lg)}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:var(--border-width) solid var(--border-color);background-color:var(--color-bg-secondary)}.spinner{width:40px;height:40px;border:3px solid var(--color-neutral-200);border-top-color:var(--color-primary-600);border-radius:50%;animation:spin .8s linear infinite}.spinner-sm{width:20px;height:20px;border-width:2px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-3xl);text-align:center}.empty-state-icon{width:80px;height:80px;margin-bottom:var(--spacing-lg);color:var(--color-neutral-300)}.empty-state-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:400px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-neutral-300);border-radius:var(--border-radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:var(--color-bg-sidebar);color:var(--color-text-inverse);display:flex;flex-direction:column;z-index:100;transition:transform var(--transition-normal)}.sidebar-header{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-lg);border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-logo{width:40px;height:40px;border-radius:var(--border-radius-md);object-fit:contain;background:#fff;padding:4px}.sidebar-brand{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);letter-spacing:-.5px;flex:1}.btn-close-sidebar{display:none;background:transparent;border:none;color:#fff;padding:var(--spacing-xs);cursor:pointer;border-radius:var(--border-radius-md)}.btn-close-sidebar svg{width:24px;height:24px}.sidebar-nav{flex:1;padding:var(--spacing-md);overflow-y:auto}.nav-section{margin-bottom:var(--spacing-lg)}.nav-section-title{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px;color:#ffffff80;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-xs)}.nav-link{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);color:#fffc;border-radius:var(--border-radius-md);transition:all var(--transition-fast);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.nav-link:hover{background:#ffffff1a;color:#fff}.nav-link.active{background:#fff3;color:#fff}.nav-link svg{width:20px;height:20px;flex-shrink:0}.sidebar-footer{padding:var(--spacing-lg);border-top:1px solid rgba(255,255,255,.1)}.user-menu{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);border-radius:var(--border-radius-md);cursor:pointer;transition:background var(--transition-fast)}.user-menu:hover{background:#ffffff1a}.user-menu svg{width:20px;height:20px;color:#ffffffb3;transition:color var(--transition-fast)}.user-menu:hover svg{color:var(--color-danger)}.user-avatar{width:36px;height:36px;border-radius:var(--border-radius-full);background:#fff3;display:flex;align-items:center;justify-content:center;font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm)}.user-info{flex:1;min-width:0}.user-name{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--font-size-xs);color:#fff9}.main-content{margin-left:var(--sidebar-width);min-height:100vh;display:flex;flex-direction:column;transition:margin var(--transition-normal)}.mobile-header{display:none;position:sticky;top:0;height:64px;background:var(--color-bg-sidebar);color:#fff;align-items:center;padding:0 var(--spacing-md);z-index:90;justify-content:space-between}.btn-menu-toggle{background:transparent;border:none;color:#fff;padding:var(--spacing-xs);cursor:pointer;display:flex;align-items:center;justify-content:center}.btn-menu-toggle svg{width:24px;height:24px}.mobile-header-brand{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:700}.mobile-logo{width:32px;height:32px;background:#fff;border-radius:4px;padding:2px}.sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:95;opacity:0;visibility:hidden;transition:all var(--transition-normal)}.main-header{position:sticky;top:0;height:var(--header-height);background:var(--color-bg-primary);border-bottom:var(--border-width) solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 var(--spacing-xl);z-index:50}.page-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.page-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.header-actions{display:flex;align-items:center;gap:var(--spacing-md)}.search-box{position:relative;width:300px}.search-box input{width:100%;padding:var(--spacing-sm) var(--spacing-md);padding-left:40px;background:var(--color-bg-secondary);border:var(--border-width) solid var(--border-color);border-radius:var(--border-radius-full);font-size:var(--font-size-sm)}.search-box svg{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--color-text-muted)}.main-body{flex:1;padding:var(--spacing-xl)}.page-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--spacing-xl)}.page-header-info{display:flex;flex-direction:row;align-items:baseline;gap:var(--spacing-lg)}.page-header-info h1{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);line-height:1.2;margin:0}.page-header-info p{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}@media (max-width: 640px){.page-header-info{flex-direction:column;gap:var(--spacing-xs)}}.content-tabs{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);border-bottom:var(--border-width) solid var(--border-color);padding-bottom:var(--spacing-xs)}.tab-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--border-radius-md);cursor:pointer;transition:all var(--transition-fast);position:relative}.tab-btn:hover{color:var(--color-text-primary);background:var(--color-bg-tertiary)}.tab-btn.active{color:var(--color-primary-600);background:var(--color-primary-50)}.tab-btn.active:after{content:"";position:absolute;left:0;right:0;bottom:calc(-1 * var(--spacing-xs) - var(--border-width));height:2px;background:var(--color-primary-600)}@media (max-width: 1024px){.mobile-header{display:flex}.sidebar{transform:translate(-100%);box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:var(--shadow-xl)}.sidebar-open .sidebar-overlay{opacity:1;visibility:visible}.btn-close-sidebar{display:flex}.main-content{margin-left:0}.search-box{width:200px}}@media (max-width: 768px){.main-header{padding:0 var(--spacing-md)}.main-body{padding:var(--spacing-md)}.page-header{flex-direction:column;gap:var(--spacing-md)}.search-box{display:none}}
