*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px}body{color:var(--text-primary);background-color:var(--bg-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button{cursor:pointer;background:0 0;border:none;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}ul,ol{list-style:none}img,svg{max-width:100%;display:block}table{border-collapse:collapse;width:100%}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.2}:root{--primary:#2563eb;--primary-hover:#1d4ed8;--primary-light:#dbeafe;--primary-dark:#1e40af;--primary-rgb:37,99,235;--accent:#10b981;--accent-hover:#059669;--accent-light:#d1fae5;--accent-rgb:16,185,129;--admin:#7c3aed;--admin-hover:#6d28d9;--admin-light:#ede9fe;--admin-dark:#5b21b6;--admin-rgb:124,58,237;--success:#22c55e;--success-light:#dcfce7;--success-rgb:34,197,94;--warning:#f59e0b;--warning-light:#fef3c7;--warning-rgb:245,158,11;--error:#ef4444;--error-light:#fee2e2;--error-rgb:239,68,68;--info:#3b82f6;--info-light:#dbeafe;--info-rgb:59,130,246;--secondary:#6b7280;--secondary-light:#f3f4f6;--secondary-rgb:107,114,128;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--bg-primary:#f9fafb;--bg-secondary:#fff;--bg-tertiary:#f3f4f6;--surface:var(--bg-secondary);--background:var(--bg-primary);--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-muted:#9ca3af;--text-inverse:#fff;--border-color:#e5e7eb;--border-color-hover:#d1d5db;--border:var(--border-color);--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a,0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;--overlay:#00000080;--overlay-light:#0000004d;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-2xl:3rem;--spacing-0:0;--spacing-1:.125rem;--spacing-2:.25rem;--spacing-3:.375rem;--spacing-4:.5rem;--spacing-5:.625rem;--spacing-6:.75rem;--spacing-8:1rem;--spacing-10:1.25rem;--spacing-12:1.5rem;--spacing-16:2rem;--spacing-20:2.5rem;--spacing-24:3rem;--space-1:var(--spacing-xs);--space-2:var(--spacing-sm);--space-3:.75rem;--space-4:var(--spacing-md);--space-5:1.25rem;--space-6:var(--spacing-lg);--space-8:var(--spacing-xl);--space-10:2.5rem;--space-12:var(--spacing-2xl);--radius-sm:.25rem;--radius:.5rem;--radius-md:.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-full:9999px;--font-xs:.75rem;--font-sm:.875rem;--font-base:1rem;--font-lg:1.125rem;--font-xl:1.25rem;--font-2xl:1.5rem;--font-3xl:1.875rem;--font-4xl:2.25rem;--text-xs:var(--font-xs);--text-sm:var(--font-sm);--text-base:var(--font-base);--text-lg:var(--font-lg);--text-xl:var(--font-xl);--text-2xl:var(--font-2xl);--text-3xl:var(--font-3xl);--text-4xl:var(--font-4xl);--sidebar-width:260px;--sidebar-collapsed-width:72px;--header-height:64px;--transition-fast:.15s ease;--transition:.2s ease;--transition-slow:.3s ease;--z-dropdown:100;--z-sticky:200;--z-fixed:300;--z-modal-backdrop:900;--z-modal:1000;--z-tooltip:1100;--z-notification:1200;--z-max:9999;--sharepoint-primary:#038387;--sharepoint-secondary:#0078d4;--google-drive:#4285f4;--dropbox:#0061fe;--onedrive:#0078d4;--box:#0061d5;--priority-critical:#dc2626;--priority-high:#ea580c;--priority-medium:#ca8a04;--priority-low:#16a34a;--bg-card:var(--bg-secondary);--card-border:var(--border-color);--card-shadow:var(--shadow)}@media (prefers-color-scheme:dark){:root.dark-mode{--bg-primary:#111827;--bg-secondary:#1f2937;--bg-tertiary:#374151;--text-primary:#f9fafb;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--border-color:#374151}}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--bg-secondary);border-right:1px solid var(--border-color);height:100vh;z-index:var(--z-sticky);transition:width var(--transition);flex-direction:column;display:flex;position:fixed;top:0;left:0}.sidebar-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.logo{align-items:center;gap:var(--spacing-sm);display:flex}.logo-icon{width:36px;height:36px}.logo-text{font-size:var(--font-xl);color:var(--text-primary);font-weight:700}.org-branding{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);display:flex}.org-logo-container{border-radius:var(--radius);background:var(--gray-100);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;overflow:hidden}.org-logo-placeholder{color:var(--text-tertiary);text-transform:uppercase;font-size:11px;font-weight:700}.org-logo-img{object-fit:contain;width:100%;height:100%}.org-name{font-size:var(--font-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-weight:600;overflow:hidden}.sidebar-nav{padding:var(--spacing-md);gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius);color:var(--text-secondary);font-size:var(--font-sm);transition:all var(--transition-fast);font-weight:500;display:flex}.nav-item:hover{background:var(--gray-100);color:var(--text-primary)}.nav-item.active{background:var(--primary-light);color:var(--primary)}.nav-icon{flex-shrink:0;width:20px;height:20px}.nav-section{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.nav-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text-tertiary);padding:0 var(--spacing-md)var(--spacing-sm);font-size:11px;font-weight:600}.nav-section--admin .nav-item{color:var(--text-secondary)}.nav-section--admin .nav-item:hover{background:rgba(var(--admin-rgb),.1);color:var(--admin)}.nav-section--admin .nav-item.active{background:rgba(var(--admin-rgb),.15);color:var(--admin)}.sidebar-footer{padding:var(--spacing-md);border-top:1px solid var(--border-color)}.user-profile{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);margin-top:var(--spacing-md);display:flex}.user-profile .user-info{flex:1;min-width:0}.user-profile .signout-btn{border-radius:var(--radius);width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.user-profile .signout-btn:hover{background:var(--error-light,#ef44441a);color:var(--error)}.user-profile .signout-btn svg{width:18px;height:18px}.avatar{border-radius:var(--radius-full);background:var(--primary);color:#fff;width:40px;height:40px;font-weight:600;font-size:var(--font-sm);justify-content:center;align-items:center;display:flex}.user-info{flex-direction:column;display:flex}.user-name{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.user-role{font-size:var(--font-xs);color:var(--text-tertiary)}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.main-header{height:var(--header-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:0 var(--spacing-xl);z-index:var(--z-sticky);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.header-left{flex-direction:column;gap:2px;display:flex}.page-title{font-size:var(--font-xl);color:var(--text-primary);font-weight:600}.breadcrumb{font-size:var(--font-xs);color:var(--text-tertiary)}.header-right{align-items:center;gap:var(--spacing-md);display:flex}.search-box{width:280px;position:relative}.search-icon{left:var(--spacing-sm);width:18px;height:18px;color:var(--text-tertiary);position:absolute;top:50%;transform:translateY(-50%)}.search-input{width:100%;padding:var(--spacing-sm)var(--spacing-sm)var(--spacing-sm)36px;border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-tertiary);font-size:var(--font-sm);transition:all var(--transition-fast)}.search-input:focus{border-color:var(--primary);background:var(--bg-secondary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.search-input::placeholder{color:var(--text-muted)}.page-content{padding:var(--spacing-xl);flex:1;overflow-y:auto}.page{animation:fadeIn var(--transition)}.page.hidden{display:none}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.stats-grid{gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(4,1fr);display:grid}.dashboard-grid{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}.mobile-menu-toggle{border-radius:var(--radius);cursor:pointer;width:40px;height:40px;color:var(--text-primary);transition:background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none}.mobile-menu-toggle:hover{background:var(--gray-100)}.mobile-menu-toggle svg{width:24px;height:24px}.sidebar-overlay{background:var(--overlay);z-index:calc(var(--z-sticky) - 1);opacity:0;transition:opacity var(--transition);display:none;position:fixed;inset:0}.sidebar-overlay.visible{opacity:1}.sidebar-close{top:var(--spacing-md);right:var(--spacing-md);border-radius:var(--radius);cursor:pointer;width:32px;height:32px;color:var(--text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:none;position:absolute}.sidebar-close:hover{background:var(--gray-100);color:var(--text-primary)}.sidebar-close svg{width:20px;height:20px}@media (max-width:1400px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:1200px){.dashboard-grid{grid-template-columns:1fr}}@media (max-width:768px){.mobile-menu-toggle{display:flex}.sidebar-overlay{display:block}.sidebar-close{display:flex}.sidebar{box-shadow:none;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-xl);transform:translate(0)}.sidebar-header{padding-top:calc(var(--spacing-lg) + 40px)}.sidebar-footer{padding:var(--spacing-sm);flex-shrink:0}.sidebar-nav{min-height:0}.main-content{margin-left:0}.main-header{padding:0 var(--spacing-md);gap:var(--spacing-sm)}.header-left{flex:1;min-width:0}.page-title{font-size:var(--font-lg);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.breadcrumb{display:none}.header-right{gap:var(--spacing-xs)}.search-box{width:40px;overflow:hidden}.search-box.expanded{left:var(--spacing-md);right:var(--spacing-md);width:auto;z-index:var(--z-fixed);position:absolute;top:50%;transform:translateY(-50%)}.search-input{opacity:0;pointer-events:none}.search-box.expanded .search-input{opacity:1;pointer-events:auto}.page-content{padding:var(--spacing-md)}.stats-grid{gap:var(--spacing-md);grid-template-columns:1fr}.dashboard-grid{gap:var(--spacing-md)}}@media (max-width:480px){.main-header{padding:0 var(--spacing-sm)}.page-content{padding:var(--spacing-sm)}.page-title{font-size:var(--font-md)}.stats-grid{gap:var(--spacing-sm)}.sidebar-header{padding:var(--spacing-md)}.logo-text{font-size:var(--font-lg)}}[dir=rtl]{text-align:right}[dir=rtl] .sidebar{border-right:none;border-left:1px solid var(--border-color);left:auto;right:0}[dir=rtl] .main-content{margin-left:0;margin-right:var(--sidebar-width)}[dir=rtl] .search-icon{left:auto;right:var(--spacing-sm)}[dir=rtl] .search-input{padding-left:var(--spacing-sm);text-align:right;padding-right:36px}[dir=rtl] .nav-item{text-align:right;flex-direction:row-reverse}[dir=rtl] .logo{flex-direction:row-reverse}[dir=rtl] .stat-card{text-align:right;flex-direction:row-reverse}[dir=rtl] .renewal-item,[dir=rtl] .discrepancy-item,[dir=rtl] .activity-item,[dir=rtl] .optimization-item{flex-direction:row-reverse}[dir=rtl] .renewal-meta,[dir=rtl] .discrepancy-info,[dir=rtl] .activity-info,[dir=rtl] .optimization-info{text-align:right}[dir=rtl] .card-header{flex-direction:row-reverse}[dir=rtl] .header-left{text-align:right}[dir=rtl] .header-right,[dir=rtl] .filters-bar,[dir=rtl] .modal-header,[dir=rtl] .modal-footer,[dir=rtl] .user-profile{flex-direction:row-reverse}[dir=rtl] .user-info{text-align:right}[dir=rtl] .notification-badge{left:4px;right:auto}[dir=rtl] .data-table th,[dir=rtl] .data-table td{text-align:right}[dir=rtl] .settings-layout,[dir=rtl] .comparison-view{direction:rtl}[dir=rtl] .form-group,[dir=rtl] .form-label,[dir=rtl] .form-input,[dir=rtl] .form-select,[dir=rtl] select{text-align:right}[dir=rtl] .btn{flex-direction:row-reverse}[dir=rtl] .breadcrumb,[dir=rtl] .page-title,[dir=rtl] .sidebar-nav,[dir=rtl] .card,[dir=rtl] .card-title,[dir=rtl] .settings-section-title,[dir=rtl] .settings-section-desc{text-align:right}[dir=rtl] .settings-nav-item{text-align:right;flex-direction:row-reverse}@media (max-width:768px){[dir=rtl] .sidebar{transform:translate(100%)}[dir=rtl] .sidebar.open{transform:translate(0)}[dir=rtl] .main-content{margin-right:0}}.btn{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-sm);border-radius:var(--radius);transition:all var(--transition-fast);cursor:pointer;font-weight:500;display:inline-flex}.btn svg{width:18px;height:18px}.btn-primary{background:var(--primary);color:var(--text-inverse)}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--gray-200)}.btn-success{background:var(--success);color:var(--text-inverse)}.btn-danger{background:var(--error);color:var(--text-inverse)}.btn-sm,.btn--sm{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-xs)}.btn--primary{background:var(--primary);color:var(--text-inverse)}.btn--primary:hover{background:var(--primary-hover)}.btn--secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border-color)}.btn--secondary:hover{background:var(--gray-200)}.btn--icon{border-radius:var(--radius);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.btn--icon:hover{background:var(--gray-100);color:var(--text-primary)}.btn--icon svg{width:18px;height:18px}.language-switcher{position:relative}.lang-btn{border-radius:var(--radius);width:40px;height:40px;transition:all var(--transition-fast);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:20px;line-height:1;display:flex}.lang-btn:hover{background:var(--gray-100)}.lang-flag{font-size:20px;line-height:1}.lang-dropdown{margin-top:var(--spacing-xs);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:150px;z-index:var(--z-dropdown);display:none;position:absolute;top:100%;right:0;overflow:hidden}.lang-dropdown.show{display:block}[dir=rtl] .lang-dropdown{left:0;right:auto}.lang-option{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;display:flex}[dir=rtl] .lang-option{text-align:right}.lang-option:hover{background:var(--gray-100)}.lang-option.active{background:var(--primary-light);color:var(--primary)}.lang-option .lang-flag{font-size:18px}.btn-icon{border-radius:var(--radius);width:40px;height:40px;color:var(--text-secondary);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex;position:relative}.btn-icon:hover{background:var(--gray-100);color:var(--text-primary)}.btn-icon svg{width:20px;height:20px}.notification-badge{background:var(--error);color:#fff;border-radius:var(--radius-full);justify-content:center;align-items:center;width:18px;height:18px;font-size:10px;font-weight:600;display:flex;position:absolute;top:4px;right:4px}.card{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.card-header{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-base);color:var(--text-primary);font-weight:600}.card-link{font-size:var(--font-sm);color:var(--primary);font-weight:500}.card-link:hover{text-decoration:underline}.card-body{padding:var(--spacing-lg)}.stat-card{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg);align-items:center;gap:var(--spacing-md);box-shadow:var(--shadow-sm);display:flex}.stat-icon.contracts{background:var(--primary-light);color:var(--primary)}.stat-icon.invoices{background:var(--accent-light);color:var(--accent)}.stat-icon.discrepancies{background:var(--warning-light);color:var(--warning)}.stat-icon.savings{background:var(--success-light);color:var(--success)}.stat-info{flex-direction:column;flex:1;display:flex}.stat-label{font-size:var(--font-sm);color:var(--text-tertiary)}.stat-trend{font-size:var(--font-sm);border-radius:var(--radius-full);padding:2px 8px;font-weight:600}.stat-trend.positive{background:var(--success-light);color:var(--success)}.stat-trend.negative{background:var(--error-light);color:var(--error)}.renewal-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.renewal-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius);background:var(--bg-tertiary);cursor:pointer;transition:all var(--transition-fast);display:flex}.renewal-item:hover{background:var(--gray-200)}.renewal-status{border-radius:var(--radius-full);background:var(--gray-400);width:8px;height:8px}.renewal-item.urgent .renewal-status{background:var(--error)}.renewal-item.warning .renewal-status{background:var(--warning)}.renewal-info{flex-direction:column;flex:1;display:flex}.renewal-vendor{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.renewal-contract{font-size:var(--font-xs);color:var(--text-tertiary)}.renewal-meta{text-align:right;flex-direction:column;display:flex}.renewal-days{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.renewal-item.urgent .renewal-days{color:var(--error)}.renewal-item.warning .renewal-days{color:var(--warning)}.renewal-value{font-size:var(--font-xs);color:var(--text-tertiary)}.discrepancy-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.discrepancy-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius);background:var(--bg-tertiary);cursor:pointer;transition:all var(--transition-fast);display:flex}.discrepancy-item:hover{background:var(--gray-200)}.discrepancy-type{border-radius:var(--radius);font-size:var(--font-xs);text-transform:uppercase;padding:4px 10px;font-weight:600}.discrepancy-type.pricing{background:var(--warning-light);color:var(--warning)}.discrepancy-type.quantity{background:var(--info-light);color:var(--info)}.discrepancy-type.unauthorized{background:var(--error-light);color:var(--error)}.discrepancy-info{flex-direction:column;flex:1;display:flex}.discrepancy-title{font-weight:500;font-size:var(--font-sm);color:var(--text-primary)}.discrepancy-detail{font-size:var(--font-xs);color:var(--text-tertiary)}.discrepancy-impact{font-weight:600;font-size:var(--font-sm);color:var(--error)}.activity-list{gap:var(--spacing-md);flex-direction:column;display:flex}.activity-item{align-items:flex-start;gap:var(--spacing-md);display:flex}.activity-icon{border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.activity-icon svg{width:18px;height:18px}.activity-icon.upload{background:var(--primary-light);color:var(--primary)}.activity-icon.analysis{background:var(--warning-light);color:var(--warning)}.activity-icon.resolved{background:var(--success-light);color:var(--success)}.activity-icon.contract{background:var(--accent-light);color:var(--accent)}.activity-info{flex-direction:column;flex:1;display:flex}.activity-title{font-weight:500;font-size:var(--font-sm);color:var(--text-primary)}.activity-detail{font-size:var(--font-xs);color:var(--text-tertiary)}.activity-time{font-size:var(--font-xs);color:var(--text-muted);white-space:nowrap}.optimization-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius);background:var(--bg-tertiary);cursor:pointer;transition:all var(--transition-fast);display:flex}.optimization-item:hover{background:var(--gray-200)}.optimization-icon{border-radius:var(--radius);background:var(--success-light);width:40px;height:40px;color:var(--success);justify-content:center;align-items:center;display:flex}.optimization-icon svg{width:20px;height:20px}.optimization-info{flex-direction:column;flex:1;display:flex}.optimization-title{font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.optimization-detail{font-size:var(--font-xs);color:var(--text-tertiary)}.optimization-savings{font-weight:700;font-size:var(--font-sm);color:var(--success)}.optimization-summary{padding:var(--spacing-sm)var(--spacing-md);margin-bottom:var(--spacing-md);background:var(--success-light,#10b9811a);border-radius:var(--radius);border-left:3px solid var(--success);justify-content:space-between;align-items:center;display:flex}.optimization-summary-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500}.optimization-summary-value{font-size:var(--font-lg);color:var(--success);font-weight:700}.modal-overlay{background:var(--overlay);z-index:var(--z-modal);padding:var(--spacing-lg);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}.modal{background:var(--bg-secondary);border-radius:var(--radius-lg);width:100%;max-width:500px;max-height:90vh;box-shadow:var(--shadow-xl);animation:modalIn var(--transition);flex-direction:column;display:flex}.modal-large{max-width:800px}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(-20px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-title{font-size:var(--font-lg);font-weight:600}.modal-close{width:32px;height:32px;font-size:var(--font-2xl);color:var(--text-tertiary);border-radius:var(--radius);transition:all var(--transition-fast);justify-content:center;align-items:center;display:flex}.modal-close:hover{background:var(--gray-100);color:var(--text-primary)}.modal-body{padding:var(--spacing-lg);flex:1;overflow-y:auto}.modal-footer{padding:var(--spacing-lg);border-top:1px solid var(--border-color);justify-content:flex-end;gap:var(--spacing-sm);display:flex}.upload-tabs{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);display:flex}.upload-tab{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius);font-size:var(--font-sm);color:var(--text-secondary);background:var(--bg-tertiary);transition:all var(--transition-fast);font-weight:500}.upload-tab:hover{background:var(--gray-200)}.upload-tab.active{background:var(--primary);color:#fff}.upload-area{border:2px dashed var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-2xl);text-align:center;cursor:pointer;transition:all var(--transition-fast)}.upload-area:hover,.upload-area.dragover{border-color:var(--primary);background:var(--primary-light)}.upload-icon{width:48px;height:48px;margin:0 auto var(--spacing-md);color:var(--text-tertiary)}.upload-browse{color:var(--primary);cursor:pointer;font-weight:500}.upload-hint{font-size:var(--font-xs);color:var(--text-muted)}.upload-files{margin-top:var(--spacing-md)}.upload-file-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius);margin-bottom:var(--spacing-sm);display:flex}.upload-file-icon{background:var(--primary-light);width:32px;height:32px;color:var(--primary);border-radius:var(--radius);justify-content:center;align-items:center;display:flex}.upload-file-icon svg{width:16px;height:16px}.upload-file-info{flex:1}.upload-file-name{font-size:var(--font-sm);color:var(--text-primary);font-weight:500}.upload-file-size{font-size:var(--font-xs);color:var(--text-tertiary)}.upload-file-remove{color:var(--text-tertiary);padding:var(--spacing-xs)}.upload-file-remove:hover{color:var(--error)}.upload-file-meta{align-items:center;gap:var(--spacing-sm);display:flex}.upload-file-status{font-size:var(--font-xs);font-weight:500}.upload-file-status.status-uploading{color:var(--primary)}.upload-file-status.status-extracting{color:var(--warning)}.upload-file-status.status-complete{color:var(--success)}.upload-file-status.status-error{color:var(--error)}.upload-progress-container{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);display:flex}.upload-progress-bar{background:var(--gray-200);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.upload-progress-fill{background:var(--primary);border-radius:var(--radius-full);height:100%;transition:width .3s}.upload-progress-fill.extracting-pulse{background:linear-gradient(90deg,var(--warning)0%,var(--warning-light)50%,var(--warning)100%);background-size:200% 100%;animation:1.5s ease-in-out infinite progressPulse}.upload-progress-fill.storing{background:linear-gradient(90deg,var(--info,#3b82f6)0%,#60a5fa 50%,var(--info,#3b82f6)100%);background-size:200% 100%;animation:1.5s ease-in-out infinite progressPulse}.upload-progress-fill.extracting{background:linear-gradient(90deg,var(--warning)0%,var(--warning-light)50%,var(--warning)100%);background-size:200% 100%;animation:1.5s ease-in-out infinite progressPulse}.upload-progress-fill.analyzing{background:linear-gradient(90deg,var(--admin)0%,var(--admin-light)50%,var(--admin)100%);background-size:200% 100%;animation:1.5s ease-in-out infinite progressPulse}@keyframes progressPulse{0%{background-position:200% 0}to{background-position:-200% 0}}.upload-progress-text{font-size:var(--font-xs);color:var(--text-secondary);text-align:right;min-width:35px;font-weight:600}.progress-steps{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-xs)0;display:flex}.progress-step{opacity:.4;align-items:center;gap:4px;transition:opacity .3s;display:flex}.progress-step.done,.progress-step.active{opacity:1}.progress-step .step-dot{background:var(--gray-300);border-radius:50%;width:8px;height:8px;transition:all .3s}.progress-step.done .step-dot{background:var(--success)}.progress-step.active .step-dot{background:var(--primary);animation:1s ease-in-out infinite stepPulse}.progress-step .step-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:500}.progress-step.done .step-label{color:var(--success)}.progress-step.active .step-label{color:var(--primary);font-weight:600}@keyframes stepPulse{0%,to{box-shadow:0 0 0 0 rgba(var(--primary-rgb,59,130,246),.4);transform:scale(1)}50%{box-shadow:0 0 0 4px rgba(var(--primary-rgb,59,130,246),0);transform:scale(1.2)}}.file-spinner-storing{border-top-color:var(--info,#3b82f6)}.file-spinner-extracting{border-top-color:var(--warning)}.file-spinner-analyzing{border-top-color:var(--admin)}@keyframes spin{to{transform:rotate(360deg)}}.extracted-preview{gap:var(--spacing-xs);margin-top:var(--spacing-sm);padding:var(--spacing-xs)var(--spacing-sm);background:var(--success-light,#22c55e1a);border-radius:var(--radius);border-left:3px solid var(--success);flex-wrap:wrap;display:flex}.extracted-preview .preview-item{font-size:var(--font-xs);color:var(--text-secondary)}.extracted-preview .preview-item:not(:last-child):after{content:"•";margin-left:var(--spacing-xs);color:var(--text-muted)}.upload-file-item.file-storing .file-icon{color:var(--info,#3b82f6);background:#3b82f61a}.upload-file-item.file-extracting .file-icon{background:var(--warning-light);color:var(--warning)}.upload-file-item.file-analyzing .file-icon{background:rgba(var(--admin-rgb),.1);color:var(--admin)}.file-status-text.error{color:var(--error)}.file-error-msg{font-size:var(--font-xs);color:var(--error);margin-top:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);background:var(--error-light,#ef44441a);border-radius:var(--radius)}.upload-file-item.upload-status-uploading .upload-file-icon{background:var(--primary-light);color:var(--primary)}.upload-file-item.upload-status-extracting .upload-file-icon{background:var(--warning-light);color:var(--warning);animation:1s ease-in-out infinite iconPulse}.upload-file-item.upload-status-complete .upload-file-icon{background:var(--success-light);color:var(--success)}.upload-file-item.upload-status-error .upload-file-icon{background:var(--error-light);color:var(--error)}@keyframes iconPulse{0%,to{opacity:1}50%{opacity:.6}}.data-table th{text-align:left;padding:var(--spacing-md);font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-weight:600}.data-table td{padding:var(--spacing-md);font-size:var(--font-sm);color:var(--text-primary);border-bottom:1px solid var(--border-color)}.data-table tbody tr{cursor:pointer;transition:background var(--transition-fast)}.data-table tbody tr:hover{background:var(--bg-tertiary)}.status-badge{border-radius:var(--radius-full);font-size:var(--font-xs);align-items:center;padding:4px 10px;font-weight:600;display:inline-flex}.status-badge.active{background:var(--success-light);color:var(--success)}.status-badge.pending{background:var(--warning-light);color:var(--warning)}.status-badge.expired{background:var(--error-light);color:var(--error)}.status-badge.review{background:var(--info-light);color:var(--info)}.filters-bar{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap;display:flex}.filter-select{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius);font-size:var(--font-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer}.filter-select:focus{border-color:var(--primary);outline:none}.empty-state{padding:var(--spacing-2xl);text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-state--compact{padding:var(--spacing-lg)}.empty-state-icon{width:64px;height:64px;margin:0 auto var(--spacing-md);color:var(--text-muted)}.empty-state-title{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm);font-weight:600}.empty-state-text{font-size:var(--font-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-lg)}.tabs{gap:var(--spacing-xs);border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-lg);display:flex}.tab{padding:var(--spacing-md)var(--spacing-lg);font-size:var(--font-sm);color:var(--text-secondary);transition:all var(--transition-fast);border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:500}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.form-group{margin-bottom:var(--spacing-lg)}.form-label{font-size:var(--font-sm);color:var(--text-primary);margin-bottom:var(--spacing-sm);font-weight:500;display:block}.form-input{width:100%;padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius);font-size:var(--font-sm);transition:all var(--transition-fast)}.form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-textarea{resize:vertical;min-height:100px}.hidden{display:none!important}.flex{display:flex}.flex-between{justify-content:space-between;align-items:center;display:flex}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.notification-toast{bottom:var(--spacing-lg);right:var(--spacing-lg);align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)var(--spacing-lg);background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);border:1px solid var(--border-color);z-index:calc(var(--z-modal) + 1);max-width:400px;animation:.3s slideInUp;display:flex;position:fixed}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.notification-toast.notification-success{border-left:4px solid var(--success)}.notification-toast.notification-error{border-left:4px solid var(--error)}.notification-toast.notification-info{border-left:4px solid var(--primary)}.notification-toast.notification-warning{border-left:4px solid var(--warning)}.notification-message{font-size:var(--font-sm);color:var(--text-primary);flex:1}.notification-close{border-radius:var(--radius-sm);cursor:pointer;width:24px;height:24px;color:var(--text-tertiary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.notification-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.action-menu-wrapper{display:inline-block;position:relative}.action-menu{z-index:var(--z-max);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius);min-width:200px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-fast),transform var(--transition-fast);position:fixed;transform:translateY(-8px)}.action-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.action-menu-content{padding:var(--spacing-xs)0}.action-menu-item{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm)var(--spacing-md);text-align:left;font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;display:flex}.action-menu-item:hover{background:var(--bg-secondary)}.action-menu-item svg{width:16px;height:16px;color:var(--text-secondary)}.action-menu-item .action-icon{text-align:center;width:16px;font-size:14px}.action-menu-item-danger{color:var(--error)}.action-menu-item-danger:hover{background:var(--error-light)}.action-menu-item-danger svg{color:var(--error)}.action-menu-divider{background:var(--border-color);height:1px;margin:var(--spacing-xs)0}.action-menu-section-label{padding:var(--spacing-xs)var(--spacing-md);font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.page-loading{justify-content:center;align-items:center;width:100%;min-height:400px;display:flex}.page-loading .loading-spinner{align-items:center;gap:var(--spacing-md);flex-direction:column;display:flex}.page-loading .loading-spinner .spinner-icon{width:40px;height:40px;color:var(--primary);animation:1s linear infinite page-spin}.page-loading .loading-spinner p{font-size:var(--font-sm);color:var(--text-secondary);margin:0;font-weight:500}.inline-loading{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-secondary);display:flex}.inline-loading .spinner{border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:24px;height:24px;animation:.8s linear infinite page-spin}.inline-loading span{font-size:var(--font-sm)}.section-loading{padding:var(--spacing-xl);justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;display:flex}.section-loading .spinner{border:2.5px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite page-spin}.section-loading span{font-size:var(--font-sm);color:var(--text-secondary)}@keyframes page-spin{to{transform:rotate(360deg)}}.toast-success,.toast-error,.toast-warning,.toast-info{border-radius:var(--radius);font-size:var(--font-sm);box-shadow:var(--shadow-lg);z-index:var(--z-notification);padding:16px 24px;font-weight:500;animation:.3s ease-out toast-slide-in,.3s ease-in 2.7s forwards toast-fade-out;position:fixed;bottom:24px;right:24px}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--error);color:#fff}.toast-warning{background:var(--warning);color:#fff}.toast-info{background:var(--info);color:#fff}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-fade-out{0%{opacity:1}to{opacity:0}}.toast-container{z-index:var(--z-notification);flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{border-radius:var(--radius);font-size:var(--font-sm);box-shadow:var(--shadow-lg);justify-content:space-between;align-items:center;gap:12px;min-width:280px;max-width:400px;padding:12px 16px;font-weight:500;animation:.3s ease-out toast-slide-in;display:flex}.toast--success{background:var(--success);color:#fff}.toast--error{background:var(--error);color:#fff}.toast--warning{background:var(--warning);color:#fff}.toast--info{background:var(--info);color:#fff}.toast__message{flex:1}.toast__close{color:inherit;cursor:pointer;opacity:.8;background:0 0;border:none;padding:0;font-size:18px;line-height:1}.toast__close:hover{opacity:1}.loading-placeholder{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);color:var(--text-secondary);font-size:var(--font-sm);display:flex}.loading-spinner-small{border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin}.search-dropdown{margin-top:var(--spacing-xs);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);min-width:320px;max-height:400px;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.search-loading,.search-empty,.search-error{padding:var(--spacing-lg);text-align:center;color:var(--text-secondary);justify-content:center;align-items:center;gap:var(--spacing-sm);display:flex}.search-error{color:var(--error)}.search-group{border-bottom:1px solid var(--border-color)}.search-group:last-child{border-bottom:none}.search-group-header{padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary);background:var(--bg-tertiary);font-weight:600}.search-result-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)var(--spacing-md);color:var(--text-primary);transition:background var(--transition-fast);cursor:pointer;text-decoration:none;display:flex}.search-result-item:hover,.search-result-item.selected{background:var(--bg-tertiary)}.search-result-item.selected{background:var(--primary-light)}.search-result-icon{border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.search-result-icon svg{width:16px;height:16px}.search-result-content{flex:1;min-width:0}.search-result-title{font-size:var(--font-sm);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.search-result-title mark{background:var(--warning-light);color:inherit;border-radius:2px;padding:0 2px}.search-result-subtitle{font-size:var(--font-xs);color:var(--text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.search-result-badge{font-size:var(--font-xs);border-radius:var(--radius-sm);flex-shrink:0;padding:2px 6px}[dir=rtl] .search-dropdown{left:auto;right:0}[dir=rtl] .search-result-item{flex-direction:row-reverse}[dir=rtl] .search-result-content{text-align:right}@media (max-width:768px){.search-dropdown{top:var(--header-height,60px);max-height:calc(100vh - var(--header-height,60px));border-radius:0;min-width:auto;position:fixed;left:0;right:0}}.action-dropdown{z-index:var(--z-modal)}.action-dropdown .dropdown-menu{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius);box-shadow:var(--shadow-lg);min-width:180px;padding:var(--spacing-xs)0;animation:.15s ease-out dropdownFadeIn}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.action-dropdown .dropdown-item{align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-sm);color:var(--text-primary);cursor:pointer;transition:background var(--transition-fast);text-align:left;background:0 0;border:none;display:flex}.action-dropdown .dropdown-item:hover{background:var(--bg-secondary)}.action-dropdown .dropdown-item svg{width:16px;height:16px;color:var(--text-secondary);flex-shrink:0}.action-dropdown .dropdown-item:hover svg{color:var(--text-primary)}.action-dropdown .dropdown-divider{background:var(--border-color);height:1px;margin:var(--spacing-xs)0}.action-dropdown .dropdown-item-danger{color:var(--error)}.action-dropdown .dropdown-item-danger:hover{background:var(--error-light)}.action-dropdown .dropdown-item-danger svg{color:var(--error)}[dir=rtl] .action-dropdown .dropdown-item{text-align:right;flex-direction:row-reverse}.analysis-dashboard{gap:var(--spacing-xl);flex-direction:column;max-width:1400px;margin:0 auto;display:flex}.analysis-dashboard-header{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);flex-wrap:wrap;display:flex}.dashboard-title-section{gap:var(--spacing-xs);flex-direction:column;display:flex}.dashboard-title{font-size:var(--font-2xl);color:var(--text-primary);letter-spacing:-.02em;margin:0;font-weight:700}.dashboard-subtitle{font-size:var(--font-sm);color:var(--text-tertiary);margin:0}.dashboard-actions{gap:var(--spacing-sm);display:flex}.btn-outline{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0}.btn-outline:hover{background:var(--bg-tertiary);border-color:var(--border-color-hover);color:var(--text-primary)}.analysis-summary-grid{gap:var(--spacing-md);grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:1200px){.analysis-summary-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.analysis-summary-grid{grid-template-columns:1fr}}.analysis-summary-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);gap:var(--spacing-md);flex-direction:column;transition:all .2s;display:flex;position:relative;overflow:hidden}.analysis-summary-card:before{content:"";background:var(--card-accent,var(--primary));height:3px;position:absolute;top:0;left:0;right:0}.analysis-summary-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.analysis-card-primary{--card-accent:var(--primary)}.analysis-card-warning{--card-accent:var(--warning)}.analysis-card-error{--card-accent:var(--error)}.analysis-card-success{--card-accent:var(--success)}.analysis-card-header{justify-content:space-between;align-items:flex-start;display:flex}.analysis-card-icon{border-radius:var(--radius-md);background:color-mix(in srgb,var(--card-accent)12%,transparent);width:40px;height:40px;color:var(--card-accent);justify-content:center;align-items:center;display:flex}.analysis-card-icon svg{width:20px;height:20px}.analysis-card-sparkline{opacity:.8}.analysis-card-sparkline .sparkline{display:block}.analysis-card-body{gap:var(--spacing-xs);flex-direction:column;display:flex}.analysis-card-value{font-size:var(--font-2xl);color:var(--text-primary);letter-spacing:-.02em;font-weight:700;line-height:1.2}.analysis-card-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.analysis-card-footer{padding-top:var(--spacing-sm);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;margin-top:auto;display:flex}.analysis-card-subtext{font-size:var(--font-xs);color:var(--text-tertiary)}.analysis-card-trend{font-size:var(--font-xs);border-radius:var(--radius-sm);align-items:center;gap:2px;padding:2px 6px;font-weight:600;display:inline-flex}.analysis-card-trend.trend-up{color:var(--success);background:var(--success-light)}.analysis-card-trend.trend-down{color:var(--error);background:var(--error-light)}.analysis-grid-main{gap:var(--spacing-lg);grid-template-columns:1.2fr .8fr;display:grid}@media (max-width:1024px){.analysis-grid-main{grid-template-columns:1fr}}.analysis-grid-left,.analysis-grid-right{gap:var(--spacing-lg);flex-direction:column;display:flex}.analysis-grid-bottom{gap:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}@media (max-width:768px){.analysis-grid-bottom{grid-template-columns:1fr}}.analysis-panel{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);flex-direction:column;display:flex}.panel-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.panel-title{align-items:center;gap:var(--spacing-sm);font-size:var(--font-base);color:var(--text-primary);margin:0;font-weight:600;display:flex}.panel-title svg{color:var(--text-tertiary)}.panel-badge{font-size:var(--font-xs);border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);padding:4px 10px;font-weight:500}.panel-total{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.panel-link{font-size:var(--font-xs);color:var(--primary);align-items:center;gap:var(--spacing-xs);font-weight:500;text-decoration:none;display:flex}.panel-link:hover{text-decoration:underline}.spend-bar-container{margin-bottom:var(--spacing-lg)}.spend-bar{border-radius:var(--radius-full);background:var(--bg-tertiary);height:12px;display:flex;overflow:hidden}.spend-bar-segment{min-width:2px;height:100%;transition:width .3s}.spend-bar-segment:first-child{border-radius:var(--radius-full)0 0 var(--radius-full)}.spend-bar-segment:last-child{border-radius:0 var(--radius-full)var(--radius-full)0}.spend-legend{gap:var(--spacing-sm);flex-direction:column;display:flex}.spend-legend-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius);transition:background .15s;display:flex}.spend-legend-item:hover{background:var(--bg-tertiary)}.spend-legend-dot{border-radius:var(--radius-full);flex-shrink:0;width:10px;height:10px}.spend-legend-label{font-size:var(--font-sm);color:var(--text-secondary);flex:1}.spend-legend-value{font-size:var(--font-sm);color:var(--text-primary);text-align:right;min-width:90px;font-weight:600}.spend-legend-percent{font-size:var(--font-xs);color:var(--text-tertiary);text-align:right;min-width:45px}.discrepancy-severity-grid{gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(4,1fr);display:grid}@media (max-width:640px){.discrepancy-severity-grid{grid-template-columns:repeat(2,1fr)}}.severity-card{background:var(--severity-bg,var(--bg-tertiary));border-radius:var(--radius-md);padding:var(--spacing-md);gap:var(--spacing-xs);border-left:3px solid var(--severity-color,var(--gray-400));flex-direction:column;display:flex}.severity-count{font-size:var(--font-xl);color:var(--severity-color,var(--text-primary));font-weight:700;line-height:1}.severity-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.severity-bar{background:color-mix(in srgb,var(--severity-color)20%,transparent);border-radius:var(--radius-full);height:4px;margin-top:var(--spacing-xs);overflow:hidden}.severity-bar-fill{background:var(--severity-color,var(--primary));border-radius:var(--radius-full);height:100%;transition:width .3s}.discrepancy-types-list{border-top:1px solid var(--border-color);padding-top:var(--spacing-md)}.types-title{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--spacing-sm)0;font-weight:600}.type-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)0;display:flex}.type-item:not(:last-child){border-bottom:1px solid var(--border-color)}.type-icon{font-size:var(--font-base)}.type-label{font-size:var(--font-sm);color:var(--text-secondary);flex:1}.type-count{font-size:var(--font-sm);color:var(--text-primary);text-align:center;background:var(--bg-tertiary);border-radius:var(--radius-full);min-width:28px;padding:2px 8px;font-weight:600}.resolution-panel{align-items:center}.resolution-progress-ring{width:140px;height:140px;margin:var(--spacing-md)auto var(--spacing-lg);position:relative}.progress-svg{width:100%;height:100%;transform:rotate(-90deg)}.progress-svg circle{transition:stroke-dasharray .5s}.progress-center{flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.progress-value{font-size:var(--font-2xl);color:var(--text-primary);font-weight:700;line-height:1}.progress-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;margin-top:4px}.resolution-stats{gap:var(--spacing-xs);flex-direction:column;width:100%;display:flex}.resolution-stat{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs)0;display:flex}.resolution-stat .stat-dot{border-radius:var(--radius-full);flex-shrink:0;width:8px;height:8px}.resolution-stat .stat-label{font-size:var(--font-sm);color:var(--text-secondary);flex:1}.resolution-stat .stat-count{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.resolution-action{justify-content:center;align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-md);padding:var(--spacing-sm)var(--spacing-md);background:var(--primary-light);color:var(--primary);border-radius:var(--radius);font-size:var(--font-sm);font-weight:500;text-decoration:none;transition:all .15s;display:flex}.resolution-action:hover{background:var(--primary);color:var(--text-inverse)}.vendor-panel .vendor-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.vendor-panel .vendor-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);transition:all .15s;display:flex}.vendor-panel .vendor-item:hover{background:var(--gray-200)}.vendor-panel .vendor-rank{border-radius:var(--radius-full);background:var(--primary);width:24px;height:24px;color:var(--text-inverse);font-size:var(--font-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.vendor-panel .vendor-item:first-child .vendor-rank{background:#f59e0b}.vendor-panel .vendor-item:nth-child(2) .vendor-rank{background:#94a3b8}.vendor-panel .vendor-item:nth-child(3) .vendor-rank{background:#cd7f32}.vendor-avatar{border-radius:var(--radius);background:var(--primary-light);width:36px;height:36px;color:var(--primary);font-size:var(--font-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.vendor-panel .vendor-info{flex:1;min-width:0}.vendor-panel .vendor-name{font-size:var(--font-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}.vendor-meta{font-size:var(--font-xs);color:var(--text-tertiary);align-items:center;gap:var(--spacing-xs);display:flex}.vendor-separator{color:var(--text-muted)}.vendor-score{text-align:right;flex-shrink:0}.vendor-score .score-value{font-size:var(--font-base);font-weight:700}.vendor-score .score-label{color:var(--text-tertiary);text-transform:uppercase;font-size:10px}.vendor-score.excellent .score-value{color:var(--success)}.vendor-score.good .score-value{color:var(--primary)}.vendor-score.fair .score-value{color:var(--warning)}.vendor-score.poor .score-value{color:var(--error)}.activity-panel .activity-timeline{flex-direction:column;display:flex;position:relative}.activity-panel .activity-timeline:before{content:"";background:var(--border-color);width:2px;position:absolute;top:24px;bottom:24px;left:15px}[dir=rtl] .activity-panel .activity-timeline:before{left:auto;right:15px}.timeline-item{gap:var(--spacing-md);padding:var(--spacing-sm)0;display:flex;position:relative}.timeline-item.latest .timeline-marker{animation:2s infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb,var(--marker-color)40%,transparent)}50%{box-shadow:0 0 0 8px #0000}}.timeline-marker{border-radius:var(--radius-full);background:color-mix(in srgb,var(--marker-color)15%,var(--bg-secondary));border:2px solid var(--marker-color,var(--primary));z-index:1;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.timeline-icon{font-size:var(--font-sm)}.timeline-content{flex:1;padding-top:4px}.timeline-text{font-size:var(--font-sm);color:var(--text-primary);margin:0 0 4px;line-height:1.4}.timeline-time{font-size:var(--font-xs);color:var(--text-muted)}.ai-insights-panel{background:linear-gradient(135deg,var(--bg-secondary)0%,color-mix(in srgb,var(--primary)3%,var(--bg-secondary))100%);border:1px solid color-mix(in srgb,var(--primary)15%,var(--border-color))}.ai-badge{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);border-radius:var(--radius-full);background:linear-gradient(135deg,var(--primary)0%,var(--admin)100%);color:var(--text-inverse);padding:4px 10px;font-weight:500;display:inline-flex}.insights-list{gap:var(--spacing-md);flex-direction:column;display:flex}.insight-card{gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);background:var(--bg-secondary);border:1px solid var(--border-color);transition:all .15s;display:flex}.insight-card:hover{box-shadow:var(--shadow-sm)}.insight-card.insight-alert{border-left:3px solid var(--error);background:color-mix(in srgb,var(--error)3%,var(--bg-secondary))}.insight-card.insight-savings{border-left:3px solid var(--success);background:color-mix(in srgb,var(--success)3%,var(--bg-secondary))}.insight-card.insight-improvement{border-left:3px solid var(--primary);background:color-mix(in srgb,var(--primary)3%,var(--bg-secondary))}.insight-card.insight-success{border-left:3px solid var(--accent);background:color-mix(in srgb,var(--accent)3%,var(--bg-secondary))}.insight-icon{font-size:var(--font-xl);flex-shrink:0}.insight-content{flex:1;min-width:0}.insight-title{font-size:var(--font-sm);color:var(--text-primary);margin:0 0 var(--spacing-xs)0;font-weight:600}.insight-description{font-size:var(--font-sm);color:var(--text-secondary);margin:0;line-height:1.5}.insight-action{align-items:center;gap:var(--spacing-xs);margin-top:var(--spacing-sm);font-size:var(--font-xs);color:var(--primary);font-weight:500;text-decoration:none;display:inline-flex}.insight-action:hover{text-decoration:underline}.analysis-panel .empty-state{padding:var(--spacing-xl)var(--spacing-md);text-align:center}.analysis-panel .empty-state p{font-size:var(--font-sm);color:var(--text-tertiary);margin:0}[dir=rtl] .analysis-dashboard-header{flex-direction:row-reverse}[dir=rtl] .analysis-summary-card:before{left:auto;right:0}[dir=rtl] .analysis-card-header,[dir=rtl] .analysis-card-footer,[dir=rtl] .panel-header,[dir=rtl] .panel-title,[dir=rtl] .spend-legend-item{flex-direction:row-reverse}[dir=rtl] .spend-legend-value,[dir=rtl] .spend-legend-percent{text-align:left}[dir=rtl] .severity-card{border-left:none;border-right:3px solid var(--severity-color,var(--gray-400))}[dir=rtl] .type-item,[dir=rtl] .resolution-stat,[dir=rtl] .vendor-panel .vendor-item{flex-direction:row-reverse}[dir=rtl] .vendor-score{text-align:left}[dir=rtl] .timeline-item{flex-direction:row-reverse}[dir=rtl] .insight-card{border-left:none;flex-direction:row-reverse}[dir=rtl] .insight-card.insight-alert{border-right:3px solid var(--error)}[dir=rtl] .insight-card.insight-savings{border-right:3px solid var(--success)}[dir=rtl] .insight-card.insight-improvement{border-right:3px solid var(--primary)}[dir=rtl] .insight-card.insight-success{border-right:3px solid var(--accent)}@media (max-width:640px){.analysis-dashboard{gap:var(--spacing-lg)}.analysis-dashboard-header{flex-direction:column;align-items:stretch}.dashboard-actions{justify-content:stretch}.dashboard-actions .btn{flex:1;justify-content:center}.analysis-summary-card{padding:var(--spacing-md)}.analysis-card-value{font-size:var(--font-xl)}.analysis-panel{padding:var(--spacing-md)}.resolution-progress-ring{width:120px;height:120px}}.kpi-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.kpi-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);align-items:flex-start;gap:var(--spacing-md);transition:box-shadow .2s,border-color .2s;display:flex}.kpi-card:hover{box-shadow:var(--shadow-md)}.kpi-card .kpi-content{gap:var(--spacing-xs);flex-direction:column;display:flex}.kpi-card .kpi-value{color:var(--text-primary);font-size:1.5rem;font-weight:700;line-height:1.2}.kpi-card .kpi-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.kpi-card .kpi-trend{align-items:center;gap:var(--spacing-xs);border-radius:var(--radius-sm);padding:2px 6px;font-size:.75rem;font-weight:500;display:inline-flex}.kpi-card .kpi-trend.up{color:var(--success);background:var(--success-light)}.kpi-card .kpi-trend.down{color:var(--error);background:var(--error-light)}.kpi-card.kpi-primary .kpi-icon{background:var(--primary-light);color:var(--primary)}.kpi-card.kpi-warning .kpi-icon{background:var(--warning-light);color:var(--warning)}.kpi-card.kpi-success .kpi-icon{background:var(--success-light);color:var(--success)}.kpi-card.kpi-error .kpi-icon{background:var(--error-light);color:var(--error)}[dir=rtl] .kpi-card{flex-direction:row-reverse}@media (max-width:768px){.modal-overlay{padding:var(--spacing-sm);align-items:flex-end}.modal{border-radius:var(--radius-lg)var(--radius-lg)0 0;max-width:100%;max-height:85vh}.modal-large{max-width:100%}.modal-header{padding:var(--spacing-md)}.modal-title{font-size:var(--font-md)}.modal-body{padding:var(--spacing-md)}.modal-footer{padding:var(--spacing-md);flex-wrap:wrap}.modal-footer .btn{flex:1;min-width:120px}.notification-toast,.toast{left:var(--spacing-sm)!important;right:var(--spacing-sm)!important;width:auto!important;max-width:none!important}.toast-container{left:var(--spacing-sm);right:var(--spacing-sm);bottom:var(--spacing-sm)}.table-container{-webkit-overflow-scrolling:touch;margin:0 calc(-1*var(--spacing-md));padding:0 var(--spacing-md);overflow-x:auto}.data-table{min-width:600px}.data-table th,.data-table td{padding:var(--spacing-sm);font-size:var(--font-xs)}.btn{padding:var(--spacing-sm)var(--spacing-md)}.btn-sm,.btn--sm{padding:var(--spacing-xs)var(--spacing-sm)}.card{padding:var(--spacing-md)}.card-header{padding-bottom:var(--spacing-sm);gap:var(--spacing-sm);flex-wrap:wrap}.card-title{font-size:var(--font-md)}.form-row{flex-direction:column}.form-group{width:100%}.filters-bar{gap:var(--spacing-sm);flex-wrap:wrap}.filters-bar .form-select,.filters-bar .form-input{min-width:100%}.stat-card{padding:var(--spacing-md)}.stat-value{font-size:var(--font-xl)}.renewal-item,.discrepancy-item,.activity-item,.optimization-item{padding:var(--spacing-sm);gap:var(--spacing-sm);flex-wrap:wrap}.upload-area{padding:var(--spacing-lg)}.upload-area p{font-size:var(--font-sm)}.lang-dropdown{min-width:120px;left:auto;right:0}.action-menu{min-width:160px}.header-actions{gap:var(--spacing-xs);flex-wrap:wrap}.header-actions .btn{padding:var(--spacing-xs)var(--spacing-sm);font-size:var(--font-xs)}.header-actions .btn svg{width:16px;height:16px}}@media (max-width:480px){.modal-overlay{padding:0}.modal{border-radius:var(--radius-lg)var(--radius-lg)0 0;max-height:90vh}.modal-header,.modal-body,.modal-footer{padding:var(--spacing-sm)}.card{padding:var(--spacing-sm);border-radius:var(--radius)}.stat-card{padding:var(--spacing-sm)}.stat-value{font-size:var(--font-lg)}.stat-label{font-size:var(--font-xs)}.btn-text-mobile-hide{display:none}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}}.contracts-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.contracts-list{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.contracts-grid{gap:var(--spacing-lg);padding:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.contract-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:box-shadow .2s,border-color .2s}.contract-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-light)}.contract-card.critical{border-left:4px solid var(--error)}.contract-card.warning{border-left:4px solid var(--warning)}.contract-card.info{border-left:4px solid var(--info)}.contract-card.expired{opacity:.7;border-left:4px solid var(--gray-400)}.contract-card-header{margin-bottom:var(--spacing-md)}.contract-title-row{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs);display:flex}.contract-title{font-size:var(--font-md);margin:0;font-weight:600}.contract-title a{color:var(--text-primary);text-decoration:none}.contract-title a:hover{color:var(--primary)}.contract-number{font-size:var(--font-sm);color:var(--text-tertiary)}.contract-card-body{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.contract-info-row{font-size:var(--font-sm);justify-content:space-between;display:flex}.contract-info-row .label{color:var(--text-tertiary)}.contract-info-row .value{color:var(--text-primary);font-weight:500}.contract-card-footer{padding-top:var(--spacing-md);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.contract-card-actions{gap:var(--spacing-xs);margin-top:var(--spacing-sm);display:flex}.status-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:500;display:inline-flex}.status-badge svg{width:14px;height:14px}.expiration-indicator{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);display:inline-flex}.expiration-indicator svg{width:14px;height:14px}.expiration-indicator.critical{color:var(--error);background:var(--error-light)}.expiration-indicator.warning{color:var(--warning);background:var(--warning-light)}.expiration-indicator.info{color:var(--info);background:var(--info-light)}.expiration-indicator.expired{color:var(--gray-600);background:var(--gray-200)}.renewal-badge{font-size:var(--font-sm)}.filters-bar{gap:var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.filter-group{align-items:center;gap:var(--spacing-sm);display:flex}.filter-label{font-size:var(--font-sm);color:var(--text-secondary)}.filter-select{padding:var(--spacing-xs)var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-sm)}.pagination{justify-content:center;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);display:flex}.pagination-btn{padding:var(--spacing-xs)var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer}.pagination-btn:hover:not(:disabled){background:var(--bg-secondary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.empty-state{text-align:center;padding:var(--spacing-xxl);color:var(--text-tertiary)}.empty-state-icon{margin-bottom:var(--spacing-md);font-size:48px}.empty-state-title{font-size:var(--font-lg);margin-bottom:var(--spacing-sm);font-weight:600}.empty-state-description{font-size:var(--font-sm)}.contract-detail{gap:var(--spacing-xl);grid-template-columns:1fr 1fr;display:grid}.contract-section{margin-bottom:var(--spacing-lg)}.contract-section-title{font-size:var(--font-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--spacing-md);font-weight:600}.contract-field{padding:var(--spacing-sm)0;border-bottom:1px solid var(--border-color);justify-content:space-between;display:flex}.contract-field:last-child{border-bottom:none}.contract-field-label{font-size:var(--font-sm);color:var(--text-tertiary)}.contract-field-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:500}.contract-terms{background:var(--bg-tertiary);border-radius:var(--radius);padding:var(--spacing-md)}.contract-term-item{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm)0;font-size:var(--font-sm);display:flex}.contract-term-item svg{width:16px;height:16px;color:var(--success)}.contract-list-container{width:100%}.contract-list-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.contract-list-header .header-left{align-items:center;gap:var(--spacing-md);display:flex}.contract-list-header .header-left h2{font-size:var(--font-xl);margin:0;font-weight:600}.contract-list-header .item-count{font-size:var(--font-sm);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full)}.contract-list-header .header-right{align-items:center;gap:var(--spacing-md);display:flex}.contract-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.view-toggle{border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;overflow:hidden}.view-btn{padding:var(--spacing-xs)var(--spacing-sm);background:var(--bg-primary);cursor:pointer;border:none;justify-content:center;align-items:center;display:flex}.view-btn svg{width:18px;height:18px;color:var(--text-tertiary)}.view-btn:hover{background:var(--bg-secondary)}.view-btn.active{background:var(--primary-light)}.view-btn.active svg{color:var(--primary)}.contract-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);flex-wrap:wrap;align-items:flex-end;display:flex}.contract-filters .filter-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.contract-filters .filter-group label{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:500}.contract-filters .filter-select,.contract-filters .filter-input{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-sm);min-width:140px}.contract-filters .filter-actions{flex-direction:row;margin-left:auto}.pagination{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.pagination-info{font-size:var(--font-sm);color:var(--text-secondary)}.pagination-buttons{gap:var(--spacing-xs);display:flex}.btn-page{border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);cursor:pointer;width:36px;height:36px;font-size:var(--font-sm);color:var(--text-primary);justify-content:center;align-items:center;display:flex}.btn-page:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--primary)}.btn-page.active{background:var(--primary);border-color:var(--primary);color:#fff}.btn-page:disabled{opacity:.5;cursor:not-allowed}.btn-page svg{width:16px;height:16px}.table-container{overflow-x:auto}.contract-table{border-collapse:collapse;background:var(--bg-primary);border-radius:var(--radius-lg);width:100%;overflow:hidden}.contract-table th{text-align:left;padding:var(--spacing-md);font-size:var(--font-sm);color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-weight:600}.contract-table td{padding:var(--spacing-md);font-size:var(--font-sm);border-bottom:1px solid var(--border-color)}.contract-table tr:hover{background:var(--bg-secondary)}.contract-row.critical td{border-left:3px solid var(--error)}.contract-row.warning td{border-left:3px solid var(--warning)}.contract-title-cell{gap:var(--spacing-xxs);flex-direction:column;display:flex}.contract-title-cell .contract-link{color:var(--text-primary);font-weight:500;text-decoration:none}.contract-title-cell .contract-link:hover{color:var(--primary)}.contract-title-cell .contract-number{font-size:var(--font-xs);color:var(--text-tertiary)}.action-buttons{gap:var(--spacing-xs);display:flex}.empty-state .empty-icon{width:64px;height:64px;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.empty-state h3{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm);font-weight:600}.empty-state p{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.empty-state .btn{align-items:center;gap:var(--spacing-sm);display:inline-flex}.empty-state .btn svg{width:18px;height:18px}.invoices-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.invoices-list{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.vendor-list-container{width:100%}.vendor-list-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.vendor-list-header .header-left{align-items:center;gap:var(--spacing-md);display:flex}.vendor-list-header .header-left h2{font-size:var(--font-xl);margin:0;font-weight:600}.vendor-list-header .item-count{font-size:var(--font-sm);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full)}.vendor-list-header .header-right{align-items:center;gap:var(--spacing-md);display:flex}.vendor-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(320px,1fr));display:grid}.vendor-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:box-shadow .2s,border-color .2s;position:relative}.vendor-card:hover{box-shadow:var(--shadow-md);border-color:var(--primary-light)}.vendor-card-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;display:flex}.vendor-card-header .vendor-name{font-size:var(--font-md);margin:0;font-weight:600}.vendor-card-header .vendor-name a{color:var(--text-primary);text-decoration:none}.vendor-card-header .vendor-name a:hover{color:var(--primary)}.vendor-card-header .vendor-category{font-size:var(--font-xs);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full)}.vendor-card-body{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-direction:column;display:flex}.vendor-info-row{font-size:var(--font-sm);justify-content:space-between;display:flex}.vendor-info-row .label{color:var(--text-tertiary)}.vendor-info-row .value{color:var(--text-primary);font-weight:500}.vendor-info-row .value.aliases{font-size:var(--font-xs);color:var(--text-secondary)}.vendor-card-footer{padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.vendor-stats{align-items:center;gap:var(--spacing-md);display:flex}.vendor-stats .stat{align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);display:flex}.vendor-stats .stat svg{width:14px;height:14px}.vendor-stats .stat.active{color:var(--success)}.vendor-stats .stat.inactive{color:var(--text-tertiary)}.vendor-card-actions{gap:var(--spacing-xs);top:var(--spacing-md);right:var(--spacing-md);display:flex;position:absolute}.vendor-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);flex-wrap:wrap;align-items:flex-end;display:flex}.vendor-filters .filter-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.vendor-filters .filter-group label{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:500}.vendor-filters .filter-select,.vendor-filters .filter-input{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-sm);min-width:140px}.vendor-filters .filter-actions{flex-direction:row;margin-left:auto}.vendor-table{border-collapse:collapse;background:var(--bg-primary);border-radius:var(--radius-lg);width:100%;overflow:hidden}.vendor-table th{text-align:left;padding:var(--spacing-md);font-size:var(--font-sm);color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-weight:600}.vendor-table td{padding:var(--spacing-md);border-bottom:1px solid var(--border-color)}.vendor-table tr:hover{background:var(--bg-secondary)}.vendor-name-cell{gap:var(--spacing-xs);flex-direction:column;display:flex}.vendor-name-cell .vendor-link{color:var(--text-primary);font-weight:500;text-decoration:none}.vendor-name-cell .vendor-link:hover{color:var(--primary)}.vendor-name-cell .vendor-aliases{font-size:var(--font-xs);color:var(--text-tertiary)}.vendors-page,.vendor-detail-page{padding:var(--spacing-lg)}.vendor-detail-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;display:flex}.vendor-detail-header .header-left{gap:var(--spacing-sm);flex-direction:column;display:flex}.vendor-detail-header .back-link{align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);font-size:var(--font-sm);text-decoration:none;display:flex}.vendor-detail-header .back-link svg{width:16px;height:16px}.vendor-detail-header .back-link:hover{color:var(--primary)}.vendor-detail-header .vendor-title{font-size:var(--font-2xl);margin:0;font-weight:600}.vendor-detail-header .vendor-category-badge{font-size:var(--font-xs);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);width:fit-content}.vendor-detail-header .header-right{gap:var(--spacing-sm);display:flex}.vendor-detail-header .btn svg{width:16px;height:16px}.vendor-tabs{gap:var(--spacing-xs);border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-lg);display:flex}.vendor-tabs .tab-btn{padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;position:relative}.vendor-tabs .tab-btn:hover{color:var(--text-primary)}.vendor-tabs .tab-btn.active{color:var(--primary);font-weight:500}.vendor-tabs .tab-btn.active:after{content:"";background:var(--primary);height:2px;position:absolute;bottom:-1px;left:0;right:0}.vendor-overview .info-grid{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.vendor-overview .info-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.vendor-overview .info-card h3{font-size:var(--font-sm);color:var(--text-tertiary);margin:0 0 var(--spacing-sm)0;font-weight:500}.vendor-overview .info-card .stat-value{font-size:var(--font-2xl);color:var(--text-primary);font-weight:600}.detail-sections{gap:var(--spacing-xl);flex-direction:column;display:flex}.detail-section h3{font-size:var(--font-md);margin:0 0 var(--spacing-md)0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color);font-weight:600}.detail-grid{gap:var(--spacing-sm);flex-direction:column;display:flex}.detail-row{padding:var(--spacing-sm)0;justify-content:space-between;display:flex}.detail-row .label{color:var(--text-tertiary);font-size:var(--font-sm)}.detail-row .value{color:var(--text-primary);font-size:var(--font-sm);font-weight:500}.detail-row .value a{color:var(--primary);text-decoration:none}.detail-row .value a:hover{text-decoration:underline}.empty-tab{padding:var(--spacing-2xl);text-align:center;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;display:flex}.empty-tab .empty-icon{width:48px;height:48px;margin-bottom:var(--spacing-md);opacity:.5}.empty-tab p{font-size:var(--font-sm);margin:0}.linked-items-list{overflow-x:auto}.linked-items-list .data-table{border-collapse:collapse;width:100%}.linked-items-list .data-table th{text-align:left;padding:var(--spacing-md);font-size:var(--font-sm);color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-weight:600}.linked-items-list .data-table td{padding:var(--spacing-md);border-bottom:1px solid var(--border-color);font-size:var(--font-sm)}.linked-items-list .data-table tr:hover{background:var(--bg-secondary)}.linked-items-list .item-link{color:var(--text-primary);font-weight:500;text-decoration:none}.linked-items-list .item-link:hover{color:var(--primary)}.linked-items-list .item-number{font-size:var(--font-xs);color:var(--text-tertiary);display:block}.linked-items-list .btn-icon{cursor:pointer;border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.linked-items-list .btn-icon:hover{background:var(--bg-tertiary);color:var(--primary)}.linked-items-list .btn-icon svg{width:16px;height:16px}.vendor-edit-form{max-width:800px}.vendor-edit-form .form-section{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.vendor-edit-form .form-section h3{font-size:var(--font-md);margin:0 0 var(--spacing-md)0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color);font-weight:600}.vendor-edit-form .form-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.vendor-edit-form .form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.vendor-edit-form .form-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500}.vendor-edit-form .form-input,.vendor-edit-form .form-select{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:var(--font-sm);background:var(--bg-primary)}.vendor-edit-form .form-input:focus,.vendor-edit-form .form-select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.invoice-list-container{width:100%}.invoice-list-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.invoice-list-header .header-left{align-items:center;gap:var(--spacing-md);display:flex}.invoice-list-header .header-left h2{font-size:var(--font-xl);margin:0;font-weight:600}.invoice-list-header .item-count{font-size:var(--font-sm);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full)}.invoice-list-header .header-right{align-items:center;gap:var(--spacing-md);display:flex}.invoice-filters{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);flex-wrap:wrap;align-items:flex-end;display:flex}.invoice-filters .filter-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.invoice-filters .filter-group label{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:500}.invoice-filters .filter-select,.invoice-filters .filter-input{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);font-size:var(--font-sm);min-width:140px}.invoice-filters .date-range{align-items:center;gap:var(--spacing-xs);display:flex}.invoice-filters .date-range input{width:130px}.invoice-filters .filter-actions{flex-direction:row;margin-left:auto}.invoice-table{border-collapse:collapse;background:var(--bg-primary);border-radius:var(--radius-lg);width:100%;overflow:hidden}.invoice-table th{text-align:left;padding:var(--spacing-md);font-size:var(--font-sm);color:var(--text-secondary);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-weight:600}.invoice-table td{padding:var(--spacing-md);font-size:var(--font-sm);border-bottom:1px solid var(--border-color)}.invoice-table tr:hover{background:var(--bg-secondary)}.invoice-row.overdue td:first-child{border-left:3px solid var(--error)}.invoice-number-cell{align-items:center;gap:var(--spacing-sm);display:flex}.invoice-number-cell .invoice-link{color:var(--text-primary);font-weight:500;text-decoration:none}.invoice-number-cell .invoice-link:hover{color:var(--primary)}.discrepancy-indicator{align-items:center;gap:var(--spacing-xxs);color:var(--warning);display:inline-flex}.discrepancy-indicator svg{width:14px;height:14px}.discrepancy-indicator .count{font-size:var(--font-xs);background:var(--warning-light);padding:0 var(--spacing-xs);border-radius:var(--radius-full);font-weight:600}.overdue-date{color:var(--error)}.overdue-badge{font-size:var(--font-xs);padding:var(--spacing-xxs)var(--spacing-xs);background:var(--error-light);color:var(--error);border-radius:var(--radius-sm);margin-left:var(--spacing-xs)}.bulk-actions{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm)var(--spacing-md);background:var(--primary-light);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);display:flex}.bulk-actions .selected-count{font-size:var(--font-sm);color:var(--primary);font-weight:500}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none}.th-sortable:hover{background:var(--bg-tertiary)}.th-sortable .sort-icon{opacity:.5;width:14px;height:14px;margin-left:var(--spacing-xs)}.th-sortable.sorted .sort-icon{opacity:1}.th-sortable.sorted.desc .sort-icon{transform:rotate(180deg)}.invoice-detail{gap:var(--spacing-xl);grid-template-columns:1fr 1fr;display:grid}.invoice-summary{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(3,1fr);display:grid}.invoice-summary-item{background:var(--bg-tertiary);padding:var(--spacing-md);border-radius:var(--radius);text-align:center}.invoice-summary-value{font-size:var(--font-2xl);color:var(--text-primary);font-weight:700}.invoice-summary-label{font-size:var(--font-xs);color:var(--text-tertiary)}.line-items-table{margin-top:var(--spacing-lg)}.line-items-table th,.line-items-table td{padding:var(--spacing-sm)var(--spacing-md)}.renewals-timeline{gap:var(--spacing-lg);flex-direction:column;display:flex}.renewal-period{margin-bottom:var(--spacing-xl)}.period-header{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.period-badge{padding:var(--spacing-xs)var(--spacing-md);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600}.period-badge.urgent{background:var(--error-light);color:var(--error)}.period-badge.soon{background:var(--warning-light);color:var(--warning)}.period-badge.upcoming{background:var(--info-light);color:var(--info)}.period-title{font-size:var(--font-sm);color:var(--text-secondary);font-weight:600}.renewal-cards{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(300px,1fr));display:grid}.renewal-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all var(--transition-fast)}.renewal-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.renewal-card-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;display:flex}.renewal-card-vendor{color:var(--text-primary);font-weight:600}.renewal-card-contract{font-size:var(--font-sm);color:var(--text-tertiary)}.renewal-card-days{font-size:var(--font-2xl);font-weight:700;line-height:1}.renewal-card-days.urgent{color:var(--error)}.renewal-card-days.warning{color:var(--warning)}.renewal-card-days span{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:400;display:block}.renewal-card-meta{padding-top:var(--spacing-md);border-top:1px solid var(--border-color);font-size:var(--font-sm);justify-content:space-between;display:flex}.renewal-card-value{color:var(--text-primary);font-weight:600}.renewal-card-status{align-items:center;gap:var(--spacing-xs);display:inline-flex}.analysis-tabs{gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);display:flex}.analysis-content{gap:var(--spacing-lg);grid-template-columns:2fr 1fr;display:grid}.analysis-main,.analysis-sidebar{gap:var(--spacing-lg);flex-direction:column;display:flex}.section-header{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.badge{border-radius:var(--radius);font-size:var(--font-xs);align-items:center;padding:.25rem .5rem;font-weight:500;display:inline-flex}.badge--warning{background:var(--warning-light);color:var(--warning)}.badge--success{background:var(--success-light);color:var(--success)}.badge--error{background:var(--error-light);color:var(--error)}.badge--info{background:var(--info-light);color:var(--info)}.discrepancy-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);cursor:pointer;transition:all var(--transition-fast)}.discrepancy-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.discrepancy-card-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:flex-start;display:flex}.discrepancy-card-type{border-radius:var(--radius);font-size:var(--font-xs);text-transform:uppercase;padding:4px 12px;font-weight:600}.discrepancy-card-type.pricing{background:var(--warning-light);color:var(--warning)}.discrepancy-card-type.quantity{background:var(--info-light);color:var(--info)}.discrepancy-card-type.unauthorized{background:var(--error-light);color:var(--error)}.discrepancy-card-impact{font-size:var(--font-xl);color:var(--error);font-weight:700}.discrepancy-card-title{color:var(--text-primary);margin-bottom:var(--spacing-xs);font-weight:600}.discrepancy-card-detail{font-size:var(--font-sm);color:var(--text-tertiary)}.discrepancy-card-footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.discrepancy-card-date{font-size:var(--font-xs);color:var(--text-muted)}.summary-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.summary-card--link{cursor:pointer;transition:all var(--transition-fast)}.summary-card--link:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.summary-card--link .summary-card-title{justify-content:space-between;align-items:center;display:flex}.summary-card--link .summary-card-title svg{color:var(--primary)}.summary-card-desc{font-size:var(--font-sm);color:var(--text-secondary);margin:0 0 var(--spacing-md)0}.summary-card-title{font-size:var(--font-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-md);font-weight:600}.summary-stat{margin-bottom:var(--spacing-md)}.summary-stat:last-child{margin-bottom:0}.summary-stat-value{font-size:var(--font-2xl);color:var(--text-primary);font-weight:700}.summary-stat-label{font-size:var(--font-xs);color:var(--text-tertiary)}.integrations-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.integration-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-fast)}.integration-card:hover{border-color:var(--border-color-hover);box-shadow:var(--shadow-md)}.integration-card-header{align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md);display:flex}.integration-logo{border-radius:var(--radius);background:var(--bg-tertiary);width:48px;height:48px;font-size:var(--font-xl);justify-content:center;align-items:center;display:flex}.integration-info{flex:1}.integration-name{color:var(--text-primary);font-weight:600}.integration-type{font-size:var(--font-xs);color:var(--text-tertiary)}.integration-status{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);border-radius:var(--radius-full);padding:4px 10px;display:flex}.integration-status.connected{background:var(--success-light);color:var(--success)}.integration-status.disconnected{background:var(--gray-100);color:var(--text-tertiary)}.integration-status-dot{border-radius:var(--radius-full);background:currentColor;width:6px;height:6px}.integration-card-body{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.integration-card-footer{justify-content:space-between;align-items:center;display:flex}.integration-last-sync{font-size:var(--font-xs);color:var(--text-muted)}.settings-layout{gap:var(--spacing-xl);grid-template-columns:240px 1fr;display:grid}.settings-nav{gap:var(--spacing-xs);flex-direction:column;display:flex}.settings-nav-item{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius);font-size:var(--font-sm);color:var(--text-secondary);transition:all var(--transition-fast)}.settings-nav-item:hover{background:var(--gray-100);color:var(--text-primary)}.settings-nav-item.active{background:var(--primary-light);color:var(--primary)}.settings-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.settings-section{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.settings-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.settings-section-title{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm);font-weight:600}.settings-section-desc{font-size:var(--font-sm);color:var(--text-tertiary);margin-bottom:var(--spacing-lg)}.settings-row{padding:var(--spacing-md)0;justify-content:space-between;align-items:center;display:flex}.settings-row-info{flex:1}.settings-row-label{font-size:var(--font-sm);color:var(--text-primary);font-weight:500}.settings-row-desc{font-size:var(--font-xs);color:var(--text-tertiary)}.toggle{width:44px;height:24px;position:relative}.toggle input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background:var(--gray-300);border-radius:var(--radius-full);transition:var(--transition-fast);position:absolute;inset:0}.toggle-slider:before{content:"";border-radius:var(--radius-full);width:18px;height:18px;transition:var(--transition-fast);background:#fff;position:absolute;bottom:3px;left:3px}.toggle input:checked+.toggle-slider{background:var(--primary)}.toggle input:checked+.toggle-slider:before{transform:translate(20px)}.notification-options{gap:var(--spacing-sm);flex-direction:column;display:flex}.notification-option{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius);display:flex}.notification-option input[type=checkbox]{width:18px;height:18px;accent-color:var(--primary)}.notification-option-label{font-size:var(--font-sm);color:var(--text-primary)}.comparison-view{gap:var(--spacing-lg);margin-top:var(--spacing-lg);grid-template-columns:1fr 1fr;display:grid}.comparison-panel{background:var(--bg-tertiary);border-radius:var(--radius);padding:var(--spacing-lg)}.comparison-panel-title{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md);align-items:center;gap:var(--spacing-sm);font-weight:600;display:flex}.comparison-panel-title svg{width:16px;height:16px}.comparison-item{padding:var(--spacing-sm)0;border-bottom:1px solid var(--border-color);justify-content:space-between;display:flex}.comparison-item:last-child{border-bottom:none}.comparison-item-label{font-size:var(--font-sm);color:var(--text-tertiary)}.comparison-item-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:500}.comparison-item-value.mismatch{color:var(--error);background:var(--error-light);border-radius:var(--radius);padding:2px 8px}.comparison-item-value.match{color:var(--success)}.renewal-detail-page{max-width:1200px;margin:0 auto}.renewal-detail-loading,.renewal-detail-error{justify-content:center;align-items:center;gap:var(--spacing-lg);min-height:400px;color:var(--text-secondary);flex-direction:column;display:flex}.error-icon{color:var(--error)}.renewal-detail-header{margin-bottom:var(--spacing-xl)}.header-breadcrumb{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);font-size:var(--font-sm);display:flex}.breadcrumb-link{align-items:center;gap:var(--spacing-xs);color:var(--primary);text-decoration:none;display:flex}.breadcrumb-link:hover{text-decoration:underline}.breadcrumb-separator{color:var(--text-tertiary)}.breadcrumb-current{color:var(--text-secondary)}.header-main{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:flex-start;display:flex}.header-info{align-items:center;gap:var(--spacing-lg);display:flex}.vendor-logo{border-radius:var(--radius-lg);object-fit:contain;background:var(--bg-secondary);width:64px;height:64px;padding:var(--spacing-sm)}.vendor-logo-placeholder{border-radius:var(--radius-lg);background:var(--primary-light);width:64px;height:64px;color:var(--primary);font-size:var(--font-2xl);justify-content:center;align-items:center;font-weight:700;display:flex}.renewal-title{font-size:var(--font-2xl);color:var(--text-primary);margin-bottom:var(--spacing-xs);font-weight:700}.renewal-vendor{font-size:var(--font-sm);color:var(--text-secondary)}.header-badges{gap:var(--spacing-sm);display:flex}.badge{padding:var(--spacing-xs)var(--spacing-md);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:600}.status-urgent{background:var(--error-light);color:var(--error)}.status-upcoming{background:var(--info-light);color:var(--info)}.status-completed{background:var(--success-light);color:var(--success)}.status-overdue,.priority-critical{background:var(--error);color:#fff}.priority-high{background:var(--warning-light);color:var(--warning-dark,#92400e)}.priority-medium{background:var(--info-light);color:var(--info)}.priority-low{background:var(--gray-100);color:var(--text-secondary)}.header-actions{gap:var(--spacing-sm);display:flex}.renewal-stats{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(4,1fr);display:grid}.stat-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);align-items:center;gap:var(--spacing-md);display:flex}.stat-icon{border-radius:var(--radius);justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-icon svg{width:24px;height:24px}.stat-icon-calendar{background:var(--primary-light);color:var(--primary)}.stat-icon-dollar{background:var(--success-light);color:var(--success)}.stat-icon-trend{background:var(--info-light);color:var(--info)}.stat-icon-clock{background:var(--warning-light);color:var(--warning)}.stat-content{flex-direction:column;display:flex}.stat-label{font-size:var(--font-xs);color:var(--text-tertiary);margin-bottom:var(--spacing-xs)}.stat-value.loading{align-items:center;min-width:40px;display:flex}.stat-loading-dot{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite statPulse}@keyframes statPulse{0%,to{opacity:.3;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}.stat-value.text-urgent{color:var(--error)}.renewal-tabs{gap:var(--spacing-xs);border-bottom:1px solid var(--border-color);margin-bottom:var(--spacing-lg);display:flex}.tab-btn{padding:var(--spacing-md)var(--spacing-lg);font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-weight:500}.tab-btn:hover{color:var(--text-primary)}.tab-btn.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-content-container{min-height:400px}.overview-content{display:block}.overview-grid{gap:var(--spacing-xl);grid-template-columns:2fr 1fr;display:grid}.overview-main,.overview-sidebar{gap:var(--spacing-lg);flex-direction:column;display:flex}.detail-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.section-title{font-size:var(--font-md);color:var(--text-primary);margin-bottom:var(--spacing-md);font-weight:600}.term-item{padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius)}.term-label{font-size:var(--font-xs);color:var(--text-tertiary);margin-bottom:var(--spacing-xs);display:block}.term-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:500}.info-list{flex-direction:column;display:flex}.info-item{padding:var(--spacing-sm)0;border-bottom:1px solid var(--border-color);justify-content:space-between;display:flex}.info-item:last-child{border-bottom:none}.info-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:500}.info-value.link{color:var(--primary);text-decoration:none}.info-value.link:hover{text-decoration:underline}.auto-renewal-badge{border-radius:var(--radius);font-size:var(--font-xs);padding:2px 8px}.auto-renewal-badge.enabled{background:var(--success-light);color:var(--success)}.auto-renewal-badge.disabled{background:var(--gray-100);color:var(--text-tertiary)}.related-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.related-item{padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius);transition:background var(--transition-fast);justify-content:space-between;align-items:center;text-decoration:none;display:flex}.related-item:hover{background:var(--gray-200)}.related-title{font-size:var(--font-sm);color:var(--text-primary)}.related-status{font-size:var(--font-xs);border-radius:var(--radius);background:var(--gray-100);color:var(--text-tertiary);padding:2px 8px}.related-status.expired{background:var(--error-light);color:var(--error)}.notes-content{max-width:800px}.add-note-form{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.note-input{width:100%;padding:var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-primary);font-size:var(--font-sm);resize:vertical;min-height:80px}.note-input:focus{border-color:var(--primary);outline:none}.note-form-actions{margin-top:var(--spacing-md);justify-content:flex-end;display:flex}.notes-list{gap:var(--spacing-md);flex-direction:column;display:flex}.note-item{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.note-header{margin-bottom:var(--spacing-sm);justify-content:space-between;display:flex}.note-author{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}.note-date{font-size:var(--font-xs);color:var(--text-tertiary)}.note-text{font-size:var(--font-sm);color:var(--text-secondary);line-height:1.6}.notes-empty{text-align:center;padding:var(--spacing-xl);color:var(--text-tertiary)}.history-content{max-width:800px}.history-list{padding-left:var(--spacing-xl);position:relative}.history-list:before{content:"";background:var(--border-color);width:2px;position:absolute;top:0;bottom:0;left:6px}.history-item{padding-bottom:var(--spacing-lg);position:relative}.history-dot{left:calc(-1*var(--spacing-xl) + 2px);background:var(--primary);border-radius:50%;width:10px;height:10px;position:absolute;top:2px}.history-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);padding:var(--spacing-md)}.history-action{font-size:var(--font-sm);color:var(--text-primary);margin-bottom:var(--spacing-xs);font-weight:500;display:block}.history-meta{gap:var(--spacing-md);font-size:var(--font-xs);color:var(--text-tertiary);display:flex}.history-empty{text-align:center;padding:var(--spacing-xl);color:var(--text-tertiary)}.renewals-widget-card .card-title{align-items:center;gap:var(--spacing-sm);display:flex}.card-title-icon{color:var(--primary)}.urgent-badge{background:var(--error);color:#fff;font-size:var(--font-xs);border-radius:var(--radius-full);padding:2px 8px;font-weight:600}.renewal-mini-stats{padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius);margin-bottom:var(--spacing-md);justify-content:space-around;align-items:center;display:flex}.mini-stat{text-align:center}.mini-stat-value{font-size:var(--font-lg);color:var(--text-primary);font-weight:700;display:block}.mini-stat-value.text-urgent{color:var(--error)}.mini-stat-label{font-size:var(--font-xs);color:var(--text-tertiary)}.mini-stat-divider{background:var(--border-color);width:1px;height:32px}.renewal-widget-list{flex-direction:column;display:flex}.renewal-widget-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius);transition:background var(--transition-fast);text-decoration:none;display:flex}.renewal-widget-item:hover{background:var(--bg-tertiary)}.renewal-widget-indicator{background:var(--gray-300);border-radius:2px;width:4px;height:40px}.urgency-critical .renewal-widget-indicator{background:var(--error)}.urgency-urgent .renewal-widget-indicator{background:var(--warning)}.urgency-soon .renewal-widget-indicator{background:var(--info)}.renewal-widget-content{flex:1;justify-content:space-between;align-items:center;display:flex}.renewal-widget-vendor{color:var(--text-primary);font-weight:600;font-size:var(--font-sm);display:block}.renewal-widget-title{font-size:var(--font-xs);color:var(--text-tertiary)}.renewal-widget-meta{text-align:right}.renewal-widget-days{color:var(--text-primary);font-weight:600;font-size:var(--font-sm);display:block}.text-overdue{color:var(--error)}.renewal-widget-value{font-size:var(--font-xs);color:var(--text-tertiary)}.renewal-widget-arrow{color:var(--text-tertiary)}.no-renewals-message{text-align:center;padding:var(--spacing-lg);color:var(--text-tertiary)}.priority-distribution{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.priority-bar{background:var(--gray-100);height:8px;margin-bottom:var(--spacing-sm);border-radius:4px;display:flex;overflow:hidden}.priority-segment{transition:width var(--transition-fast)}.priority-segment.critical{background:var(--error)}.priority-segment.high{background:var(--warning)}.priority-segment.medium{background:var(--info)}.priority-segment.low{background:var(--gray-400)}.priority-legend{gap:var(--spacing-md);flex-wrap:wrap;display:flex}.legend-item{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--text-tertiary);display:flex}.legend-item:before{content:"";border-radius:2px;width:8px;height:8px}.legend-item.critical:before{background:var(--error)}.legend-item.high:before{background:var(--warning)}.legend-item.medium:before{background:var(--info)}.legend-item.low:before{background:var(--gray-400)}@media (max-width:1024px){.renewal-stats{grid-template-columns:repeat(2,1fr)}.overview-grid{grid-template-columns:1fr}}@media (max-width:768px){.renewal-stats{grid-template-columns:1fr}.header-main{gap:var(--spacing-lg);flex-direction:column}.header-actions{width:100%}.header-actions .btn{flex:1}.terms-grid{grid-template-columns:1fr}}.upload-page-container{padding:var(--spacing-xl)}.upload-page .page-header{margin-bottom:var(--spacing-xl)}.upload-page .page-title{font-size:var(--font-2xl);color:var(--text-primary);margin-bottom:var(--spacing-xs);font-weight:700}.upload-page .page-subtitle{font-size:var(--font-md);color:var(--text-tertiary)}.batch-upload{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);margin-bottom:var(--spacing-xl)}.document-type-selector{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--border-color);background:var(--bg-tertiary);border-radius:var(--radius-lg)var(--radius-lg)0 0;display:flex}.document-type-selector .type-label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500}.document-type-selector .type-toggle{gap:var(--spacing-xs);background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border-color);padding:4px;display:flex}.document-type-selector .type-btn{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-sm);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);color:var(--text-secondary);background:0 0;border:none;font-weight:500;display:inline-flex}.document-type-selector .type-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.document-type-selector .type-btn.active{background:var(--primary);color:var(--text-inverse)}.document-type-selector .type-btn svg{width:18px;height:18px}.upload-dropzone{padding:var(--spacing-2xl);text-align:center;cursor:pointer;border:2px dashed var(--border-color);border-radius:var(--radius-lg);margin:var(--spacing-lg);background:var(--bg-tertiary);transition:all .2s}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}.upload-dropzone.drag-over{transform:scale(1.01)}.upload-icon{width:64px;height:64px;margin:0 auto var(--spacing-md);color:var(--primary);opacity:.8}.upload-text{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.upload-text-browse{color:var(--primary);cursor:pointer;text-decoration:underline}.upload-formats{font-size:var(--font-sm);color:var(--text-tertiary)}.file-queue{border-top:1px solid var(--border-color);padding:var(--spacing-lg)}.queue-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.queue-title{font-size:var(--font-md);color:var(--text-primary);font-weight:600}.queue-actions{gap:var(--spacing-sm);display:flex}.file-list{gap:var(--spacing-sm);flex-direction:column;max-height:300px;display:flex;overflow-y:auto}.file-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border-color);display:flex}.file-item.uploading{border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}.file-item.success{border-color:var(--success);background:rgba(var(--success-rgb),.05)}.file-item.error{border-color:var(--error);background:rgba(var(--error-rgb),.05)}.file-icon{background:var(--bg-secondary);border-radius:var(--radius);width:40px;height:40px;color:var(--primary);flex-shrink:0;justify-content:center;align-items:center;display:flex}.file-info{flex:1;min-width:0}.file-name{font-size:var(--font-sm);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-weight:500;overflow:hidden}.file-meta{font-size:var(--font-xs);color:var(--text-tertiary);gap:var(--spacing-sm);display:flex}.file-progress{background:var(--bg-tertiary);border-radius:2px;width:100px;height:4px;overflow:hidden}.file-progress-bar{background:var(--primary);border-radius:2px;height:100%;transition:width .3s}.file-status{font-size:var(--font-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);flex-shrink:0;font-weight:500}.file-status.pending{background:var(--bg-tertiary);color:var(--text-tertiary)}.file-status.uploading{background:rgba(var(--primary-rgb),.1);color:var(--primary)}.file-status.success{background:rgba(var(--success-rgb),.1);color:var(--success)}.file-status.error{background:rgba(var(--error-rgb),.1);color:var(--error)}.file-remove{width:32px;height:32px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.file-remove:hover{background:rgba(var(--error-rgb),.1);color:var(--error)}.file-progress-container{align-items:center;gap:var(--spacing-sm);margin-top:var(--spacing-xs);display:flex}.file-progress-bar{background:var(--bg-tertiary);border-radius:3px;flex:1;height:6px;overflow:hidden}.file-progress-fill{background:var(--primary);border-radius:3px;height:100%;transition:width .3s}.file-progress-fill.extracting{background:linear-gradient(90deg,var(--primary),var(--info),var(--primary));background-size:200% 100%;animation:1.5s ease-in-out infinite progress-shimmer}@keyframes progress-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.file-progress-text{font-size:var(--font-xs);color:var(--text-secondary);text-align:right;min-width:36px;font-weight:500}.file-status-text{color:var(--text-secondary);font-weight:500}.file-status-icon{flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.file-spinner{border:2px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}.file-spinner-extracting{border-top-color:var(--info);border-right-color:var(--info)}.file-check{color:var(--success)}.file-error-icon{color:var(--error)}.file-pending-icon{color:var(--text-tertiary)}.upload-file-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius);border:1px solid var(--border-color);transition:all .2s;display:flex}.upload-file-item.file-pending{border-color:var(--border-color);background:var(--bg-tertiary)}.upload-file-item.file-uploading{border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}.upload-file-item.file-extracting{border-color:var(--info);background:rgba(var(--info-rgb),.05)}.upload-file-item.file-extracting .file-status-text{color:var(--info)}.upload-file-item.file-complete{border-color:var(--success);background:rgba(var(--success-rgb),.05)}.upload-file-item.file-complete .file-status-text{color:var(--success)}.upload-file-item.file-error{border-color:var(--error);background:rgba(var(--error-rgb),.05)}.upload-file-item.file-error .file-status-text{color:var(--error)}.file-error-msg{color:var(--error);font-size:var(--font-xs)}.file-remove-btn{width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;border-radius:var(--radius);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.file-remove-btn:hover{background:rgba(var(--error-rgb),.1);color:var(--error)}.queue-stats{gap:var(--spacing-sm);display:flex}.queue-stat{font-size:var(--font-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);font-weight:500}.queue-stat.pending{background:var(--bg-tertiary);color:var(--text-tertiary)}.queue-stat.processing{color:#3b82f6;background:#3b82f61a;animation:1.5s ease-in-out infinite processingPulse}@keyframes processingPulse{0%,to{opacity:1}50%{opacity:.7}}.queue-stat.complete{background:rgba(var(--success-rgb),.1);color:var(--success)}.queue-stat.error{background:rgba(var(--error-rgb),.1);color:var(--error)}.upload-queue{border-top:1px solid var(--border-color);padding:var(--spacing-lg)}.upload-queue .queue-actions{justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);display:flex}.upload-tips{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg)}.tips-title{font-size:var(--font-md);color:var(--text-primary);margin-bottom:var(--spacing-md);font-weight:600}.tips-list{margin:0;padding:0;list-style:none}.tips-list li{padding-left:var(--spacing-lg);padding-bottom:var(--spacing-sm);font-size:var(--font-sm);color:var(--text-secondary);position:relative}.tips-list li:before{content:"✓";color:var(--success);font-weight:700;position:absolute;left:0}.recent-uploads{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.recent-uploads .section-title{font-size:var(--font-md);color:var(--text-primary);margin-bottom:var(--spacing-md);font-weight:600}.recent-uploads-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.empty-message{text-align:center;padding:var(--spacing-lg);color:var(--text-tertiary);font-size:var(--font-sm)}.extraction-preview-container{max-width:900px;margin:0 auto}.extraction-header{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:flex-start;display:flex}.extraction-info{flex:1}.extraction-title{font-size:var(--font-xl);color:var(--text-primary);margin-bottom:var(--spacing-xs);font-weight:600}.extraction-meta{gap:var(--spacing-sm);display:flex}.extraction-type{font-size:var(--font-xs);padding:var(--spacing-xs)var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);color:var(--text-secondary)}.extraction-status{font-size:var(--font-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-sm);font-weight:500}.extraction-status.completed{background:rgba(var(--success-rgb),.1);color:var(--success)}.extraction-status.pending{background:rgba(var(--warning-rgb),.1);color:var(--warning)}.extraction-status.failed{background:rgba(var(--error-rgb),.1);color:var(--error)}.extraction-confidence-summary{text-align:right}.extraction-stats{gap:var(--spacing-lg);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius);margin-bottom:var(--spacing-lg);display:flex}.stat-item{padding:var(--spacing-sm)var(--spacing-md);flex-direction:column;align-items:center;display:flex}.stat-value{font-size:var(--font-2xl);color:var(--text-primary);font-weight:700}.stat-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.stat-item.confidence-high .stat-value{color:var(--success)}.stat-item.confidence-low .stat-value{color:var(--warning)}.stat-item.has-corrections .stat-value{color:var(--primary)}.extraction-alert{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:rgba(var(--warning-rgb),.1);border:1px solid rgba(var(--warning-rgb),.3);border-radius:var(--radius);margin-bottom:var(--spacing-lg);display:flex}.alert-icon{color:var(--warning);flex-shrink:0}.extraction-alert span{font-size:var(--font-sm);color:var(--text-secondary)}.extraction-section{margin-bottom:var(--spacing-xl)}.section-title{font-size:var(--font-md);color:var(--text-primary);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--border-color);font-weight:600}.fields-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.extraction-field{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border-color);padding:var(--spacing-md);transition:all .2s}.extraction-field.needs-review{border-color:var(--warning);background:rgba(var(--warning-rgb),.02)}.extraction-field.has-correction{border-color:var(--primary);background:rgba(var(--primary-rgb),.02)}.extraction-field.is-corrected{border-color:var(--success)}.field-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:center;display:flex}.field-name{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:500}.field-confidence{align-items:center;gap:var(--spacing-xs);display:flex}.corrected-badge{font-size:var(--font-xs);background:rgba(var(--success-rgb),.1);color:var(--success);border-radius:var(--radius-sm);padding:2px 6px}.field-content{margin-top:var(--spacing-xs)}.field-value-container{align-items:center;gap:var(--spacing-sm);display:flex}.field-value{font-size:var(--font-md);color:var(--text-primary);flex:1;font-weight:500}.field-value.empty{color:var(--text-tertiary);font-style:italic}.field-edit-btn{background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:28px;height:28px;color:var(--text-tertiary);cursor:pointer;flex-shrink:0;justify-content:center;align-items:center;transition:all .2s;display:flex}.field-edit-btn:hover{background:var(--primary);border-color:var(--primary);color:#fff}.field-source{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:var(--spacing-xs);font-style:italic}.field-edit{gap:var(--spacing-sm);flex-direction:column;display:flex}.field-edit-input{width:100%;padding:var(--spacing-sm);border:1px solid var(--primary);border-radius:var(--radius-sm);font-size:var(--font-md);background:var(--bg-primary);color:var(--text-primary)}.field-edit-input:focus{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2);outline:none}.field-edit-actions{gap:var(--spacing-xs);justify-content:flex-end;display:flex}.line-items-table-container{border:1px solid var(--border-color);border-radius:var(--radius);overflow-x:auto}.line-items-table{border-collapse:collapse;width:100%}.line-items-table th,.line-items-table td{padding:var(--spacing-sm)var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.line-items-table th{background:var(--bg-tertiary);font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.line-items-table td{font-size:var(--font-sm);color:var(--text-primary)}.line-items-table td.numeric{text-align:right;font-family:var(--font-mono)}.line-items-table tr:last-child td{border-bottom:none}.confidence-badge{font-size:var(--font-xs);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:2px 8px;font-weight:500;display:inline-flex}.confidence-badge.high{background:rgba(var(--success-rgb),.1);color:var(--success)}.confidence-badge.medium{background:rgba(var(--warning-rgb),.1);color:var(--warning)}.confidence-badge.low{background:rgba(var(--error-rgb),.1);color:var(--error)}.confidence-indicator{gap:var(--spacing-xs);flex-direction:column;display:flex}.confidence-indicator.large .confidence-value{font-size:var(--font-xl);font-weight:700}.confidence-value{font-size:var(--font-sm);font-weight:600}.confidence-bar{background:var(--bg-tertiary);border-radius:2px;width:100px;height:4px;overflow:hidden}.confidence-bar-fill{border-radius:2px;height:100%;transition:width .3s}.confidence-bar-fill.high{background:var(--success)}.confidence-bar-fill.medium{background:var(--warning)}.confidence-bar-fill.low{background:var(--error)}.extraction-actions{padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);margin-top:var(--spacing-xl);justify-content:space-between;display:flex}.preview-page{padding:var(--spacing-lg)}.preview-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.btn-back{align-items:center;gap:var(--spacing-xs);display:flex}.preview-navigation{align-items:center;gap:var(--spacing-sm);display:flex}.nav-btn{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;justify-content:center;align-items:center;transition:all .2s;display:flex}.nav-btn:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary);color:var(--primary)}.nav-btn:disabled{opacity:.5;cursor:not-allowed}.nav-counter{font-size:var(--font-sm);color:var(--text-secondary);text-align:center;min-width:60px;font-weight:500}.document-thumbnails{gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius);margin-bottom:var(--spacing-lg);display:flex;overflow-x:auto}.thumbnail{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius);cursor:pointer;border:2px solid #0000;flex-direction:column;flex-shrink:0;min-width:80px;transition:all .2s;display:flex}.thumbnail:hover{border-color:var(--border-color)}.thumbnail.active{border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}.thumbnail-icon{color:var(--text-tertiary)}.thumbnail-name{font-size:var(--font-xs);color:var(--text-secondary);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:70px;overflow:hidden}.thumbnail-status{border-radius:var(--radius-sm);text-transform:uppercase;padding:1px 4px;font-size:10px}.thumbnail-status.completed{background:rgba(var(--success-rgb),.1);color:var(--success)}.thumbnail-status.pending{background:rgba(var(--warning-rgb),.1);color:var(--warning)}.success-page{justify-content:center;align-items:center;min-height:60vh;display:flex}.success-content{text-align:center;max-width:400px}.success-icon{color:var(--success);margin-bottom:var(--spacing-lg)}.success-content h2{font-size:var(--font-xl);color:var(--text-primary);margin-bottom:var(--spacing-sm);font-weight:600}.success-content p{font-size:var(--font-md);color:var(--text-secondary);margin-bottom:var(--spacing-xl)}.success-actions{gap:var(--spacing-md);justify-content:center;display:flex}.extraction-loading,.extraction-error{padding:var(--spacing-2xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.error-icon{color:var(--error);margin-bottom:var(--spacing-md)}.extraction-error h3{font-size:var(--font-lg);color:var(--text-primary);margin-bottom:var(--spacing-sm)}.extraction-error p{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-lg)}@media (max-width:768px){.fields-grid{grid-template-columns:1fr}.extraction-header{gap:var(--spacing-md);flex-direction:column}.extraction-stats{flex-wrap:wrap}.stat-item{flex:1;min-width:100px}.preview-header{gap:var(--spacing-md);flex-wrap:wrap}.preview-navigation{order:-1;justify-content:center;width:100%}.extraction-actions{gap:var(--spacing-sm);flex-direction:column}.extraction-actions .btn{width:100%}.success-actions{flex-direction:column}.success-actions .btn{width:100%}}.detail-page{padding:var(--spacing-lg)}.detail-page.loading,.detail-page.error{justify-content:center;align-items:center;min-height:400px;display:flex}.detail-header{margin-bottom:var(--spacing-xl)}.detail-header .breadcrumb{align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);margin-bottom:var(--spacing-md);display:flex}.detail-header .breadcrumb a{color:var(--text-secondary);text-decoration:none}.detail-header .breadcrumb a:hover{color:var(--primary)}.detail-header .breadcrumb .separator{color:var(--text-tertiary)}.detail-header .breadcrumb .current{color:var(--text-primary);font-weight:500}.header-content{justify-content:space-between;align-items:flex-start;gap:var(--spacing-lg);display:flex}.header-left{flex:1}.detail-title{font-size:var(--font-2xl);color:var(--text-primary);margin:0 0 var(--spacing-sm)0;font-weight:600}.header-meta{align-items:center;gap:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-sm);display:flex}.meta-separator{color:var(--text-tertiary)}.header-actions{gap:var(--spacing-sm);flex-shrink:0;display:flex}.alert{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);display:flex}.alert-icon svg{width:24px;height:24px}.alert-content{flex:1}.alert-content strong{margin-bottom:var(--spacing-xxs);display:block}.alert-content p{font-size:var(--font-sm);margin:0}.alert-warning{background:var(--warning-light);border:1px solid var(--warning);color:var(--warning)}.alert-error{background:var(--error-light);border:1px solid var(--error);color:var(--error)}.alert-info{background:var(--info-light);border:1px solid var(--info);color:var(--info)}.detail-content{gap:var(--spacing-xl);grid-template-columns:2fr 1fr;display:grid}.main-column,.side-column{gap:var(--spacing-lg);flex-direction:column;display:flex}.info-cards-grid{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}.info-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.info-card-title{font-size:var(--font-sm);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 var(--spacing-md)0;font-weight:600}.info-card-content{gap:var(--spacing-sm);flex-direction:column;display:flex}.info-row{padding:var(--spacing-xs)0;justify-content:space-between;align-items:center;display:flex}.info-label{font-size:var(--font-sm);color:var(--text-tertiary)}.info-value{font-size:var(--font-sm);color:var(--text-primary);text-align:right;font-weight:500}.info-value.highlight{font-size:var(--font-md);color:var(--primary);font-weight:600}.info-value.text-warning{color:var(--warning)}.section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.section-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-md);color:var(--text-primary);margin:0;font-weight:600}.section-count{font-size:var(--font-sm);color:var(--text-tertiary);background:var(--bg-tertiary);padding:var(--spacing-xxs)var(--spacing-sm);border-radius:var(--radius-full)}.section-count.warning{background:var(--warning-light);color:var(--warning)}.section-footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color)}.section-footer .link{font-size:var(--font-sm);color:var(--primary);text-decoration:none}.section-footer .link:hover{text-decoration:underline}.empty-section{text-align:center;padding:var(--spacing-xl);color:var(--text-tertiary)}.empty-section .empty-icon{width:48px;height:48px;margin-bottom:var(--spacing-md)}.empty-section.success,.empty-section.success .empty-icon{color:var(--success)}.data-table{border-collapse:collapse;width:100%}.data-table th{text-align:left;padding:var(--spacing-sm);font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-color);font-weight:600}.data-table td{padding:var(--spacing-sm);font-size:var(--font-sm);border-bottom:1px solid var(--border-color)}.data-table .text-right{text-align:right}.data-table .font-medium{font-weight:500}.data-table .cell-code code{font-family:var(--font-mono);font-size:var(--font-xs);background:var(--bg-tertiary);padding:var(--spacing-xxs)var(--spacing-xs);border-radius:var(--radius-sm)}.terms-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.term-card{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-md)}.term-title{font-size:var(--font-sm);color:var(--text-primary);margin:0 0 var(--spacing-xs)0;font-weight:600}.term-content{font-size:var(--font-sm);color:var(--text-secondary);margin:0}.term-clause{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:var(--spacing-xs);display:inline-block}.linked-invoices-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.linked-invoice-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-md);grid-template-columns:1fr auto auto auto auto;display:grid}.linked-invoice-item .invoice-info{gap:var(--spacing-xxs);flex-direction:column;display:flex}.linked-invoice-item .invoice-number{color:var(--text-primary);font-weight:500;text-decoration:none}.linked-invoice-item .invoice-number:hover{color:var(--primary)}.linked-invoice-item .invoice-vendor{font-size:var(--font-xs);color:var(--text-tertiary)}.linked-invoice-item .invoice-amount{font-weight:500}.linked-invoice-item .invoice-date{font-size:var(--font-sm);color:var(--text-secondary)}.linked-invoice-item .invoice-status{align-items:center;gap:var(--spacing-xs);font-size:var(--font-sm);display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.discrepancy-badge{font-size:var(--font-xs);padding:var(--spacing-xxs)var(--spacing-xs);border-radius:var(--radius-sm)}.discrepancy-badge.warning{background:var(--warning-light);color:var(--warning)}.discrepancy-badge.success{background:var(--success-light);color:var(--success)}.discrepancy-summary-grid{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);grid-template-columns:repeat(4,1fr);display:grid}.summary-card{background:var(--bg-tertiary);padding:var(--spacing-md);border-radius:var(--radius-md);text-align:center;border-left:3px solid #0000}.summary-card .summary-count{font-size:var(--font-xl);color:var(--text-primary);font-weight:700;display:block}.summary-card .summary-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:capitalize;display:block}.summary-card.impact{background:var(--error-light);border-left-color:var(--error)}.summary-card.impact .summary-count{color:var(--error)}.recent-discrepancies h4{font-size:var(--font-sm);margin:0 0 var(--spacing-sm)0;font-weight:600}.discrepancy-row{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs)0;font-size:var(--font-sm);display:flex}.severity-indicator{border-radius:50%;flex-shrink:0;width:8px;height:8px}.discrepancy-type{color:var(--text-primary);flex:1}.discrepancy-invoice{color:var(--text-secondary);text-decoration:none}.discrepancy-invoice:hover{color:var(--primary)}.discrepancy-impact{color:var(--error);font-weight:500}.discrepancy-type-breakdown{gap:var(--spacing-sm);margin-bottom:var(--spacing-md);flex-wrap:wrap;display:flex}.discrepancy-type-breakdown .type-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-xs);font-weight:500;display:inline-flex}.discrepancy-type-breakdown .type-badge svg,.discrepancy-source-badge{flex-shrink:0}.discrepancy-field{color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:150px;font-style:italic;overflow:hidden}.error-state{text-align:center}.error-state .error-icon{width:48px;height:48px;color:var(--error);margin-bottom:var(--spacing-md)}.error-state h2{margin:0 0 var(--spacing-sm)0}.error-state p{color:var(--text-secondary);margin:0 0 var(--spacing-lg)0}@media (max-width:1024px){.detail-content,.info-cards-grid{grid-template-columns:1fr}.header-content{flex-direction:column}.header-actions{flex-wrap:wrap;width:100%}.linked-invoice-item{gap:var(--spacing-sm);grid-template-columns:1fr 1fr}.discrepancy-summary-grid{grid-template-columns:repeat(2,1fr)}}.modal-overlay{z-index:var(--z-modal);padding:var(--spacing-lg);background:#00000080;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-container{background:var(--bg-secondary);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);flex-direction:column;width:100%;max-width:800px;max-height:90vh;display:flex;overflow:hidden}.modal-header{padding:var(--spacing-lg);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.modal-title{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);color:var(--text-primary);margin:0;font-weight:600;display:flex}.modal-title svg{color:var(--primary)}.modal-close-btn{border-radius:var(--radius);cursor:pointer;width:36px;height:36px;color:var(--text-secondary);transition:all var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.modal-close-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.modal-search{padding:var(--spacing-md)var(--spacing-lg);border-bottom:1px solid var(--border-color)}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input-wrapper svg{left:var(--spacing-md);color:var(--text-tertiary);pointer-events:none;position:absolute}.search-input{width:100%;padding:var(--spacing-sm)var(--spacing-md)var(--spacing-sm)44px;border:1px solid var(--border-color);border-radius:var(--radius);font-size:var(--font-sm);background:var(--bg-primary);color:var(--text-primary);transition:all var(--transition-fast)}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.1);outline:none}.modal-body{padding:var(--spacing-lg);flex:1;min-height:300px;overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-color);display:flex}.modal-loading{padding:var(--spacing-2xl);color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.modal-error{padding:var(--spacing-2xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.modal-error svg{color:var(--error);margin-bottom:var(--spacing-md)}.modal-error p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}.modal-empty{padding:var(--spacing-2xl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.modal-empty svg{color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.modal-empty p{color:var(--text-secondary)}.contracts-grid{gap:var(--spacing-md);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));display:grid}.contract-card{background:var(--bg-primary);border:2px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-md);cursor:pointer;transition:all var(--transition-fast)}.contract-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.contract-card.selected{border-color:var(--primary);background:rgba(var(--primary-rgb),.05)}.contract-card-header{margin-bottom:var(--spacing-sm);justify-content:space-between;align-items:flex-start;display:flex}.contract-card-title{font-size:var(--font-md);color:var(--text-primary);margin:0;margin-right:var(--spacing-sm);flex:1;font-weight:600}.contract-status-badge{font-size:var(--font-xs);border-radius:var(--radius-sm);text-transform:capitalize;padding:2px 8px;font-weight:500}.contract-card-body{gap:var(--spacing-xs);flex-direction:column;display:flex}.contract-card-row{font-size:var(--font-sm);justify-content:space-between;display:flex}.contract-card-label{color:var(--text-tertiary)}.contract-card-value{color:var(--text-primary);text-align:right;font-weight:500}.contract-card-footer{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color);min-height:24px}.selected-indicator{align-items:center;gap:var(--spacing-xs);color:var(--primary);font-size:var(--font-sm);font-weight:500;display:flex}.selected-indicator svg{color:var(--primary)}@media (max-width:640px){.modal-overlay{padding:0}.modal-container{border-radius:0;max-width:100%;max-height:100vh}.contracts-grid{grid-template-columns:1fr}}.contract-detail-v2,.invoice-detail-v2{padding:var(--spacing-xl)var(--spacing-2xl);background:var(--bg-primary);max-width:1400px;margin:0 auto}.contract-detail-v2 .detail-header,.invoice-detail-v2 .detail-header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.contract-detail-v2 .breadcrumb,.invoice-detail-v2 .breadcrumb{align-items:center;gap:var(--spacing-sm);font-size:var(--font-sm);margin-bottom:var(--spacing-lg);display:flex}.contract-detail-v2 .breadcrumb a,.invoice-detail-v2 .breadcrumb a{color:var(--primary);transition:color var(--transition-fast);font-weight:500;text-decoration:none}.contract-detail-v2 .breadcrumb a:hover,.invoice-detail-v2 .breadcrumb a:hover{color:var(--primary-hover);text-decoration:underline}.contract-detail-v2 .breadcrumb .separator,.invoice-detail-v2 .breadcrumb .separator{color:var(--text-tertiary)}.contract-detail-v2 .breadcrumb .current,.invoice-detail-v2 .breadcrumb .current{color:var(--text-secondary)}.contract-detail-v2 .header-content,.invoice-detail-v2 .header-content{justify-content:space-between;align-items:flex-start;gap:var(--spacing-xl);display:flex}.contract-detail-v2 .header-left,.invoice-detail-v2 .header-left{flex:1}.contract-detail-v2 .detail-title,.invoice-detail-v2 .detail-title{font-size:var(--font-3xl);color:var(--text-primary);margin:0 0 var(--spacing-md)0;letter-spacing:-.02em;font-weight:700}.contract-detail-v2 .header-meta,.invoice-detail-v2 .header-meta{align-items:center;gap:var(--spacing-md);color:var(--text-secondary);font-size:var(--font-sm);flex-wrap:wrap;display:flex}.contract-detail-v2 .header-meta .status-badge,.invoice-detail-v2 .header-meta .status-badge{padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.contract-detail-v2 .header-actions,.invoice-detail-v2 .header-actions{gap:var(--spacing-sm);flex-shrink:0;display:flex}.contract-detail-v2 .header-actions .btn,.invoice-detail-v2 .header-actions .btn{padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius);transition:all var(--transition-fast);font-weight:500}.contract-detail-v2 .detail-body,.invoice-detail-v2 .detail-body{gap:var(--spacing-xl);flex-direction:column;display:flex}.contract-detail-v2 .detail-content,.invoice-detail-v2 .detail-content{gap:var(--spacing-xl);grid-template-columns:1fr 380px;display:grid}.ai-summary-card{background:linear-gradient(135deg,var(--bg-secondary)0%,var(--primary-light)100%);border:1px solid var(--primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);box-shadow:var(--shadow-md);position:relative;overflow:hidden}.ai-summary-card:before{content:"";background:linear-gradient(90deg,var(--primary)0%,var(--accent)100%);height:3px;position:absolute;top:0;left:0;right:0}.ai-summary-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.ai-summary-header h3{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);color:var(--text-primary);margin:0;font-weight:600;display:flex}.ai-summary-header h3 svg{color:var(--primary)}.ai-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);background:var(--primary);color:var(--text-inverse);border-radius:var(--radius-full);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em;font-weight:600;display:inline-flex}.ai-summary-content{min-height:80px}.ai-summary-loading{align-items:center;gap:var(--spacing-sm);color:var(--text-secondary);font-size:var(--font-sm);display:flex}.typing-indicator{gap:4px;display:flex}.typing-indicator span{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1.4s ease-in-out infinite typingBounce}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}.ai-summary-text{color:var(--text-primary);font-size:var(--font-base);line-height:1.7}.ai-summary-text p{margin:0 0 var(--spacing-sm)0}.ai-summary-text p:last-child{margin-bottom:0}.ai-summary-text strong{color:var(--text-primary);font-weight:600}.ai-summary-text em{font-style:italic}.ai-summary-text code{background:var(--gray-100);border-radius:var(--radius-sm);font-family:var(--font-mono);padding:2px 6px;font-size:.9em}.ai-summary-text ul,.ai-summary-text ol{margin:var(--spacing-sm)0;padding-left:var(--spacing-lg)}.ai-summary-text li{margin-bottom:var(--spacing-xs)}.ai-summary-text h2,.ai-summary-text h3,.ai-summary-text h4{margin:var(--spacing-md)0 var(--spacing-sm)0;color:var(--text-primary);font-weight:600}.ai-summary-text h2{font-size:var(--font-lg)}.ai-summary-text h3{font-size:var(--font-md)}.ai-summary-text h4{font-size:var(--font-base)}.ai-summary-error{align-items:center;gap:var(--spacing-sm);color:var(--error);font-size:var(--font-sm);display:flex}.ai-summary-footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.ai-summary-footer .ai-badge{background:var(--gray-100);color:var(--text-secondary)}.ai-summary-section{background:linear-gradient(135deg,var(--bg-secondary)0%,var(--primary-light)100%);border:1px solid var(--primary);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.ai-summary-section .ai-summary-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.ai-summary-section .ai-summary-content{color:var(--text-primary);font-size:var(--font-base);line-height:1.7}.ai-summary-section .ai-summary-content p{margin:0 0 var(--spacing-sm)0}.ai-summary-section .ai-summary-content p:last-child{margin-bottom:0}.ai-summary-section .ai-summary-content strong{font-weight:600}.ai-summary-section .ai-summary-content em{font-style:italic}.ai-summary-section .ai-summary-content code{background:var(--gray-100);border-radius:var(--radius-sm);font-family:var(--font-mono);padding:2px 6px;font-size:.9em}.ai-summary-section .ai-summary-content ul,.ai-summary-section .ai-summary-content ol{margin:var(--spacing-sm)0;padding-left:var(--spacing-lg)}.ai-summary-section .ai-summary-content li{margin-bottom:var(--spacing-xs)}.ai-summary-section .ai-summary-content h2,.ai-summary-section .ai-summary-content h3,.ai-summary-section .ai-summary-content h4{margin:var(--spacing-md)0 var(--spacing-sm)0;font-weight:600}.ai-summary-section .ai-meta{font-size:var(--font-sm);color:var(--text-tertiary)}.btn-link{align-items:center;gap:var(--spacing-xs);color:var(--primary);font-size:var(--font-sm);cursor:pointer;padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius);transition:all var(--transition-fast);background:0 0;border:none;font-weight:500;display:inline-flex}.btn-link:hover{background:var(--primary-light);color:var(--primary-hover)}.btn-link:disabled{opacity:.5;cursor:not-allowed}.contract-detail-v2 .info-cards-grid,.invoice-detail-v2 .info-cards-grid{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}.contract-detail-v2 .info-card,.invoice-detail-v2 .info-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:all var(--transition-fast)}.contract-detail-v2 .info-card:hover,.invoice-detail-v2 .info-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md)}.contract-detail-v2 .info-card h3,.invoice-detail-v2 .info-card h3{align-items:center;gap:var(--spacing-sm);font-size:var(--font-base);color:var(--text-primary);margin:0 0 var(--spacing-md)0;padding-bottom:var(--spacing-sm);border-bottom:2px solid var(--primary-light);font-weight:600;display:flex}.contract-detail-v2 .info-card h3 svg,.invoice-detail-v2 .info-card h3 svg{color:var(--primary);width:20px;height:20px}.contract-detail-v2 .info-rows,.invoice-detail-v2 .info-rows{gap:var(--spacing-sm);flex-direction:column;display:flex}.contract-detail-v2 .info-row,.invoice-detail-v2 .info-row{padding:var(--spacing-xs)0;justify-content:space-between;align-items:flex-start;display:flex}.contract-detail-v2 .info-label,.invoice-detail-v2 .info-label{color:var(--text-tertiary);font-size:var(--font-sm);font-weight:500}.contract-detail-v2 .info-value,.invoice-detail-v2 .info-value{color:var(--text-primary);font-size:var(--font-sm);text-align:right;max-width:60%;font-weight:600}.contract-detail-v2 .pricing-section,.invoice-detail-v2 .pricing-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.contract-detail-v2 .pricing-section h3,.invoice-detail-v2 .pricing-section h3{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);color:var(--text-primary);margin:0 0 var(--spacing-lg)0;font-weight:600;display:flex}.contract-detail-v2 .pricing-section h3 svg,.invoice-detail-v2 .pricing-section h3 svg{color:var(--accent)}.contract-detail-v2 .pricing-table,.invoice-detail-v2 .pricing-table{border-collapse:collapse;width:100%}.contract-detail-v2 .pricing-table thead,.invoice-detail-v2 .pricing-table thead{background:var(--gray-50)}.contract-detail-v2 .pricing-table th,.invoice-detail-v2 .pricing-table th{padding:var(--spacing-sm)var(--spacing-md);text-align:left;font-size:var(--font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid var(--border-color);font-weight:600}.contract-detail-v2 .pricing-table td,.invoice-detail-v2 .pricing-table td{padding:var(--spacing-md);font-size:var(--font-sm);color:var(--text-primary);border-bottom:1px solid var(--border-color)}.contract-detail-v2 .pricing-table tbody tr:hover,.invoice-detail-v2 .pricing-table tbody tr:hover{background:var(--gray-50)}.contract-detail-v2 .pricing-table .text-right,.invoice-detail-v2 .pricing-table .text-right{text-align:right}.contract-detail-v2 .pricing-totals,.invoice-detail-v2 .pricing-totals{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:2px solid var(--border-color)}.contract-detail-v2 .total-row,.invoice-detail-v2 .total-row{padding:var(--spacing-xs)0;justify-content:space-between;align-items:center;display:flex}.contract-detail-v2 .total-row.grand-total,.invoice-detail-v2 .total-row.grand-total{padding-top:var(--spacing-sm);margin-top:var(--spacing-sm);border-top:2px solid var(--primary);font-size:var(--font-lg)}.contract-detail-v2 .total-row .label,.invoice-detail-v2 .total-row .label{color:var(--text-secondary);font-weight:500}.contract-detail-v2 .total-row .value,.invoice-detail-v2 .total-row .value{color:var(--text-primary);font-weight:700}.contract-detail-v2 .total-row.grand-total .value,.invoice-detail-v2 .total-row.grand-total .value{color:var(--primary);font-size:var(--font-xl)}.contract-detail-v2 .side-column,.invoice-detail-v2 .side-column{gap:var(--spacing-lg);flex-direction:column;display:flex}.contract-detail-v2 .side-card,.invoice-detail-v2 .side-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.contract-detail-v2 .side-card h4,.invoice-detail-v2 .side-card h4{align-items:center;gap:var(--spacing-sm);font-size:var(--font-base);color:var(--text-primary);margin:0 0 var(--spacing-md)0;font-weight:600;display:flex}.contract-detail-v2 .side-card h4 svg,.invoice-detail-v2 .side-card h4 svg{color:var(--primary);width:18px;height:18px}.contract-detail-v2 .document-preview,.invoice-detail-v2 .document-preview{background:var(--gray-100);border-radius:var(--radius);padding:var(--spacing-xl);justify-content:center;align-items:center;gap:var(--spacing-md);flex-direction:column;min-height:200px;display:flex}.contract-detail-v2 .document-preview svg,.invoice-detail-v2 .document-preview svg{width:48px;height:48px;color:var(--text-tertiary)}.contract-detail-v2 .document-preview p,.invoice-detail-v2 .document-preview p{color:var(--text-secondary);font-size:var(--font-sm);text-align:center;margin:0}.contract-detail-v2 .invoices-list,.invoice-detail-v2 .invoices-list{gap:var(--spacing-sm);flex-direction:column;display:flex}.contract-detail-v2 .invoice-item,.invoice-detail-v2 .invoice-item{padding:var(--spacing-sm)var(--spacing-md);background:var(--gray-50);border-radius:var(--radius);transition:all var(--transition-fast);justify-content:space-between;align-items:center;display:flex}.contract-detail-v2 .invoice-item:hover,.invoice-detail-v2 .invoice-item:hover{background:var(--primary-light)}.contract-detail-v2 .invoice-info,.invoice-detail-v2 .invoice-info{flex-direction:column;gap:2px;display:flex}.contract-detail-v2 .invoice-number,.invoice-detail-v2 .invoice-number{color:var(--primary);font-weight:600;font-size:var(--font-sm);cursor:pointer}.contract-detail-v2 .invoice-number:hover,.invoice-detail-v2 .invoice-number:hover{text-decoration:underline}.contract-detail-v2 .invoice-date,.invoice-detail-v2 .invoice-date{font-size:var(--font-xs);color:var(--text-tertiary)}.contract-detail-v2 .invoice-amount,.invoice-detail-v2 .invoice-amount{color:var(--text-primary);font-weight:600;font-size:var(--font-sm)}.contract-detail-v2 .empty-invoices,.invoice-detail-v2 .empty-invoices{text-align:center;padding:var(--spacing-lg);color:var(--text-tertiary);font-size:var(--font-sm)}.contract-detail-v2 .activity-timeline,.invoice-detail-v2 .activity-timeline{flex-direction:column;gap:0;display:flex}.contract-detail-v2 .timeline-item,.invoice-detail-v2 .timeline-item{gap:var(--spacing-md);padding:var(--spacing-sm)0;display:flex;position:relative}.contract-detail-v2 .timeline-item:before,.invoice-detail-v2 .timeline-item:before{content:"";background:var(--border-color);width:2px;position:absolute;top:28px;bottom:-8px;left:11px}.contract-detail-v2 .timeline-item:last-child:before,.invoice-detail-v2 .timeline-item:last-child:before{display:none}.contract-detail-v2 .timeline-dot,.invoice-detail-v2 .timeline-dot{background:var(--primary-light);border:2px solid var(--primary);z-index:1;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.contract-detail-v2 .timeline-dot svg,.invoice-detail-v2 .timeline-dot svg{width:12px;height:12px;color:var(--primary)}.contract-detail-v2 .timeline-content,.invoice-detail-v2 .timeline-content{padding-bottom:var(--spacing-sm);flex:1}.contract-detail-v2 .timeline-title,.invoice-detail-v2 .timeline-title{color:var(--text-primary);font-weight:500;font-size:var(--font-sm);margin-bottom:2px}.contract-detail-v2 .timeline-date,.invoice-detail-v2 .timeline-date{font-size:var(--font-xs);color:var(--text-tertiary)}@media (max-width:1200px){.contract-detail-v2 .detail-content,.invoice-detail-v2 .detail-content{grid-template-columns:1fr}.contract-detail-v2 .side-column,.invoice-detail-v2 .side-column{gap:var(--spacing-lg);grid-template-columns:repeat(2,1fr);display:grid}}@media (max-width:768px){.contract-detail-v2,.invoice-detail-v2{padding:var(--spacing-md)}.contract-detail-v2 .header-content,.invoice-detail-v2 .header-content{gap:var(--spacing-md);flex-direction:column}.contract-detail-v2 .header-actions,.invoice-detail-v2 .header-actions{justify-content:flex-start;width:100%}.contract-detail-v2 .info-cards-grid,.invoice-detail-v2 .info-cards-grid,.contract-detail-v2 .side-column,.invoice-detail-v2 .side-column{grid-template-columns:1fr}.ai-summary-header{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}}.edit-form-container{width:100%;max-width:900px}.edit-form{background:var(--bg-primary);border-radius:var(--radius-lg);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}.form-section{padding:var(--spacing-xl);border-bottom:1px solid var(--border-color)}.form-section:last-child{border-bottom:none}.form-section h3{margin:0 0 var(--spacing-lg)0;font-size:var(--font-lg);color:var(--text-primary);align-items:center;gap:var(--spacing-sm);font-weight:600;display:flex}.form-section h3:before{content:"";background:var(--primary);border-radius:2px;width:4px;height:20px}@media (max-width:640px){.form-grid{grid-template-columns:1fr}}.form-group label{font-size:var(--font-sm);color:var(--text-secondary);font-weight:500}.form-group input,.form-group select,.form-group textarea{padding:var(--spacing-sm)var(--spacing-md);font-size:var(--font-base);border:1px solid var(--border-color);border-radius:var(--radius);background:var(--bg-primary);color:var(--text-primary);transition:border-color var(--transition-fast),box-shadow var(--transition-fast);height:44px}.form-group select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-group input:disabled,.form-group select:disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.contract-detail-v2.edit-mode .detail-body{padding-top:var(--spacing-lg)}.detail-header.edit-mode{border-bottom:1px solid var(--border-color);background:0 0}.edit-badge{background:var(--primary);color:#fff;border-radius:var(--radius-full);font-size:var(--font-xs);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:4px;padding:4px 10px;font-weight:600;display:inline-flex}.legal-terms-section,.contract-detail-v2 .section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.contract-detail-v2 .section-title{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);color:var(--text-primary);margin:0 0 var(--spacing-lg)0;font-weight:600;display:flex}.contract-detail-v2 .section-title .section-icon{width:20px;height:20px;color:var(--primary)}.legal-terms-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.legal-terms-grid .term-item{gap:var(--spacing-xs);padding:var(--spacing-sm);background:var(--bg-primary);border-radius:var(--radius);border:1px solid var(--border-color);flex-direction:column;display:flex}.legal-terms-grid .term-item.full-width{grid-column:1/-1}.legal-terms-grid .term-label{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-weight:600}.legal-terms-grid .term-value{font-size:var(--font-sm);color:var(--text-primary);line-height:1.5}.legal-terms-grid .term-badges{gap:var(--spacing-sm);margin-top:var(--spacing-sm);flex-wrap:wrap;grid-column:1/-1;display:flex}.term-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:500;display:inline-flex}.term-badge svg{width:14px;height:14px}.term-badge.active{background:var(--success-light);color:var(--success);border:1px solid var(--success)}.term-badge.inactive{background:var(--gray-100);color:var(--text-secondary);border:1px solid var(--border-color)}.custom-terms-list{padding-left:var(--spacing-lg);margin:0}.custom-terms-list li{font-size:var(--font-sm);color:var(--text-primary);margin-bottom:var(--spacing-xs)}.info-card.compact{padding:var(--spacing-md)}.info-card.compact .info-card-content.horizontal{gap:var(--spacing-md);grid-template-columns:repeat(4,1fr);display:grid}.info-card.compact .info-item{flex-direction:column;gap:4px;display:flex}.info-card.compact .info-label{font-size:var(--font-xs);color:var(--text-tertiary);font-weight:500}.info-card.compact .info-value{font-size:var(--font-sm);color:var(--text-primary);font-weight:600}@media (max-width:768px){.legal-terms-grid{grid-template-columns:1fr}.info-card.compact .info-card-content.horizontal{grid-template-columns:repeat(2,1fr)}}.suggestions-section{background:var(--bg-secondary);border:1px solid var(--primary-light);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.suggestions-section .section-title{color:var(--primary);align-items:center;display:flex}.suggestions-intro{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.suggestions-list{gap:var(--spacing-md);flex-direction:column;display:flex}.suggestion-card{background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);transition:border-color .2s,box-shadow .2s;position:relative}.suggestion-card:hover{border-color:var(--primary-light);box-shadow:var(--shadow-sm)}.suggestion-card.recommended{border-color:var(--success);background:linear-gradient(135deg,var(--success-light)0%,var(--bg-primary)100%)}.recommendation-badge{top:-10px;right:var(--spacing-md);background:var(--success);color:#fff;font-size:var(--font-xs);border-radius:var(--radius-full);align-items:center;gap:4px;padding:4px 10px;font-weight:600;display:flex;position:absolute}.recommendation-badge svg{width:12px;height:12px}.suggestion-header{margin-bottom:var(--spacing-xs);justify-content:space-between;align-items:flex-start;display:flex}.suggestion-title{color:var(--text-primary);font-weight:600;font-size:var(--font-sm);text-decoration:none}.suggestion-title:hover{color:var(--primary)}.confidence-badge{font-size:var(--font-xs);border-radius:var(--radius-full);padding:2px 8px;font-weight:600}.suggestion-meta{font-size:var(--font-xs);color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.suggestion-meta .separator{margin:0 4px}.match-reasons{margin-bottom:var(--spacing-sm);flex-wrap:wrap;gap:4px;display:flex}.match-reason{font-size:var(--font-xs);color:var(--success);background:var(--success-light);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.match-reason svg{width:10px;height:10px}.match-warnings{margin-bottom:var(--spacing-sm);flex-wrap:wrap;gap:4px;display:flex}.match-warning{font-size:var(--font-xs);color:var(--warning);background:var(--warning-light);border-radius:var(--radius-sm);align-items:center;gap:4px;padding:2px 8px;display:inline-flex}.match-warning svg{width:10px;height:10px}.suggestion-actions{margin-top:var(--spacing-sm);padding-top:var(--spacing-sm);border-top:1px solid var(--border-color)}.suggestion-actions .btn{width:100%}.invoice-analysis-page-container{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.analysis-header{margin-bottom:var(--spacing-xl)}.analysis-header-top{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.analysis-header-top .back-link a{align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);font-size:var(--font-sm);display:flex}.analysis-header-top .back-link svg{width:16px;height:16px}.analysis-header-top .page-title{font-size:var(--font-xl);margin:0;font-weight:600}.analysis-header-top .header-actions{gap:var(--spacing-sm);display:flex}.analysis-header-top .header-actions .btn svg{width:16px;height:16px}.analysis-status-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);font-size:var(--font-sm);margin-bottom:var(--spacing-md);font-weight:500;display:inline-flex}.analysis-status-badge .status-icon svg{width:16px;height:16px}.analysis-entities{align-items:stretch;gap:var(--spacing-md);margin-top:var(--spacing-md);display:flex}.analysis-entity-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);flex:1}.analysis-entity-card .entity-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.analysis-entity-card .entity-icon svg{width:24px;height:24px;color:var(--text-secondary)}.analysis-entity-card .entity-type{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px}.analysis-entity-card .entity-title{font-size:var(--font-lg);margin-bottom:var(--spacing-md);font-weight:600}.analysis-entity-card .entity-title a{color:var(--primary)}.analysis-entity-card .entity-details{gap:var(--spacing-xs);flex-direction:column;display:flex}.analysis-entity-card .detail-row{font-size:var(--font-sm);justify-content:space-between;display:flex}.analysis-entity-card .detail-label{color:var(--text-secondary)}.analysis-entity-card .detail-value.amount{color:var(--text-primary);font-weight:600}.analysis-entity-card .detail-value.warning{color:var(--warning)}.analysis-entity-card .expiry-badge{background:var(--warning-light);color:var(--warning);border-radius:var(--radius-sm);font-size:var(--font-xs);margin-left:var(--spacing-xs);padding:2px 6px;display:inline-block}.analysis-entity-card.no-contract{background:var(--bg-tertiary);border-style:dashed}.analysis-entity-card .no-contract-title{color:var(--text-secondary)}.analysis-entity-card .no-contract-message{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.match-connector{padding:0 var(--spacing-sm);flex-direction:column;justify-content:center;align-items:center;display:flex}.match-connector .connector-line{background:var(--border-color);flex:1;width:2px}.match-connector .connector-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);background:var(--success-light);color:var(--success);border-radius:var(--radius-full);font-size:var(--font-xs);white-space:nowrap;font-weight:500;display:flex}.match-connector .connector-badge svg{width:14px;height:14px}.analysis-kpis{gap:var(--spacing-md);margin-bottom:var(--spacing-xl);grid-template-columns:repeat(4,1fr);display:grid}.kpi-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color);gap:var(--spacing-md);display:flex}.kpi-card .kpi-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.kpi-card .kpi-icon svg{width:24px;height:24px}.kpi-card .kpi-content{flex:1}.kpi-card .kpi-title{font-size:var(--font-xs);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.kpi-card .kpi-value{font-size:var(--font-xl);color:var(--text-primary);font-weight:700}.kpi-card .kpi-subtext{font-size:var(--font-xs);color:var(--text-tertiary);margin-top:var(--spacing-xs)}.kpi-card .kpi-trend{font-size:var(--font-xs);margin-top:var(--spacing-xs);align-items:center;gap:4px;display:flex}.kpi-card .kpi-trend.up{color:var(--success)}.kpi-card .kpi-trend.down{color:var(--error)}.analysis-tabs{gap:var(--spacing-xs);padding:var(--spacing-xs);background:var(--bg-tertiary);border-radius:var(--radius-lg);margin-bottom:var(--spacing-lg);display:flex}.analysis-tabs .tab-btn{justify-content:center;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm)var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-sm);color:var(--text-secondary);cursor:pointer;background:0 0;border:none;flex:1;font-weight:500;transition:all .2s;display:flex}.analysis-tabs .tab-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.analysis-tabs .tab-btn.active{background:var(--bg-primary);color:var(--primary);box-shadow:var(--shadow-sm)}.analysis-tabs .tab-btn svg{width:18px;height:18px}.tab-content{animation:.2s fadeIn}.ai-insights-panel{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-xl);border:1px solid var(--border-color);margin-bottom:var(--spacing-lg)}.ai-insights-panel .ai-badge{align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs)var(--spacing-sm);color:#fff;border-radius:var(--radius-full);font-size:var(--font-xs);margin-bottom:var(--spacing-md);background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);font-weight:500;display:inline-flex}.ai-insights-panel .ai-badge svg{width:14px;height:14px}.ai-insights-panel .summary-title{font-size:var(--font-lg);margin-bottom:var(--spacing-sm);font-weight:600}.ai-insights-panel .summary-text{font-size:var(--font-md);color:var(--text-secondary);margin-bottom:var(--spacing-lg);line-height:1.6}.ai-insights-panel .key-findings,.ai-insights-panel .priority-actions{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color)}.ai-insights-panel .key-findings h4,.ai-insights-panel .priority-actions h4{font-size:var(--font-md);margin-bottom:var(--spacing-sm);font-weight:600}.ai-insights-panel .key-findings ul{margin:0;padding:0;list-style:none}.ai-insights-panel .key-findings li{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm)0;font-size:var(--font-sm);color:var(--text-secondary);display:flex}.ai-insights-panel .key-findings li svg{width:16px;height:16px;color:var(--primary);flex-shrink:0;margin-top:2px}.ai-insights-panel .priority-actions ol{margin:0;padding:0;list-style:none}.ai-insights-panel .priority-action{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm);margin-bottom:var(--spacing-xs);background:var(--bg-tertiary);border-radius:var(--radius-md);display:flex}.ai-insights-panel .priority-action.urgent{background:var(--error-light);border-left:3px solid var(--error)}.ai-insights-panel .priority-action .action-number{background:var(--primary);color:#fff;border-radius:var(--radius-full);width:24px;height:24px;font-size:var(--font-xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:600;display:flex}.ai-insights-panel .priority-action.urgent .action-number{background:var(--error)}.ai-insights-panel .priority-action .action-text{font-size:var(--font-sm);color:var(--text-primary)}.insights-section{margin-top:var(--spacing-xl)}.insights-section h3{font-size:var(--font-md);margin-bottom:var(--spacing-md);font-weight:600}.insights-grid{gap:var(--spacing-md);grid-template-columns:repeat(2,1fr);display:grid}.insight-card{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-md);border-left:3px solid var(--primary)}.insight-card .insight-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.insight-card .insight-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.insight-card .insight-icon svg{width:18px;height:18px}.insight-card .insight-title{font-weight:600;font-size:var(--font-sm);flex:1}.insight-card .insight-priority{font-size:var(--font-xs);font-weight:500}.insight-card .insight-description{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.insight-card .insight-action{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--primary);font-weight:500;display:flex}.insight-card .insight-action svg{width:12px;height:12px}.negotiation-section{margin-top:var(--spacing-xl)}.negotiation-section h3{align-items:center;gap:var(--spacing-sm);font-size:var(--font-md);margin-bottom:var(--spacing-md);font-weight:600;display:flex}.negotiation-section h3 svg{width:20px;height:20px;color:var(--primary)}.tips-list{gap:var(--spacing-md);flex-direction:column;display:flex}.negotiation-tip{gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-tertiary);border-radius:var(--radius-md);display:flex}.negotiation-tip .tip-icon{background:var(--primary-light);width:40px;height:40px;color:var(--primary);border-radius:var(--radius-full);flex-shrink:0;justify-content:center;align-items:center;display:flex}.negotiation-tip .tip-icon svg{width:20px;height:20px}.negotiation-tip .tip-content{flex:1}.negotiation-tip .tip-title{margin-bottom:var(--spacing-xs);font-weight:600}.negotiation-tip .tip-rationale{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-sm)}.negotiation-tip .tip-script{font-size:var(--font-sm);background:var(--bg-secondary);padding:var(--spacing-sm);border-radius:var(--radius-sm);border-left:2px solid var(--primary);margin-bottom:var(--spacing-sm);font-style:italic}.negotiation-tip .tip-outcome{align-items:center;gap:var(--spacing-xs);font-size:var(--font-xs);color:var(--success);display:flex}.negotiation-tip .tip-outcome svg{width:14px;height:14px}.no-insights{padding:var(--spacing-xl);text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;display:flex}.no-insights svg{width:48px;height:48px;color:var(--text-tertiary);margin-bottom:var(--spacing-md)}.no-insights p{font-size:var(--font-sm);margin:0}.discrepancy-panel{background:var(--bg-secondary);border-radius:var(--radius-lg);border:1px solid var(--border-color);overflow:hidden}.discrepancy-panel .panel-header{padding:var(--spacing-md)var(--spacing-lg);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;display:flex}.discrepancy-panel .header-left{align-items:center;gap:var(--spacing-md);display:flex}.discrepancy-panel .header-left h3{font-size:var(--font-md);margin:0;font-weight:600}.discrepancy-panel .issue-count{font-size:var(--font-sm);color:var(--text-secondary)}.discrepancy-panel .header-right{align-items:center;gap:var(--spacing-md);display:flex}.discrepancy-panel .count-badge{font-size:var(--font-xs);border-radius:var(--radius-sm);padding:4px 10px;font-weight:500}.discrepancy-panel .count-badge.critical{color:#b91c1c;background:#fef2f2}.discrepancy-panel .count-badge.high{color:#dc2626;background:#fee2e2}.discrepancy-panel .total-impact{font-size:var(--font-sm);color:var(--text-secondary)}.discrepancy-panel .total-impact strong{color:var(--error)}.discrepancy-panel .table-wrapper{overflow-x:auto}.discrepancy-table{border-collapse:collapse;width:100%;font-size:var(--font-sm)}.discrepancy-table th{text-align:left;color:var(--text-secondary);background:var(--bg-primary);border-bottom:1px solid var(--border-color);white-space:nowrap;padding:12px 16px;font-weight:500}.discrepancy-table td{border-bottom:1px solid var(--border-color);vertical-align:middle;padding:14px 16px}.discrepancy-table tbody tr:last-child td{border-bottom:none}.discrepancy-table tbody tr:hover{background:var(--bg-tertiary)}.discrepancy-table .text-right{text-align:right}.discrepancy-table .text-error{color:var(--error)}.discrepancy-table .text-success{color:var(--success)}.discrepancy-table .font-semibold{font-weight:600}.discrepancy-table .severity-badge{border-radius:var(--radius-sm);font-size:var(--font-xs);text-align:center;padding:4px 10px;font-weight:500;display:inline-block}.discrepancy-table .type-cell{flex-direction:column;gap:2px;display:flex}.discrepancy-table .type-label{color:var(--text-primary);font-weight:500}.discrepancy-table .type-desc{font-size:var(--font-xs);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.discrepancy-table .actions-cell{justify-content:flex-end;gap:6px;display:flex}.discrepancy-table .action-btn{border-radius:var(--radius-sm);cursor:pointer;border:none;justify-content:center;align-items:center;width:28px;height:28px;transition:all .15s;display:flex}.discrepancy-table .action-btn svg{width:14px;height:14px}.discrepancy-table .action-btn.accept{color:#059669;background:#d1fae5}.discrepancy-table .action-btn.accept:hover{color:#fff;background:#10b981}.discrepancy-table .action-btn.dispute{color:#d97706;background:#fef3c7}.discrepancy-table .action-btn.dispute:hover{color:#fff;background:#f59e0b}.discrepancy-table .action-btn.reject{background:var(--bg-tertiary);color:var(--text-secondary)}.discrepancy-table .action-btn.reject:hover{background:var(--text-secondary);color:#fff}.discrepancy-panel.resolved-all .empty-state.success{text-align:center;padding:var(--spacing-xl)}.discrepancy-panel.resolved-all .empty-state.success svg{width:48px;height:48px;color:var(--success);margin-bottom:var(--spacing-md)}.discrepancy-panel.resolved-all .empty-state.success h3{color:var(--success);margin-bottom:var(--spacing-sm)}.discrepancy-panel.resolved-all .empty-state.success p{color:var(--text-secondary)}.optimization-panel{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);border:1px solid var(--border-color)}.optimization-panel .panel-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.optimization-panel .panel-header h3{align-items:center;gap:var(--spacing-sm);font-size:var(--font-lg);margin:0;font-weight:600;display:flex}.optimization-panel .panel-header h3 svg{width:20px;height:20px;color:var(--success)}.optimization-panel .summary-savings strong{color:var(--success)}.optimization-list{gap:var(--spacing-md);flex-direction:column;display:flex}.optimization-card{background:var(--bg-tertiary);border-radius:var(--radius-md);padding:var(--spacing-md);border-left:3px solid var(--success)}.optimization-card .optimization-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);display:flex}.optimization-card .optimization-icon{border-radius:var(--radius-sm);justify-content:center;align-items:center;width:32px;height:32px;display:flex}.optimization-card .optimization-icon svg{width:18px;height:18px}.optimization-card .optimization-type{font-size:var(--font-xs);color:var(--text-tertiary);text-transform:uppercase}.optimization-card .optimization-confidence{font-size:var(--font-xs);color:var(--text-tertiary);margin-left:auto}.optimization-card .optimization-title{margin-bottom:var(--spacing-xs);font-weight:600}.optimization-card .optimization-description{font-size:var(--font-sm);color:var(--text-secondary);margin-bottom:var(--spacing-md)}.optimization-card .optimization-savings{align-items:baseline;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--success-light);border-radius:var(--radius-sm);margin-bottom:var(--spacing-sm);display:flex}.optimization-card .savings-label{font-size:var(--font-xs);color:var(--text-secondary)}.optimization-card .savings-value{font-size:var(--font-lg);color:var(--success);font-weight:700}.optimization-card .savings-period{font-size:var(--font-xs);color:var(--text-tertiary)}.optimization-card .optimization-recommendation{align-items:flex-start;gap:var(--spacing-sm);font-size:var(--font-sm);color:var(--text-secondary);display:flex}.optimization-card .optimization-recommendation svg{width:16px;height:16px;color:var(--success);flex-shrink:0;margin-top:2px}.contract-selector-modal{max-width:700px}.contract-selector-modal .invoice-context{align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm);background:var(--bg-tertiary);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);display:flex}.contract-selector-modal .invoice-context .context-label{color:var(--text-secondary);font-size:var(--font-sm)}.contract-selector-modal .invoice-context .invoice-number{font-weight:600}.contract-selector-modal .invoice-context .vendor-name{color:var(--text-secondary)}.contract-selector-modal .ai-recommendation{align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-sm);background:linear-gradient(135deg,#667eea1a 0%,#764ba21a 100%);display:flex}.contract-selector-modal .ai-recommendation svg{color:#764ba2;flex-shrink:0;width:18px;height:18px}.contract-selector-modal .suggestions-list{gap:var(--spacing-md);flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.contract-suggestion{background:var(--bg-tertiary);border:2px solid var(--border-color);border-radius:var(--radius-md);padding:var(--spacing-md);cursor:pointer;transition:all .2s;position:relative}.contract-suggestion:hover{border-color:var(--primary-light)}.contract-suggestion.selected{border-color:var(--primary);background:var(--primary-light)}.contract-suggestion.best-match{border-color:var(--success)}.contract-suggestion .best-match-badge{top:-10px;right:var(--spacing-sm);background:var(--success);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-xs);align-items:center;gap:4px;padding:4px 8px;font-weight:500;display:flex;position:absolute}.contract-suggestion .best-match-badge svg{width:12px;height:12px}.contract-suggestion .suggestion-header{align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);display:flex}.contract-suggestion .contract-icon svg{width:24px;height:24px;color:var(--text-secondary)}.contract-suggestion .contract-info{flex:1}.contract-suggestion .contract-title{font-weight:600}.contract-suggestion .contract-number{font-size:var(--font-xs);color:var(--text-secondary)}.contract-suggestion .confidence-badge{border-radius:var(--radius-sm);font-size:var(--font-xs);align-items:center;gap:4px;padding:4px 8px;font-weight:500;display:flex}.contract-suggestion .confidence-badge svg{width:12px;height:12px}.contract-suggestion .match-score-section{margin-bottom:var(--spacing-md)}.contract-suggestion .score-title{font-size:var(--font-xs);color:var(--text-secondary);margin-bottom:4px}.match-score-bar{background:var(--bg-secondary);border-radius:var(--radius-full);height:8px;position:relative;overflow:hidden}.match-score-bar .score-fill{border-radius:var(--radius-full);height:100%;transition:width .3s}.match-score-bar .score-label{right:var(--spacing-xs);color:var(--text-primary);font-size:10px;font-weight:600;position:absolute;top:50%;transform:translateY(-50%)}.contract-suggestion .suggestion-details{gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);font-size:var(--font-xs);grid-template-columns:repeat(2,1fr);display:grid}.contract-suggestion .score-breakdown{gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);font-size:var(--font-xs);flex-wrap:wrap;display:flex}.contract-suggestion .score-item{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:2px 6px}.contract-suggestion .match-reasons{margin-bottom:var(--spacing-xs);flex-wrap:wrap;gap:4px;display:flex}.contract-suggestion .reason-badge{background:var(--success-light);color:var(--success);border-radius:var(--radius-sm);font-size:var(--font-xs);align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.contract-suggestion .reason-badge svg{width:10px;height:10px}.contract-suggestion .match-warnings{flex-wrap:wrap;gap:4px;display:flex}.contract-suggestion .warning-badge{background:var(--warning-light);color:var(--warning);border-radius:var(--radius-sm);font-size:var(--font-xs);align-items:center;gap:4px;padding:2px 6px;display:inline-flex}.contract-suggestion .warning-badge svg{width:10px;height:10px}.toast{bottom:var(--spacing-lg);right:var(--spacing-lg);align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md)var(--spacing-lg);background:var(--bg-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:var(--z-notification);opacity:0;transition:all .3s;display:flex;position:fixed;transform:translateY(100px)}.toast.show{opacity:1;transform:translateY(0)}.toast svg{width:20px;height:20px}.toast-success svg{color:var(--success)}.toast-error svg{color:var(--error)}.discrepancy-panel.empty,.optimization-panel.empty{text-align:center;padding:var(--spacing-xxl)}.empty-state svg{width:48px;height:48px;color:var(--success);margin-bottom:var(--spacing-md)}.empty-state h3{font-size:var(--font-lg);margin-bottom:var(--spacing-xs)}.empty-state p{color:var(--text-secondary)}.view-all-btn{margin-top:var(--spacing-md)}.loading-state{padding:var(--spacing-xxl);flex-direction:column;justify-content:center;align-items:center;display:flex}.loading-state .spinner{border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;width:40px;height:40px;animation:1s linear infinite spin}.error-state{padding:var(--spacing-xxl);text-align:center;flex-direction:column;justify-content:center;align-items:center;display:flex}.error-state svg{width:48px;height:48px;color:var(--error);margin-bottom:var(--spacing-md)}.error-state h3{margin-bottom:var(--spacing-xs)}.error-state p{color:var(--text-secondary);margin-bottom:var(--spacing-lg)}@media (max-width:1024px){.analysis-kpis{grid-template-columns:repeat(2,1fr)}.analysis-entities{flex-direction:column}.match-connector{padding:var(--spacing-sm)0;flex-direction:row}.match-connector .connector-line{flex:1;width:auto;height:2px}.insights-grid,.discrepancy-item .discrepancy-values{grid-template-columns:1fr}}@media (max-width:768px){.analysis-kpis{grid-template-columns:1fr}.analysis-header-top{gap:var(--spacing-md);flex-direction:column;align-items:flex-start}.analysis-tabs{flex-wrap:wrap}.analysis-tabs .tab-btn{flex:0 0 calc(50% - var(--spacing-xs))}.discrepancy-panel .panel-header{align-items:flex-start;gap:var(--spacing-sm);flex-direction:column}.discrepancy-item .discrepancy-header{flex-wrap:wrap}.discrepancy-item .discrepancy-impact{width:100%;margin-left:0;margin-top:var(--spacing-sm)}}[dir=rtl] .contracts-header,[dir=rtl] .invoices-header,[dir=rtl] .renewals-header{flex-direction:row-reverse}[dir=rtl] .contract-card.critical,[dir=rtl] .contract-card.warning,[dir=rtl] .contract-card.info,[dir=rtl] .contract-card.expired{border-left:none;border-right-style:solid;border-right-width:4px}[dir=rtl] .contract-card.critical{border-right-color:var(--error)}[dir=rtl] .contract-card.warning{border-right-color:var(--warning)}[dir=rtl] .contract-card.info{border-right-color:var(--info)}[dir=rtl] .contract-card.expired{border-right-color:var(--gray-400)}[dir=rtl] .contract-title-row,[dir=rtl] .contract-info-row,[dir=rtl] .invoice-info-row,[dir=rtl] .contract-card-footer,[dir=rtl] .invoice-card-footer{flex-direction:row-reverse}[dir=rtl] .upload-area{text-align:right}[dir=rtl] .upload-icon{margin-left:auto;margin-right:0}[dir=rtl] .analysis-header-top{flex-direction:row-reverse}[dir=rtl] .analysis-kpi{text-align:right}[dir=rtl] .analysis-tabs{flex-direction:row-reverse}[dir=rtl] .settings-nav,[dir=rtl] .settings-content,[dir=rtl] .discrepancy-item{text-align:right}[dir=rtl] .discrepancy-header{flex-direction:row-reverse}[dir=rtl] .renewal-card{text-align:right}[dir=rtl] .renewal-card-header,[dir=rtl] .renewal-card-footer{flex-direction:row-reverse}[dir=rtl] .empty-state{text-align:right}[dir=rtl] .page-header{text-align:right;flex-direction:row-reverse}[dir=rtl] .page-header-content{text-align:right}[dir=rtl] .status-badge{flex-direction:row-reverse}[dir=rtl] .list-item{text-align:right;flex-direction:row-reverse}[dir=rtl] .list-item-content{text-align:right}[dir=rtl] .list-item-actions,[dir=rtl] .detail-row{flex-direction:row-reverse}[dir=rtl] .detail-label{text-align:right}[dir=rtl] .detail-value{text-align:left}[dir=rtl] .tab-btn{flex-direction:row-reverse}[dir=rtl] .alert,[dir=rtl] .notification{text-align:right;flex-direction:row-reverse}[dir=rtl] .progress-bar{direction:rtl}[dir=rtl] .progress-fill,[dir=rtl] .dropdown{left:auto;right:0}[dir=rtl] .dropdown-item,[dir=rtl] .tooltip{text-align:right}[dir=rtl] .icon-text,[dir=rtl] .action-buttons,[dir=rtl] .pagination{flex-direction:row-reverse}[dir=rtl] .file-item{text-align:right;flex-direction:row-reverse}[dir=rtl] .file-info,[dir=rtl] .ai-summary-card,[dir=rtl] .extraction-results{text-align:right}[dir=rtl] .entity-item{text-align:right;flex-direction:row-reverse}[dir=rtl] .clause-item{text-align:right}[dir=rtl] .risk-item{text-align:right;flex-direction:row-reverse}.invoice-edit-page{padding:var(--spacing-lg);max-width:1200px;margin:0 auto}.edit-header{margin-bottom:var(--spacing-xl)}.edit-header .breadcrumb{align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-md);color:var(--text-secondary);font-size:.875rem;display:flex}.edit-header .breadcrumb a{color:var(--primary);text-decoration:none}.edit-header .breadcrumb a:hover{text-decoration:underline}.edit-header .breadcrumb .separator{color:var(--text-tertiary)}.edit-header .header-content{align-items:center;gap:var(--spacing-md);display:flex}.edit-title{align-items:center;gap:var(--spacing-sm);color:var(--text-primary);margin:0;font-size:1.5rem;font-weight:600;display:flex}.edit-title svg{color:var(--primary)}.unsaved-badge{padding:var(--spacing-xs)var(--spacing-sm);background:var(--warning-light);color:var(--warning);border-radius:var(--radius-full);align-items:center;font-size:.75rem;font-weight:500;display:inline-flex}.invoice-edit-form{gap:var(--spacing-xl);flex-direction:column;display:flex}.form-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.form-section-header{margin-bottom:var(--spacing-lg);justify-content:space-between;align-items:center;display:flex}.form-section-title{color:var(--text-primary);margin:0 0 var(--spacing-lg)0;font-size:1rem;font-weight:600}.form-section-header .form-section-title{margin-bottom:0}.form-grid{gap:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.form-grid-amounts{grid-template-columns:repeat(4,1fr)}@media (max-width:768px){.form-grid-amounts{grid-template-columns:repeat(2,1fr)}}.form-group{gap:var(--spacing-xs);flex-direction:column;display:flex}.form-group label{color:var(--text-secondary);font-size:.875rem;font-weight:500}.form-group input,.form-group select{padding:var(--spacing-sm)var(--spacing-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--bg-primary);color:var(--text-primary);font-size:.9375rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group select:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.form-group input.input-highlight{font-size:1rem;font-weight:600}.input-with-action{gap:var(--spacing-xs);display:flex}.input-with-action input{flex:1}.input-with-action .btn{padding:var(--spacing-sm)}.line-items-table-container{margin:0 calc(-1*var(--spacing-lg));padding:0 var(--spacing-lg);overflow-x:auto}.line-items-table{border-collapse:collapse;width:100%;font-size:.875rem}.line-items-table th{text-align:left;padding:var(--spacing-sm)var(--spacing-md);border-bottom:2px solid var(--border-color);color:var(--text-secondary);white-space:nowrap;font-weight:600}.line-items-table td{padding:var(--spacing-xs)var(--spacing-sm);border-bottom:1px solid var(--border-color);vertical-align:middle}.line-items-table tbody tr:hover{background:var(--bg-tertiary)}.line-items-table .empty-row td{padding:var(--spacing-xl)}.line-item-input{width:100%;padding:var(--spacing-xs)var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);font-size:.875rem;transition:border-color .2s}.line-item-input:focus{border-color:var(--primary);outline:none}.line-item-input.text-right{text-align:right}.btn-danger-icon{color:var(--text-tertiary);transition:color .2s}.btn-danger-icon:hover{color:var(--error)}.form-actions{justify-content:flex-end;gap:var(--spacing-md);padding-top:var(--spacing-lg);border-top:1px solid var(--border-color);display:flex}.form-actions .btn{min-width:140px}.form-actions .btn svg.spinner-icon{animation:1s linear infinite spin}.text-right{text-align:right}.text-center{text-align:center}.text-muted{color:var(--text-tertiary)}[dir=rtl] .edit-header .breadcrumb,[dir=rtl] .form-section-header{flex-direction:row-reverse}[dir=rtl] .line-items-table th,[dir=rtl] .line-items-table td{text-align:right}[dir=rtl] .line-item-input.text-right{text-align:left}[dir=rtl] .form-actions,[dir=rtl] .input-with-action{flex-direction:row-reverse}.contract-analysis-page{padding:var(--spacing-lg);max-width:1400px;margin:0 auto}.contract-analysis-header{margin-bottom:var(--spacing-lg)}.contract-analysis-header .header-nav{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.contract-analysis-header .back-link{align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);font-size:.875rem;text-decoration:none;transition:color .2s;display:flex}.contract-analysis-header .back-link:hover{color:var(--primary)}.contract-analysis-header .header-actions{gap:var(--spacing-sm);display:flex}.contract-info-banner{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.contract-info-banner .contract-title{color:var(--text-primary);margin:0 0 var(--spacing-sm)0;font-size:1.5rem;font-weight:600}.contract-info-banner .contract-meta{gap:var(--spacing-md);flex-wrap:wrap;align-items:center;display:flex}.contract-info-banner .meta-item{align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);font-size:.875rem;display:flex}.contract-kpis{gap:var(--spacing-md);margin-bottom:var(--spacing-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.contract-kpis .kpi-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);align-items:center;gap:var(--spacing-md);display:flex}.contract-kpis .kpi-card.warning{border-left:3px solid var(--warning)}.contract-kpis .kpi-card.danger{border-left:3px solid var(--error)}.contract-kpis .kpi-card.success{border-left:3px solid var(--success)}.contract-kpis .kpi-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.contract-kpis .kpi-icon svg{width:24px;height:24px}.contract-kpis .kpi-icon.invoices-icon{background:var(--primary-light);color:var(--primary)}.contract-kpis .kpi-icon.value-icon{background:var(--info-light);color:var(--info)}.contract-kpis .kpi-icon.discrepancy-icon{background:var(--warning-light);color:var(--warning)}.contract-kpis .kpi-icon.variance-icon{background:var(--error-light);color:var(--error)}.contract-kpis .kpi-content{flex-direction:column;display:flex}.contract-kpis .kpi-value{color:var(--text-primary);font-size:1.25rem;font-weight:600}.contract-kpis .kpi-label{color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.vendor-performance-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.vendor-performance-card .section-title{align-items:center;gap:var(--spacing-sm);color:var(--text-primary);margin:0 0 var(--spacing-md)0;font-size:1rem;font-weight:600;display:flex}.vendor-performance-card .section-title svg{color:var(--text-secondary)}.performance-metrics{gap:var(--spacing-lg);margin-bottom:var(--spacing-md);grid-template-columns:repeat(auto-fit,minmax(150px,1fr));display:grid}.performance-metrics .metric{text-align:center}.performance-metrics .metric-label{color:var(--text-tertiary);margin-bottom:var(--spacing-xs);font-size:.75rem;display:block}.performance-metrics .metric-value{color:var(--text-primary);font-size:1.5rem;font-weight:600}.performance-metrics .metric-value.danger{color:var(--error)}.performance-metrics .metric-value.warning{color:var(--warning)}.performance-metrics .metric-value.success{color:var(--success)}.common-issues{align-items:center;gap:var(--spacing-sm);padding-top:var(--spacing-md);border-top:1px solid var(--border-color);flex-wrap:wrap;display:flex}.common-issues .issues-label{color:var(--text-secondary);font-size:.875rem}.common-issues .issue-tag{background:var(--bg-tertiary);color:var(--text-secondary);padding:var(--spacing-xs)var(--spacing-sm);border-radius:var(--radius-full);text-transform:capitalize;font-size:.75rem}.vendor-recommendation{align-items:flex-start;gap:var(--spacing-sm);margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--info-light);border-radius:var(--radius-md);color:var(--info);font-size:.875rem;display:flex}.vendor-recommendation svg{flex-shrink:0;margin-top:2px}.discrepancy-breakdown{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.discrepancy-breakdown .section-title{align-items:center;gap:var(--spacing-sm);color:var(--text-primary);margin:0 0 var(--spacing-md)0;font-size:1rem;font-weight:600;display:flex}.breakdown-grid{gap:var(--spacing-xl);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));display:grid}.breakdown-section h4{color:var(--text-secondary);margin:0 0 var(--spacing-md)0;font-size:.875rem;font-weight:600}.breakdown-bars{gap:var(--spacing-sm);flex-direction:column;display:flex}.breakdown-bar{align-items:center;gap:var(--spacing-sm);display:flex}.breakdown-bar .bar-label{width:100px;color:var(--text-secondary);text-transform:capitalize;font-size:.75rem}.breakdown-bar .bar-label.severity-critical{color:var(--error)}.breakdown-bar .bar-label.severity-high{color:var(--warning)}.breakdown-bar .bar-track{background:var(--bg-tertiary);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.breakdown-bar .bar-fill{border-radius:var(--radius-full);height:100%;transition:width .3s}.breakdown-bar .bar-fill.severity-critical{background:var(--error)}.breakdown-bar .bar-fill.severity-high{background:var(--warning)}.breakdown-bar .bar-fill.severity-medium{background:var(--info)}.breakdown-bar .bar-fill.severity-low{background:var(--success)}.breakdown-bar .bar-fill.type-bar{background:var(--primary)}.breakdown-bar .bar-value{text-align:right;width:30px;color:var(--text-primary);font-size:.75rem;font-weight:600}.invoices-section{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.invoices-section .section-title{align-items:center;gap:var(--spacing-sm);color:var(--text-primary);margin:0 0 var(--spacing-md)0;font-size:1rem;font-weight:600;display:flex}.invoices-section.empty-state{padding:var(--spacing-xxl);text-align:center;color:var(--text-tertiary);flex-direction:column;justify-content:center;align-items:center;display:flex}.invoices-section.empty-state svg{margin-bottom:var(--spacing-md);opacity:.5}.invoices-section.empty-state h3{margin:0 0 var(--spacing-xs)0;color:var(--text-secondary)}.invoices-table-container{overflow-x:auto}.invoices-analysis-table{border-collapse:collapse;width:100%}.invoices-analysis-table th,.invoices-analysis-table td{padding:var(--spacing-sm)var(--spacing-md);text-align:left;border-bottom:1px solid var(--border-color)}.invoices-analysis-table th{background:var(--bg-tertiary);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.invoices-analysis-table tbody tr:hover{background:var(--bg-tertiary)}.invoices-analysis-table .invoice-link{color:var(--primary);font-weight:500;text-decoration:none}.invoices-analysis-table .invoice-link:hover{text-decoration:underline}.invoices-analysis-table .discrepancy-count{min-width:24px;height:24px;padding:0 var(--spacing-xs);background:var(--warning-light);color:var(--warning);border-radius:var(--radius-full);justify-content:center;align-items:center;font-size:.75rem;font-weight:600;display:inline-flex}.invoices-analysis-table .no-issues{color:var(--text-tertiary)}.invoices-analysis-table .text-danger{color:var(--error)}[dir=rtl] .contract-analysis-header .header-nav,[dir=rtl] .contract-info-banner .contract-meta,[dir=rtl] .contract-kpis .kpi-card,[dir=rtl] .breakdown-bar{flex-direction:row-reverse}[dir=rtl] .invoices-analysis-table th,[dir=rtl] .invoices-analysis-table td{text-align:right}
