.input-wrapper{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.input-label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center}.input-required{color:var(--color-error);margin-left:var(--spacing-xs)}.input-field{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-normal);outline:none;box-sizing:border-box}.input-field:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.input-field:hover:not(:disabled){border-color:var(--color-border-medium)}.input-field::placeholder{color:var(--color-text-disabled)}.input-field.input-error{border-color:var(--color-error)}.input-field.input-error:focus{border-color:var(--color-error);box-shadow:var(--shadow-error)}.input-field.input-disabled{background-color:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed}.input-error-message{font-size:var(--font-size-xs);color:var(--color-error);display:flex;align-items:center;gap:var(--spacing-xs)}.input-error-message:before{content:"⚠";font-size:var(--font-size-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);font-family:inherit;font-weight:var(--font-weight-medium);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-normal);outline:none;white-space:nowrap}.btn-small{padding:var(--spacing-sm) var(--spacing-lg);font-size:var(--font-size-sm)}.btn-medium{padding:var(--spacing-md) var(--spacing-xl);font-size:var(--font-size-md)}.btn-large{padding:14px var(--spacing-2xl);font-size:var(--font-size-lg)}.btn-primary{background-color:var(--color-primary);color:var(--color-text-light)}.btn-primary:hover:not(.btn-disabled){background-color:var(--color-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-primary)}.btn-primary:active:not(.btn-disabled){transform:translateY(0)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-text-light)}.btn-secondary:hover:not(.btn-disabled){background-color:var(--color-secondary-hover);transform:translateY(-1px);box-shadow:var(--shadow-medium)}.btn-outline{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary)}.btn-outline:hover:not(.btn-disabled){background-color:var(--color-primary);color:var(--color-text-light)}.btn-text{background-color:transparent;color:var(--color-primary);padding:var(--spacing-sm) var(--spacing-lg)}.btn-text:hover:not(.btn-disabled){background-color:var(--color-primary-light)}.btn-disabled{background-color:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed;opacity:.6}.btn-full-width{width:100%}.btn-loader{width:14px;height:14px;border:2px solid currentColor;border-top-color:transparent;border-radius:var(--radius-full);animation:btn-spin .6s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;animation:modalFadeIn var(--transition-normal)}.modal-content{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-large);padding:var(--spacing-2xl) var(--spacing-2xl);width:100%;max-width:440px;animation:modalSlideDown var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-lg)}.modal-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;font-size:var(--font-size-2xl);color:var(--color-text-secondary);cursor:pointer;padding:0;line-height:1;transition:color var(--transition-normal)}.modal-close:hover{color:var(--color-text-primary)}.modal-body{display:flex;flex-direction:column;gap:var(--spacing-lg)}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){.modal-content{padding:var(--spacing-xl) var(--spacing-lg)}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);padding:20px}.login-card{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-large);padding:var(--spacing-3xl) 40px;width:100%;max-width:440px;animation:fadeIn var(--transition-slow)}.login-header{text-align:center;margin-bottom:var(--spacing-2xl)}.login-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.login-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-error-banner{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error-text);font-size:var(--font-size-md);text-align:center;animation:slideDown var(--transition-normal)}.login-actions{margin-top:var(--spacing-sm)}.login-footer{text-align:center;padding-top:var(--spacing-sm)}.login-link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-md);transition:color var(--transition-normal)}.login-link:hover{color:var(--color-primary-hover);text-decoration:underline}.forgot-password-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.forgot-password-description{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-relaxed)}.login-success-banner{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-success-light);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-success-text);font-size:var(--font-size-md);text-align:center;animation:slideDown var(--transition-normal)}@media(max-width:480px){.login-card{padding:var(--spacing-2xl) var(--spacing-xl)}.login-title{font-size:var(--font-size-2xl)}}.otp-input-wrapper{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);width:100%}.otp-input-container{display:flex;gap:var(--spacing-md);justify-content:center}.otp-input-field{width:50px;height:60px;font-size:var(--font-size-2xl);font-weight:var(--font-weight-semibold);text-align:center;border:2px solid var(--color-border-light);border-radius:var(--radius-lg);background-color:var(--color-bg-primary);color:var(--color-text-primary);outline:none;transition:all var(--transition-normal);caret-color:var(--color-primary)}.otp-input-field:hover:not(:disabled){border-color:var(--color-border-medium)}.otp-input-field.otp-input-focused{border-color:var(--color-primary);box-shadow:var(--shadow-focus);transform:scale(1.05)}.otp-input-field.otp-input-error{border-color:var(--color-error);animation:shake .4s ease}.otp-input-field.otp-input-error.otp-input-focused{box-shadow:var(--shadow-error)}.otp-input-field.otp-input-disabled{background-color:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed;border-color:var(--color-border-light)}.otp-error-message{font-size:var(--font-size-md);color:var(--color-error);display:flex;align-items:center;gap:var(--spacing-sm);text-align:center}.otp-error-message:before{content:"⚠";font-size:var(--font-size-lg)}@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-5px)}20%,40%,60%,80%{transform:translate(5px)}}@media(max-width:480px){.otp-input-field{width:40px;height:50px;font-size:var(--font-size-xl)}.otp-input-container{gap:var(--spacing-sm)}}.otp-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);padding:20px}.otp-card{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-large);padding:var(--spacing-3xl) 40px;width:100%;max-width:520px;animation:fadeIn var(--transition-slow)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.otp-header{text-align:center;margin-bottom:40px}.otp-icon{margin:0 auto var(--spacing-xl);display:flex;justify-content:center;align-items:center}.otp-icon circle:first-child{fill:var(--color-primary-light)}.otp-icon path,.otp-icon circle:last-child{fill:var(--color-primary)}.otp-title{font-size:26px;font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.otp-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}.otp-subtitle strong{color:var(--color-primary);font-weight:var(--font-weight-semibold)}.otp-form{display:flex;flex-direction:column;gap:var(--spacing-xl)}.otp-success-banner{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-success-light);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-success-text);font-size:var(--font-size-md);text-align:center;font-weight:var(--font-weight-medium);animation:slideDown var(--transition-normal)}.otp-error-banner{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error-text);font-size:var(--font-size-md);text-align:center;animation:slideDown var(--transition-normal)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.otp-info{text-align:center;padding:var(--spacing-lg) 0;border-top:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.otp-info-text{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0}.otp-info-text strong{color:var(--color-error);font-weight:var(--font-weight-semibold)}.otp-actions{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.otp-qrcode-container{text-align:center;margin-bottom:var(--spacing-lg)}.otp-qrcode-instruction{font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:var(--font-weight-semibold);margin:0 0 var(--spacing-lg) 0}.otp-qrcode-wrapper{display:flex;justify-content:center;align-items:center;padding:var(--spacing-xl);background-color:var(--color-bg-secondary);border-radius:var(--radius-lg);border:2px solid var(--color-border-light);margin:0 auto var(--spacing-lg);max-width:280px}.otp-qrcode{width:220px;height:220px;display:block;border-radius:var(--radius-md)}.otp-qrcode-info{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;line-height:var(--line-height-normal)}@media(max-width:580px){.otp-card{padding:var(--spacing-2xl) var(--spacing-xl)}.otp-title{font-size:22px}.otp-icon svg{width:48px;height:48px}.otp-qrcode-wrapper{padding:var(--spacing-lg);max-width:240px}.otp-qrcode{width:180px;height:180px}}.language-selector{position:relative}.language-selector-top-right,.language-selector-top-left,.language-selector-bottom-right,.language-selector-bottom-left{position:fixed;z-index:var(--z-dropdown)}.language-selector-top-right{top:var(--spacing-lg);right:var(--spacing-lg)}.language-selector-top-left{top:var(--spacing-lg);left:var(--spacing-lg)}.language-selector-bottom-right{bottom:var(--spacing-lg);right:var(--spacing-lg)}.language-selector-bottom-left{bottom:var(--spacing-lg);left:var(--spacing-lg)}.language-selector-button{display:flex;align-items:center;gap:var(--spacing-sm);height:36px;padding:0 var(--spacing-md);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-small);white-space:nowrap}.language-selector-button:hover{border-color:var(--color-primary);box-shadow:var(--shadow-medium)}.language-selector-flag{width:24px;height:18px;object-fit:cover;border-radius:2px;display:block;box-shadow:0 1px 3px #0003}.language-selector-label{font-weight:var(--font-weight-medium);flex:1}.language-selector-arrow{transition:transform var(--transition-normal)}.language-selector-arrow-open{transform:rotate(180deg)}.language-selector-overlay{position:fixed;inset:0;z-index:var(--z-dropdown)}.language-selector-dropdown{position:absolute;top:calc(100% + var(--spacing-sm));left:0;min-width:240px;background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);z-index:calc(var(--z-dropdown) + 1);animation:dropdownFadeIn var(--transition-normal)}.language-selector-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.language-selector-header h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.language-selector-list{list-style:none;margin:0;padding:var(--spacing-sm)}.language-selector-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-md);background-color:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast);text-align:left}.language-selector-item:hover{background-color:var(--color-bg-hover)}.language-selector-item.active{background-color:var(--color-primary-light);color:var(--color-primary)}.language-selector-item-content{display:flex;align-items:center;gap:var(--spacing-md);flex:1}.language-selector-item-flag{width:32px;height:24px;object-fit:cover;border-radius:3px;display:block;box-shadow:0 1px 3px #0003;flex-shrink:0}.language-selector-item-names{display:flex;flex-direction:column;gap:2px}.language-selector-item-native{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.language-selector-item.active .language-selector-item-native{color:var(--color-primary)}.language-selector-item-name{font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media(max-width:480px){.language-selector-button .language-selector-label{display:none}.language-selector-button{min-width:auto;padding:var(--spacing-sm)}.language-selector-dropdown{min-width:200px}}.select-company-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.select-company-card{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000001a;padding:40px;width:100%;max-width:600px}.select-company-header{text-align:center;margin-bottom:32px}.select-company-title{font-size:28px;font-weight:700;color:#2c3e50;margin:0 0 8px}.select-company-subtitle{font-size:15px;color:#7f8c8d;margin:0}.select-company-list{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;max-height:400px;overflow-y:auto}.company-item{display:flex;align-items:center;padding:16px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;background:#fff}.company-item:hover{border-color:#3498db;background:#f8f9fa}.company-item.selected{border-color:#3498db;background:#e3f2fd}.company-logo-container{width:60px;height:60px;flex-shrink:0;margin-right:16px}.company-logo{width:100%;height:100%;object-fit:contain;border-radius:8px}.company-logo-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;font-size:24px;font-weight:700}.company-info{flex:1}.company-name{font-size:18px;font-weight:600;color:#2c3e50;margin:0}.company-check{flex-shrink:0;margin-left:12px}.select-company-actions{display:flex;flex-direction:column;gap:12px}@media(max-width:640px){.select-company-card{padding:24px}.select-company-title{font-size:24px}.company-logo-container{width:48px;height:48px}.company-name{font-size:16px}}.theme-selector{position:relative}.theme-selector-button{display:flex;align-items:center;gap:var(--spacing-sm);height:36px;padding:0 var(--spacing-md);background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-normal);box-shadow:var(--shadow-small);white-space:nowrap}.theme-selector-button:hover{border-color:var(--color-primary);box-shadow:var(--shadow-medium)}.theme-selector-label{font-weight:var(--font-weight-medium)}.theme-selector-overlay{position:fixed;inset:0;z-index:var(--z-dropdown)}.theme-selector-dropdown{position:absolute;top:calc(100% + var(--spacing-sm));right:0;min-width:280px;background-color:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);z-index:calc(var(--z-dropdown) + 1);animation:dropdownFadeIn var(--transition-normal)}@keyframes dropdownFadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.theme-selector-header{padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border-light)}.theme-selector-header h3{margin:0;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.theme-selector-list{list-style:none;margin:0;padding:var(--spacing-sm)}.theme-selector-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--spacing-md);background-color:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast);text-align:left}.theme-selector-item:hover{background-color:var(--color-bg-hover)}.theme-selector-item.active{background-color:var(--color-primary-light);color:var(--color-primary)}.theme-selector-item-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.theme-selector-item-name{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.theme-selector-item.active .theme-selector-item-name{color:var(--color-primary)}.theme-selector-item-description{font-size:var(--font-size-xs);color:var(--color-text-secondary)}@media(max-width:480px){.theme-selector-button .theme-selector-label{display:none}.theme-selector-dropdown{min-width:260px}}.jarvis-floating-button{position:fixed;bottom:20px;right:20px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);border:none;cursor:pointer;box-shadow:0 4px 12px #667eea66;display:flex;align-items:center;justify-content:center;font-size:28px;z-index:1000;transition:all .3s ease}.jarvis-floating-button:hover{transform:scale(1.1);box-shadow:0 6px 20px #667eea99}.jarvis-floating-button:active{transform:scale(.95)}.jarvis-floating-icon{width:40px;height:40px;border-radius:50%;object-fit:cover}.jarvis-chat-overlay{position:fixed;inset:0;background:#00000080;z-index:999}.jarvis-chat-container{position:fixed;bottom:20px;right:20px;width:400px;max-height:600px;background:#fff;border-radius:12px;box-shadow:0 8px 32px #00000026;display:flex;flex-direction:column;z-index:1001;animation:slideUp .3s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:768px){.jarvis-chat-container{width:calc(100vw - 40px);max-height:calc(100vh - 100px);bottom:auto;top:50%;right:20px;transform:translateY(-50%)}}.jarvis-chat-header{display:flex;justify-content:space-between;align-items:center;padding:16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:12px 12px 0 0}.jarvis-chat-title{display:flex;align-items:center;gap:10px}.jarvis-chat-icon{width:28px;height:28px;border-radius:50%;object-fit:cover}.jarvis-chat-title h3{margin:0;font-size:18px;font-weight:600}.jarvis-chat-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.jarvis-chat-close:hover{background:#fff3}.jarvis-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;background:#f9f9f9}.jarvis-chat-welcome{text-align:center;color:#666;padding:20px 10px}.jarvis-chat-welcome p{margin:8px 0;font-size:14px;line-height:1.4}.jarvis-chat-message{display:flex;gap:8px;align-items:flex-end;animation:fadeIn .3s ease}.jarvis-chat-user{justify-content:flex-end}.jarvis-chat-user .jarvis-chat-content{background:#667eea;color:#fff}.jarvis-chat-assistant .jarvis-chat-content{background:#fff;color:#333;border:1px solid #e0e0e0}.jarvis-chat-avatar{flex-shrink:0;width:24px;height:24px;border-radius:50%;object-fit:cover}span.jarvis-chat-avatar{font-size:20px;line-height:24px;text-align:center}.jarvis-chat-content{max-width:70%;padding:10px 12px;border-radius:8px;word-wrap:break-word;line-height:1.4;font-size:14px}.jarvis-chat-typing{display:inline-block;color:#999;font-style:italic}.jarvis-chat-error{background:#ffebee;border:1px solid #ef5350;color:#c62828;padding:10px 12px;border-radius:8px;font-size:14px}.jarvis-chat-error p{margin:0}.jarvis-chat-footer{padding:12px 16px;border-top:1px solid #e0e0e0;background:#fff;border-radius:0 0 12px 12px;display:flex;gap:8px;flex-wrap:wrap;align-items:flex-end}.jarvis-chat-input-wrapper{flex:1;display:flex;gap:8px;align-items:flex-end;min-height:36px}.jarvis-chat-input{flex:1;padding:8px 12px;border:1px solid #d0d0d0;border-radius:6px;font-size:14px;font-family:inherit;resize:none;max-height:100px;line-height:1.4}.jarvis-chat-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.jarvis-chat-input:disabled{background:#f0f0f0;color:#999}.jarvis-chat-btn-send{padding:8px 12px;background:#667eea;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:600;transition:background .2s;min-width:36px;height:36px;display:flex;align-items:center;justify-content:center}.jarvis-chat-btn-send:hover:not(:disabled){background:#5568d3}.jarvis-chat-btn-send:disabled{background:#ccc;cursor:not-allowed}.jarvis-chat-btn-clear{padding:6px 10px;background:#f0f0f0;color:#333;border:1px solid #d0d0d0;border-radius:6px;cursor:pointer;font-size:12px;transition:background .2s}.jarvis-chat-btn-clear:hover{background:#e0e0e0}.jarvis-chat-messages::-webkit-scrollbar{width:6px}.jarvis-chat-messages::-webkit-scrollbar-track{background:#f0f0f0}.jarvis-chat-messages::-webkit-scrollbar-thumb{background:#ccc;border-radius:3px}.jarvis-chat-messages::-webkit-scrollbar-thumb:hover{background:#999}:root{--layout-spacing-xs: .25rem;--layout-spacing-sm: .5rem;--layout-spacing-md: 1rem;--layout-spacing-lg: 1.5rem;--layout-spacing-xl: 2rem;--header-height: 64px;--footer-height: 48px;--sidebar-width: 260px;--sidebar-collapsed-width: 64px;--transition-speed: .3s;--transition-timing: cubic-bezier(.4, 0, .2, 1)}.main-layout{display:grid;grid-template-areas:"header header" "sidebar content" "footer footer";grid-template-rows:var(--header-height) 1fr var(--footer-height);grid-template-columns:var(--sidebar-width) 1fr;min-height:100vh;min-height:100dvh;background-color:var(--color-bg-secondary);transition:grid-template-columns var(--transition-speed) var(--transition-timing)}.main-layout.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed-width) 1fr}.layout-header{grid-area:header;display:flex;align-items:center;justify-content:space-between;padding:0 var(--layout-spacing-lg);background-color:var(--color-bg-header);border-bottom:1px solid var(--color-border-light);box-shadow:var(--shadow-small);position:sticky;top:0;z-index:100}.header-left,.header-center,.header-right{display:flex;align-items:center;gap:var(--layout-spacing-md)}.header-left{flex:1;justify-content:flex-start}.header-center{flex:2;justify-content:center}.header-right{flex:1;justify-content:flex-end}.menu-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s;color:var(--color-text-primary)}.menu-toggle:hover{background-color:var(--color-bg-secondary)}.mobile-menu-toggle{display:none;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s;color:var(--color-text-primary)}.mobile-menu-toggle:hover{background-color:var(--color-bg-secondary)}.menu-icon{display:flex;align-items:center;justify-content:center;color:inherit}.logo h1{margin:0;font-size:1.5rem;font-weight:700;color:var(--color-primary);white-space:nowrap}.company-selector{display:flex;align-items:center;gap:var(--layout-spacing-sm);padding:var(--layout-spacing-sm) var(--layout-spacing-md);background-color:transparent;border-radius:var(--radius-lg);cursor:pointer;transition:background-color .2s}.company-selector:hover{background-color:var(--color-bg-hover)}.company-icon{font-size:1.25rem;display:flex;align-items:center}.company-name{font-weight:600;color:var(--color-primary);white-space:nowrap}.header-action-btn{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;transition:background-color .2s;color:var(--color-text-primary)}.header-action-btn:hover{background-color:var(--color-bg-secondary)}.notification-icon{font-size:1.25rem;display:flex;align-items:center}.notification-badge{position:absolute;top:4px;right:4px;display:flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;background-color:var(--color-error);color:var(--color-text-light);font-size:.7rem;font-weight:700;border-radius:9px}.user-menu{position:relative}.user-menu-toggle{display:flex;align-items:center;gap:var(--layout-spacing-sm);padding:var(--layout-spacing-sm) var(--layout-spacing-md);border:none;background:transparent;border-radius:var(--radius-lg);cursor:pointer;transition:background-color .2s}.user-menu-toggle:hover{background-color:var(--color-bg-secondary)}.user-menu-toggle:hover+.user-menu-dropdown,.user-menu-dropdown:hover{opacity:1;visibility:visible;transform:translateY(0)}.user-avatar{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background-color:var(--color-primary);color:var(--color-text-light);border-radius:50%;font-size:1rem}.user-name{font-weight:600;color:var(--color-text-primary)}.dropdown-arrow{display:flex;align-items:center;color:var(--color-text-secondary)}.user-menu-dropdown{position:absolute;top:calc(100% + var(--layout-spacing-sm));right:0;min-width:200px;background:var(--color-bg-primary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-large);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all .2s var(--transition-timing);z-index:1000}.dropdown-item{display:flex;align-items:center;gap:var(--layout-spacing-sm);width:100%;padding:var(--layout-spacing-md);border:none;background:transparent;text-align:left;text-decoration:none;color:var(--color-text-primary);font-size:.9rem;cursor:pointer;transition:background-color .2s}.dropdown-item:hover{background-color:var(--color-bg-secondary)}.dropdown-icon{display:flex;align-items:center}.dropdown-divider{height:1px;margin:var(--layout-spacing-sm) 0;background-color:var(--color-border-light)}.logout-btn{color:var(--color-error)}.layout-sidebar{grid-area:sidebar;display:flex;flex-direction:column;background-color:var(--color-bg-sidebar);border-right:1px solid var(--color-border-light);overflow-x:hidden;overflow-y:auto;transition:width var(--transition-speed) var(--transition-timing)}.sidebar-collapsed .layout-sidebar{width:var(--sidebar-collapsed-width)}.sidebar-nav{flex:1;padding:var(--layout-spacing-md) 0}.menu-list{list-style:none;margin:0;padding:0}.menu-item{margin:0;padding:0}.menu-link{display:flex;align-items:center;gap:var(--layout-spacing-md);width:100%;padding:var(--layout-spacing-md) var(--layout-spacing-lg);border:none;background:transparent;text-decoration:none;text-align:left;color:var(--color-text-on-dark);font-size:.95rem;cursor:pointer;transition:all .2s;white-space:nowrap}.menu-link:hover{background-color:#ffffff1a}.menu-link.active{background-color:var(--color-primary);border-left:4px solid var(--color-accent)}.menu-link .menu-icon{flex-shrink:0;width:24px;display:flex;align-items:center;justify-content:center}.sidebar-collapsed .menu-link .menu-label{opacity:0;visibility:hidden;width:0}.sidebar-collapsed .menu-link{justify-content:center;padding:var(--layout-spacing-md)}.menu-arrow{margin-left:auto;display:flex;align-items:center;transition:transform .2s;opacity:.6}.menu-arrow-expanded{transform:rotate(90deg)}.sidebar-collapsed .menu-arrow{display:none}.submenu-list{list-style:none;margin:0;padding:0}.submenu-item{margin:0;padding:0}.submenu-link{display:flex;align-items:center;gap:var(--layout-spacing-sm);width:100%;padding:var(--layout-spacing-sm) var(--layout-spacing-lg);padding-left:calc(var(--layout-spacing-lg) + 24px + var(--layout-spacing-md));border:none;background:#00000026;text-decoration:none;text-align:left;color:var(--color-text-on-dark);font-size:.85rem;cursor:pointer;transition:all .2s;white-space:nowrap;opacity:.85}.submenu-link:hover{background:#ffffff1f;opacity:1}.submenu-link.active{background:#0000004d;opacity:1;font-weight:var(--font-weight-medium, 500);border-left:3px solid var(--color-accent)}.submenu-icon{flex-shrink:0;width:18px;display:flex;align-items:center;justify-content:center}.submenu-label{overflow:hidden;text-overflow:ellipsis}.sidebar-collapsed .submenu-list{display:none}.sidebar-footer{padding:var(--layout-spacing-md);border-top:1px solid rgba(255,255,255,.1)}.version-info{display:flex;align-items:center;gap:var(--layout-spacing-sm);color:var(--color-text-muted);font-size:.85rem}.sidebar-collapsed .version-info{justify-content:center}.sidebar-collapsed .version-text{display:none}.layout-content{grid-area:content;overflow-y:auto}.content-wrapper{margin:10px}.layout-footer{grid-area:footer;display:flex;align-items:center;padding:0 var(--layout-spacing-lg);background-color:var(--color-bg-footer);border-top:1px solid var(--color-border-light);font-size:.85rem}.footer-content{display:flex;align-items:center;justify-content:space-between;width:100%}.footer-left,.footer-right{display:flex;align-items:center;gap:var(--layout-spacing-sm)}.footer-text{color:var(--color-text-secondary)}.footer-link{color:var(--color-text-secondary);text-decoration:none;transition:color .2s}.footer-link:hover{color:var(--color-primary)}.footer-separator{color:var(--color-text-muted)}.mobile-overlay{display:none;position:fixed;inset:0;background-color:#00000080;z-index:90;opacity:0;transition:opacity var(--transition-speed)}.mobile-menu-open .mobile-overlay{display:block;opacity:1}@media(max-width:1024px){.layout-header{padding:0 var(--layout-spacing-md)}.layout-content{padding:var(--layout-spacing-lg)}.company-selector{display:none}.header-center{flex:0}}@media(max-width:768px){.main-layout{grid-template-areas:"header" "content" "footer";grid-template-rows:var(--header-height) 1fr var(--footer-height);grid-template-columns:1fr}.menu-toggle{display:none}.mobile-menu-toggle{display:flex!important}.logo h1{font-size:1.25rem}.user-name,.dropdown-arrow{display:none}.layout-sidebar{position:fixed;top:var(--header-height);left:0;bottom:0;width:var(--sidebar-width);z-index:95;transform:translate(-100%);transition:transform var(--transition-speed) var(--transition-timing)}.mobile-menu-open .layout-sidebar{transform:translate(0)}.footer-content{flex-direction:column;gap:var(--layout-spacing-sm);text-align:center}.footer-right{flex-wrap:wrap;justify-content:center}.layout-content{padding:var(--layout-spacing-md)}}@media(max-width:480px){:root{--header-height: 56px;--footer-height: auto}.layout-header{padding:0 var(--layout-spacing-sm)}.header-left,.header-right{gap:var(--layout-spacing-sm)}.layout-content{padding:var(--layout-spacing-sm)}.footer-text,.footer-link{font-size:.75rem}}.layout-sidebar::-webkit-scrollbar{width:6px}.layout-sidebar::-webkit-scrollbar-track{background:#ffffff0d}.layout-sidebar::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.layout-sidebar::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.layout-content::-webkit-scrollbar{width:8px}.layout-content::-webkit-scrollbar-track{background:var(--color-bg-secondary)}.layout-content::-webkit-scrollbar-thumb{background:var(--color-border-light);border-radius:4px}.layout-content::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}@keyframes slideInFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.layout-sidebar{animation:slideInFromLeft .3s ease-out}.layout-content{animation:fadeIn .3s ease-out}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}button:focus-visible,a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.dashboard{width:100%}.dashboard-header{margin-bottom:2rem}.dashboard-header h1{margin:0 0 .5rem;font-size:2rem;font-weight:700;color:var(--color-text-primary, #0f172a)}.dashboard-subtitle{margin:0;font-size:1rem;color:var(--color-text-secondary, #64748b)}.dashboard-card{background:var(--color-bg-primary, white);border:1px solid var(--color-border-light, #e2e8f0);border-radius:8px;box-shadow:var(--shadow-small, 0 1px 3px rgba(0, 0, 0, .1));overflow:hidden}.dashboard-card-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-border-light, #e2e8f0)}.dashboard-card-header .card-title{margin:0;padding:0;font-size:1.25rem;font-weight:600;color:var(--color-text-primary, #0f172a);border-bottom:none}.dashboard-year-selector{display:flex;align-items:center;gap:.5rem}.dashboard-year-selector label{font-size:.875rem;font-weight:500;color:var(--color-text-secondary, #64748b)}.dashboard-year-selector select{padding:.5rem 1rem;border:1px solid var(--color-border-light, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--color-bg-primary, white);color:var(--color-text-primary, #0f172a);cursor:pointer}.dashboard-year-selector select:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.dashboard-chart-container{padding:1.5rem}.dashboard-chart-tooltip{background:var(--color-bg-primary, white);border:1px solid var(--color-border-light, #e2e8f0);border-radius:8px;padding:.75rem 1rem;box-shadow:var(--shadow-medium, 0 4px 12px rgba(0, 0, 0, .1));font-size:.875rem;color:var(--color-text-primary, #0f172a)}.dashboard-chart-tooltip p{margin:.25rem 0}.dashboard-chart-tooltip-label{font-weight:600;margin-bottom:.25rem;color:var(--color-text-primary, #0f172a)}.dashboard-error{margin:1rem 1.5rem;padding:.75rem;background:#e74c3c1a;color:var(--color-error, #991b1b);border-radius:6px;font-size:.875rem}.dashboard-loading{padding:3rem;text-align:center;color:var(--color-text-secondary, #64748b);font-size:.875rem}.dashboard-no-data{padding:3rem;text-align:center;color:var(--color-text-secondary, #94a3b8);font-size:.9375rem}.dashboard-breakdown-card{margin-top:1.5rem}.dashboard-breakdown-selectors{display:flex;gap:.5rem}.dashboard-breakdown-selectors select{padding:.5rem 1rem;border:1px solid var(--color-border-light, #e2e8f0);border-radius:6px;font-size:.875rem;background:var(--color-bg-primary, white);color:var(--color-text-primary, #0f172a);cursor:pointer}.dashboard-breakdown-selectors select:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.dashboard-breakdown-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1.5rem}.dashboard-breakdown-section{text-align:center}.dashboard-breakdown-section-header{display:flex;align-items:center;justify-content:center;gap:var(--spacing-md);margin-bottom:.75rem}.dashboard-breakdown-subtitle{margin:0;font-size:1rem;font-weight:600;color:var(--color-text-primary, #0f172a)}.dashboard-breakdown-groupby{padding:4px 8px;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-xs);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.dashboard-breakdown-groupby:focus{outline:none;border-color:var(--color-primary)}.dashboard-breakdown-legend{margin-top:.75rem;text-align:left}.dashboard-breakdown-legend-item{display:flex;align-items:center;gap:.5rem;padding:.25rem 0;font-size:.8125rem}.dashboard-breakdown-legend-color{display:inline-block;width:12px;height:12px;border-radius:2px;flex-shrink:0}.dashboard-breakdown-legend-label{flex:1;color:var(--color-text-secondary, #475569)}.dashboard-breakdown-legend-amount{font-weight:600;color:var(--color-text-primary, #0f172a)}.dashboard-projection-card{margin-top:1.5rem}.dashboard-projection-details{padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--color-border-light, #e2e8f0)}.dashboard-projection-based-on{margin:0 0 .5rem;font-size:.875rem;font-weight:600;color:var(--color-text-secondary, #475569)}.dashboard-projection-list{margin:0 0 .75rem;padding-left:1.25rem;list-style:disc}.dashboard-projection-list li{font-size:.8125rem;color:var(--color-text-secondary, #64748b);margin-bottom:.25rem}.dashboard-projection-note{margin:0;font-size:.75rem;color:var(--color-text-secondary, #94a3b8);font-style:italic}.dashboard-schedule-breakdown{padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--color-border-light, #e2e8f0)}.dashboard-schedule-breakdown-title{margin:0 0 1rem;font-size:1rem;font-weight:600;color:var(--color-text-primary, #0f172a)}.dashboard-schedule-breakdown-scroll{overflow-x:auto}.dashboard-schedule-breakdown-table{width:100%;border-collapse:collapse;font-size:.8125rem;color:var(--color-text-primary, #0f172a)}.dashboard-schedule-breakdown-table th,.dashboard-schedule-breakdown-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border-light, #e2e8f0)}.dashboard-schedule-breakdown-table thead th{background:var(--color-bg-secondary, #f8fafc);font-weight:600;color:var(--color-text-secondary, #475569);text-transform:uppercase;font-size:.6875rem;letter-spacing:.5px;white-space:nowrap}.dashboard-schedule-breakdown-customer{text-align:left;position:sticky;left:0;z-index:1;background:var(--color-bg-primary, #ffffff)}.dashboard-schedule-breakdown-table thead th.dashboard-schedule-breakdown-customer{background:var(--color-bg-secondary, #f8fafc);z-index:2}.dashboard-schedule-breakdown-amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.dashboard-schedule-breakdown-total-col{font-weight:600;background:var(--color-bg-secondary, #f8fafc)}.dashboard-schedule-breakdown-footer td{font-weight:600;border-top:2px solid var(--color-border-medium, #cbd5e1);background:var(--color-bg-secondary, #f8fafc);color:var(--color-text-primary, #0f172a)}.dashboard-schedule-breakdown-footer td.dashboard-schedule-breakdown-customer{background:var(--color-bg-secondary, #f8fafc)}.dashboard-schedule-breakdown-table tbody tr:hover,.dashboard-schedule-breakdown-table tbody tr:hover td.dashboard-schedule-breakdown-customer{background:var(--color-bg-hover, #f1f5f9)}.dashboard-simulation-section{padding:1rem 1.5rem 1.5rem;border-top:1px solid var(--color-border-light, #e2e8f0)}.dashboard-simulation-block{margin-bottom:1.5rem}.dashboard-simulation-block:last-child{margin-bottom:0}.dashboard-simulation-title{margin:0 0 .75rem;font-size:.9375rem;font-weight:600;color:var(--color-text-primary, #0f172a)}.dashboard-simulation-table{width:100%;border-collapse:collapse;font-size:.8125rem;color:var(--color-text-primary, #0f172a)}.dashboard-simulation-table th,.dashboard-simulation-table td{padding:.5rem .75rem;border-bottom:1px solid var(--color-border-light, #e2e8f0);text-align:left}.dashboard-simulation-table thead th{background:var(--color-bg-secondary, #f8fafc);font-weight:600;color:var(--color-text-secondary, #475569);text-transform:uppercase;font-size:.6875rem;letter-spacing:.5px;white-space:nowrap}.dashboard-simulation-table tbody tr:hover{background:var(--color-bg-hover, #f1f5f9)}.dashboard-simulation-amount{text-align:right!important;white-space:nowrap;font-variant-numeric:tabular-nums}.dashboard-simulation-center{text-align:center!important}.dashboard-simulation-toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer}.dashboard-simulation-toggle input{opacity:0;width:0;height:0}.dashboard-simulation-toggle-slider{position:absolute;inset:0;background-color:var(--color-border, #ccc);border-radius:20px;transition:background-color .2s}.dashboard-simulation-toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .2s}.dashboard-simulation-toggle input:checked+.dashboard-simulation-toggle-slider{background-color:var(--color-primary, #3b82f6)}.dashboard-simulation-toggle input:checked+.dashboard-simulation-toggle-slider:before{transform:translate(16px)}.dashboard-simulation-card{margin-top:1.5rem}.dashboard-simulation-action-btn{padding:.25rem .75rem;border:1px solid var(--color-primary, #3b82f6);background:transparent;color:var(--color-primary, #3b82f6);border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;transition:background-color .15s,color .15s;white-space:nowrap}.dashboard-simulation-action-btn:hover{background:var(--color-primary, #3b82f6);color:#fff}.dashboard-simulation-date-input{padding:.25rem .5rem;border:1px solid var(--color-border-light, #e2e8f0);border-radius:4px;font-size:.8125rem;color:var(--color-text-primary, #0f172a);background:var(--color-bg-primary, white)}.dashboard-simulation-date-input.empty{color:transparent}.dashboard-simulation-date-input.empty::-webkit-calendar-picker-indicator{opacity:.4}.dashboard-simulation-date-input.empty:focus,.dashboard-simulation-date-input.empty:active{color:var(--color-text-primary, #0f172a)}.dashboard-simulation-date-input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 2px #3b82f61a}.dashboard-revenue-summary{display:flex;gap:2rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-border-light, #e2e8f0)}.dashboard-revenue-summary-item{display:flex;align-items:center;gap:.5rem}.dashboard-revenue-summary-label{font-size:.875rem;color:var(--color-text-secondary, #64748b)}.dashboard-revenue-summary-value{font-size:.875rem;font-weight:600;color:var(--color-text-primary, #0f172a);font-variant-numeric:tabular-nums}.dashboard-revenue-legend-dot{display:inline-block;width:10px;height:10px;border-radius:2px;flex-shrink:0}@media(max-width:768px){.dashboard-header h1{font-size:1.5rem}.dashboard-card-header{flex-direction:column;gap:1rem;align-items:flex-start}.dashboard-chart-container{padding:1rem .5rem}.dashboard-breakdown-grid{grid-template-columns:1fr}}.dashboard-recurring-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.dashboard-recurring-badge.active{background:#22c55e26;color:#16a34a}.dashboard-recurring-badge.stale{background:#ef444426;color:#dc2626}.dashboard-recurring-capped{display:block;margin-top:2px;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.dashboard-oneoff-income{color:#16a34a}.dashboard-oneoff-expense{color:#dc2626}.dashboard-oneoff-empty{text-align:center;color:var(--color-text-secondary);font-style:italic;padding:var(--spacing-md)!important}.dashboard-oneoff-form{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);margin-top:var(--spacing-md);align-items:center}.dashboard-oneoff-input{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);color:var(--color-text-primary, #333)}.dashboard-oneoff-input-amount{width:120px}.dashboard-vat-note{margin-top:var(--spacing-sm);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.dashboard-chart-tooltip-total{margin-top:4px;padding-top:4px;border-top:1px solid var(--color-border-light, #ddd);font-weight:var(--font-weight-semibold)}.dashboard-contributor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:var(--spacing-lg)}.dashboard-contributor-grid-item{border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md);padding:var(--spacing-md);background:var(--color-bg-primary)}.dashboard-contributor-grid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.dashboard-contributor-grid-name{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-primary)}.dashboard-contributor-grid-totals{display:flex;flex-wrap:wrap;gap:var(--spacing-xs) var(--spacing-md);margin-bottom:var(--spacing-sm)}.dashboard-contributor-grid-total{display:flex;align-items:center;gap:.35rem}.dashboard-contributor-grid-total-label{font-size:var(--font-size-xs);color:var(--color-text-secondary, #64748b)}.dashboard-contributor-grid-total-value{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);font-variant-numeric:tabular-nums}.dashboard-contributor-balance-positive{color:#16a34a}.dashboard-contributor-balance-negative{color:#dc2626}@media(max-width:480px){.dashboard-contributor-grid{grid-template-columns:1fr}}.sortable-header{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.sortable-header:hover{color:var(--color-text-primary)}.sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.customer-list{padding:var(--spacing-xl)}.customer-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.customer-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.customer-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.customer-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.customer-list-search{flex:1;max-width:400px}.customer-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.customer-list-search-input:focus{outline:none;border-color:var(--color-primary)}.customer-list-search-input::placeholder{color:var(--color-text-secondary)}.customer-list-filter{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.customer-list-filter input[type=checkbox]{accent-color:var(--color-primary)}.customer-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.customer-list-loading,.customer-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.customer-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.customer-list-table{width:100%;border-collapse:collapse}.customer-list-table thead{background:var(--color-bg-secondary)}.customer-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.customer-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.customer-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.customer-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.customer-list-cell-name{font-weight:var(--font-weight-medium)}.customer-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.customer-list-status-active{background:#27ae601a;color:var(--color-success)}.customer-list-status-archived{background:#95a5a626;color:var(--color-text-secondary)}.customer-list-status-internal{background:#3498db1a;color:var(--color-primary);margin-left:4px}.customer-list-action-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.customer-list-action-btn:hover{background:var(--color-bg-secondary)}.customer-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.customer-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.customer-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.customer-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.customer-list-modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}@media(max-width:1024px){.customer-list-table th:nth-child(4),.customer-list-table td:nth-child(4),.customer-list-table th:nth-child(5),.customer-list-table td:nth-child(5){display:none}}@media(max-width:768px){.customer-list{padding:var(--spacing-md)}.customer-list-header{flex-direction:column;gap:var(--spacing-md)}.customer-list-toolbar{flex-direction:column;align-items:stretch}.customer-list-search{max-width:none}.customer-list-table th:nth-child(3),.customer-list-table td:nth-child(3),.customer-list-table th:nth-child(6),.customer-list-table td:nth-child(6){display:none}.customer-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}@media(max-width:480px){.customer-list-table th:nth-child(2),.customer-list-table td:nth-child(2){display:none}}.select-wrapper{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.select-label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center}.select-required{color:var(--color-error);margin-left:var(--spacing-xs)}.select-field{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-normal);outline:none;box-sizing:border-box;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 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-lg) center;padding-right:calc(var(--spacing-lg) * 2 + 12px)}.select-field:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.select-field:hover:not(:disabled){border-color:var(--color-border-medium)}.select-field.select-error{border-color:var(--color-error)}.select-field.select-error:focus{border-color:var(--color-error);box-shadow:var(--shadow-error)}.select-field.select-disabled{background-color:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed}.select-error-message{font-size:var(--font-size-xs);color:var(--color-error);display:flex;align-items:center;gap:var(--spacing-xs)}.select-error-message:before{content:"⚠";font-size:var(--font-size-md)}.token-input-container{display:flex;flex-wrap:wrap;align-items:center;gap:var(--spacing-xs);width:100%;min-height:42px;padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);cursor:text;transition:all var(--transition-normal);box-sizing:border-box}.token-input-container:focus-within{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.token-input-container.input-error{border-color:var(--color-error)}.token-input-chip{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:2px var(--spacing-sm) 2px var(--spacing-md);background:var(--color-primary-light, rgba(52, 152, 219, .1));border:1px solid var(--color-primary);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-sm);color:var(--color-primary);line-height:1.4}.token-input-chip-text{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.token-input-chip-remove{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;border:none;border-radius:50%;background:transparent;color:var(--color-primary);font-size:14px;line-height:1;cursor:pointer;transition:all var(--transition-fast)}.token-input-chip-remove:hover{background:var(--color-primary);color:#fff}.token-input-field{flex:1;min-width:120px;border:none;outline:none;padding:var(--spacing-xs) 0;font-size:var(--font-size-md);background:transparent;color:var(--color-text-primary)}.token-input-field::placeholder{color:var(--color-text-disabled)}.contract-list{padding:var(--spacing-xl)}.contract-list-embedded{padding:0}.contract-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.contract-list-back{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font-size:var(--font-size-md);margin-bottom:var(--spacing-sm);display:inline-flex;align-items:center;gap:var(--spacing-xs)}.contract-list-back:before{content:"←"}.contract-list-back:hover{text-decoration:underline}.contract-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.contract-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.contract-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.contract-list-search{flex:1;max-width:400px}.contract-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.contract-list-search-input:focus{outline:none;border-color:var(--color-primary)}.contract-list-search-input::placeholder{color:var(--color-text-secondary)}.contract-list-filter{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.contract-list-filter input[type=checkbox]{accent-color:var(--color-primary)}.contract-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.contract-list-loading,.contract-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.contract-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.contract-list-table{width:100%;border-collapse:collapse}.contract-list-table thead{background:var(--color-bg-secondary)}.contract-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.contract-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.contract-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.contract-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.contract-list-cell-price{font-weight:var(--font-weight-medium);white-space:nowrap}.contract-list-cell-label{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contract-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.contract-list-status-prospect{background:#3498db1a;color:#2980b9}.contract-list-status-signed{background:#f39c121a;color:#e67e22}.contract-list-status-active{background:#27ae601a;color:var(--color-success)}.contract-list-status-completed{background:#95a5a61a;color:#7f8c8d}.contract-list-status-archived{background:#636e7226;color:#636e72}.contract-list-actions{display:flex;gap:var(--spacing-xs)}.contract-list-action-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.contract-list-action-btn:hover{background:var(--color-bg-secondary)}.contract-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.contract-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contract-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.contract-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contract-list-modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}@media(max-width:1024px){.contract-list-table th:nth-child(5),.contract-list-table td:nth-child(5){display:none}}@media(max-width:768px){.contract-list{padding:var(--spacing-md)}.contract-list-header{flex-direction:column;gap:var(--spacing-md)}.contract-list-toolbar{flex-direction:column;align-items:stretch}.contract-list-search{max-width:none}.contract-list-table th:nth-child(4),.contract-list-table td:nth-child(4){display:none}.contract-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.customer-form{padding:var(--spacing-xl)}.customer-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.customer-form-header{margin-bottom:var(--spacing-xl)}.customer-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--spacing-sm) 0 0 0}.customer-form-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl)}.customer-form-tab{padding:var(--spacing-md) var(--spacing-xl);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.customer-form-tab:hover{color:var(--color-primary)}.customer-form-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.customer-form-subtabs{display:flex;gap:0;border-bottom:1px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-lg)}.customer-form-subtab{padding:var(--spacing-sm) var(--spacing-lg);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.customer-form-subtab:hover{color:var(--color-primary)}.customer-form-subtab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.customer-form-placeholder{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.customer-form-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.customer-form-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.customer-form-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.customer-form-two-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}.customer-form-section{background:var(--color-bg-primary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.customer-form-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border, #f0f0f0)}.customer-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.customer-form-logo-area{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.customer-form-logo-preview{width:80px;height:80px;border-radius:var(--radius-lg);border:2px dashed var(--color-border, #ddd);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-bg-secondary)}.customer-form-logo-preview img{width:100%;height:100%;object-fit:cover}.customer-form-logo-placeholder{font-size:32px}.customer-form-logo-upload{cursor:pointer}.customer-form-logo-btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);border:1px solid var(--color-primary);border-radius:var(--radius-md);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.customer-form-logo-btn:hover{background:var(--color-primary-light, rgba(52, 152, 219, .1))}.customer-form-checkbox-row{margin-top:var(--spacing-md)}.customer-form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-md);color:var(--color-text-primary);cursor:pointer}.customer-form-checkbox input[type=checkbox]{accent-color:var(--color-primary);width:18px;height:18px}.customer-form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border, #e0e0e0)}@media(max-width:768px){.customer-form{padding:var(--spacing-md)}.customer-form-row,.customer-form-two-columns{grid-template-columns:1fr}.customer-form-section{padding:var(--spacing-md)}.customer-form-actions{flex-direction:column-reverse}}.customer-form-field{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%;margin-bottom:var(--spacing-md)}.customer-form-label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.customer-form-select{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-normal);outline:none;box-sizing:border-box}.customer-form-select:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.customer-form-select:hover{border-color:var(--color-border-medium)}.customer-form-section-title{display:flex;justify-content:space-between;align-items:center}.customer-payment-year-selector{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.customer-payment-year-selector select{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.customer-payment-year-selector select option.year-has-data{background-color:#3498db1f}.customer-payment-total{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.customer-payment-total-value{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.customer-form-inline-table .col-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.customer-form-inline-table .col-actions{white-space:nowrap;text-align:center}.customer-quote-btn-duplicate{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);vertical-align:middle}.customer-quote-btn-duplicate:hover{background:var(--color-primary);color:#fff}.cpf-invoice-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.cpf-invoice-status-draft{background:#95a5a626;color:var(--color-text-secondary)}.cpf-invoice-status-validated{background:#3498db1a;color:#2980b9}.cpf-invoice-status-sent{background:#f39c121a;color:#e67e22}.cpf-invoice-status-paid{background:#27ae601a;color:var(--color-success, #27ae60)}.cpf-invoice-status-cancelled{background:#e74c3c1a;color:var(--color-error)}.cpf-quote-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.cpf-quote-status-draft{background:#95a5a626;color:var(--color-text-secondary)}.cpf-quote-status-sent{background:#f39c121a;color:#e67e22}.cpf-quote-status-accepted{background:#27ae601a;color:var(--color-success, #27ae60)}.cpf-quote-status-refused{background:#e74c3c1a;color:var(--color-error)}.cpf-quote-status-cancelled{background:#95a5a64d;color:var(--color-text-secondary)}.cpf-quote-status-invoiced{background:#3498db1a;color:#2980b9}.cpf-payment-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.cpf-payment-status-draft{background:#f3f4f6;color:#6b7280}.cpf-payment-status-partial{background:#fff7ed;color:#ea580c}.cpf-payment-status-validated{background:#f0fdf4;color:#16a34a}.customer-form-inline-table{overflow-x:auto}.customer-form-inline-table table{width:100%;border-collapse:collapse}.customer-form-inline-table th,.customer-form-inline-table td{padding:var(--spacing-xs) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border, #e0e0e0);font-size:var(--font-size-sm);vertical-align:middle}.customer-form-inline-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-secondary, #f8f9fa)}.customer-form-empty{text-align:center;color:var(--color-text-secondary);font-style:italic;padding:var(--spacing-xl)!important}.customer-site-badge-default{display:inline-block;padding:2px 8px;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold)}.customer-site-btn-default{background:none;border:1px solid var(--color-primary);color:var(--color-primary);padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.customer-site-btn-default:hover{background:var(--color-primary);color:#fff}.customer-site-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.customer-site-btn-action{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);color:var(--color-text-secondary);display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast);line-height:1}.customer-site-btn-action:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.customer-site-btn-action-delete:hover{background:#e74c3c1a;color:var(--color-error)}.customer-site-form-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.customer-site-form-modal{background:var(--color-bg-primary);border-radius:var(--radius-lg);width:90%;max-width:1000px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-large)}.customer-site-form-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg) var(--spacing-xl);border-bottom:1px solid var(--color-border, #e0e0e0)}.customer-site-form-header h3{margin:0;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.customer-site-form-close{background:none;border:none;font-size:24px;cursor:pointer;color:var(--color-text-secondary);padding:0 var(--spacing-sm)}.customer-site-form-close:hover{color:var(--color-text-primary)}.customer-site-form-body{padding:var(--spacing-xl);display:flex;flex-direction:column;gap:var(--spacing-lg)}.customer-site-form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;padding:var(--spacing-lg) var(--spacing-xl);border-top:1px solid var(--color-border, #e0e0e0)}.customer-form-clickable-row{cursor:pointer;transition:background-color var(--transition-fast)}.customer-form-clickable-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.customer-merge-section{margin-top:var(--spacing-xl);padding:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-secondary)}.customer-merge-row{display:flex;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-md)}.customer-merge-select{flex:1;max-width:400px}.customer-managers-tab{padding:var(--spacing-md) 0}.customer-managers-layout{display:flex;gap:var(--spacing-xl)}.customer-managers-panel{flex:1;min-width:0}.customer-managers-panel-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.customer-managers-search{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);background:var(--color-bg-primary);color:var(--color-text-primary)}.customer-managers-search:focus{outline:none;border-color:var(--color-primary)}.customer-managers-list{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);max-height:500px;overflow-y:auto}.customer-managers-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.customer-managers-group{border-bottom:1px solid var(--color-border, #e0e0e0)}.customer-managers-group:last-child{border-bottom:none}.customer-managers-group-title{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f5f5f5);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px}.customer-managers-user-row{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #f0f0f0)}.customer-managers-user-row:last-child{border-bottom:none}.customer-managers-user-name{font-weight:var(--font-weight-medium);color:var(--color-text-primary);white-space:nowrap}.customer-managers-user-email{flex:1;color:var(--color-text-secondary);font-size:var(--font-size-xs);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.customer-managers-layout{flex-direction:column}}.textarea-wrapper{display:flex;flex-direction:column;gap:var(--spacing-sm);width:100%}.textarea-label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-primary);display:flex;align-items:center}.textarea-required{color:var(--color-error);margin-left:var(--spacing-xs)}.textarea-field{width:100%;padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);font-family:inherit;border:1px solid var(--color-border-light);border-radius:var(--radius-md);background-color:var(--color-bg-primary);color:var(--color-text-primary);transition:all var(--transition-normal);outline:none;box-sizing:border-box;resize:vertical}.textarea-field:focus{border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.textarea-field:hover:not(:disabled){border-color:var(--color-border-medium)}.textarea-field::placeholder{color:var(--color-text-disabled)}.textarea-field.textarea-error{border-color:var(--color-error)}.textarea-field.textarea-error:focus{border-color:var(--color-error);box-shadow:var(--shadow-error)}.textarea-field.textarea-disabled{background-color:var(--color-bg-disabled);color:var(--color-text-disabled);cursor:not-allowed;resize:none}.textarea-error-message{font-size:var(--font-size-xs);color:var(--color-error);display:flex;align-items:center;gap:var(--spacing-xs)}.textarea-error-message:before{content:"⚠";font-size:var(--font-size-md)}.contract-form{padding:var(--spacing-xl)}.contract-form-header{margin-bottom:var(--spacing-xl)}.contract-form-back{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font-size:var(--font-size-md);margin-bottom:var(--spacing-sm);display:inline-flex;align-items:center;gap:var(--spacing-xs)}.contract-form-back:before{content:"←"}.contract-form-back:hover{text-decoration:underline}.contract-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.contract-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.contract-form-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.contract-form-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.contract-form-content{background:var(--color-bg-primary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.contract-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.contract-form-col{display:flex;flex-direction:column;gap:var(--spacing-md)}.contract-form-checkboxes{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.contract-form-checkbox{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-primary);cursor:pointer;white-space:nowrap}.contract-form-checkbox input[type=checkbox]{accent-color:var(--color-primary)}.contract-form-textareas{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);margin-bottom:var(--spacing-xl)}.contract-form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end}.contract-subtabs{margin-top:var(--spacing-xl)}.contract-subtabs-nav{display:flex;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-lg)}.contract-subtab{padding:var(--spacing-md) var(--spacing-xl);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.contract-subtab:hover{color:var(--color-text-primary)}.contract-subtab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.contract-subtab-content{min-height:200px}.contract-dual-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}.contract-panel h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.contract-panel-list{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);min-height:150px;max-height:400px;overflow-y:auto}.contract-panel-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border, #f0f0f0);font-size:var(--font-size-md)}.contract-panel-item:last-child{border-bottom:none}.contract-panel-item.assigned{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.contract-panel-item.assigned{flex-direction:row}.contract-panel-item-info{flex:1}.contract-panel-item-name{font-weight:var(--font-weight-medium);display:block;margin-bottom:var(--spacing-xs)}.contract-panel-item-fields{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);align-items:center;font-size:var(--font-size-sm)}.contract-panel-date{padding:2px var(--spacing-xs);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-primary);background:var(--color-bg-primary)}.contract-panel-checkbox{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);cursor:pointer}.contract-panel-checkbox input[type=checkbox]{accent-color:var(--color-primary)}.contract-panel-hours{display:flex;flex-direction:column;gap:2px}.contract-panel-hours-label{font-size:var(--font-size-xs);color:var(--color-text-secondary, var(--color-text-primary))}.contract-panel-hours-grid{display:flex;gap:4px}.contract-panel-hours-day{display:flex;flex-direction:column;align-items:center;gap:2px}.contract-panel-hours-dow{font-size:var(--font-size-xs);color:var(--color-text-primary)}.contract-panel-hours-input{width:34px;padding:2px var(--spacing-xs);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-text-primary);background:var(--color-bg-primary);text-align:center}.contract-panel-rate{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs)}.contract-panel-rate-input{width:80px;padding:2px var(--spacing-xs);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:var(--font-size-xs);text-align:right;background:var(--color-bg-primary);color:var(--color-text-primary)}.contract-panel-rate-input:focus{outline:none;border-color:var(--color-primary)}.contract-panel-btn{background:var(--color-primary);color:#fff;border:none;width:28px;height:28px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color var(--transition-fast)}.contract-panel-btn:hover{background:var(--color-primary-dark, #2563eb)}.contract-panel-btn.remove{background:var(--color-error, #e74c3c)}.contract-panel-btn.remove:hover{background:#c0392b}.contract-panel-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.contract-schedules-header{margin-bottom:var(--spacing-md);display:flex;gap:var(--spacing-sm)}.contract-schedules-table{width:100%;border-collapse:collapse;border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md)}.contract-schedules-table thead{background:var(--color-bg-secondary)}.contract-schedules-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border, #e0e0e0)}.contract-schedules-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.contract-schedule-input{width:90px;padding:4px 6px;border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-sm, 4px);font-size:var(--font-size-sm);text-align:right}.contract-schedule-input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 2px #3b82f626}@media(max-width:768px){.contract-form{padding:var(--spacing-md)}.contract-form-grid,.contract-form-textareas{grid-template-columns:1fr}.contract-form-checkboxes{flex-direction:column}.contract-dual-panel{grid-template-columns:1fr}}.contract-form-site-select{margin-bottom:var(--spacing-lg);max-width:400px}.reset-password-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gradient-primary);padding:20px}.reset-password-card{background-color:var(--color-bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-large);padding:var(--spacing-3xl) 40px;width:100%;max-width:440px;animation:resetFadeIn var(--transition-slow)}@keyframes resetFadeIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.reset-password-header{text-align:center;margin-bottom:var(--spacing-2xl)}.reset-password-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}.reset-password-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.reset-password-form{display:flex;flex-direction:column;gap:20px}.reset-password-error-banner{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-error-light);border:1px solid var(--color-error-border);border-radius:var(--radius-md);color:var(--color-error-text);font-size:var(--font-size-md);text-align:center;animation:resetSlideDown var(--transition-normal)}@keyframes resetSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.reset-password-actions{margin-top:var(--spacing-sm)}.reset-password-success{display:flex;flex-direction:column;gap:var(--spacing-lg)}.reset-password-success-banner{padding:var(--spacing-md) var(--spacing-lg);background-color:var(--color-success-light);border:1px solid var(--color-success-border);border-radius:var(--radius-md);color:var(--color-success-text);font-size:var(--font-size-md);text-align:center}.reset-password-footer{text-align:center;padding-top:var(--spacing-sm)}.reset-password-link{color:var(--color-primary);text-decoration:none;font-size:var(--font-size-md);transition:color var(--transition-normal)}.reset-password-link:hover{color:var(--color-primary-hover);text-decoration:underline}@media(max-width:480px){.reset-password-card{padding:var(--spacing-2xl) var(--spacing-xl)}.reset-password-title{font-size:var(--font-size-2xl)}}.contributor-list{padding:var(--spacing-xl)}.contributor-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.contributor-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.contributor-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.contributor-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.contributor-list-search{flex:1;max-width:400px}.contributor-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.contributor-list-type-filter{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.contributor-list-type-filter:focus{outline:none;border-color:var(--color-primary)}.contributor-list-search-input:focus{outline:none;border-color:var(--color-primary)}.contributor-list-search-input::placeholder{color:var(--color-text-secondary)}.contributor-list-filter{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.contributor-list-filter input[type=checkbox]{accent-color:var(--color-primary)}.contributor-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.contributor-list-loading,.contributor-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.contributor-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.contributor-list-table{width:100%;border-collapse:collapse}.contributor-list-table thead{background:var(--color-bg-secondary)}.contributor-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.contributor-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.contributor-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.contributor-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.contributor-list-cell-name{font-weight:var(--font-weight-medium)}.contributor-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.contributor-list-status-active{background:#27ae601a;color:var(--color-success)}.contributor-list-status-archived{background:#95a5a626;color:var(--color-text-secondary)}.contributor-list-action-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.contributor-list-action-btn:hover{background:var(--color-bg-secondary)}.contributor-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.contributor-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contributor-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.contributor-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.contributor-list-modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}@media(max-width:1024px){.contributor-list-table th:nth-child(4),.contributor-list-table td:nth-child(4),.contributor-list-table th:nth-child(5),.contributor-list-table td:nth-child(5){display:none}}@media(max-width:768px){.contributor-list{padding:var(--spacing-md)}.contributor-list-header{flex-direction:column;gap:var(--spacing-md)}.contributor-list-toolbar{flex-direction:column;align-items:stretch}.contributor-list-search{max-width:none}.contributor-list-table th:nth-child(3),.contributor-list-table td:nth-child(3),.contributor-list-table th:nth-child(6),.contributor-list-table td:nth-child(6){display:none}.contributor-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}@media(max-width:480px){.contributor-list-table th:nth-child(2),.contributor-list-table td:nth-child(2){display:none}}.subcontractor-list{padding:var(--spacing-xl)}.subcontractor-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.subcontractor-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.subcontractor-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.subcontractor-list-search{flex:1;max-width:400px}.subcontractor-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.subcontractor-list-search-input:focus{outline:none;border-color:var(--color-primary)}.subcontractor-list-search-input::placeholder{color:var(--color-text-secondary)}.subcontractor-list-filter{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.subcontractor-list-filter input[type=checkbox]{accent-color:var(--color-primary)}.subcontractor-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.subcontractor-list-loading,.subcontractor-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.subcontractor-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.subcontractor-list-table{width:100%;border-collapse:collapse}.subcontractor-list-table thead{background:var(--color-bg-secondary)}.subcontractor-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.subcontractor-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.subcontractor-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.subcontractor-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.subcontractor-list-cell-name{font-weight:var(--font-weight-medium)}.subcontractor-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.subcontractor-list-status-active{background:#27ae601a;color:var(--color-success)}.subcontractor-list-status-archived{background:#95a5a626;color:var(--color-text-secondary)}.subcontractor-list-action-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.subcontractor-list-action-btn:hover{background:var(--color-bg-secondary)}.subcontractor-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.subcontractor-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.subcontractor-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.subcontractor-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.subcontractor-list-modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}@media(max-width:1024px){.subcontractor-list-table th:nth-child(4),.subcontractor-list-table td:nth-child(4),.subcontractor-list-table th:nth-child(5),.subcontractor-list-table td:nth-child(5){display:none}}@media(max-width:768px){.subcontractor-list{padding:var(--spacing-md)}.subcontractor-list-header{flex-direction:column;gap:var(--spacing-md)}.subcontractor-list-toolbar{flex-direction:column;align-items:stretch}.subcontractor-list-search{max-width:none}.subcontractor-list-table th:nth-child(6),.subcontractor-list-table td:nth-child(6){display:none}.subcontractor-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}@media(max-width:480px){.subcontractor-list-table th:nth-child(2),.subcontractor-list-table td:nth-child(2),.subcontractor-list-table th:nth-child(3),.subcontractor-list-table td:nth-child(3){display:none}}.employee-list{padding:var(--spacing-xl)}.employee-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.employee-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.employee-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.employee-list-search{flex:1;max-width:400px}.employee-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.employee-list-search-input:focus{outline:none;border-color:var(--color-primary)}.employee-list-search-input::placeholder{color:var(--color-text-secondary)}.employee-list-filter{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.employee-list-filter input[type=checkbox]{accent-color:var(--color-primary)}.employee-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.employee-list-loading,.employee-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.employee-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.employee-list-table{width:100%;border-collapse:collapse}.employee-list-table thead{background:var(--color-bg-secondary)}.employee-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.employee-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.employee-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.employee-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.employee-list-cell-matricule{font-family:var(--font-mono, monospace);font-size:var(--font-size-sm)}.employee-list-cell-name{font-weight:var(--font-weight-medium)}.employee-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.employee-list-status-active{background:#27ae601a;color:var(--color-success)}.employee-list-status-archived{background:#95a5a626;color:var(--color-text-secondary)}.employee-list-action-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.employee-list-action-btn:hover{background:var(--color-bg-secondary)}.employee-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.employee-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.employee-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.employee-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.employee-list-modal-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl)}@media(max-width:1024px){.employee-list-table th:nth-child(4),.employee-list-table td:nth-child(4),.employee-list-table th:nth-child(5),.employee-list-table td:nth-child(5){display:none}}@media(max-width:768px){.employee-list{padding:var(--spacing-md)}.employee-list-header{flex-direction:column;gap:var(--spacing-md)}.employee-list-toolbar{flex-direction:column;align-items:stretch}.employee-list-search{max-width:none}.employee-list-table th:nth-child(6),.employee-list-table td:nth-child(6){display:none}.employee-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}@media(max-width:480px){.employee-list-table th:nth-child(3),.employee-list-table td:nth-child(3){display:none}}.contributor-form{padding:var(--spacing-xl)}.contributor-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.contributor-form-header{margin-bottom:var(--spacing-xl)}.contributor-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--spacing-sm) 0 0 0}.contributor-form-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl)}.contributor-form-tab{padding:var(--spacing-md) var(--spacing-xl);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.contributor-form-tab:hover{color:var(--color-primary)}.contributor-form-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.contributor-form-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.contributor-form-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.contributor-form-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.contributor-form-section{background:var(--color-bg-primary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.contributor-form-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.contributor-form-section-header .contributor-form-section-title{margin-bottom:0}.contributor-form-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border, #f0f0f0)}.contributor-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.contributor-form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border, #e0e0e0)}.contributor-form-inline-table{width:100%;overflow-x:auto}.contributor-form-inline-table table{width:100%;border-collapse:collapse;font-size:var(--font-size-md)}.contributor-form-inline-table thead th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #e0e0e0);white-space:nowrap}.contributor-form-inline-table tbody td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border, #f0f0f0);color:var(--color-text-primary);vertical-align:middle}.contributor-form-inline-table tbody tr:hover,.contributor-form-inline-row{background:var(--color-bg-secondary, rgba(0, 0, 0, .02))}.contributor-form-inline-row td{padding:var(--spacing-md) var(--spacing-md)}.contributor-form-inline-actions{display:flex;gap:var(--spacing-xs);white-space:nowrap}.contributor-form-select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer;transition:border-color var(--transition-fast)}.contributor-form-select:focus{outline:none;border-color:var(--color-primary)}.contributor-form-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.contributor-form-input:focus{outline:none;border-color:var(--color-primary)}.contributor-form-na{color:var(--color-text-secondary)}.contributor-form-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--color-text-secondary);font-style:italic}.contributor-form-disabled-message{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-md);background:var(--color-bg-secondary, rgba(0, 0, 0, .02));border-radius:var(--radius-md)}.contributor-form-section-subtitle{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin:var(--spacing-md) 0 var(--spacing-sm) 0}.contributor-form-collective-agreement{font-size:var(--font-size-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);border:1px solid var(--color-border)}.contributor-form-collective-link{color:var(--color-primary);text-decoration:none;font-weight:var(--font-weight-medium)}.contributor-form-collective-link:hover{text-decoration:underline}.contributor-form-hours-row{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.contributor-payroll-year-selector{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.contributor-payroll-year-selector label{font-weight:600;color:var(--color-text-secondary)}.contributor-payroll-year-selector select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border, #ccc);border-radius:var(--radius-sm);font-size:var(--font-size-base);background:var(--color-bg-primary);color:var(--color-text-primary)}.contributor-payroll-year-selector select option{background:var(--color-bg-primary);color:var(--color-text-primary)}.contributor-payroll-balance{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.contributor-payroll-balance-item{text-align:center;padding:var(--spacing-lg);background:var(--color-bg-secondary, rgba(0, 0, 0, .02));border-radius:var(--radius-md)}.contributor-payroll-balance-label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.contributor-payroll-balance-value{display:block;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.contributor-payroll-balance-value.positive{color:var(--color-success, #27ae60)}.contributor-payroll-balance-value.negative{color:var(--color-error, #e74c3c)}.contributor-payslip-net-input{width:120px;padding:2px 6px;font-size:var(--font-size-sm);border:1px solid var(--color-primary);border-radius:var(--radius-sm);text-align:right}.payslip-counter-cell{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.counter-solde{font-weight:var(--font-weight-semibold)}.counter-detail{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.contributor-contract-billing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);padding:var(--spacing-sm) 0}.contributor-contract-billing-form-row{border-bottom:none!important}.contributor-contract-billing-form-row td{padding-top:0!important}.contributor-contract-billing-summary-row{border-bottom:1px solid var(--color-border, #f0f0f0)}.contributor-contract-billing-summary-row:hover{background:transparent!important}.contributor-contract-billing-summary-row td{padding-top:0!important;padding-bottom:var(--spacing-sm)!important;border-bottom:none!important}.contributor-contract-billing-summary{font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic;padding-left:var(--spacing-sm)}.contributor-contract-mandate-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);cursor:pointer;padding:var(--spacing-xs) 0}.contributor-contract-mandate-label input[type=checkbox]{width:16px;height:16px}.contributor-contract-mandate-hint{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.contributor-contract-mandate-badge{display:inline-block;margin-left:var(--spacing-xs);padding:1px 6px;border-radius:4px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);background:#fef3c7;color:#92400e;border:1px solid #f59e0b;vertical-align:middle}.contributor-contract-signature-row{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0}.contributor-contract-signature-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.contributor-contract-signature-upload{cursor:pointer}.contributor-cra-new-form{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.contributor-cra-new-form select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary)}@media(max-width:768px){.contributor-form{padding:var(--spacing-md)}.contributor-form-row{grid-template-columns:1fr}.contributor-form-section{padding:var(--spacing-md)}.contributor-form-actions{flex-direction:column-reverse}.contributor-form-section-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.contributor-form-inline-table{overflow-x:auto;-webkit-overflow-scrolling:touch}.contributor-form-inline-actions{flex-direction:column;gap:var(--spacing-xs)}.contributor-payroll-balance{grid-template-columns:1fr}}.contributor-table-total-row td{border-top:2px solid var(--color-border);background:var(--color-bg-secondary, #f9fafb)}.contributor-payslip-pdf-preview{margin-top:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:var(--color-bg-secondary, #f9fafb)}.contributor-payslip-pdf-loading{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.contributor-payslip-pdf-iframe{width:100%;height:80vh;border:none}.contributor-contract-departure-actions{display:flex;gap:var(--spacing-sm);align-items:flex-end}.contributor-contract-severance-preview{grid-column:1 / -1;display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md);background:var(--color-bg-secondary, #f8fafc);font-size:var(--font-size-sm)}.contributor-contract-severance-total{font-weight:var(--font-weight-semibold)}.contributor-contract-severance-warning{color:#d97706}.contributor-planning{padding:var(--spacing-lg)}.contributor-planning-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.contributor-planning-title{font-size:1.5rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.contributor-planning-nav{display:flex;align-items:center;gap:var(--spacing-sm)}.contributor-planning-nav-button{width:32px;height:32px;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:1.1rem;cursor:pointer;transition:background var(--transition-fast)}.contributor-planning-nav-button:hover{background:var(--color-bg-secondary, #f1f5f9)}.contributor-planning-nav-label{min-width:120px;text-align:center;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.contributor-planning-nav-today{padding:6px 12px;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-secondary, #64748b);font-size:var(--font-size-xs);cursor:pointer;transition:background var(--transition-fast)}.contributor-planning-nav-today:hover{background:var(--color-bg-secondary, #f1f5f9)}.contributor-planning-loading,.contributor-planning-empty{padding:var(--spacing-2xl);text-align:center;color:var(--color-text-secondary, #64748b)}.contributor-planning-error{padding:var(--spacing-md);border-radius:var(--radius-md);background:#dc262614;color:var(--color-error, #dc2626);margin-bottom:var(--spacing-md)}.contributor-planning-scroll{overflow-x:auto;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md);background:var(--color-bg-primary)}.contributor-planning-table{border-collapse:collapse;width:100%;font-size:var(--font-size-xs)}.contributor-planning-table th,.contributor-planning-table td{border:1px solid var(--color-border-light, #e2e8f0);text-align:center;padding:4px 2px}.contributor-planning-table thead th{background:var(--color-bg-secondary, #f8fafc);color:var(--color-text-secondary, #64748b);font-weight:var(--font-weight-medium);position:sticky;top:0}.contributor-planning-name-col{text-align:left!important;padding:6px 10px!important;white-space:nowrap;font-weight:var(--font-weight-medium);color:var(--color-text-primary);position:sticky;left:0;background:var(--color-bg-primary);z-index:1;min-width:160px}thead .contributor-planning-name-col{background:var(--color-bg-secondary, #f8fafc);z-index:2}.contributor-planning-day-col{min-width:30px}.contributor-planning-weekday{display:block;font-size:9px;color:var(--color-text-secondary, #94a3b8);text-transform:uppercase}.contributor-planning-cell{height:34px;min-width:30px;font-variant-numeric:tabular-nums;color:var(--color-text-primary)}.contributor-planning-off{background:var(--color-bg-secondary, #f1f5f9);color:var(--color-text-secondary, #cbd5e1)}.contributor-planning-today{outline:2px solid var(--color-primary, #3b82f6);outline-offset:-2px}.contributor-planning-total-col{font-weight:var(--font-weight-semibold);white-space:nowrap;padding:4px 8px!important;font-variant-numeric:tabular-nums}.contributor-planning-name-link{border:none;background:none;padding:0;font:inherit;font-weight:var(--font-weight-medium);color:var(--color-primary, #3b82f6);cursor:pointer}.contributor-planning-name-link:hover{text-decoration:underline}.contributor-planning-signed{margin-left:var(--spacing-xs);color:#16a34a;font-weight:var(--font-weight-semibold)}@media(max-width:480px){.contributor-planning{padding:var(--spacing-md)}}.accounting-docs{padding:var(--spacing-lg)}.accounting-docs-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-sm)}.accounting-docs-title{font-size:1.5rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.accounting-docs-actions{display:flex;align-items:center;gap:var(--spacing-sm)}.accounting-docs-fy-select{padding:8px 12px;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary)}.accounting-docs-note{color:var(--color-text-secondary, #64748b);font-size:var(--font-size-xs);margin:0 0 var(--spacing-md)}.accounting-docs-summary{padding:var(--spacing-md);border-radius:var(--radius-md);background:#22c55e14;color:#15803d;margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.accounting-docs-error{padding:var(--spacing-md);border-radius:var(--radius-md);background:#dc262614;color:var(--color-error, #dc2626);margin-bottom:var(--spacing-md)}.accounting-docs-tabs{display:flex;gap:var(--spacing-xs);border-bottom:2px solid var(--color-border-light, #e2e8f0);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.accounting-docs-tab{border:none;background:none;padding:10px 16px;font-size:var(--font-size-sm);color:var(--color-text-secondary, #64748b);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;display:flex;align-items:center;gap:6px}.accounting-docs-tab-active{color:var(--color-primary, #3b82f6);border-bottom-color:var(--color-primary, #3b82f6);font-weight:var(--font-weight-semibold)}.accounting-docs-badge{background:var(--color-error, #dc2626);color:#fff;border-radius:var(--radius-full);font-size:10px;padding:1px 7px;font-weight:var(--font-weight-semibold)}.accounting-docs-loading,.accounting-docs-empty{padding:var(--spacing-2xl);text-align:center;color:var(--color-text-secondary, #64748b)}.accounting-docs-bilan{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl);align-items:start}.accounting-docs-bilan-col h2{font-size:var(--font-size-lg);margin:0 0 var(--spacing-md);color:var(--color-text-primary)}.accounting-docs-section{margin-bottom:var(--spacing-lg)}.accounting-docs-section h3{font-size:var(--font-size-sm);color:var(--color-text-secondary, #64748b);margin:0 0 var(--spacing-xs);text-transform:uppercase;letter-spacing:.03em}.accounting-docs-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);background:var(--color-bg-primary)}.accounting-docs-table td,.accounting-docs-table th{padding:6px 10px;border-bottom:1px solid var(--color-border-light, #f1f5f9);text-align:left;color:var(--color-text-primary)}.accounting-docs-table thead th{color:var(--color-text-secondary, #64748b);font-weight:var(--font-weight-medium);background:var(--color-bg-secondary, #f8fafc)}.accounting-docs-code{font-variant-numeric:tabular-nums;color:var(--color-text-secondary, #64748b);white-space:nowrap;width:70px}.accounting-docs-amount{text-align:right!important;font-variant-numeric:tabular-nums;white-space:nowrap}.accounting-docs-amount.negative{color:#dc2626}.accounting-docs-total{margin-top:var(--spacing-sm);padding:var(--spacing-sm) 10px;font-weight:var(--font-weight-semibold);border-top:2px solid var(--color-border, #e2e8f0);color:var(--color-text-primary)}.accounting-docs-result{margin-top:var(--spacing-sm);padding:var(--spacing-sm) 10px;font-weight:var(--font-weight-semibold);border-radius:var(--radius-md)}.accounting-docs-result.positive{background:#22c55e1a;color:#15803d}.accounting-docs-result.negative{background:#dc262614;color:#dc2626}.accounting-docs-scroll{overflow-x:auto;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-md)}.accounting-docs-balance-table tfoot td{font-weight:var(--font-weight-semibold);border-top:2px solid var(--color-border, #e2e8f0)}.accounting-docs-filter{display:inline-flex;align-items:center;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-text-secondary, #64748b);cursor:pointer}.accounting-docs-entry-label{max-width:320px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.accounting-docs-data input,.accounting-docs-data select{width:100%;padding:6px 8px;border:1px solid var(--color-border, #e2e8f0);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-text-primary)}@media(max-width:900px){.accounting-docs-bilan{grid-template-columns:1fr}}.cra-detail{padding:var(--spacing-xl)}.cra-detail-loading,.cra-detail-error{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.cra-detail-error{color:var(--color-error)}.cra-detail-header{margin-bottom:var(--spacing-lg)}.cra-detail-nav{display:flex;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-sm)}.cra-detail-nav .btn:disabled{opacity:.3;cursor:default}.cra-detail-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0;flex:1;text-align:center;white-space:nowrap}.cra-detail-actions{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.cra-detail-signed{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-primary);cursor:pointer}.cra-detail-comment{flex:1;min-width:200px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary)}.cra-detail-comment:focus{outline:none;border-color:var(--color-primary)}.cra-detail-unsaved{color:var(--color-error);font-size:var(--font-size-xl);font-weight:var(--font-weight-bold)}.cra-detail-message{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-md)}.cra-detail-message-error{background:#e74c3c1a;color:var(--color-error)}.cra-detail-message-success{background:#27ae601a;color:var(--color-success)}.cra-grid-container{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #d0d0d0;border-radius:var(--radius-lg);background:#fff}.cra-grid-table{border-collapse:collapse;font-size:var(--font-size-sm);white-space:nowrap;min-width:100%;color:#1a1a1a}.cra-grid-table thead th{position:sticky;top:0;background:#fff;z-index:4;padding:var(--spacing-xs) 2px;text-align:center;font-weight:var(--font-weight-semibold);color:#666;border-bottom:2px solid #d0d0d0;font-size:11px}.cra-grid-day-header{min-width:38px;width:38px}.cra-grid-day-name{display:block;text-transform:capitalize;font-size:10px;line-height:1}.cra-grid-day-num{display:block;font-size:12px;font-weight:var(--font-weight-bold);line-height:1.4}.cra-grid-category-col{position:sticky;left:0;z-index:3;background:#fff;min-width:180px;max-width:220px;padding:var(--spacing-xs) var(--spacing-sm)!important;text-align:left;font-weight:var(--font-weight-medium);border-right:1px solid #e0e0e0}.cra-grid-table thead .cra-grid-category-col,.cra-grid-table thead .cra-grid-total-col{z-index:5}.cra-grid-category-name{font-weight:var(--font-weight-normal);font-style:italic;overflow:hidden;text-overflow:ellipsis}.cra-grid-total-col{position:sticky;left:180px;z-index:3;background:#fff;min-width:90px;border-right:2px solid #d0d0d0}.cra-grid-row-total{position:sticky;left:180px;z-index:2;background:#fff;text-align:center;font-weight:var(--font-weight-semibold);padding:var(--spacing-xs) var(--spacing-sm);border-right:2px solid #d0d0d0;color:#1a1a1a;white-space:nowrap;font-size:11px}.cra-grid-grand-total{position:sticky;left:180px;z-index:2;font-weight:var(--font-weight-bold);font-size:12px;border-right:2px solid #d0d0d0}.cra-grid-totals-row{background:#f5f5f5;border-bottom:2px solid #d0d0d0}.cra-grid-totals-label{font-weight:var(--font-weight-bold)!important;background:#f5f5f5!important}.cra-grid-totals-row .cra-grid-grand-total{background:#f5f5f5!important}.cra-grid-total-cell{text-align:center;padding:var(--spacing-xs) 2px;font-weight:var(--font-weight-bold);color:#1a1a1a}.cra-grid-over{color:#e74c3c!important}.cra-grid-weekend{background:#f0f0f0!important}.cra-grid-cell{padding:1px;text-align:center;border-bottom:1px solid #e8e8e8}.cra-grid-input{width:36px;padding:2px 1px;border:1px solid transparent;border-radius:var(--radius-sm);text-align:center;font-size:var(--font-size-sm);background:transparent;color:#1a1a1a;-moz-appearance:textfield}.cra-grid-input::-webkit-outer-spin-button,.cra-grid-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.cra-grid-input:focus{outline:none;border-color:var(--color-primary);background:#fff}.cra-grid-input:hover{border-color:#ccc}.cra-grid-row-category td{background-color:var(--row-bg)}.cra-grid-row-category .cra-grid-category-col,.cra-grid-row-category .cra-grid-row-total{background-color:var(--row-bg-strong)}.cra-grid-row-category .cra-grid-weekend{background-color:var(--row-bg-weekend)!important}.cra-grid-contract-header td{padding:var(--spacing-xs) var(--spacing-sm);font-weight:var(--font-weight-bold);font-size:var(--font-size-sm);color:#e0e0e0;background:#1a1a1a;border-bottom:1px solid #333}.cra-grid-contract-header-label{position:sticky;left:0;z-index:3;white-space:nowrap}.cra-grid-separator td{height:4px;padding:0;background:#d0d0d0}.cra-docs{margin-top:var(--spacing-xl)}.cra-docs-title{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}.cra-docs-section{margin-bottom:var(--spacing-lg);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);overflow:hidden}.cra-docs-section-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f8f8);border-bottom:1px solid var(--color-border, #e0e0e0)}.cra-docs-section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.cra-docs-add-btn{display:inline-block;padding:2px 10px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.cra-docs-add-btn:hover{background:var(--color-primary);color:#fff}.cra-docs-upload-btn{cursor:pointer}.cra-docs-empty{padding:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic;margin:0}.cra-docs-list{list-style:none;padding:0;margin:0}.cra-docs-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border, #f0f0f0)}.cra-docs-item:last-child{border-bottom:none}.cra-docs-filename{flex:1;background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);cursor:pointer;text-align:left;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cra-docs-filename:hover{text-decoration:underline}.cra-docs-filesize{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.cra-docs-attach{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.cra-docs-delete{background:none;border:none;color:var(--color-error, #e74c3c);font-size:18px;cursor:pointer;padding:0 4px;line-height:1}.cra-docs-delete:hover{opacity:.7}.cra-docs-uploading{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-style:italic}@media(max-width:768px){.cra-detail{padding:var(--spacing-md)}.cra-detail-actions{flex-direction:column;align-items:flex-start}.cra-detail-comment{width:100%;min-width:auto}.cra-grid-category-col{min-width:120px}.cra-grid-total-col,.cra-grid-row-total,.cra-grid-grand-total{left:120px}}.supplier-list{padding:var(--spacing-xl)}.supplier-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.supplier-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.supplier-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.supplier-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.supplier-list-search{flex:1;max-width:400px}.supplier-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.supplier-list-search-input:focus{outline:none;border-color:var(--color-primary)}.supplier-list-search-input::placeholder{color:var(--color-text-secondary)}.supplier-list-type-filter{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.supplier-list-type-filter:focus{outline:none;border-color:var(--color-primary)}.supplier-list-filter{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;white-space:nowrap}.supplier-list-filter input[type=checkbox]{accent-color:var(--color-primary)}.supplier-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.supplier-list-loading,.supplier-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.supplier-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.supplier-list-table{width:100%;border-collapse:collapse}.supplier-list-table thead{background:var(--color-bg-secondary)}.supplier-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.supplier-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.supplier-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.supplier-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.supplier-list-cell-name{font-weight:var(--font-weight-medium)}.supplier-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.supplier-list-status-active{background:#27ae601a;color:var(--color-success)}.supplier-list-status-archived{background:#95a5a626;color:var(--color-text-secondary)}.supplier-list-action-btn{background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.supplier-list-action-btn:hover{background:var(--color-bg-secondary)}.supplier-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.supplier-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.supplier-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.supplier-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:1024px){.supplier-list-table th:nth-child(4),.supplier-list-table td:nth-child(4),.supplier-list-table th:nth-child(5),.supplier-list-table td:nth-child(5){display:none}}@media(max-width:768px){.supplier-list{padding:var(--spacing-md)}.supplier-list-header{flex-direction:column;gap:var(--spacing-md)}.supplier-list-toolbar{flex-direction:column;align-items:stretch}.supplier-list-search{max-width:none}.supplier-list-table th:nth-child(3),.supplier-list-table td:nth-child(3),.supplier-list-table th:nth-child(6),.supplier-list-table td:nth-child(6){display:none}.supplier-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}@media(max-width:480px){.supplier-list-table th:nth-child(2),.supplier-list-table td:nth-child(2){display:none}}.supplier-form{padding:var(--spacing-xl)}.supplier-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.supplier-form-header{margin-bottom:var(--spacing-xl)}.supplier-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:var(--spacing-sm) 0 0 0}.supplier-form-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl)}.supplier-form-tab{padding:var(--spacing-md) var(--spacing-xl);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all var(--transition-fast)}.supplier-form-tab:hover{color:var(--color-primary)}.supplier-form-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.supplier-form-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.supplier-form-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.supplier-form-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.supplier-form-section{background:var(--color-bg-primary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);padding:var(--spacing-xl)}.supplier-form-section-title{display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border, #f0f0f0)}.supplier-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.supplier-form-checkbox-row{margin-top:var(--spacing-md)}.supplier-form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-md);color:var(--color-text-primary);cursor:pointer}.supplier-form-checkbox input[type=checkbox]{accent-color:var(--color-primary);width:18px;height:18px}.supplier-form-actions{display:flex;gap:var(--spacing-md);justify-content:flex-end;margin-top:var(--spacing-xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border, #e0e0e0)}.supplier-form-contributors-table{width:100%;border-collapse:collapse}.supplier-form-contributors-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.supplier-form-contributors-table th:hover{color:var(--color-primary)}.supplier-form-contributors-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.supplier-form-contributors-row{cursor:pointer;transition:background var(--transition-fast, .15s)}.supplier-form-contributors-row:hover{background:#0000000a}.supplier-form-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary);font-style:italic}.supplier-payment-year-selector{display:flex;align-items:center;gap:.5rem;font-size:var(--font-size-sm);font-weight:var(--font-weight-normal)}.supplier-payment-year-selector select{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.supplier-payment-total{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-sm);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.supplier-payment-total-value{font-weight:var(--font-weight-semibold);color:var(--color-primary)}.supplier-form-inline-table{overflow-x:auto}.supplier-form-inline-table table{width:100%;border-collapse:collapse}.supplier-form-inline-table th,.supplier-form-inline-table td{padding:var(--spacing-sm) var(--spacing-md);text-align:left;border-bottom:1px solid var(--color-border, #e0e0e0);font-size:var(--font-size-sm)}.supplier-form-inline-table th{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);background:var(--color-bg-secondary, #f8f9fa)}@media(max-width:768px){.supplier-form{padding:var(--spacing-md)}.supplier-form-row{grid-template-columns:1fr}.supplier-form-section{padding:var(--spacing-md)}.supplier-form-actions{flex-direction:column-reverse}}.supplier-payment-form{background:var(--color-bg-secondary, #f8f9fa);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.supplier-payment-form-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.supplier-payment-form-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.supplier-payment-form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.supplier-payment-form-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.supplier-payment-form-field input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary)}.supplier-payment-form-field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px rgba(var(--color-primary-rgb, 59, 130, 246),.15)}.supplier-payment-form-actions{display:flex;gap:var(--spacing-sm)}.supplier-doc-toggle-btn{background:none;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;font-size:var(--font-size-xs);color:var(--color-text-secondary);transition:all var(--transition-fast)}.supplier-doc-toggle-btn:hover{background:var(--color-bg-secondary);color:var(--color-text-primary)}.supplier-doc-row td{padding:0!important;background:var(--color-bg-secondary, #f9fafb)}.supplier-doc-container{padding:var(--spacing-md) var(--spacing-lg)}.supplier-doc-header{margin-bottom:var(--spacing-sm)}.supplier-doc-upload-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:4px 12px;background:var(--color-primary);color:#fff;border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;transition:opacity var(--transition-fast)}.supplier-doc-upload-btn:hover{opacity:.85}.supplier-doc-loading,.supplier-doc-empty{font-size:var(--font-size-xs);color:var(--color-text-secondary);padding:var(--spacing-xs) 0}.supplier-doc-list{list-style:none;padding:0;margin:0}.supplier-doc-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) 0;border-bottom:1px solid var(--color-border)}.supplier-doc-item:last-child{border-bottom:none}.supplier-doc-name{background:none;border:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);text-decoration:underline;text-align:left;padding:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.supplier-doc-name:hover{opacity:.7}.supplier-doc-size{font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.supplier-doc-delete-btn{background:none;border:none;color:var(--color-error, #e53e3e);cursor:pointer;font-size:var(--font-size-sm);padding:2px 6px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.supplier-doc-delete-btn:hover{background:#e53e3e1a}.supplier-doc-preview{margin-top:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;background:#fff}.supplier-doc-preview-loading{padding:var(--spacing-lg);text-align:center;color:var(--color-text-secondary)}.supplier-doc-preview-iframe{width:100%;height:60vh;border:none}.sp-list{padding:var(--spacing-xl)}.sp-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.sp-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.sp-list-toolbar{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.sp-list-search{flex:1;max-width:300px}.sp-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.sp-list-search-input:focus{outline:none;border-color:var(--color-primary)}.sp-list-search-input::placeholder{color:var(--color-text-secondary)}.sp-list-year-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.sp-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.sp-list-loading,.sp-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.sp-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.sp-list-table{width:100%;border-collapse:collapse}.sp-list-table thead{background:var(--color-bg-secondary)}.sp-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.sp-list-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.sp-list-sortable:hover{color:var(--color-text-primary)}.sp-list-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.sp-list-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.sp-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.sp-list-table tbody tr:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.sp-list-col-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.sp-list-total-row{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.sp-list-total-label{padding:var(--spacing-md) var(--spacing-lg);text-align:right;font-size:var(--font-size-md);color:var(--color-text-primary);border-top:2px solid var(--color-border, #e0e0e0)}.sp-list-total-amount{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-top:2px solid var(--color-border, #e0e0e0)}.sp-list-supplier-link{background:none;border:none;color:var(--color-primary);cursor:pointer;padding:0;font-size:inherit;text-decoration:underline;text-decoration-style:dotted}.sp-list-supplier-link:hover{text-decoration-style:solid}.sp-list-doc-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;margin-left:6px;border-radius:var(--radius-full);background:var(--color-primary);color:#fff;font-size:11px;font-weight:var(--font-weight-semibold)}.sp-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.sp-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.sp-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.sp-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:768px){.sp-list{padding:var(--spacing-md)}.sp-list-toolbar{flex-direction:column;align-items:stretch}.sp-list-search{max-width:none}.sp-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.sp-list-frequency-cell{display:flex;flex-direction:column;gap:2px}.sp-list-frequency-select{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-bg-primary, #fff);color:var(--color-text-primary, #333);min-width:120px}.sp-list-frequency-suggestion{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.sp-list-frequency-apply{background:none;border:none;padding:0;text-align:left;cursor:pointer;color:var(--color-primary, #2563eb);text-decoration:underline dotted}.sp-list-frequency-apply:disabled{opacity:.5;cursor:wait}.invoicing-page{padding:var(--spacing-lg)}.invoicing-page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-lg)}.invoicing-page-title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0}.invoicing-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:var(--spacing-lg)}.invoicing-tab{padding:var(--spacing-sm) var(--spacing-lg);border:none;background:none;font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;display:flex;align-items:center;gap:var(--spacing-xs);transition:color .2s,border-color .2s}.invoicing-tab:hover{color:var(--color-text-primary)}.invoicing-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-medium)}.invoicing-tab-badge{background:var(--color-primary);color:#fff;border-radius:10px;padding:1px 8px;font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);min-width:20px;text-align:center}.invoicing-table-wrapper{overflow-x:auto}.invoicing-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.invoicing-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border);white-space:nowrap}.invoicing-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, var(--color-border))}.invoicing-row{cursor:pointer;transition:background-color .15s}.invoicing-row:hover{background-color:var(--color-bg-hover, rgba(0, 0, 0, .03))}.invoicing-cell-customer{font-weight:var(--font-weight-medium)}.invoicing-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.invoicing-status-overdue{background:#fef2f2;color:#dc2626}.invoicing-status-upcoming{background:#fff7ed;color:#ea580c}.invoicing-action-btn{padding:4px 12px;border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);border-radius:var(--border-radius);cursor:pointer;font-size:var(--font-size-xs);white-space:nowrap;transition:background-color .15s,color .15s}.invoicing-action-btn:hover{background:var(--color-primary);color:#fff}.invoicing-loading,.invoicing-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-lg);color:var(--color-text-secondary);font-size:var(--font-size-md)}.invoicing-error{padding:var(--spacing-sm) var(--spacing-md);background:#fef2f2;color:#dc2626;border-radius:var(--border-radius);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container:not(.ql-disabled) li[data-list=checked]>.ql-ui,.ql-container:not(.ql-disabled) li[data-list=unchecked]>.ql-ui{cursor:pointer}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor p,.ql-editor ol,.ql-editor pre,.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{margin:0;padding:0}@supports (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-set:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor p,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6{counter-reset:list-0 list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor table{border-collapse:collapse}.ql-editor td{border:1px solid #000;padding:2px 5px}.ql-editor ol{padding-left:1.5em}.ql-editor li{list-style-type:none;padding-left:1.5em;position:relative}.ql-editor li>.ql-ui:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.ql-editor li[data-list=checked]>.ql-ui,.ql-editor li[data-list=unchecked]>.ql-ui{color:#777}.ql-editor li[data-list=bullet]>.ql-ui:before{content:"•"}.ql-editor li[data-list=checked]>.ql-ui:before{content:"☑"}.ql-editor li[data-list=unchecked]>.ql-ui:before{content:"☐"}@supports (counter-set:none){.ql-editor li[data-list]{counter-set:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered]{counter-increment:list-0}.ql-editor li[data-list=ordered]>.ql-ui:before{content:counter(list-0,decimal) ". "}.ql-editor li[data-list=ordered].ql-indent-1{counter-increment:list-1}.ql-editor li[data-list=ordered].ql-indent-1>.ql-ui:before{content:counter(list-1,lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-set:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-2{counter-increment:list-2}.ql-editor li[data-list=ordered].ql-indent-2>.ql-ui:before{content:counter(list-2,lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-set:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-3{counter-increment:list-3}.ql-editor li[data-list=ordered].ql-indent-3>.ql-ui:before{content:counter(list-3,decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-set:list-4 list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-4{counter-increment:list-4}.ql-editor li[data-list=ordered].ql-indent-4>.ql-ui:before{content:counter(list-4,lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-set:list-5 list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-5{counter-increment:list-5}.ql-editor li[data-list=ordered].ql-indent-5>.ql-ui:before{content:counter(list-5,lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-set:list-6 list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-6{counter-increment:list-6}.ql-editor li[data-list=ordered].ql-indent-6>.ql-ui:before{content:counter(list-6,decimal) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-set:list-7 list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-6{counter-reset:list-7 list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-7{counter-increment:list-7}.ql-editor li[data-list=ordered].ql-indent-7>.ql-ui:before{content:counter(list-7,lower-alpha) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-set:list-8 list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-7{counter-reset:list-8 list-9}}.ql-editor li[data-list=ordered].ql-indent-8{counter-increment:list-8}.ql-editor li[data-list=ordered].ql-indent-8>.ql-ui:before{content:counter(list-8,lower-roman) ". "}@supports (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-set:list-9}}@supports not (counter-set:none){.ql-editor li[data-list].ql-indent-8{counter-reset:list-9}}.ql-editor li[data-list=ordered].ql-indent-9{counter-increment:list-9}.ql-editor li[data-list=ordered].ql-indent-9>.ql-ui:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor li.ql-direction-rtl{padding-right:1.5em}.ql-editor li.ql-direction-rtl>.ql-ui:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.ql-editor table{table-layout:fixed;width:100%}.ql-editor table td{outline:none}.ql-editor .ql-code-block-container{font-family:monospace}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor .ql-ui{position:absolute}.ql-editor.ql-blank:before{color:#0009;content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow.ql-toolbar:after,.ql-snow .ql-toolbar:after{clear:both;content:"";display:table}.ql-snow.ql-toolbar button,.ql-snow .ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow.ql-toolbar button svg,.ql-snow .ql-toolbar button svg{float:left;height:100%}.ql-snow.ql-toolbar button:active:hover,.ql-snow .ql-toolbar button:active:hover{outline:none}.ql-snow.ql-toolbar input.ql-image[type=file],.ql-snow .ql-toolbar input.ql-image[type=file]{display:none}.ql-snow.ql-toolbar button:hover,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar button:focus,.ql-snow .ql-toolbar button:focus,.ql-snow.ql-toolbar button.ql-active,.ql-snow .ql-toolbar button.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item.ql-selected{color:#06c}.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill{fill:#06c}.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter{stroke:#06c}@media(pointer:coarse){.ql-snow.ql-toolbar button:hover:not(.ql-active),.ql-snow .ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-thin,.ql-snow .ql-stroke.ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor .ql-code-block-container{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor .ql-code-block-container{margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor .ql-code-block-container{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-label:before,.ql-snow .ql-picker.ql-header .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-label:before,.ql-snow .ql-picker.ql-font .ql-picker-item:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-label:before,.ql-snow .ql-picker.ql-size .ql-picker-item:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-code-block-container{position:relative}.ql-code-block-container .ql-ui{right:5px;top:5px}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:#0003 0 2px 8px}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}.rich-text-editor .ql-container{font-family:inherit;font-size:var(--font-size-sm);border-radius:0 0 var(--radius-md) var(--radius-md);border-color:var(--color-border);min-height:80px}.rich-text-editor .ql-toolbar,.rich-text-editor-compact .ql-toolbar{border-radius:var(--radius-md) var(--radius-md) 0 0;border-color:var(--color-border);background:var(--color-bg-secondary)}.rich-text-editor .ql-editor{min-height:80px;color:var(--color-text-primary)}.rich-text-editor .ql-editor.ql-blank:before{color:var(--color-text-tertiary);font-style:normal}.rich-text-editor .ql-toolbar button .ql-stroke,.rich-text-editor-compact .ql-toolbar button .ql-stroke{stroke:var(--color-text-secondary)}.rich-text-editor .ql-toolbar button .ql-fill,.rich-text-editor-compact .ql-toolbar button .ql-fill{fill:var(--color-text-secondary)}.rich-text-editor .ql-toolbar button:hover .ql-stroke,.rich-text-editor-compact .ql-toolbar button:hover .ql-stroke{stroke:var(--color-text-primary)}.rich-text-editor .ql-toolbar button:hover .ql-fill,.rich-text-editor-compact .ql-toolbar button:hover .ql-fill{fill:var(--color-text-primary)}.rich-text-editor .ql-toolbar button.ql-active .ql-stroke,.rich-text-editor-compact .ql-toolbar button.ql-active .ql-stroke{stroke:var(--color-primary)}.rich-text-editor .ql-toolbar button.ql-active .ql-fill,.rich-text-editor-compact .ql-toolbar button.ql-active .ql-fill{fill:var(--color-primary)}.rich-text-editor .ql-toolbar .ql-picker-label,.rich-text-editor-compact .ql-toolbar .ql-picker-label{color:var(--color-text-secondary)}.rich-text-editor .ql-toolbar .ql-picker-label .ql-stroke,.rich-text-editor-compact .ql-toolbar .ql-picker-label .ql-stroke{stroke:var(--color-text-secondary)}.rich-text-editor .ql-toolbar .ql-picker-label:hover,.rich-text-editor-compact .ql-toolbar .ql-picker-label:hover{color:var(--color-text-primary)}.rich-text-editor .ql-toolbar .ql-picker-label:hover .ql-stroke,.rich-text-editor-compact .ql-toolbar .ql-picker-label:hover .ql-stroke{stroke:var(--color-text-primary)}.rich-text-editor .ql-toolbar .ql-picker-options,.rich-text-editor-compact .ql-toolbar .ql-picker-options{background:var(--color-bg-primary);border-color:var(--color-border)}.rich-text-editor .ql-toolbar .ql-picker-item,.rich-text-editor-compact .ql-toolbar .ql-picker-item{color:var(--color-text-primary)}.rich-text-editor .ql-toolbar .ql-picker-item:hover,.rich-text-editor-compact .ql-toolbar .ql-picker-item:hover{color:var(--color-primary)}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=xxs]:before{content:"XXS"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=xs]:before{content:"XS"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=s]:before{content:"S"}.ql-snow .ql-picker.ql-size .ql-picker-label:not([data-value]):before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=m]:before{content:"M"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=l]:before{content:"L"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=xl]:before{content:"XL"}.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=xxl]:before{content:"XXL"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=xxs]:before{content:"XXS (6px)"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=xs]:before{content:"XS (8px)"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=s]:before{content:"S (10px)"}.ql-snow .ql-picker.ql-size .ql-picker-item:not([data-value]):before{content:"Normal (12px)"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=m]:before{content:"M (14px)"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=l]:before{content:"L (16px)"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=xl]:before{content:"XL (17px)"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=xxl]:before{content:"XXL (18px)"}.ql-size-xxs{font-size:6px}.ql-size-xs{font-size:8px}.ql-size-s{font-size:10px}.ql-size-m{font-size:14px}.ql-size-l{font-size:16px}.ql-size-xl{font-size:17px}.ql-size-xxl{font-size:18px}.ql-snow .ql-picker.ql-header .ql-picker-label:not([data-value]):before,.ql-snow .ql-picker.ql-header .ql-picker-item:not([data-value]):before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{content:"Titre 1"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{content:"Titre 2"}.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{content:"Titre 3"}.rich-text-editor-compact .ql-container{min-height:40px;font-size:var(--font-size-sm)}.rich-text-editor-compact .ql-toolbar{padding:2px 4px}.rich-text-editor-compact .ql-toolbar .ql-formats{margin-right:4px}.rich-text-editor-compact .ql-toolbar button{width:22px;height:22px;padding:2px}.rich-text-editor-compact .ql-toolbar .ql-picker{height:22px}.rich-text-editor-compact .ql-toolbar .ql-picker-label{padding:0 4px;font-size:11px}.rich-text-editor-compact .ql-editor{min-height:40px;padding:6px 8px;line-height:1.4}.rich-text-readonly{padding:0;color:inherit;font-size:var(--font-size-sm);line-height:1.5}.rich-text-readonly p{margin:0 0 4px}.rich-text-readonly p:last-child{margin-bottom:0}.rich-text-readonly ul,.rich-text-readonly ol{margin:4px 0;padding-left:24px}.rich-text-compact{font-size:var(--font-size-sm);line-height:1.4}.rich-text-compact p{margin:0 0 2px}.invoice-form{padding:var(--spacing-lg) var(--spacing-xl);max-width:1200px}.invoice-form-loading{padding:var(--spacing-3xl);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-lg)}.invoice-form-header{margin-bottom:var(--spacing-lg)}.invoice-form-back{border:none;background:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);padding:0;margin-bottom:var(--spacing-sm);display:inline-block}.invoice-form-back:hover{text-decoration:underline}.invoice-form-header-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.invoice-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.invoice-form-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:4px 14px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.invoice-form-status-draft{background:#fef3c7;color:#92400e}.invoice-form-status-validated{background:#dbeafe;color:#1e40af}.invoice-form-status-sent{background:#e0e7ff;color:#3730a3}.invoice-form-status-paid{background:#d1fae5;color:#065f46}.invoice-form-status-cancelled{background:#f3f4f6;color:#6b7280}.invoice-form-error{padding:var(--spacing-sm) var(--spacing-md);background:#fef2f2;color:#dc2626;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);border-left:3px solid #dc2626}.invoice-form-success{padding:var(--spacing-sm) var(--spacing-md);background:#f0fdf4;color:#16a34a;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);border-left:3px solid #16a34a}.invoice-form-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0);flex-wrap:wrap}.invoice-form-actions-left{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.invoice-form-btn{padding:8px 20px;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.invoice-form-btn:disabled{opacity:.5;cursor:not-allowed}.invoice-form-btn-primary{background:var(--color-primary);color:#fff}.invoice-form-btn-primary:hover:not(:disabled){filter:brightness(.9)}.invoice-form-btn-validate{background:#059669;color:#fff}.invoice-form-btn-validate:hover:not(:disabled){background:#047857}.invoice-form-btn-secondary{background:var(--color-bg-primary, white);color:var(--color-text-primary);border:1px solid var(--color-border)}.invoice-form-btn-secondary:hover:not(:disabled){background:var(--color-bg-hover, #e5e7eb)}.invoice-form-btn-send{background:#2563eb;color:#fff;display:inline-flex;align-items:center;gap:var(--spacing-xs)}.invoice-form-btn-send:hover:not(:disabled){background:#1d4ed8}.invoice-form-send-icon{width:16px;height:16px}.invoice-form-send-emails{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.invoice-form-send-no-email{font-size:var(--font-size-sm);color:var(--color-error, #dc2626);font-style:italic}.invoice-form-send-attachments{width:100%;font-size:var(--font-size-sm);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.invoice-form-send-attachments-label{font-weight:var(--font-weight-medium, 500)}.invoice-form-send-attachments-list{list-style:disc inside;margin:var(--spacing-xs) 0 0;padding:0}.invoice-form-send-attachments-item{padding:2px 0}.invoice-form-send-attachments-size{color:var(--color-text-tertiary, var(--color-text-secondary))}.invoice-form-info-card{background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0);padding:var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl)}.invoice-form-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-lg) var(--spacing-xl)}.invoice-form-info-block h3{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--spacing-xs) 0}.invoice-form-info-value{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.invoice-form-info-secondary{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:2px 0 0}.invoice-form-comment-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border, #e0e0e0)}.invoice-form-comment-section h3{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--spacing-sm) 0}.invoice-form-fields{background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0);padding:var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl)}.invoice-form-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.invoice-form-row:last-child{margin-bottom:0}.invoice-form-field{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:180px}.invoice-form-field-wide{flex:2}.invoice-form-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.invoice-form-field select,.invoice-form-field input,.invoice-form-field textarea{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary, white);font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.invoice-form-field select:focus,.invoice-form-field input:focus,.invoice-form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.invoice-form-lines-section{margin-bottom:var(--spacing-xl)}.invoice-form-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.invoice-form-table-wrapper{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);overflow:hidden}.invoice-form-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.invoice-form-table thead{background:var(--color-bg-secondary, #f8f9fa)}.invoice-form-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border, #e0e0e0);white-space:nowrap}.invoice-form-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #f0f0f0);vertical-align:top}.invoice-form-table tbody tr:last-child td{border-bottom:none}.invoice-col-desc{width:40%}.invoice-col-qty{width:8%}.invoice-col-price{width:12%}.invoice-col-vat{width:8%}.invoice-col-total{width:14%;text-align:right}.invoice-col-action{width:40px}.invoice-form-cell-desc{line-height:1.5;color:var(--color-text-primary)}.invoice-form-cell-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-form-cell-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:var(--font-weight-medium)}.invoice-form-cell-action{text-align:center;vertical-align:middle}.invoice-form-input{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary, white);box-sizing:border-box;transition:border-color var(--transition-fast)}.invoice-form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f61a}.invoice-form-input-num{text-align:right}.invoice-form-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.invoice-form-remove-btn:hover{background:#fef2f2;color:var(--color-error, #dc2626)}.invoice-form-add-line-btn{margin-top:var(--spacing-sm);padding:8px 20px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.invoice-form-add-line-btn:hover{border-color:var(--color-primary);background:#3b82f60a}.invoice-form-table tfoot{background:var(--color-bg-secondary, #f8f9fa)}.invoice-form-totals td{padding:var(--spacing-xs) var(--spacing-md);border-bottom:none}.invoice-form-totals-label{text-align:right;font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.invoice-form-totals-final td{font-weight:var(--font-weight-semibold)!important;font-size:var(--font-size-md);color:var(--color-text-primary)!important;border-top:2px solid var(--color-border, #e0e0e0);padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.invoice-form-pdf-section{margin-bottom:var(--spacing-xl)}.invoice-form-pdf-preview{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-bg-secondary, #f9fafb)}.invoice-form-pdf-loading{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.invoice-form-pdf-iframe{width:100%;height:80vh;border:none;display:block}.invoice-form-doc-tabs{display:flex;gap:var(--spacing-xs);flex-wrap:wrap;margin-bottom:var(--spacing-xs)}.invoice-form-doc-tab{background:var(--color-bg-secondary, #f3f4f6);border:1px solid var(--color-border, #e0e0e0);border-bottom:none;border-radius:var(--radius-sm) var(--radius-sm) 0 0;padding:var(--spacing-xs) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-text-secondary);cursor:pointer;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:background var(--transition-fast),color var(--transition-fast)}.invoice-form-doc-tab:hover{background:var(--color-bg-primary, #ffffff);color:var(--color-text-primary)}.invoice-form-doc-tab-active{background:var(--color-bg-primary, #ffffff);color:var(--color-text-primary);font-weight:var(--font-weight-medium, 500);border-color:var(--color-border, #e0e0e0)}.invoice-form-attachment-image{display:block;max-width:100%;max-height:80vh;margin:0 auto;background:#fff}.invoice-form-attachment-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-md);padding:var(--spacing-3xl) var(--spacing-xl);text-align:center}.invoice-form-attachment-fallback-name{font-weight:var(--font-weight-semibold, 600);font-size:var(--font-size-md, 15px);color:var(--color-text-primary);word-break:break-all}.invoice-form-attachment-fallback-meta{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:768px){.invoice-form{padding:var(--spacing-md)}.invoice-form-row{flex-direction:column}.invoice-form-field{min-width:100%}.invoice-form-info-grid{grid-template-columns:1fr 1fr}.invoice-form-actions{flex-direction:column;align-items:stretch}.invoice-form-actions-left{flex-direction:column}}.invoice-list{padding:var(--spacing-xl)}.invoice-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.invoice-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.invoice-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.invoice-list-toolbar{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.invoice-list-search{flex:1;max-width:300px}.invoice-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.invoice-list-search-input:focus{outline:none;border-color:var(--color-primary)}.invoice-list-search-input::placeholder{color:var(--color-text-secondary)}.invoice-list-filter-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.invoice-list-date-filters{display:flex;align-items:center;gap:var(--spacing-xs)}.invoice-list-date-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary)}.invoice-list-date-sep{color:var(--color-text-secondary)}.invoice-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.invoice-list-loading,.invoice-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.invoice-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.invoice-list-table{width:100%;border-collapse:collapse}.invoice-list-table thead{background:var(--color-bg-secondary)}.invoice-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.invoice-list-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.invoice-list-sortable:hover{color:var(--color-text-primary)}.invoice-list-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.invoice-list-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.invoice-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.invoice-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.invoice-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.invoice-list-cell-number{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.invoice-list-col-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.invoice-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.invoice-list-status-draft{background:#95a5a626;color:var(--color-text-secondary)}.invoice-list-status-validated{background:#3498db1a;color:#2980b9}.invoice-list-status-sent{background:#f39c121a;color:#e67e22}.invoice-list-status-paid{background:#27ae601a;color:var(--color-success)}.invoice-list-status-cancelled{background:#e74c3c1a;color:var(--color-error)}.invoice-list-cell-actions{white-space:nowrap}.invoice-list-cell-actions .pdf-btn,.invoice-list-cell-actions .invoice-list-send-btn{vertical-align:middle}.invoice-list-send-btn{padding:2px 6px;margin-left:var(--spacing-xs);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:#2563eb;cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.invoice-list-send-btn:hover:not(:disabled){background:#2563eb;color:#fff;border-color:#2563eb}.invoice-list-send-btn:disabled{opacity:.5;cursor:not-allowed}.invoice-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.invoice-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.invoice-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.invoice-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:1024px){.invoice-list-table th:nth-child(4),.invoice-list-table td:nth-child(4){display:none}}@media(max-width:768px){.invoice-list{padding:var(--spacing-md)}.invoice-list-toolbar{flex-direction:column;align-items:stretch}.invoice-list-search{max-width:none}.invoice-list-table th:nth-child(5),.invoice-list-table td:nth-child(5){display:none}.invoice-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.quote-list{padding:var(--spacing-xl)}.quote-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.quote-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.quote-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.quote-list-toolbar{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.quote-list-search{flex:1;max-width:300px}.quote-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.quote-list-search-input:focus{outline:none;border-color:var(--color-primary)}.quote-list-search-input::placeholder{color:var(--color-text-secondary)}.quote-list-filter-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.quote-list-date-filters{display:flex;align-items:center;gap:var(--spacing-xs)}.quote-list-date-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary)}.quote-list-date-sep{color:var(--color-text-secondary)}.quote-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.quote-list-loading,.quote-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.quote-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.quote-list-table{width:100%;border-collapse:collapse}.quote-list-table thead{background:var(--color-bg-secondary)}.quote-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.quote-list-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.quote-list-sortable:hover{color:var(--color-text-primary)}.quote-list-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.quote-list-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.quote-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.quote-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.quote-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.quote-list-cell-number{font-weight:var(--font-weight-medium);font-variant-numeric:tabular-nums}.quote-list-col-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.quote-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.quote-list-status-draft{background:#95a5a626;color:var(--color-text-secondary)}.quote-list-status-sent{background:#f39c121a;color:#e67e22}.quote-list-status-accepted{background:#27ae601a;color:var(--color-success)}.quote-list-status-refused{background:#e74c3c1a;color:var(--color-error)}.quote-list-status-cancelled{background:#95a5a640;color:#7f8c8d}.quote-list-status-invoiced{background:#3498db1a;color:#2980b9}.quote-list-col-actions{white-space:nowrap;text-align:center;width:100px}.quote-list-btn-duplicate{display:inline-flex;align-items:center;padding:4px 10px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);vertical-align:middle}.quote-list-btn-duplicate:hover{background:var(--color-primary);color:#fff}.quote-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.quote-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.quote-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.quote-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:1024px){.quote-list-table th:nth-child(4),.quote-list-table td:nth-child(4){display:none}}@media(max-width:768px){.quote-list{padding:var(--spacing-md)}.quote-list-toolbar{flex-direction:column;align-items:stretch}.quote-list-search{max-width:none}.quote-list-table th:nth-child(5),.quote-list-table td:nth-child(5){display:none}.quote-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.quote-form{padding:var(--spacing-lg) var(--spacing-xl);max-width:1200px}.quote-form-loading{padding:var(--spacing-3xl);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-lg)}.quote-form-header{margin-bottom:var(--spacing-lg)}.quote-form-back{border:none;background:none;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);padding:0;margin-bottom:var(--spacing-sm);display:inline-block}.quote-form-back:hover{text-decoration:underline}.quote-form-header-row{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.quote-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.quote-form-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:4px 14px;border-radius:20px;text-transform:uppercase;letter-spacing:.5px}.quote-form-status-draft{background:#fef3c7;color:#92400e}.quote-form-status-sent{background:#e0e7ff;color:#3730a3}.quote-form-status-accepted{background:#d1fae5;color:#065f46}.quote-form-status-refused{background:#fee2e2;color:#991b1b}.quote-form-status-cancelled{background:#f3f4f6;color:#6b7280}.quote-form-status-invoiced{background:#dbeafe;color:#1e40af}.quote-form-error{padding:var(--spacing-sm) var(--spacing-md);background:#fef2f2;color:#dc2626;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);border-left:3px solid #dc2626}.quote-form-success{padding:var(--spacing-sm) var(--spacing-md);background:#f0fdf4;color:#16a34a;border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm);border-left:3px solid #16a34a}.quote-form-actions{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);margin-bottom:var(--spacing-lg);background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0);flex-wrap:wrap}.quote-form-actions-left{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.quote-form-btn{padding:8px 20px;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.quote-form-btn:disabled{opacity:.5;cursor:not-allowed}.quote-form-btn-primary{background:var(--color-primary);color:#fff}.quote-form-btn-primary:hover:not(:disabled){filter:brightness(.9)}.quote-form-btn-duplicate{background:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.quote-form-btn-duplicate:hover:not(:disabled){background:var(--color-primary);color:#fff}.quote-form-btn-send{background:#2563eb;color:#fff}.quote-form-btn-send:hover:not(:disabled){background:#1d4ed8}.quote-form-btn-accept{background:#059669;color:#fff}.quote-form-btn-accept:hover:not(:disabled){background:#047857}.quote-form-btn-refuse{background:#dc2626;color:#fff}.quote-form-btn-refuse:hover:not(:disabled){background:#b91c1c}.quote-form-btn-cancel-status{background:var(--color-bg-primary, white);color:var(--color-text-secondary);border:1px solid var(--color-border)}.quote-form-btn-cancel-status:hover:not(:disabled){background:var(--color-bg-hover, #e5e7eb);color:var(--color-text-primary)}.quote-form-btn-recalc{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.quote-form-btn-recalc:hover:not(:disabled){background:var(--color-bg-hover, #e5e7eb);color:var(--color-text-primary)}.quote-form-btn-delete{background:transparent;color:var(--color-error, #dc2626);border:1px solid var(--color-error, #dc2626)}.quote-form-btn-delete:hover:not(:disabled){background:#fef2f2}.quote-form-info-card{background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0);padding:var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl)}.quote-form-info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-lg) var(--spacing-xl)}.quote-form-info-block h3{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--spacing-xs) 0}.quote-form-info-value{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.quote-form-info-secondary{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:2px 0 0}.quote-form-comment-section{margin-top:var(--spacing-lg);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border, #e0e0e0)}.quote-form-comment-section h3{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;margin:0 0 var(--spacing-sm) 0}.quote-form-comment-text{font-size:var(--font-size-md);color:var(--color-text-primary);line-height:1.6}.quote-form-comment-text p{margin:0 0 var(--spacing-xs) 0}.quote-form-comment-text p:last-child{margin-bottom:0}.quote-form-fields{background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0);padding:var(--spacing-lg) var(--spacing-xl);margin-bottom:var(--spacing-xl)}.quote-form-row{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md);flex-wrap:wrap}.quote-form-row:last-child{margin-bottom:0}.quote-form-field{display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1;min-width:180px}.quote-form-field-wide{flex:2}.quote-form-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.quote-form-field select,.quote-form-field input,.quote-form-field textarea{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary, white);font-family:inherit;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.quote-form-field select:focus,.quote-form-field input:focus,.quote-form-field textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.quote-form-field select:disabled,.quote-form-field input:disabled{background:var(--color-bg-secondary, #f3f4f6);color:var(--color-text-secondary)}.quote-form-field textarea{resize:vertical;min-height:60px}.quote-form-lines-section{margin-bottom:var(--spacing-xl)}.quote-form-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.quote-form-table-wrapper{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);overflow:hidden}.quote-form-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.quote-form-table thead{background:var(--color-bg-secondary, #f8f9fa)}.quote-form-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--color-border, #e0e0e0);white-space:nowrap}.quote-form-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #f0f0f0);vertical-align:top}.quote-form-table tbody tr:last-child td{border-bottom:none}.quote-col-desc{width:40%}.quote-col-qty{width:8%}.quote-col-price{width:12%}.quote-col-vat{width:8%}.quote-col-total{width:14%;text-align:right}.quote-col-action{width:40px}.quote-form-cell-desc{white-space:pre-line;line-height:1.5;color:var(--color-text-primary)}.quote-form-cell-num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.quote-form-cell-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:var(--font-weight-medium)}.quote-form-cell-action{text-align:center;vertical-align:middle}.quote-form-input{width:100%;padding:6px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary, white);box-sizing:border-box;transition:border-color var(--transition-fast)}.quote-form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f61a}.quote-form-input-num{text-align:right}textarea.quote-form-input-desc{resize:vertical;font-family:inherit;min-height:60px;line-height:1.5}.quote-form-remove-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;background:transparent;color:var(--color-text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.quote-form-remove-btn:hover{background:#fef2f2;color:var(--color-error, #dc2626)}.quote-form-add-line-btn{margin-top:var(--spacing-sm);padding:8px 20px;border:1px dashed var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.quote-form-add-line-btn:hover{border-color:var(--color-primary);background:#3b82f60a}.quote-form-table tfoot{background:var(--color-bg-secondary, #f8f9fa)}.quote-form-totals td{padding:var(--spacing-xs) var(--spacing-md);border-bottom:none}.quote-form-totals-label{text-align:right;font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.quote-form-totals-final td{font-weight:var(--font-weight-semibold)!important;font-size:var(--font-size-md);color:var(--color-text-primary)!important;border-top:2px solid var(--color-border, #e0e0e0);padding-top:var(--spacing-sm);padding-bottom:var(--spacing-sm)}.quote-form-pdf-section{margin-bottom:var(--spacing-xl)}.quote-form-pdf-preview{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-lg);overflow:hidden;background:var(--color-bg-secondary, #f9fafb)}.quote-form-pdf-loading{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary)}.quote-form-pdf-iframe{width:100%;height:80vh;border:none;display:block}@media(max-width:768px){.quote-form{padding:var(--spacing-md)}.quote-form-row{flex-direction:column}.quote-form-field{min-width:100%}.quote-form-info-grid{grid-template-columns:1fr 1fr}.quote-form-actions{flex-direction:column;align-items:stretch}.quote-form-actions-left{flex-direction:column}}.quote-form-info-block select{padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary, white);font-family:inherit;width:100%;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.quote-form-info-block select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f61a}.settings-page{padding:var(--spacing-xl)}.settings-header{margin-bottom:var(--spacing-xl)}.settings-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}@media(max-width:768px){.settings-page{padding:var(--spacing-md)}}.general-settings-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl);overflow-x:auto}.general-settings-tab{padding:var(--spacing-sm) var(--spacing-lg);border:none;background:none;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition-fast);white-space:nowrap}.general-settings-tab:hover{color:var(--color-text-primary)}.general-settings-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.general-settings-content{max-width:700px}.currency-settings-section{margin-bottom:var(--spacing-3xl)}.currency-settings-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}.currency-settings-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.currency-settings-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.currency-settings-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.currency-dual-panel{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}.currency-panel h3{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.currency-panel-list{border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);min-height:150px;max-height:400px;overflow-y:auto}.currency-panel-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border, #f0f0f0);font-size:var(--font-size-md)}.currency-panel-item:last-child{border-bottom:none}.currency-panel-item-info{display:flex;align-items:center;gap:var(--spacing-sm);flex:1}.currency-panel-item-key{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-primary);background:var(--color-primary-light, rgba(52, 152, 219, .1));padding:2px var(--spacing-xs);border-radius:var(--radius-sm)}.currency-panel-item-name{color:var(--color-text-primary)}.currency-panel-item-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.currency-panel-badge-default{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:#27ae601a;color:var(--color-success);padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.currency-panel-btn{background:var(--color-primary);color:#fff;border:none;width:28px;height:28px;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background-color var(--transition-fast)}.currency-panel-btn:hover{background:var(--color-primary-dark, #2563eb)}.currency-panel-btn.remove{background:var(--color-error, #e74c3c)}.currency-panel-btn.remove:hover{background:#c0392b}.currency-panel-btn-text{background:none;border:none;cursor:pointer;color:var(--color-primary);font-size:var(--font-size-xs);padding:2px var(--spacing-xs);border-radius:var(--radius-sm);transition:background-color var(--transition-fast)}.currency-panel-btn-text:hover{background:var(--color-primary-light, rgba(52, 152, 219, .1))}.currency-panel-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-text-secondary);font-size:var(--font-size-sm)}.currency-ref-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.currency-ref-table-wrapper{overflow-x:auto;border-radius:var(--radius-md);border:1px solid var(--color-border, #e0e0e0)}.currency-ref-table{width:100%;border-collapse:collapse}.currency-ref-table thead{background:var(--color-bg-secondary)}.currency-ref-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.currency-ref-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.currency-ref-table tr.brain-has-usage td{border-bottom:1px dashed var(--color-border, #f0f0f0)}.currency-ref-table tr.brain-usage-row td{border-bottom:1px solid var(--color-border, #f0f0f0)}.currency-ref-table .currency-ref-actions{white-space:nowrap}.currency-ref-action-btn{vertical-align:middle;background:none;border:none;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background-color var(--transition-fast)}.currency-ref-action-btn:hover{background:var(--color-bg-secondary)}.currency-ref-action-btn.delete:hover{background:#e74c3c1a;color:var(--color-error)}.currency-inline-form{display:flex;gap:var(--spacing-md);align-items:flex-end;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.currency-inline-form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.currency-inline-form-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.currency-inline-form-field input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary)}.currency-inline-form-field input:focus{outline:none;border-color:var(--color-primary)}.currency-inline-form-field input.key-input{width:80px;text-transform:uppercase}.currency-inline-form-field input.name-input{width:200px}.timesheet-cat-table th,.timesheet-cat-table td{white-space:nowrap}.timesheet-cat-table .name-input{width:140px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:var(--font-size-sm)}.timesheet-cat-table .key-input{width:60px;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:var(--font-size-sm);text-align:center}.timesheet-cat-color-input{width:36px;height:28px;padding:0;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);cursor:pointer;background:none}.timesheet-cat-color-swatch{display:inline-block;width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid var(--color-border, #ddd);vertical-align:middle}.timesheet-cat-center{text-align:center}.timesheet-cat-disabled{opacity:.5}.timesheet-cat-toggle{border:none;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast)}.timesheet-cat-toggle-on{background:#27ae601a;color:var(--color-success)}.timesheet-cat-toggle-on:hover{background:#27ae6033}.timesheet-cat-toggle-off{background:#e74c3c1a;color:var(--color-error)}.timesheet-cat-toggle-off:hover{background:#e74c3c33}.timesheet-cat-edit-row td{padding:var(--spacing-xs) var(--spacing-sm)}.timesheet-cat-edit-row input[type=checkbox]{accent-color:var(--color-primary);width:16px;height:16px}.document-settings-layout{display:flex;gap:var(--spacing-xl);align-items:flex-start}.document-settings-form-panel{flex:0 0 400px;max-height:calc(100vh - 200px);overflow-y:auto}.document-settings-preview-panel{flex:1;min-width:0}.document-settings-actions{margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-border, #e0e0e0);display:flex;gap:var(--spacing-md)}.company-info-form{display:flex;flex-direction:column;gap:var(--spacing-lg)}.company-info-section{display:flex;flex-direction:column;gap:var(--spacing-sm)}.company-info-section-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0;padding-bottom:var(--spacing-xs);border-bottom:1px solid var(--color-border, #e0e0e0)}.company-info-field{display:flex;flex-direction:column;gap:4px;flex:1}.company-info-field label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.company-info-field input,.company-info-field textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);font-family:inherit}.company-info-field input:focus,.company-info-field textarea:focus{outline:none;border-color:var(--color-primary)}.company-info-row{display:flex;gap:var(--spacing-md)}.company-info-logo-area{display:flex;align-items:center;gap:var(--spacing-lg)}.company-info-logo-preview{width:80px;height:80px;border:2px dashed var(--color-border, #ddd);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--color-bg-secondary)}.company-info-logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.company-info-logo-placeholder{font-size:32px;opacity:.3}.company-info-logo-btn{display:inline-block;padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast)}.company-info-logo-btn:hover{background:var(--color-primary-dark, #2563eb)}.a4-editor{display:flex;flex-direction:column;gap:var(--spacing-md)}.a4-field-palette{display:flex;flex-wrap:wrap;gap:6px}.a4-palette-chip{padding:4px 10px;border:1px solid var(--color-border, #ddd);background:var(--color-bg-primary);color:var(--color-text-secondary);border-radius:20px;cursor:pointer;font-size:var(--font-size-xs);transition:all var(--transition-fast)}.a4-palette-chip:hover{border-color:var(--color-primary);color:var(--color-primary);background:#3498db0d}.a4-palette-chip-reset{border-color:var(--color-warning, #e67e22);color:var(--color-warning, #e67e22)}.a4-palette-chip-reset:hover{background:#e67e221a}.a4-zone-height-controls{display:flex;flex-wrap:wrap;gap:var(--spacing-lg);padding:8px 12px;background:var(--color-bg-secondary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md)}.a4-zone-height-row{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.a4-zone-height-row label{min-width:80px}.a4-zone-height-row input[type=range]{width:120px}.a4-zone-height-row span{min-width:32px;text-align:right;font-weight:var(--font-weight-medium);color:var(--color-text-primary)}.a4-margin-controls{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-text-secondary);border-left:1px solid var(--color-border, #e0e0e0);padding-left:var(--spacing-lg)}.a4-margin-label{font-weight:var(--font-weight-semibold);white-space:nowrap}.a4-margin-inputs{display:flex;gap:var(--spacing-md)}.a4-margin-input{display:flex;align-items:center;gap:4px}.a4-margin-input label{white-space:nowrap}.a4-margin-input input[type=number]{width:50px;padding:2px 4px;border:1px solid var(--color-border, #ccc);border-radius:var(--radius-sm);font-size:var(--font-size-xs);text-align:center}.a4-margin-input span{color:var(--color-text-tertiary, #999);font-size:10px}.a4-page{width:446px;height:631px;background:#e8e8e8;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;overflow:hidden;-webkit-user-select:none;user-select:none;flex-shrink:0;box-sizing:border-box}.a4-page>.a4-zone,.a4-page>.a4-zone-body-wrapper{background:#fff}.a4-zone{position:relative;border:2px dashed transparent;transition:border-color var(--transition-fast)}.a4-zone-header{border-bottom:1px solid #eee;background:#fff}.a4-zone-body{flex:1;background:#f8f8f8;display:flex;align-items:center;justify-content:center}.a4-zone-footer{border-top:1px solid #eee;background:#fff}.a4-zone-active{border-color:var(--color-primary);background:#3498db05}.a4-zone-label{position:absolute;top:4px;right:8px;font-size:9px;color:var(--color-text-secondary);opacity:.5;pointer-events:none;text-transform:uppercase;letter-spacing:.5px}.a4-zone-label-body{font-size:11px;color:var(--color-text-secondary);opacity:.4;text-transform:uppercase;letter-spacing:1px}.a4-field{position:absolute;cursor:move;border:1px dashed transparent;border-radius:2px;transition:border-color .15s;line-height:1.2;overflow:hidden;font-family:Helvetica,Arial,sans-serif;box-sizing:border-box}.a4-field:hover{border-color:#3498db66}.a4-field-selected{border-color:var(--color-primary)!important;border-style:solid;background:#3498db0d}.a4-field-logo{width:100%;height:100%;object-fit:contain;display:block}.a4-field-remove{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:var(--color-error, #e74c3c);color:#fff;border:none;font-size:10px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center;padding:0}.a4-field:hover .a4-field-remove,.a4-field-selected .a4-field-remove{display:flex}.a4-field-properties{background:var(--color-bg-secondary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md);padding:var(--spacing-md)}.a4-field-properties h4{margin:0 0 var(--spacing-sm) 0;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.a4-prop-row{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xs)}.a4-prop-row label{font-size:var(--font-size-xs);color:var(--color-text-secondary);min-width:80px}.a4-prop-row input[type=number],.a4-prop-row input[type=text],.a4-prop-row select{padding:4px 8px;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary);width:80px}.a4-prop-row-full{flex-wrap:wrap}.a4-prop-row-full input[type=text]{width:100%;flex:1}.a4-prop-row input[type=color]{width:32px;height:28px;padding:0;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);cursor:pointer;background:none}.a4-resize-handle{position:absolute;background:var(--color-primary);border:1px solid white;z-index:2}.a4-resize-right{right:-4px;top:25%;width:6px;height:50%;cursor:ew-resize;border-radius:2px}.a4-resize-bottom{bottom:-4px;left:25%;width:50%;height:6px;cursor:ns-resize;border-radius:2px}.a4-resize-corner{right:-4px;bottom:-4px;width:8px;height:8px;cursor:nwse-resize;border-radius:1px}.a4-align-toolbar{display:flex;align-items:center;gap:4px;padding:4px 8px;background:var(--color-bg-secondary);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-md)}.a4-align-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-right:4px}.a4-align-btn{width:28px;height:28px;border:1px solid var(--color-border, #ddd);background:var(--color-bg-primary);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:all var(--transition-fast)}.a4-align-btn:hover:not(:disabled){border-color:var(--color-primary);color:var(--color-primary);background:#3498db0d}.a4-align-btn:disabled{opacity:.35;cursor:default}.a4-align-separator{color:var(--color-border, #ddd);margin:0 2px}.a4-field-reference{outline:2px solid var(--primary-color);outline-offset:1px;z-index:2}.a4-align-hint{font-size:.7rem;color:var(--text-secondary);margin-left:var(--spacing-sm);font-style:italic}.a4-field-line{display:flex;align-items:center;padding:0!important}.a4-field-line-inner{width:100%;border-top:1px solid}.credential-form-panel{padding:var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.credential-form-row{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.credential-field{display:flex;flex-direction:column;gap:4px;min-width:180px;flex:1}.credential-field-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.credential-required{color:var(--color-error, #e74c3c);margin-left:2px}.credential-field-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);font-family:inherit}.credential-field-input:focus{outline:none;border-color:var(--color-primary)}.credential-inline-input{width:160px;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.credential-dynamic-fields{padding-top:var(--spacing-sm);border-top:1px solid var(--color-border, #e0e0e0)}.credential-form-actions{display:flex;gap:var(--spacing-sm);padding-top:var(--spacing-sm)}.credential-type-badge{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-primary);background:var(--color-primary-light, rgba(52, 152, 219, .1));padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.credential-data-summary{display:flex;flex-direction:column;gap:2px}.credential-data-item{font-size:var(--font-size-sm)}.credential-data-key{color:var(--color-text-secondary)}.credential-data-value{color:var(--color-text-primary);font-family:monospace}.credential-edit-fields{display:flex;flex-direction:column;gap:var(--spacing-xs)}.credential-edit-fields .credential-field-input{padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-sm)}.bank-expand-btn{background:none;border:none;cursor:pointer;padding:2px;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);transition:transform var(--transition-fast),color var(--transition-fast)}.bank-expand-btn:hover{color:var(--color-primary)}.bank-expand-btn.expanded{transform:rotate(90deg)}.bank-accounts-row>td{padding:0!important;border-bottom:1px solid var(--color-border, #e0e0e0)}.bank-accounts-wrapper{padding:var(--spacing-sm) var(--spacing-md) var(--spacing-sm) var(--spacing-3xl);background:var(--color-bg-secondary)}.bank-accounts-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.bank-accounts-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.bank-credential-badge{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary);background:var(--color-primary-light, rgba(52, 152, 219, .1));padding:2px var(--spacing-xs);border-radius:var(--radius-sm)}@media(max-width:768px){.settings-page{padding:var(--spacing-md)}.currency-dual-panel{grid-template-columns:1fr}.currency-inline-form{flex-direction:column;align-items:stretch}.currency-inline-form-field input.key-input,.currency-inline-form-field input.name-input{width:100%}.document-settings-layout{flex-direction:column}.document-settings-form-panel{flex:none;max-height:none}}.api-logs-row td{padding:0!important;border-bottom:2px solid var(--color-border, #e0e0e0)}.api-logs-panel{padding:var(--spacing-md) var(--spacing-lg);background:var(--color-bg-secondary, rgba(0, 0, 0, .02))}.api-logs-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:var(--spacing-sm)}.api-logs-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.api-logs-table th{text-align:left;padding:var(--spacing-xs) var(--spacing-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-bottom:1px solid var(--color-border, #e0e0e0)}.api-logs-table td{padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--color-border, #f0f0f0);color:var(--color-text-primary)}.api-log-status{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.api-log-status.success{background:#27ae601a;color:var(--color-success, #27ae60)}.api-log-status.failure{background:#e74c3c1a;color:var(--color-error, #e74c3c)}.api-logs-empty{text-align:center;padding:var(--spacing-md);color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-sm)}.api-logs-loading{text-align:center;padding:var(--spacing-md);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.api-settings-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl);overflow-x:auto}.api-settings-tab{padding:var(--spacing-sm) var(--spacing-lg);border:none;background:none;cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--transition-fast);white-space:nowrap}.api-settings-tab:hover{color:var(--color-text-primary)}.api-settings-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.general-settings-deploy-section{margin-top:var(--spacing-3xl);padding-top:var(--spacing-xl);border-top:1px solid var(--color-border)}.general-settings-deploy-btn{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:10px 24px;background:var(--color-warning, #e67e22);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast)}.general-settings-deploy-btn:hover:not(:disabled){background:#d35400}.general-settings-deploy-btn:disabled{opacity:.7;cursor:not-allowed}.general-settings-deploy-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:deploy-spin .8s linear infinite}@keyframes deploy-spin{to{transform:rotate(360deg)}}.bankop-page{padding:var(--spacing-lg)}.bankop-header{margin-bottom:var(--spacing-lg)}.bankop-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.bankop-error{background:#e74c3c1a;color:var(--color-danger, #e74c3c);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.bankop-success{background:#27ae601a;color:var(--color-success, #27ae60);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.bankop-toolbar{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);border-radius:var(--radius-md)}.bankop-filter-row{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;align-items:center}.bankop-filter-select{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);min-width:160px;background:var(--color-bg-primary, #fff)}.bankop-filter-input{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff)}.bankop-filter-input:first-of-type{flex:1;max-width:250px}.bankop-filter-amount{width:110px}.bankop-filter-date{width:140px}.bankop-filter-checkbox{display:flex;align-items:center;gap:6px;font-size:var(--font-size-sm);cursor:pointer;white-space:nowrap}.bankop-filter-btn{padding:6px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:opacity var(--transition-fast)}.bankop-filter-btn:hover{opacity:.9}.bankop-table-wrapper{overflow-x:auto}.bankop-table{width:100%;border-collapse:collapse}.bankop-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap}.bankop-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.bankop-table tbody tr:hover{background:#00000005}.bankop-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.bankop-sortable:hover{color:var(--color-text-primary)}.bankop-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.bankop-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.bankop-col-amount{text-align:right}.bankop-bank-cell{display:flex;flex-direction:column;gap:1px}.bankop-bank-label{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm)}.bankop-account-label{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.bankop-label-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bankop-amount{text-align:right;font-family:JetBrains Mono,monospace;font-weight:var(--font-weight-medium)}.bankop-credit{color:var(--color-success, #27ae60)}.bankop-debit{color:var(--color-danger, #e74c3c)}.bankop-alloc-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);background:#3498db1a;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.bankop-no-alloc{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-style:italic}.bankop-unallocated{background:#f1c40f0d}.bankop-actions-cell{white-space:nowrap}.bankop-action-btn{padding:3px 10px;font-size:var(--font-size-xs);border:1px solid var(--color-primary);background:transparent;color:var(--color-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.bankop-action-btn:hover{background:var(--color-primary);color:#fff}.bankop-rule-form-row{background:var(--color-bg-secondary, #f8f9fa)}.bankop-rule-form-row:hover{background:var(--color-bg-secondary, #f8f9fa)!important}.bankop-rule-form{padding:var(--spacing-md);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);margin:var(--spacing-xs) 0}.bankop-rule-form-header{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);margin-bottom:var(--spacing-sm);color:var(--color-text-primary)}.bankop-rule-form-fields{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-sm)}.bankop-rule-field{display:flex;flex-direction:column;gap:4px;min-width:180px}.bankop-rule-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.bankop-rule-field-check{min-width:auto;justify-content:flex-end}.bankop-rule-field-check label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary)}.bankop-rule-input,.bankop-rule-select{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff)}.bankop-rule-input{min-width:200px}.bankop-rule-form-actions{display:flex;gap:var(--spacing-sm)}.bankop-rule-save-btn{padding:6px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer}.bankop-rule-save-btn:disabled{opacity:.6;cursor:not-allowed}.bankop-rule-cancel-btn{padding:6px 16px;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer}.bankop-rule-entity-row{display:flex;align-items:center;gap:6px}.bankop-rule-entity-row .bankop-rule-select,.bankop-rule-entity-row .bankop-rule-input{flex:1}.bankop-new-entity-btn{padding:4px 10px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:var(--font-weight-bold);cursor:pointer;line-height:1}.bankop-new-entity-save-btn{padding:4px 10px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;white-space:nowrap}.bankop-new-entity-save-btn:disabled{opacity:.6;cursor:not-allowed}.bankop-new-entity-cancel-btn{padding:4px 8px;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-xs);cursor:pointer;line-height:1}.bankop-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary);font-style:italic}.bankop-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding:var(--spacing-sm) 0}.bankop-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.bankop-pagination-buttons{display:flex;gap:4px}.bankop-pagination-btn{padding:4px 10px;border:1px solid var(--color-border, #d0d0d0);background:var(--color-bg-primary, #fff);border-radius:var(--radius-sm);font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-fast)}.bankop-pagination-btn:hover:not(:disabled){background:var(--color-bg-secondary, #f0f0f0)}.bankop-pagination-btn.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.bankop-pagination-btn:disabled{opacity:.4;cursor:not-allowed}.bankop-frequency-cell{display:flex;flex-direction:column;gap:2px}.bankop-frequency-select{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-xs);background:var(--color-bg-primary, #fff);color:var(--color-text-primary, #333);min-width:120px}.bankop-frequency-suggestion{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.bankop-frequency-apply{background:none;border:none;padding:0;text-align:left;cursor:pointer;color:var(--color-primary, #2563eb);text-decoration:underline dotted}.bankop-frequency-apply:disabled{opacity:.5;cursor:wait}.allocrule-page{padding:var(--spacing-lg)}.allocrule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.allocrule-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.allocrule-error{background:#e74c3c1a;color:var(--color-danger, #e74c3c);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.allocrule-success{background:#27ae601a;color:var(--color-success, #27ae60);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.allocrule-form-panel{background:var(--color-bg-secondary, #f8f9fa);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.allocrule-form-fields{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-sm)}.allocrule-field{display:flex;flex-direction:column;gap:4px;min-width:180px}.allocrule-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.allocrule-field-check{min-width:auto;justify-content:flex-end}.allocrule-field-check label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-primary)}.allocrule-input,.allocrule-select{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);color:var(--color-text-primary, #333)}.allocrule-input{min-width:200px}.allocrule-form-actions{display:flex;gap:var(--spacing-sm)}.allocrule-table-wrapper{overflow-x:auto}.allocrule-table{width:100%;border-collapse:collapse}.allocrule-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap}.allocrule-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.allocrule-table tbody tr:hover{background:#00000005}.allocrule-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.allocrule-sortable:hover{color:var(--color-text-primary)}.allocrule-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.allocrule-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.allocrule-type-badge{display:inline-block;padding:2px 8px;border-radius:var(--radius-sm);background:#3498db1a;color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.allocrule-exact-badge{display:inline-block;padding:2px 6px;border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.allocrule-exact-yes{background:#27ae601a;color:var(--color-success, #27ae60)}.allocrule-exact-no{background:#95a5a626;color:var(--color-text-secondary)}.allocrule-actions{white-space:nowrap;display:flex;gap:6px}.allocrule-action-btn{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background var(--transition-fast)}.allocrule-action-btn:hover{background:#0000000f}.allocrule-action-btn.delete:hover{background:#e74c3c1a}.allocrule-inline-input{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);color:var(--color-text-primary, #333);width:100%;min-width:150px}.allocrule-inline-select{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);color:var(--color-text-primary, #333);min-width:140px}.allocrule-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary);font-style:italic}.allocrule-frequency-cell{display:flex;flex-direction:column;gap:2px}.allocrule-suggestion{color:var(--color-text-secondary);font-size:var(--font-size-xs);font-style:italic}.fy-page{padding:var(--spacing-lg)}.fy-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.fy-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.fy-error{background:#e74c3c1a;color:var(--color-danger, #e74c3c);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.fy-success{background:#27ae601a;color:var(--color-success, #27ae60);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.fy-form-panel{background:var(--color-bg-secondary, #f8f9fa);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.fy-form-fields{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-sm)}.fy-field{display:flex;flex-direction:column;gap:4px;min-width:160px}.fy-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.fy-input{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff)}.fy-form-actions{display:flex;gap:var(--spacing-sm)}.fy-table-wrapper{overflow-x:auto}.fy-table{width:100%;border-collapse:collapse}.fy-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap}.fy-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.fy-table tbody tr:hover{background:#00000005}.fy-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.fy-sortable:hover{color:var(--color-text-primary)}.fy-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.fy-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.fy-amount{font-variant-numeric:tabular-nums;text-align:right}.fy-actions{white-space:nowrap;display:flex;gap:6px}.fy-action-btn{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background var(--transition-fast)}.fy-action-btn:hover{background:#0000000f}.fy-action-btn.delete:hover{background:#e74c3c1a}.fy-inline-input{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);width:100%;min-width:130px}.fy-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary);font-style:italic}.fy-modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal, 2000);padding:var(--spacing-lg)}.fy-modal{background:var(--color-bg-primary, #fff);border-radius:var(--radius-md);box-shadow:var(--shadow-large);padding:var(--spacing-xl);max-width:560px;width:100%;max-height:80vh;overflow-y:auto}.fy-modal-title{margin:0 0 var(--spacing-md);font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.fy-balances-table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md)}.fy-balances-table th,.fy-balances-table td{padding:var(--spacing-xs) var(--spacing-sm);border-bottom:1px solid var(--color-border, #e5e7eb);text-align:left}.fy-balances-table tfoot th{border-top:2px solid var(--color-border, #d1d5db);border-bottom:none;font-weight:var(--font-weight-semibold);background:var(--color-bg-secondary, #f9fafb)}.db-backup{padding:var(--spacing-xl);max-width:1200px}.db-backup-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.db-backup-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.db-backup-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.db-backup-section{margin-bottom:var(--spacing-xl)}.db-backup-section-title{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}.db-backup-status-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-sm)}.db-backup-status-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.db-backup-status-check{color:var(--color-text-secondary)}.db-backup-status-ok{color:var(--color-success, #27ae60);font-weight:var(--font-weight-medium)}.db-backup-status-missing{color:var(--color-error);display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.db-backup-install-cmd{background:#e74c3c14;padding:2px 8px;border-radius:var(--radius-sm);font-family:monospace;font-size:var(--font-size-sm);color:var(--color-text-primary);-webkit-user-select:all;user-select:all}.db-backup-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.db-backup-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success, #27ae60);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.db-backup-loading,.db-backup-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.db-backup-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.db-backup-table{width:100%;border-collapse:collapse}.db-backup-table thead{background:var(--color-bg-secondary)}.db-backup-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.db-backup-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.db-backup-col-size{font-variant-numeric:tabular-nums;white-space:nowrap}.db-backup-col-filename{font-size:var(--font-size-sm);color:var(--color-text-secondary);max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.db-backup-col-actions{white-space:nowrap}.db-backup-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.db-backup-status-completed{background:#f0fdf4;color:#16a34a}.db-backup-status-failed{background:#e74c3c1a;color:var(--color-error)}.db-backup-status-progress{background:#3498db1a;color:#2980b9}.db-backup-type{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.db-backup-type-manual{background:#95a5a626;color:var(--color-text-secondary)}.db-backup-type-daily{background:#3498db1a;color:#2980b9}.db-backup-type-weekly{background:#9b59b61a;color:#8e44ad}.db-backup-btn-download{padding:2px 8px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:var(--spacing-xs);transition:all var(--transition-fast)}.db-backup-btn-download:hover{background:var(--color-primary);color:#fff}.db-backup-btn-delete{padding:2px 8px;border:1px solid var(--color-error);border-radius:var(--radius-sm);background:transparent;color:var(--color-error);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;transition:all var(--transition-fast)}.db-backup-btn-delete:hover:not(:disabled){background:var(--color-error);color:#fff}.db-backup-btn-delete:disabled{opacity:.5;cursor:not-allowed}.db-backup-pagination{display:flex;justify-content:center;align-items:center;gap:var(--spacing-md);margin-top:var(--spacing-md)}.db-backup-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.db-backup-schedule{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.db-backup-schedule-group{margin-bottom:var(--spacing-lg);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-border, #e0e0e0)}.db-backup-schedule-group:last-of-type{border-bottom:none;margin-bottom:var(--spacing-md);padding-bottom:0}.db-backup-schedule-label{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.db-backup-schedule-hint{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0}.db-backup-schedule-row{display:flex;align-items:center;gap:var(--spacing-lg);flex-wrap:wrap}.db-backup-toggle{display:flex;align-items:center;gap:var(--spacing-sm);cursor:pointer;font-size:var(--font-size-md);color:var(--color-text-primary)}.db-backup-toggle input[type=checkbox]{width:18px;height:18px;cursor:pointer}.db-backup-schedule-field{display:flex;align-items:center;gap:var(--spacing-sm)}.db-backup-schedule-field label{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.db-backup-time-input,.db-backup-select{padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--color-border, #e0e0e0);border-radius:var(--radius-sm);font-size:var(--font-size-md);background:var(--color-bg-primary);color:var(--color-text-primary)}.db-backup-schedule-actions{margin-top:var(--spacing-md)}@media(max-width:768px){.db-backup{padding:var(--spacing-md)}.db-backup-header{flex-direction:column;gap:var(--spacing-md)}.db-backup-schedule-row{flex-direction:column;align-items:flex-start}}.doc-import-container{padding:var(--spacing-xl);max-width:900px;margin:0 auto}.doc-import-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg)}.doc-import-error{padding:var(--spacing-md);background:var(--color-error-bg, #fef2f2);color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.doc-import-success{padding:var(--spacing-md);background:var(--color-success-bg, #f0fdf4);color:var(--color-success, #16a34a);border-radius:var(--radius-md);margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.doc-import-dropzone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-3xl) var(--spacing-xl);text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--color-bg-primary)}.doc-import-dropzone:hover{border-color:var(--color-primary);background:var(--color-bg-secondary)}.doc-import-dropzone-active{border-color:var(--color-primary);background:var(--color-bg-secondary);box-shadow:0 0 0 3px rgba(var(--color-primary-rgb, 59, 130, 246),.15)}.doc-import-dropzone-disabled{opacity:.6;cursor:not-allowed;pointer-events:none}.doc-import-dropzone-icon{font-size:40px;margin-bottom:var(--spacing-md)}.doc-import-dropzone-text{font-size:var(--font-size-md);color:var(--color-text-primary);font-weight:var(--font-weight-medium);margin-bottom:var(--spacing-xs)}.doc-import-dropzone-hint{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.doc-import-card{margin-top:var(--spacing-lg);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-bg-primary);overflow:hidden}.doc-import-card-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-border);background:var(--color-bg-secondary)}.doc-import-card-file{display:flex;flex-direction:column;gap:2px}.doc-import-card-filename{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-text-primary);word-break:break-all}.doc-import-card-size{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.doc-import-status{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);padding:var(--spacing-xs) var(--spacing-md);border-radius:20px;white-space:nowrap}.doc-import-status-pending,.doc-import-status-analyzing{background:#fef9c3;color:#854d0e}.doc-import-status-done{background:#dcfce7;color:#166534}.doc-import-status-error{background:#fef2f2;color:#991b1b}.doc-import-analysis-error{padding:var(--spacing-md) var(--spacing-lg);color:var(--color-error);font-size:var(--font-size-sm);background:#fef2f2}.doc-import-analysis{padding:var(--spacing-lg)}.doc-import-analysis-header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.doc-import-type-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px}.doc-import-type-supplier_invoice{background:#dbeafe;color:#1e40af}.doc-import-type-customer_invoice{background:#e0e7ff;color:#3730a3}.doc-import-type-payslip{background:#fce7f3;color:#9d174d}.doc-import-type-other{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.doc-import-confidence{font-size:var(--font-size-xs);color:var(--color-text-tertiary)}.doc-import-analysis-fields{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.doc-import-field{display:flex;flex-direction:column;gap:2px;padding:var(--spacing-sm);background:var(--color-bg-secondary);border-radius:var(--radius-sm)}.doc-import-field-label{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px}.doc-import-field-value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.doc-import-linked-badge{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-sm);color:#166534;background:#dcfce7;font-weight:var(--font-weight-medium)}.doc-import-linked-link{color:var(--color-primary);cursor:pointer}.doc-import-linked-link:hover{text-decoration:underline}.doc-import-matches{padding:var(--spacing-lg);border-top:1px solid var(--color-border)}.doc-import-matches-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md)}.doc-import-matches-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.doc-import-match-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.doc-import-match-item:hover{background:var(--color-bg-secondary)}.doc-import-match-selected{border-color:var(--color-primary);background:rgba(var(--color-primary-rgb, 59, 130, 246),.05)}.doc-import-match-item input[type=radio]{flex-shrink:0;accent-color:var(--color-primary)}.doc-import-match-info{flex:1;display:flex;flex-direction:column;gap:2px}.doc-import-match-type{font-size:var(--font-size-xs);color:var(--color-text-tertiary);text-transform:uppercase;letter-spacing:.3px}.doc-import-match-label{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.doc-import-match-confidence{font-size:var(--font-size-xs);color:var(--color-text-tertiary);font-weight:var(--font-weight-medium)}.doc-import-vat-note{margin-top:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:#fef9c3;color:#854d0e;border-radius:var(--radius-md);font-size:var(--font-size-xs)}.doc-import-matches-actions{margin-top:var(--spacing-md);display:flex;justify-content:flex-end}.doc-import-no-match{padding:var(--spacing-md) var(--spacing-lg);color:var(--color-text-tertiary);font-size:var(--font-size-sm);font-style:italic;border-top:1px solid var(--color-border)}.doc-import-preview{border-top:1px solid var(--color-border);padding:var(--spacing-md);background:var(--color-bg-secondary)}.doc-import-preview-iframe{width:100%;height:500px;border:1px solid var(--color-border);border-radius:var(--radius-md);background:#fff}@media(max-width:600px){.doc-import-container{padding:var(--spacing-md)}.doc-import-analysis-fields{grid-template-columns:1fr}.doc-import-card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}}.doc-list{padding:var(--spacing-xl)}.doc-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.doc-list-header-actions{display:flex;gap:var(--spacing-sm);align-items:center}.doc-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.doc-list-toolbar{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.doc-list-search{flex:1;max-width:300px}.doc-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.doc-list-search-input:focus{outline:none;border-color:var(--color-primary)}.doc-list-search-input::placeholder{color:var(--color-text-secondary)}.doc-list-filter{flex-shrink:0}.doc-list-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.doc-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.doc-list-loading,.doc-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.doc-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.doc-list-table{width:100%;border-collapse:collapse}.doc-list-table thead{background:var(--color-bg-secondary)}.doc-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.doc-list-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.doc-list-sortable:hover{color:var(--color-text-primary)}.doc-list-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.doc-list-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.doc-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.doc-list-row{transition:background-color var(--transition-fast)}.doc-list-row-clickable{cursor:pointer}.doc-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.doc-list-col-checkbox{width:40px;text-align:center;padding-left:var(--spacing-md)!important;padding-right:var(--spacing-xs)!important}.doc-list-col-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer;accent-color:var(--color-primary)}.doc-list-col-amount{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.doc-list-type-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.doc-list-type-supplier_invoice{background:#dbeafe;color:#1e40af}.doc-list-type-customer_invoice{background:#e0e7ff;color:#3730a3}.doc-list-type-payslip{background:#fce7f3;color:#9d174d}.doc-list-type-supplier_document{background:#dcfce7;color:#166534}.doc-list-type-quote_pdf{background:#fff7ed;color:#ea580c}.doc-list-type-other{background:#f3f4f6;color:#6b7280}.doc-list-status-badge{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.doc-list-status-pending,.doc-list-status-analyzing{background:#fef9c3;color:#854d0e}.doc-list-status-done{background:#dcfce7;color:#166534}.doc-list-status-error{background:#fef2f2;color:#991b1b}.doc-list-status-linked{background:#dbeafe;color:#1e40af}.doc-list-actions{white-space:nowrap}.doc-list-action-btn{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;width:32px;height:32px;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);background:var(--color-bg-primary);cursor:pointer;font-size:16px;transition:all var(--transition-fast);margin-right:var(--spacing-xs)}.doc-list-action-btn:last-child{margin-right:0}.doc-list-action-btn:hover{background:var(--color-bg-secondary)}.doc-list-action-view:hover{border-color:var(--color-primary);color:var(--color-primary)}.doc-list-action-delete:hover{border-color:var(--color-error);color:var(--color-error)}.doc-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.doc-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.doc-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.doc-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:768px){.doc-list{padding:var(--spacing-md)}.doc-list-toolbar{flex-direction:column;align-items:stretch}.doc-list-search{max-width:none}.doc-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.cp-page{padding:var(--spacing-lg)}.cp-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.cp-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.cp-error{background:#e74c3c1a;color:var(--color-danger, #e74c3c);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.cp-success{background:#27ae601a;color:var(--color-success, #27ae60);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.cp-form-panel{background:var(--color-bg-secondary, #f8f9fa);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);padding:var(--spacing-md);margin-bottom:var(--spacing-lg)}.cp-form-fields{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-sm)}.cp-field{display:flex;flex-direction:column;gap:4px;min-width:160px}.cp-field label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.cp-input,.cp-select{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff)}.cp-form-actions{display:flex;gap:var(--spacing-sm)}.cp-table-wrapper{overflow-x:auto}.cp-table{width:100%;border-collapse:collapse}.cp-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap}.cp-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.cp-table tbody tr:hover{background:#00000005}.cp-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.cp-sortable:hover{color:var(--color-text-primary)}.cp-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.cp-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.cp-actions{white-space:nowrap;display:flex;gap:6px}.cp-action-btn{background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;line-height:1;color:var(--color-text-secondary);transition:background var(--transition-fast)}.cp-action-btn:hover{background:#0000000f}.cp-action-btn.delete:hover{background:#e74c3c1a}.cp-inline-input{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);width:100%;min-width:130px}.cp-inline-select{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);width:100%}.cp-type-badge{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-primary);background:var(--color-primary-light, rgba(52, 152, 219, .1));padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.cp-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary);font-style:italic}.cc-page{padding:var(--spacing-lg)}.cc-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.cc-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.cc-error{background:#e74c3c1a;color:var(--color-danger, #e74c3c);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.cc-success{background:#27ae601a;color:var(--color-success, #27ae60);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.cc-table-wrapper{overflow-x:auto}.cc-table{width:100%;border-collapse:collapse}.cc-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:left;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap}.cc-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.cc-table tbody tr:hover{background:#00000005}.cc-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.cc-sortable:hover{color:var(--color-text-primary)}.cc-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.cc-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.cc-quantity{font-variant-numeric:tabular-nums;text-align:right}.cc-actions{white-space:nowrap;display:flex;gap:6px}.cc-action-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:2px 6px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.cc-action-btn:hover{background:#0000000f}.cc-action-btn.delete:hover{background:#e74c3c1a}.cc-inline-input{padding:4px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff);width:80px;text-align:right}.cc-type-badge{font-weight:var(--font-weight-semibold);font-size:var(--font-size-sm);color:var(--color-primary);background:var(--color-primary-light, rgba(52, 152, 219, .1));padding:2px var(--spacing-sm);border-radius:var(--radius-sm)}.cc-empty{text-align:center;padding:var(--spacing-xl)!important;color:var(--color-text-secondary);font-style:italic}.mpi-page{padding:var(--spacing-lg)}.mpi-header{margin-bottom:var(--spacing-lg)}.mpi-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.mpi-filters{display:flex;gap:var(--spacing-md);flex-wrap:wrap;align-items:flex-end;margin-bottom:var(--spacing-lg)}.mpi-filter{display:flex;flex-direction:column;gap:4px;min-width:180px}.mpi-filter label{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.mpi-select{padding:6px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);font-size:var(--font-size-sm);background:var(--color-bg-primary, #fff)}.mpi-error{background:#e74c3c1a;color:var(--color-danger, #e74c3c);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.mpi-success{background:#2ecc711f;color:var(--color-success, #27ae60);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-md)}.mpi-filter-action{min-width:auto;margin-left:auto}.mpi-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary);font-style:italic}.mpi-table-wrapper{overflow-x:auto}.mpi-table{width:100%;border-collapse:collapse}.mpi-table th{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary);border-bottom:2px solid var(--color-border, #d0d0d0);white-space:nowrap}.mpi-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-light, #eee);font-size:var(--font-size-sm);vertical-align:middle}.mpi-row-clickable{cursor:pointer;transition:background var(--transition-fast, .15s)}.mpi-row-clickable:hover{background:#0000000a}.mpi-row-selected{background:#3498db14!important}.mpi-row-selected .mpi-sticky-col{background:#3498db14}.mpi-sticky-col{position:sticky;left:0;background:var(--color-bg-primary, #fff);z-index:1;text-align:left}.mpi-table thead .mpi-sticky-col{background:var(--color-bg-secondary, #f8f9fa);z-index:2}.mpi-contributor-name{font-weight:var(--font-weight-medium);white-space:nowrap}.mpi-value-cell{text-align:center;font-variant-numeric:tabular-nums;white-space:nowrap}.mpi-value{color:var(--color-text-primary)}.mpi-detail-btn{background:none;border:none;cursor:pointer;font-size:14px;color:var(--color-primary);margin-left:4px;padding:0 2px;vertical-align:middle;opacity:.7;transition:opacity var(--transition-fast)}.mpi-detail-btn:hover{opacity:1}.mpi-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.mpi-popup{background:var(--color-bg-primary, #fff);border-radius:var(--radius-md);padding:var(--spacing-lg);min-width:300px;max-width:480px;box-shadow:0 8px 32px #00000026}.mpi-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-sm)}.mpi-popup-header h3{margin:0;font-size:16px;font-weight:var(--font-weight-semibold);color:var(--color-primary)}.mpi-popup-close{background:none;border:none;cursor:pointer;font-size:18px;color:var(--color-text-secondary);padding:2px 6px;border-radius:var(--radius-sm)}.mpi-popup-close:hover{background:#0000000f}.mpi-popup-subtitle{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0 0 var(--spacing-md)}.mpi-popup-days{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:var(--spacing-md)}.mpi-day-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;padding:6px 8px;background:var(--color-primary-light, rgba(52, 152, 219, .1));color:var(--color-primary);font-size:var(--font-size-sm);border-radius:var(--radius-sm);gap:2px}.mpi-day-date{font-weight:var(--font-weight-medium);white-space:nowrap}.mpi-day-value{font-weight:var(--font-weight-semibold);font-size:var(--font-size-xs);opacity:.8}.mpi-popup-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);margin:0;text-align:right}.mcal{margin-top:var(--spacing-lg);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-md);background:var(--color-bg-primary, #fff);overflow:hidden}.mcal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary, #f8f9fa);border-bottom:1px solid var(--color-border, #d0d0d0)}.mcal-title{margin:0;font-size:16px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary)}.mcal-close{background:none;border:none;cursor:pointer;font-size:18px;color:var(--color-text-secondary);padding:2px 6px;border-radius:var(--radius-sm)}.mcal-close:hover{background:#0000000f}.mcal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--color-border-light, #eee)}.mcal-grid-header{padding:var(--spacing-xs) var(--spacing-sm);text-align:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;color:var(--color-text-secondary);background:var(--color-bg-secondary, #f8f9fa)}.mcal-grid-cell{background:var(--color-bg-primary, #fff);min-height:80px;padding:4px;display:flex;flex-direction:column;gap:2px}.mcal-grid-empty{background:var(--color-bg-secondary, #f8f9fa);min-height:80px}.mcal-grid-weekend{background:#f7f7f7}.mcal-grid-holiday{color:var(--color-error)}.mcal-grid-day-num{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);margin-bottom:2px}.mcal-entry{padding:2px 4px;border-radius:3px;border-left:3px solid #9e9e9e;font-size:11px;display:flex;justify-content:space-between;align-items:center;gap:4px;line-height:1.3;overflow:visible;position:relative}.mcal-entry-absence{cursor:pointer}.mcal-entry-absence:hover{outline:2px solid var(--color-primary, #3b82f6);outline-offset:-1px}.mcal-reassign-dropdown{position:absolute;top:100%;left:0;z-index:var(--z-dropdown, 1000);background:var(--color-bg-primary, #fff);border:1px solid var(--color-border, #d0d0d0);border-radius:var(--radius-sm);box-shadow:var(--shadow-medium);min-width:180px;max-height:200px;overflow-y:auto;padding:4px 0}.mcal-reassign-option{display:flex;align-items:center;gap:6px;width:100%;padding:6px 10px;border:none;background:none;font-size:var(--font-size-xs);color:var(--color-text-primary);cursor:pointer;text-align:left;white-space:nowrap}.mcal-reassign-option:hover{background:var(--color-bg-secondary, #f5f5f5)}.mcal-reassign-color{width:10px;height:10px;border-radius:2px;flex-shrink:0}.mcal-entry-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.mcal-entry-hours{font-weight:var(--font-weight-semibold);white-space:nowrap;color:#333;font-size:10px}.mcal-legend{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-top:1px solid var(--color-border, #d0d0d0)}.mcal-legend-item{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.mcal-legend-color{width:12px;height:12px;border-radius:2px;flex-shrink:0}.mcal-legend-label{white-space:nowrap}.mcal-loading,.mcal-empty{padding:var(--spacing-lg);text-align:center;font-size:var(--font-size-sm);color:var(--color-text-secondary);font-style:italic}@media(max-width:768px){.mcal-grid-cell{min-height:60px;padding:2px}.mcal-grid-empty{min-height:60px}.mcal-entry-name{display:none}}.active-contract-list{padding:var(--spacing-xl)}.active-contract-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.active-contract-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.active-contract-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.active-contract-list-search{flex:1;max-width:300px}.active-contract-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.active-contract-list-search-input:focus{outline:none;border-color:var(--color-primary)}.active-contract-list-search-input::placeholder{color:var(--color-text-secondary)}.active-contract-list-status-filter,.active-contract-list-date-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary)}.active-contract-list-date-input:focus{outline:none;border-color:var(--color-primary)}.active-contract-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.active-contract-list-loading,.active-contract-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.active-contract-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.active-contract-list-table{width:100%;border-collapse:collapse}.active-contract-list-table thead{background:var(--color-bg-secondary)}.active-contract-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.active-contract-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.active-contract-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.active-contract-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.active-contract-list-cell-customer{font-weight:var(--font-weight-medium)}.active-contract-list-cell-price{font-weight:var(--font-weight-medium);white-space:nowrap}.active-contract-list-cell-contributors{max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.active-contract-list-cell-treasury{text-align:center}.active-contract-list-cell-treasury input[type=checkbox]{accent-color:var(--color-primary);cursor:pointer;width:16px;height:16px}.active-contract-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.active-contract-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.active-contract-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.active-contract-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:1024px){.active-contract-list-cell-contributors{display:none}.active-contract-list-table th:nth-child(5),.active-contract-list-table td:nth-child(5){display:none}}@media(max-width:768px){.active-contract-list{padding:var(--spacing-md)}.active-contract-list-toolbar{flex-direction:column;align-items:stretch}.active-contract-list-search{max-width:none}.active-contract-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.cp-list{padding:var(--spacing-xl)}.cp-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.cp-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.cp-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.cp-list-toolbar{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.cp-list-search{flex:1;max-width:300px}.cp-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.cp-list-search-input:focus{outline:none;border-color:var(--color-primary)}.cp-list-search-input::placeholder{color:var(--color-text-secondary)}.cp-list-date-filters{display:flex;align-items:center;gap:var(--spacing-xs)}.cp-list-date-input{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary)}.cp-list-date-sep{color:var(--color-text-secondary)}.cp-list-status-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.cp-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.cp-list-loading,.cp-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.cp-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.cp-list-table{width:100%;border-collapse:collapse}.cp-list-table thead{background:var(--color-bg-secondary)}.cp-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.cp-list-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.cp-list-sortable:hover{color:var(--color-text-primary)}.cp-list-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.cp-list-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.cp-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.cp-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.cp-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.cp-list-col-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cp-list-total-row{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.cp-list-total-label{padding:var(--spacing-md) var(--spacing-lg);text-align:right;font-size:var(--font-size-md);color:var(--color-text-primary);border-top:2px solid var(--color-border, #e0e0e0)}.cp-list-total-amount{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-top:2px solid var(--color-border, #e0e0e0)}.cp-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.cp-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cp-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.cp-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}@media(max-width:768px){.cp-list{padding:var(--spacing-md)}.cp-list-toolbar{flex-direction:column;align-items:stretch}.cp-list-search{max-width:none}.cp-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.cp-list-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.cp-list-status-draft{background:#f3f4f6;color:#6b7280}.cp-list-status-partial{background:#fff7ed;color:#ea580c}.cp-list-status-validated{background:#f0fdf4;color:#16a34a}.cpd{padding:var(--spacing-xl);max-width:1000px}.cpd-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.cpd-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.cpd-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.cpd-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary)}.cpd-error{text-align:center;padding:var(--spacing-3xl);color:var(--color-error)}.cpd-error-msg{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.cpd-info{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-xl);display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.cpd-info-row{display:flex;flex-direction:column;gap:2px}.cpd-info-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;font-weight:var(--font-weight-medium)}.cpd-info-value{font-size:var(--font-size-md);color:var(--color-text-primary)}.cpd-amount{font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums}.cpd-customer-link{color:var(--color-primary);cursor:pointer}.cpd-customer-link:hover{text-decoration:underline}.cpd-section{margin-bottom:var(--spacing-xl)}.cpd-section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.cpd-section-title{font-size:18px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.cpd-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary);font-size:var(--font-size-md);background:var(--color-bg-secondary);border-radius:var(--radius-md)}.cpd-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.cpd-table{width:100%;border-collapse:collapse}.cpd-table thead{background:var(--color-bg-secondary)}.cpd-table th{padding:var(--spacing-sm) var(--spacing-md);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.cpd-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.cpd-cell-number{font-weight:var(--font-weight-medium)}.cpd-col-amount{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cpd-cell-actions{white-space:nowrap}.cpd-btn-dissociate{padding:2px 8px;border:1px solid var(--color-error);border-radius:var(--radius-sm);background:transparent;color:var(--color-error);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.cpd-btn-dissociate:hover:not(:disabled){background:var(--color-error);color:#fff}.cpd-btn-dissociate:disabled{opacity:.5;cursor:not-allowed}.cpd-btn-associate{padding:2px 10px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.cpd-btn-associate:hover:not(:disabled){background:var(--color-primary);color:#fff}.cpd-btn-associate:disabled{opacity:.5;cursor:not-allowed}.cpd-total-row{background:var(--color-bg-secondary);font-weight:var(--font-weight-semibold)}.cpd-total-label{text-align:right;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-md);color:var(--color-text-primary);border-top:2px solid var(--color-border, #e0e0e0)}.cpd-total-amount{border-top:2px solid var(--color-border, #e0e0e0)}.cpd-remaining-row{font-weight:var(--font-weight-medium)}.cpd-remaining-row td{border-top:none}.cpd-negative{color:var(--color-error)}.cpd-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.cpd-status-draft{background:#f3f4f6;color:#6b7280}.cpd-status-partial{background:#fff7ed;color:#ea580c}.cpd-status-validated{background:#f0fdf4;color:#16a34a}.cpd-section-actions{display:flex;gap:var(--spacing-sm);align-items:center}.cpd-picker{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.cpd-picker .cpd-section-title{margin-bottom:var(--spacing-md)}.cpd-justificatifs{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--spacing-lg)}.cpd-justificatifs .cpd-section-title{margin-bottom:var(--spacing-md)}.cpd-btn-pdf{padding:2px 10px;border:1px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;transition:all var(--transition-fast)}.cpd-btn-pdf:hover{background:var(--color-primary);color:#fff}@media(max-width:768px){.cpd{padding:var(--spacing-md)}.cpd-info{grid-template-columns:1fr}}.user-list{padding:var(--spacing-xl)}.user-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.user-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.user-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.user-list-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl)}.user-list-tab{padding:var(--spacing-sm) var(--spacing-lg);border:none;background:none;font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color var(--transition-fast),border-color var(--transition-fast)}.user-list-tab:hover{color:var(--color-primary)}.user-list-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-medium)}.user-list-toolbar-with-btn{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-lg)}.user-list-toolbar{display:flex;gap:var(--spacing-lg);align-items:center;margin-bottom:var(--spacing-lg)}.user-list-search{flex:1;max-width:400px}.user-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.user-list-search-input:focus{outline:none;border-color:var(--color-primary)}.user-list-search-input::placeholder{color:var(--color-text-secondary)}.user-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.user-list-loading,.user-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.user-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.user-list-table{width:100%;border-collapse:collapse}.user-list-table thead{background:var(--color-bg-secondary)}.user-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.user-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.user-list-row{transition:background-color var(--transition-fast);cursor:pointer}.user-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.user-list-cell-name{font-weight:var(--font-weight-medium)}.user-list-status{display:inline-block;padding:2px var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium)}.user-list-status-active{background:#27ae601a;color:var(--color-success)}.user-list-status-disabled{background:#95a5a626;color:var(--color-text-secondary)}.user-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.user-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.user-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.user-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.user-list-pagination-btn{padding:var(--spacing-xs) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);background:var(--color-bg-primary);color:var(--color-text-primary);font-size:var(--font-size-sm);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast)}.user-list-pagination-btn:hover:not(:disabled){background:var(--color-bg-secondary);border-color:var(--color-primary)}.user-list-pagination-btn:disabled{opacity:.5;cursor:not-allowed}.user-list-delete-btn{background:none;border:none;cursor:pointer;font-size:var(--font-size-md);padding:var(--spacing-xs);border-radius:var(--radius-sm);opacity:.5;transition:opacity var(--transition-fast)}.user-list-delete-btn:hover{opacity:1}.user-list-modal-overlay{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.user-list-modal{background:var(--color-bg-primary);border-radius:var(--radius-lg);padding:var(--spacing-xl);width:100%;max-width:480px;box-shadow:0 8px 32px #00000026}.user-list-modal-title{font-size:20px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}.user-list-modal-fields{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.user-list-modal-field label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.user-list-modal-field input,.user-list-modal-field select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.user-list-modal-field input:focus,.user-list-modal-field select:focus{outline:none;border-color:var(--color-primary)}.user-list-modal-actions{display:flex;gap:var(--spacing-md)}@media(max-width:768px){.user-list{padding:var(--spacing-md)}.user-list-header{flex-direction:column;gap:var(--spacing-md)}.user-list-toolbar{flex-direction:column;align-items:stretch}.user-list-search{max-width:none}.user-list-table th:nth-child(4),.user-list-table td:nth-child(4){display:none}.user-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}@media(max-width:480px){.user-list-table th:nth-child(2),.user-list-table td:nth-child(2),.user-list-table th:nth-child(3),.user-list-table td:nth-child(3){display:none}}.user-form{padding:var(--spacing-xl)}.user-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary)}.user-form-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.user-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.user-form-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.user-form-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border, #e0e0e0);margin-bottom:var(--spacing-xl)}.user-form-tab{padding:var(--spacing-sm) var(--spacing-lg);border:none;background:none;font-size:var(--font-size-md);color:var(--color-text-secondary);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color var(--transition-fast),border-color var(--transition-fast)}.user-form-tab:hover{color:var(--color-primary)}.user-form-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:var(--font-weight-medium)}.user-form-section{max-width:700px}.user-form-error-msg{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.user-form-success-msg{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.user-form-fields{display:flex;flex-direction:column;gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.user-form-field label{display:block;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--spacing-xs)}.user-form-field input[type=text],.user-form-field input[type=email],.user-form-field select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.user-form-field input:focus,.user-form-field select:focus{outline:none;border-color:var(--color-primary)}.user-form-checkbox-field{margin-top:var(--spacing-xs)}.user-form-checkbox-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-md);color:var(--color-text-primary);cursor:pointer}.user-form-checkbox-label input[type=checkbox]{accent-color:var(--color-primary)}.user-form-field-hint{margin:4px 0 0 24px;font-size:var(--font-size-xs);color:var(--color-text-secondary)}.user-form-actions{display:flex;gap:var(--spacing-md);margin-top:var(--spacing-lg)}.user-form-section-wide{max-width:none}.user-form-contributor-search{margin-bottom:var(--spacing-lg);max-width:400px}.user-form-contributor-search input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.user-form-contributor-search input:focus{outline:none;border-color:var(--color-primary)}.user-form-col-checkbox{width:40px;text-align:center}.user-form-row-assigned{background:#3498db0a}.user-form-contributor-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.user-form-contributor-table{width:100%;border-collapse:collapse}.user-form-contributor-table thead{background:var(--color-bg-secondary)}.user-form-contributor-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.user-form-contributor-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.user-form-empty{text-align:center;padding:var(--spacing-xl);color:var(--color-text-secondary)}.user-form-error{text-align:center;padding:var(--spacing-3xl);color:var(--color-error);font-size:var(--font-size-lg)}@media(max-width:768px){.user-form{padding:var(--spacing-md)}.user-form-header{flex-direction:column;gap:var(--spacing-md)}.user-form-section,.user-form-contributor-search{max-width:none}}.profile-form{padding:var(--spacing-xl)}.profile-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary)}.profile-form-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.profile-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.profile-form-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.profile-form-header-actions{display:flex;gap:var(--spacing-md)}.profile-form-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.profile-form-success{padding:var(--spacing-md);background:#27ae601a;color:var(--color-success);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.profile-form-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.profile-form-table{width:100%;border-collapse:collapse}.profile-form-table thead{background:var(--color-bg-secondary)}.profile-form-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0)}.profile-form-col-name{width:auto}.profile-form-col-level{width:100px;text-align:center!important}.profile-form-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.profile-form-table td.profile-form-col-level{text-align:center}.profile-form-table td.profile-form-col-level input[type=radio]{accent-color:var(--color-primary);cursor:pointer;width:16px;height:16px}.profile-form-module-row{background:var(--color-bg-tertiary)}.profile-form-module-name{font-weight:var(--font-weight-semibold)}.profile-form-row-icon{vertical-align:middle;margin-right:6px;flex-shrink:0}.profile-form-menu-name{padding-left:calc(var(--spacing-lg) + 24px)!important;display:flex;align-items:center;gap:var(--spacing-xs)}.profile-form-default-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-tertiary, #ccc);padding:2px;border-radius:var(--radius-sm);margin-left:auto;opacity:.4;transition:opacity .15s,color .15s}.profile-form-default-btn:hover,.profile-form-default-btn.active{opacity:1;color:var(--color-primary)}.profile-form-menu-row:hover,.profile-form-feature-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .03))}.profile-form-feature-row{background:var(--color-bg-secondary);font-style:italic}.profile-form-feature-row .profile-form-row-icon{color:var(--color-text-secondary)}.profile-form-toggle{position:relative;display:inline-block;width:36px;height:20px;cursor:pointer}.profile-form-toggle input{opacity:0;width:0;height:0}.profile-form-toggle-slider{position:absolute;inset:0;background-color:var(--color-border, #ccc);border-radius:20px;transition:background-color .2s}.profile-form-toggle-slider:before{content:"";position:absolute;height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform .2s}.profile-form-toggle input:checked+.profile-form-toggle-slider{background-color:var(--color-primary)}.profile-form-toggle input:checked+.profile-form-toggle-slider:before{transform:translate(16px)}@media(max-width:768px){.profile-form{padding:var(--spacing-md)}.profile-form-header{flex-direction:column;gap:var(--spacing-md)}.profile-form-col-level{width:70px}.profile-form-menu-name{padding-left:calc(var(--spacing-md) + 16px)!important}}.ref-list{padding:var(--spacing-xl)}.ref-list-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl)}.ref-list-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}.ref-list-subtitle{font-size:var(--font-size-md);color:var(--color-text-secondary);margin:0}.ref-list-toolbar{display:flex;gap:var(--spacing-md);align-items:center;margin-bottom:var(--spacing-lg);flex-wrap:wrap}.ref-list-search{flex:1;max-width:300px}.ref-list-search-input{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);transition:border-color var(--transition-fast)}.ref-list-search-input:focus{outline:none;border-color:var(--color-primary)}.ref-list-search-input::placeholder{color:var(--color-text-secondary)}.ref-list-status-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border, #ddd);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-text-primary);background:var(--color-bg-primary);cursor:pointer}.ref-list-error{padding:var(--spacing-md);background:#e74c3c1a;color:var(--color-error);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.ref-list-loading,.ref-list-empty{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.ref-list-table-wrapper{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border, #e0e0e0)}.ref-list-table{width:100%;border-collapse:collapse}.ref-list-table thead{background:var(--color-bg-secondary)}.ref-list-table th{padding:var(--spacing-md) var(--spacing-lg);text-align:left;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--color-border, #e0e0e0);white-space:nowrap}.ref-list-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color var(--transition-fast)}.ref-list-sortable:hover{color:var(--color-text-primary)}.ref-list-sort-icon{font-size:var(--font-size-xs);margin-left:4px;color:var(--color-primary)}.ref-list-sort-icon.inactive{color:var(--color-text-secondary);opacity:.4}.ref-list-table td{padding:var(--spacing-md) var(--spacing-lg);font-size:var(--font-size-md);color:var(--color-text-primary);border-bottom:1px solid var(--color-border, #f0f0f0)}.ref-list-row{cursor:pointer;transition:background-color var(--transition-fast)}.ref-list-row:hover{background:var(--color-primary-light, rgba(52, 152, 219, .05))}.ref-list-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:var(--spacing-lg);padding-top:var(--spacing-lg)}.ref-list-pagination-info{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ref-list-pagination-controls{display:flex;align-items:center;gap:var(--spacing-md)}.ref-list-pagination-page{font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ref-list-status{display:inline-block;padding:2px 10px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap}.ref-list-status-DRAFT{background:#f3f4f6;color:#6b7280}.ref-list-status-REVIEW{background:#eff6ff;color:#2563eb}.ref-list-status-COMMUNICATION{background:#fefce8;color:#ca8a04}.ref-list-status-VOTING{background:#fff7ed;color:#ea580c}.ref-list-status-VALIDATED{background:#f0fdf4;color:#16a34a}.ref-list-status-REJECTED{background:#fef2f2;color:#dc2626}.ref-list-status-DEPOSITED{background:#f0f9ff;color:#0284c7}.ref-list-status-DENOUNCED{background:#faf5ff;color:#7c3aed}.ref-list-specimen-badge{display:inline-block;padding:2px 6px;border-radius:4px;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);letter-spacing:.5px;background:#fef3c7;color:#92400e;border:1px dashed #f59e0b;margin-right:var(--spacing-xs);vertical-align:middle}.ref-list-add-btn{padding:var(--spacing-sm) var(--spacing-lg);background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.ref-list-add-btn:hover{background:var(--color-primary-dark, #2563eb)}@media(max-width:768px){.ref-list{padding:var(--spacing-md)}.ref-list-toolbar{flex-direction:column;align-items:stretch}.ref-list-search{max-width:none}.ref-list-pagination{flex-direction:column;gap:var(--spacing-md);align-items:center}}.ai-chat-toggle{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:var(--radius-lg);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:all var(--transition-normal);box-shadow:0 2px 8px #667eea4d}.ai-chat-toggle:hover{transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.ai-chat-toggle-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#fff3;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:-.5px}.ai-chat-panel{border:2px solid #667eea;border-radius:var(--radius-lg);overflow:hidden;display:flex;flex-direction:column;height:500px;background:var(--color-bg-primary)}.ai-chat-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.ai-chat-header-left{display:flex;align-items:center;gap:8px}.ai-chat-header-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#fff3;border-radius:6px;font-size:12px;font-weight:700}.ai-chat-header-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.ai-chat-header-actions{display:flex;gap:8px;align-items:center}.ai-chat-header-btn{background:#fff3;border:none;color:#fff;padding:4px 10px;border-radius:4px;font-size:var(--font-size-xs);cursor:pointer}.ai-chat-header-btn:hover{background:#ffffff4d}.ai-chat-close{font-size:18px;padding:2px 8px;line-height:1}.ai-chat-messages{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px}.ai-chat-welcome{text-align:center;padding:24px 16px;color:var(--color-text-secondary)}.ai-chat-welcome p{margin:0 0 8px;font-size:var(--font-size-sm)}.ai-chat-welcome-hint{font-size:var(--font-size-xs);font-style:italic}.ai-chat-msg{max-width:85%}.ai-chat-msg-user{align-self:flex-end}.ai-chat-msg-assistant{align-self:flex-start}.ai-chat-msg-label{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-bottom:4px;font-weight:var(--font-weight-semibold)}.ai-chat-msg-user .ai-chat-msg-label{text-align:right}.ai-chat-msg-content{padding:10px 14px;border-radius:12px;font-size:var(--font-size-sm);line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.ai-chat-msg-user .ai-chat-msg-content{background:#667eea;color:#fff;border-bottom-right-radius:4px}.ai-chat-msg-assistant .ai-chat-msg-content{background:var(--color-bg-secondary);color:var(--color-text-primary);border-bottom-left-radius:4px;border:1px solid var(--color-border)}.ai-chat-msg-actions{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap}.ai-chat-apply-btn{padding:4px 10px;background:var(--color-bg-primary);border:1px solid #667eea;color:#667eea;border-radius:4px;font-size:var(--font-size-xs);cursor:pointer;transition:all var(--transition-fast)}.ai-chat-apply-btn:hover{background:#667eea;color:#fff}.ai-chat-typing{display:flex;gap:4px;padding:12px 16px!important}.ai-chat-typing span{width:8px;height:8px;background:var(--color-text-secondary);border-radius:50%;animation:ai-chat-bounce 1.4s infinite ease-in-out both}.ai-chat-typing span:nth-child(1){animation-delay:-.32s}.ai-chat-typing span:nth-child(2){animation-delay:-.16s}@keyframes ai-chat-bounce{0%,80%,to{transform:scale(.6);opacity:.4}40%{transform:scale(1);opacity:1}}.ai-chat-error{padding:8px 12px;background:#fff5f5;border:1px solid #fed7d7;border-radius:6px;color:#c53030;font-size:var(--font-size-xs)}.ai-chat-input-area{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border);background:var(--color-bg-primary)}.ai-chat-textarea{flex:1;resize:none;border:1px solid var(--color-border);border-radius:8px;padding:8px 12px;font-size:var(--font-size-sm);font-family:inherit;line-height:1.4;outline:none;transition:border-color var(--transition-fast)}.ai-chat-textarea:focus{border-color:#667eea}.ai-chat-send{padding:8px 16px;background:#667eea;color:#fff;border:none;border-radius:8px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;align-self:flex-end;transition:background var(--transition-fast)}.ai-chat-send:hover:not(:disabled){background:#5a6fd6}.ai-chat-send:disabled{opacity:.5;cursor:not-allowed}.ref-form{padding:var(--spacing-xl);max-width:1000px}.ref-form-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl);gap:var(--spacing-md)}.ref-form-title{font-size:24px;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.ref-form-back{padding:var(--spacing-xs) var(--spacing-md);background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-size-sm);white-space:nowrap}.ref-form-back:hover{background:var(--color-bg-secondary)}.ref-form-status{display:inline-block;padding:4px 14px;border-radius:12px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:.3px;border:1px solid currentColor}.ref-form-status-DRAFT{background:#f3f4f6;color:#4b5563;border-color:#9ca3af}.ref-form-status-REVIEW{background:#eff6ff;color:#2563eb}.ref-form-status-COMMUNICATION{background:#fefce8;color:#ca8a04}.ref-form-status-VOTING{background:#fff7ed;color:#ea580c}.ref-form-status-VALIDATED{background:#f0fdf4;color:#16a34a}.ref-form-status-REJECTED{background:#fef2f2;color:#dc2626}.ref-form-status-DEPOSITED{background:#f0f9ff;color:#0284c7}.ref-form-status-DENOUNCED{background:#faf5ff;color:#7c3aed}.ref-form-specimen-badge{display:inline-block;padding:4px 12px;border-radius:12px;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);letter-spacing:1px;background:#fef3c7;color:#92400e;border:2px dashed #f59e0b}.ref-form-error,.ref-form-success{padding:var(--spacing-md);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);font-size:var(--font-size-md)}.ref-form-error{background:#e74c3c1a;color:var(--color-error)}.ref-form-success{background:#2ecc711a;color:#16a34a}.ref-form-section{background:var(--color-bg-primary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.ref-form-checklist{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ref-form-checklist-item{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm)}.ref-form-checklist-ok{background:#f0fff4;border:1px solid #c6f6d5}.ref-form-checklist-missing{background:#fff5f5;border:1px solid #fed7d7}.ref-form-checklist-icon{font-weight:var(--font-weight-semibold);font-size:var(--font-size-md);width:20px;text-align:center}.ref-form-checklist-ok .ref-form-checklist-icon{color:#16a34a}.ref-form-checklist-missing .ref-form-checklist-icon{color:#dc2626}.ref-form-checklist-label{flex:1;color:var(--color-text-primary)}.ref-form-info-banner{background:#edf2f7;border-left:4px solid #3182ce;padding:var(--spacing-md) var(--spacing-lg)}.ref-form-info-banner p{margin:0;color:#2d3748;font-size:var(--font-size-sm);line-height:1.6}.ref-form-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0;padding-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border)}.ref-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.ref-form-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.ref-form-field-wide{grid-column:1 / -1}.ref-form-label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary)}.ref-form-input,.ref-form-select{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary)}.ref-form-input:focus,.ref-form-select:focus{outline:none;border-color:var(--color-primary)}.ref-form-input:disabled,.ref-form-select:disabled{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.ref-form-textarea{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md);color:var(--color-text-primary);background:var(--color-bg-primary);resize:vertical;min-height:100px;font-family:inherit}.ref-form-textarea:focus{outline:none;border-color:var(--color-primary)}.ref-form-textarea:disabled{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.ref-form-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap;margin-top:var(--spacing-lg)}.ref-form-btn{padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);cursor:pointer;transition:background var(--transition-fast);white-space:nowrap}.ref-form-btn:disabled{opacity:.5;cursor:not-allowed}.ref-form-btn-primary{background:var(--color-primary);color:#fff}.ref-form-btn-primary:hover:not(:disabled){background:var(--color-primary-dark, #2563eb)}.ref-form-btn-secondary{background:var(--color-bg-secondary);color:var(--color-text-primary);border:1px solid var(--color-border)}.ref-form-btn-secondary:hover:not(:disabled){background:var(--color-border)}.ref-form-btn-success{background:#16a34a;color:#fff}.ref-form-btn-success:hover:not(:disabled){background:#15803d}.ref-form-btn-warning{background:#ea580c;color:#fff}.ref-form-btn-warning:hover:not(:disabled){background:#c2410c}.ref-form-btn-danger{background:#dc2626;color:#fff}.ref-form-btn-danger:hover:not(:disabled){background:#b91c1c}.ref-form-voters-list{list-style:none;padding:0;margin:var(--spacing-md) 0 0 0}.ref-form-voter-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border)}.ref-form-voter-item:last-child{border-bottom:none}.ref-form-voter-name{font-size:var(--font-size-md);color:var(--color-text-primary)}.ref-form-voter-voted{font-size:var(--font-size-xs);color:#16a34a;font-weight:var(--font-weight-medium)}.ref-form-voter-not-voted{font-size:var(--font-size-xs);color:var(--color-text-secondary)}.ref-form-voter-date{font-size:var(--font-size-xs);color:var(--color-text-secondary);font-weight:400}.ref-form-no-email{color:var(--color-text-secondary);font-style:italic;font-size:var(--font-size-xs)}.ref-form-voters-table-wrapper{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;margin-top:var(--spacing-md)}.ref-form-voters-table{width:100%;border-collapse:collapse}.ref-form-voters-table thead{background:var(--color-bg-secondary)}.ref-form-voters-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-secondary)}.ref-form-voters-table td{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);border-top:1px solid var(--color-border)}.ref-form-voter-add{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md)}.ref-form-voter-input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-md)}.ref-form-pv{white-space:pre-wrap;font-family:Courier New,monospace;font-size:var(--font-size-sm);background:var(--color-bg-secondary);padding:var(--spacing-lg);border-radius:var(--radius-md);border:1px solid var(--color-border);max-height:500px;overflow-y:auto}.ref-form-timeline{display:flex;gap:var(--spacing-xs);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.ref-form-timeline-step{padding:4px 12px;border-radius:12px;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);background:var(--color-bg-secondary);color:var(--color-text-secondary)}.ref-form-timeline-step.active{background:var(--color-primary);color:#fff}.ref-form-timeline-step.done{background:#f0fdf4;color:#16a34a}.ref-form-timeline-arrow{color:var(--color-text-secondary);display:flex;align-items:center;font-size:var(--font-size-xs)}.ref-form-vote-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--spacing-md)}.ref-form-info-value{font-size:var(--font-size-md);color:var(--color-text-primary);padding:var(--spacing-sm) 0}.ref-form-loading{text-align:center;padding:var(--spacing-3xl);color:var(--color-text-secondary)}.ref-form-radio-group{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-sm)}.ref-form-radio-sub{margin-left:var(--spacing-xl)}.ref-form-radio-label{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-md);color:var(--color-text-primary);cursor:pointer}.ref-form-radio-label input[type=radio]{width:18px;height:18px;cursor:pointer}.ref-form-electronic-options{margin-top:var(--spacing-sm);padding-left:var(--spacing-md);border-left:3px solid var(--color-primary)}.ref-form-hint{font-size:var(--font-size-xs);color:var(--color-text-secondary);margin-top:var(--spacing-xs)}.ref-form-attachments-table{width:100%;border-collapse:collapse;margin-bottom:var(--spacing-md);font-size:var(--font-size-sm)}.ref-form-attachments-table th{text-align:left;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-secondary);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);text-transform:uppercase;letter-spacing:.5px;font-size:var(--font-size-xs);border-bottom:1px solid var(--color-border)}.ref-form-attachments-table td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);color:var(--color-text-primary)}.ref-form-link-btn{background:none;border:none;color:var(--color-primary);cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.ref-form-link-btn:hover{color:var(--color-primary-hover, #1d4ed8)}.ref-form-upload-row{display:flex;gap:var(--spacing-sm);align-items:center;flex-wrap:wrap}@media(max-width:768px){.ref-form{padding:var(--spacing-md)}.ref-form-grid,.ref-form-vote-grid{grid-template-columns:1fr}}.vote-page{min-height:100vh;background:linear-gradient(135deg,#f0f4f8,#e2e8f0);display:flex;align-items:center;justify-content:center;padding:20px;font-family:Segoe UI,Roboto,Helvetica,Arial,sans-serif}.vote-page-card{background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001a;max-width:600px;width:100%;overflow:hidden}.vote-page-header{background:#1a1a2e;padding:24px 32px;text-align:center}.vote-page-app-name{margin:0;color:#fff;font-size:24px;font-weight:600;letter-spacing:.5px}.vote-page-company{margin:8px 0 0;color:#a0aec0;font-size:14px}.vote-page-specimen-banner{background:#fef3c7;border-bottom:2px dashed #f59e0b;padding:10px;text-align:center;font-weight:600;color:#92400e;font-size:14px;letter-spacing:1px}.vote-page-body{padding:32px}.vote-page-title{margin:0 0 8px;color:#1a1a2e;font-size:18px;font-weight:600}.vote-page-referendum-title{background:#f8f9fa;border-left:4px solid #1a1a2e;padding:16px;margin:0 0 20px;border-radius:0 6px 6px 0;font-size:16px;font-weight:600;color:#1a1a2e}.vote-page-description{margin:0 0 20px;color:#495057;font-size:14px;line-height:1.6}.vote-page-agreement-section{margin:0 0 20px}.vote-page-agreement-toggle{background:none;border:1px solid #e2e8f0;border-radius:6px;padding:10px 16px;cursor:pointer;color:#495057;font-size:14px;width:100%;text-align:left}.vote-page-agreement-toggle:hover{background:#f8f9fa}.vote-page-agreement-text{margin-top:12px;padding:16px;background:#f8f9fa;border-radius:6px;font-size:13px;line-height:1.8;color:#495057;white-space:pre-wrap;max-height:300px;overflow-y:auto}.vote-page-voter-info{margin:0 0 24px;padding:12px 16px;background:#edf2f7;border-radius:6px;font-size:14px;color:#495057}.vote-page-voter-info p{margin:0}.vote-page-closed{text-align:center;padding:24px;background:#f8f9fa;border-radius:8px}.vote-page-closed p{margin:0 0 8px;color:#495057;font-size:15px}.vote-page-closed-sub{color:#868e96!important;font-size:13px!important}.vote-page-already-voted{text-align:center;padding:32px 24px;background:#f0fff4;border:2px solid #c6f6d5;border-radius:8px}.vote-page-check-icon{width:48px;height:48px;background:#48bb78;color:#fff;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:12px}.vote-page-already-voted h3{margin:0 0 12px;color:#276749;font-size:18px}.vote-page-vote-detail{margin:0 0 4px;color:#495057;font-size:15px}.vote-page-vote-date{margin:0 0 12px;color:#868e96;font-size:13px}.vote-page-confidential{margin:0;color:#868e96;font-size:12px;font-style:italic}.vote-page-ballot{border:2px solid #e2e8f0;border-radius:8px;padding:24px}.vote-page-ballot-title{margin:0 0 8px;color:#1a1a2e;font-size:16px;font-weight:600}.vote-page-ballot-info{margin:0 0 20px;color:#868e96;font-size:13px}.vote-page-choices{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.vote-page-choice{display:flex;align-items:center;gap:12px;padding:16px;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:all .2s;flex-wrap:wrap}.vote-page-choice:hover{border-color:#a0aec0;background:#f8f9fa}.vote-page-choice input[type=radio]{width:20px;height:20px;accent-color:#1a1a2e;flex-shrink:0}.vote-page-choice-label{font-size:16px;font-weight:600;color:#1a1a2e;min-width:80px}.vote-page-choice-desc{font-size:13px;color:#868e96}.vote-page-choice-selected{border-width:2px}.vote-page-choice-for.vote-page-choice-selected{border-color:#48bb78;background:#f0fff4}.vote-page-choice-against.vote-page-choice-selected{border-color:#f56565;background:#fff5f5}.vote-page-choice-blank.vote-page-choice-selected{border-color:#a0aec0;background:#f7fafc}.vote-page-error{margin:0 0 16px;padding:12px;background:#fff5f5;border:1px solid #fed7d7;border-radius:6px;color:#c53030;font-size:14px}.vote-page-submit{width:100%;padding:14px;background:#1a1a2e;color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:background .2s}.vote-page-submit:hover:not(:disabled){background:#2d2d4e}.vote-page-submit:disabled{opacity:.5;cursor:not-allowed}.vote-page-warning{margin:12px 0 0;color:#e53e3e;font-size:12px;text-align:center;font-style:italic}.vote-page-footer{background:#f8f9fa;padding:16px 32px;text-align:center;border-top:1px solid #e9ecef}.vote-page-footer p{margin:0;color:#868e96;font-size:12px}.vote-page-results{border:2px solid #e2e8f0;border-radius:8px;padding:24px;margin-bottom:20px}.vote-page-results-title{margin:0 0 16px;color:#1a1a2e;font-size:16px;font-weight:600;text-align:center}.vote-page-results-verdict{text-align:center;padding:16px;border-radius:8px;font-size:18px;font-weight:700;margin-bottom:20px;letter-spacing:.5px}.vote-page-verdict-approved{background:#f0fff4;color:#276749;border:2px solid #c6f6d5}.vote-page-verdict-rejected{background:#fff5f5;color:#c53030;border:2px solid #fed7d7}.vote-page-results-details{display:flex;flex-direction:column;gap:8px}.vote-page-results-row{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background:#f8f9fa;border-radius:4px;font-size:14px;color:#495057}.vote-page-results-threshold{border-top:2px solid #e2e8f0;margin-top:4px;padding-top:12px;background:transparent}.vote-page-result-for{color:#276749}.vote-page-result-against{color:#c53030}.vote-page-loading{padding:48px;text-align:center;color:#868e96;font-size:15px}.vote-page-error-block{padding:32px;text-align:center}.vote-page-error-block h2{margin:0 0 12px;color:#c53030;font-size:18px}.vote-page-error-block p{margin:0;color:#495057;font-size:14px}@media(max-width:480px){.vote-page{padding:10px}.vote-page-body,.vote-page-header{padding:20px}.vote-page-choice{padding:12px}}:root{--color-primary: #3498db;--color-primary-hover: #2980b9;--color-primary-light: rgba(52, 152, 219, .1);--color-secondary: #95a5a6;--color-secondary-hover: #7f8c8d;--color-success: #27ae60;--color-success-light: #d4edda;--color-success-border: #c3e6cb;--color-success-text: #155724;--color-error: #e74c3c;--color-error-light: #fee;--color-error-border: #fcc;--color-error-text: #c00;--color-warning: #f39c12;--color-warning-light: #fff3cd;--color-info: #3498db;--color-info-light: #d1ecf1;--color-text-primary: #333;--color-text-secondary: #7f8c8d;--color-text-disabled: #999;--color-text-light: #fff;--color-bg-primary: #fff;--color-bg-secondary: #f5f5f5;--color-bg-tertiary: #e9ecef;--color-bg-disabled: #f5f5f5;--color-bg-hover: rgba(0, 0, 0, .05);--color-bg-sidebar: #1e293b;--color-bg-header: #ffffff;--color-bg-footer: #f1f5f9;--color-accent: #0ea5e9;--color-text-on-dark: #f1f5f9;--color-text-muted: #94a3b8;--color-border-light: #ddd;--color-border-medium: #aaa;--color-border-dark: #333;--gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);--gradient-secondary: linear-gradient(135deg, #f093fb 0%, #f5576c 100%);--shadow-small: 0 2px 4px rgba(0, 0, 0, .1);--shadow-medium: 0 4px 8px rgba(0, 0, 0, .15);--shadow-large: 0 10px 40px rgba(0, 0, 0, .2);--shadow-primary: 0 4px 8px rgba(52, 152, 219, .3);--shadow-error: 0 0 0 3px rgba(231, 76, 60, .1);--shadow-focus: 0 0 0 3px var(--color-primary-light);--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-full: 50%;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;--font-size-xs: 12px;--font-size-sm: 13px;--font-size-md: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.6;--line-height-relaxed: 1.8;--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--z-dropdown: 1000;--z-modal: 2000;--z-tooltip: 3000;--z-notification: 4000}*{margin:0;padding:0;box-sizing:border-box}html{font-size:16px}body{font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--color-text-primary);background-color:var(--color-bg-secondary);line-height:var(--line-height-normal)}#root{min-height:100vh}code{font-family:var(--font-family-mono)}button,input{font-family:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-secondary)}::-webkit-scrollbar-thumb{background:var(--color-border-medium);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark)}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}@keyframes spin{to{transform:rotate(360deg)}}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pdf-btn{padding:2px 8px;border:1px solid var(--color-border, #ddd);border-radius:var(--radius-sm);background:var(--color-bg-primary);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.pdf-btn:hover{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
