:root{--color-primary-50: #f1f8e9;--color-primary-100: #dcedc8;--color-primary-200: #c5e1a5;--color-primary-300: #aed581;--color-primary-400: #9ccc65;--color-primary-500: #8BC34A;--color-primary-600: #7cb342;--color-primary-700: #689f38;--color-primary-800: #558b2f;--color-primary-900: #33691e;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-neutral-950: #020617;--color-success-500: #2E7D55;--color-success-600: #256647;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-info-500: #2E7D55;--color-info-600: #256647;--bg-base: var(--color-neutral-950);--bg-surface: var(--color-neutral-900);--bg-elevated: var(--color-neutral-800);--bg-hover: var(--color-neutral-700);--text-primary: var(--color-neutral-50);--text-secondary: var(--color-neutral-300);--text-muted: var(--color-neutral-500);--text-inverted: var(--color-neutral-900);--border-default: var(--color-neutral-700);--border-subtle: var(--color-neutral-800);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .4);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -2px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -4px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 8px 10px -6px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(139, 195, 74, .3);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .35s ease;--sidebar-width: 260px;--header-height: 64px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--bg-base);color:var(--text-primary);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;font-size:inherit}img{max-width:100%;display:block}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;color:var(--text-primary)}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{color:var(--text-secondary)}.text-muted{color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:var(--text-sm);font-weight:500;border-radius:var(--radius-md);transition:all var(--transition-fast);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));color:#fff;box-shadow:var(--shadow-md),0 0 #8bc34a00}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-400),var(--color-primary-500));box-shadow:var(--shadow-lg),0 0 20px #8bc34a4d;transform:translateY(-1px)}.btn-secondary{background:var(--bg-elevated);color:var(--text-primary);border:1px solid var(--border-default)}.btn-secondary:hover:not(:disabled){background:var(--bg-hover);border-color:var(--color-primary-500)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover);color:var(--text-primary)}.btn-success{background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:var(--shadow-md),0 0 #10b98100}.btn-success:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#10b981);box-shadow:var(--shadow-lg),0 0 20px #10b9814d;transform:translateY(-1px)}.btn-danger{background:linear-gradient(135deg,var(--color-error-500),var(--color-error-600));color:#fff}.btn-danger:hover:not(:disabled){opacity:.9}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.btn-lg{padding:var(--space-4) var(--space-6);font-size:var(--text-base)}.btn-icon{padding:var(--space-2);width:36px;height:36px}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.form-input,.form-select,.form-textarea{padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);transition:all var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px #8bc34a26}.form-input::placeholder{color:var(--text-muted)}.form-error{font-size:var(--text-sm);color:var(--color-error-500)}.card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden}.card-header{padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);background:var(--bg-elevated)}.stat-card{background:linear-gradient(135deg,var(--bg-surface) 0%,var(--bg-elevated) 100%);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-6);transition:all var(--transition-normal)}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl);border-color:var(--color-primary-500)}.stat-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-4)}.stat-icon.blue{background:linear-gradient(135deg,#8bc34a33,#8bc34a1a);color:var(--color-primary-400)}.stat-icon.green{background:linear-gradient(135deg,#22c55e33,#22c55e1a);color:var(--color-success-500)}.stat-icon.orange{background:linear-gradient(135deg,#f59e0b33,#f59e0b1a);color:var(--color-warning-500)}.stat-icon.red{background:linear-gradient(135deg,#ef444433,#ef44441a);color:var(--color-error-500)}.stat-value{font-size:var(--text-3xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-1)}.stat-label{font-size:var(--text-sm);color:var(--text-muted)}.table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:var(--space-4);text-align:left}.table th{background:var(--bg-elevated);font-size:var(--text-sm);font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-default)}.table td{border-bottom:1px solid var(--border-subtle);font-size:var(--text-sm)}.table tbody tr{transition:background var(--transition-fast)}.table tbody tr:hover{background:var(--bg-elevated)}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:500;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.05em}.badge-draft{background:#64748b33;color:var(--color-neutral-300)}.badge-validated{background:#3b82f633;color:var(--color-info-500)}.badge-invoiced{background:#22c55e33;color:var(--color-success-500)}.badge-cancelled{background:#ef444433;color:var(--color-error-500)}.badge-admin{background:linear-gradient(135deg,#8bc34a4d,#7cb3424d);color:var(--color-primary-300)}.badge-employee{background:#64748b33;color:var(--color-neutral-300)}.badge-superadmin{background:linear-gradient(135deg,#a855f74d,#9333ea4d);color:#d8b4fe;border:1px solid rgba(168,85,247,.2)}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast)}.modal{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-2xl);max-width:500px;width:90%;max-height:90vh;overflow:auto;animation:slideUp var(--transition-normal)}.modal-header{padding:var(--space-6);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.modal-title{font-size:var(--text-xl);font-weight:600}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn var(--transition-normal)}.animate-slide-up{animation:slideUp var(--transition-normal)}.spinner{width:24px;height:24px;border:2px solid var(--border-default);border-top-color:var(--color-primary-500);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.flex-col{flex-direction:column}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:var(--space-2)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.w-full{width:100%}.h-full{height:100%}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.text-center{text-align:center}.text-right{text-align:right}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.hide-mobile{display:block}.show-mobile{display:none}@media(max-width:1024px){.lg\:grid-cols-2,.grid-cols-4,.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){:root{--sidebar-width: 0px}.hide-mobile{display:none!important}.show-mobile{display:block!important}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg)}.md\:grid-cols-1,.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.card-body,.card-header,.stat-card{padding:var(--space-4)}.stat-value{font-size:var(--text-2xl)}.modal{width:95%;max-width:none;margin:var(--space-4);max-height:calc(100vh - var(--space-8))}.modal-xl{max-width:none}.modal-header,.modal-body{padding:var(--space-4)}.modal-footer{padding:var(--space-3) var(--space-4);flex-wrap:wrap}.modal-footer .btn{flex:1;min-width:100px}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.table{min-width:600px}.table th,.table td{padding:var(--space-3);font-size:var(--text-xs)}.btn{min-height:44px;padding:var(--space-3) var(--space-4)}.btn-sm{min-height:36px;padding:var(--space-2) var(--space-3)}.btn-icon{width:44px;height:44px}.form-input,.form-select,.form-textarea{min-height:44px;font-size:16px}.form-row{grid-template-columns:1fr}.page-content,.p-6{padding:var(--space-4)}.mb-6{margin-bottom:var(--space-4)}.mt-6{margin-top:var(--space-4)}.gap-6{gap:var(--space-4)}}@media(max-width:480px){h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}.page-content,.card-body,.card-header,.stat-card{padding:var(--space-3)}.stat-value{font-size:var(--text-xl)}.stat-label{font-size:var(--text-xs)}.modal-footer{flex-direction:column}.modal-footer .btn{width:100%}}.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;z-index:100;transition:transform var(--transition-normal),width var(--transition-normal)}.sidebar.collapsed{width:72px}.sidebar-header{padding:var(--space-4);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-subtle);min-height:var(--header-height)}.logo{display:flex;align-items:center;gap:var(--space-3)}.logo-image{width:40px;height:40px;object-fit:contain;flex-shrink:0}.logo-text{font-size:var(--text-xl);font-weight:700;background:linear-gradient(135deg,var(--color-primary-400),var(--color-primary-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.collapse-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--transition-fast)}.collapse-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar.collapsed .collapse-btn{margin-left:auto;margin-right:auto}.close-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--transition-fast)}.close-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.sidebar-nav{flex:1;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-1);overflow-y:auto}.nav-link{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);color:var(--text-secondary);font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-link.active{background:linear-gradient(135deg,#8bc34a26,#8bc34a0d);color:var(--color-primary-400);border:1px solid rgba(139,195,74,.2)}.nav-link.active:before{content:"";position:absolute;left:0;width:3px;height:24px;background:var(--color-primary-500);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.sidebar.collapsed .nav-link{justify-content:center;padding:var(--space-3)}.sidebar.collapsed .nav-link span{display:none}.sidebar-footer{padding:var(--space-4);border-top:1px solid var(--border-subtle)}.user-info{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-lg);background:var(--bg-elevated);margin-bottom:var(--space-3)}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-700));display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;color:#fff;flex-shrink:0}.user-details{display:flex;flex-direction:column;overflow:hidden}.user-name{font-size:var(--text-sm);font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--text-xs);margin-top:var(--space-1)}.sidebar.collapsed .user-info{justify-content:center;padding:var(--space-2)}.sidebar.collapsed .user-details{display:none}.logout-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-2);width:100%;padding:var(--space-3);border-radius:var(--radius-lg);color:var(--text-muted);font-size:var(--text-sm);font-weight:500;transition:all var(--transition-fast)}.logout-btn:hover{background:#ef44441a;color:var(--color-error-500)}.sidebar.collapsed .logout-btn span{display:none}.mobile-menu-btn{display:none;position:fixed;top:var(--space-4);left:var(--space-4);z-index:90;width:44px;height:44px;align-items:center;justify-content:center;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);color:var(--text-primary);box-shadow:var(--shadow-md);transition:all var(--transition-fast)}.mobile-menu-btn:hover{background:var(--bg-elevated)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:99;animation:fadeIn var(--transition-fast)}.desktop-only{display:flex}.mobile-only{display:none}@media(max-width:768px){.mobile-menu-btn{display:flex}.sidebar-overlay{display:block}.sidebar{transform:translate(-100%);width:280px;box-shadow:var(--shadow-xl)}.sidebar.mobile-open{transform:translate(0)}.sidebar.collapsed{width:280px}.sidebar.collapsed .nav-link{justify-content:flex-start;padding:var(--space-3) var(--space-4)}.sidebar.collapsed .nav-link span{display:inline}.sidebar.collapsed .user-info{justify-content:flex-start;padding:var(--space-3)}.sidebar.collapsed .user-details{display:flex}.sidebar.collapsed .logout-btn span{display:inline}.desktop-only{display:none}.mobile-only{display:flex}.nav-link{padding:var(--space-4);font-size:var(--text-base)}.logout-btn{padding:var(--space-4)}}.header{position:sticky;top:0;background:#0f172acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);padding:var(--space-4) var(--space-6);display:flex;align-items:center;justify-content:space-between;z-index:50;min-height:var(--header-height)}.header-left{display:flex;align-items:center;gap:var(--space-4)}.page-title h1{font-size:var(--text-2xl);font-weight:600;margin:0}.page-subtitle{font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.header-right{display:flex;align-items:center;gap:var(--space-4)}.search-box{display:flex;align-items:center;gap:var(--space-2);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);padding:var(--space-2) var(--space-4);color:var(--text-muted);transition:all var(--transition-fast)}.search-box:focus-within{border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f126}.search-box input{background:none;border:none;color:var(--text-primary);font-size:var(--text-sm);width:200px;outline:none}.search-box input::placeholder{color:var(--text-muted)}.notification-btn{position:relative;width:40px;height:40px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);transition:all var(--transition-fast)}.notification-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.notification-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 var(--space-1);background:var(--color-error-500);color:#fff;font-size:11px;font-weight:600;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.notification-container{position:relative}.notification-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;max-height:480px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:0 20px 40px #0000004d;overflow:hidden;z-index:100;animation:dropdownSlide .2s ease-out}@keyframes dropdownSlide{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.notification-dropdown-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}.notification-dropdown-header h3{font-size:var(--text-base);font-weight:600;margin:0}.mark-all-read-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--transition-fast)}.mark-all-read-btn:hover{background:var(--bg-hover);color:var(--color-primary-400)}.notification-list{max-height:400px;overflow-y:auto}.notification-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-muted);gap:var(--space-2)}.notification-empty p{font-size:var(--text-sm)}.notification-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);transition:background var(--transition-fast)}.notification-item:hover{background:var(--bg-hover)}.notification-item.unread{background:#6366f114}.notification-item.unread:hover{background:#6366f11f}.notification-icon{flex-shrink:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-elevated);border-radius:var(--radius-md);color:var(--color-primary-400)}.notification-content{flex:1;min-width:0}.notification-title{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:2px}.notification-message{font-size:var(--text-sm);color:var(--text-secondary);line-height:1.4;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.notification-time{font-size:12px;color:var(--text-muted);margin-top:4px}.notification-mark-read{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);color:var(--text-muted);opacity:0;transition:all var(--transition-fast)}.notification-item:hover .notification-mark-read{opacity:1}.notification-mark-read:hover{background:var(--color-primary-500);color:#fff}@media(max-width:768px){.header{padding:var(--space-4);padding-left:70px}.header-left{flex:1;min-width:0}.page-title h1{font-size:var(--text-lg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.page-subtitle{display:none}.header-right{gap:var(--space-2)}.header .search-box{display:none}.notification-dropdown{position:fixed;inset:auto 0 0;width:100%;max-height:70vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;animation:slideUpMobile .3s ease-out}@keyframes slideUpMobile{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}}@media(max-width:480px){.header{padding:var(--space-3);padding-left:60px}.page-title h1{font-size:var(--text-base)}.notification-btn{width:36px;height:36px}}.dashboard-layout{display:flex;min-height:100vh}.main-content{flex:1;margin-left:var(--sidebar-width);transition:margin-left var(--transition-normal);background:var(--bg-base);min-height:100vh;overflow-y:auto;scrollbar-width:none}.main-content::-webkit-scrollbar{display:none}.sidebar.collapsed~.main-content{margin-left:72px}@media(max-width:768px){.main-content{margin-left:0;padding-top:0}.sidebar.collapsed~.main-content{margin-left:0}}.login-page{min-height:100vh;display:flex;position:relative;overflow:hidden}.login-container{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-6);z-index:1}.login-card{width:100%;max-width:420px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-2xl);padding:var(--space-8);animation:slideUp var(--transition-normal)}.login-header{text-align:center;margin-bottom:var(--space-8)}.login-logo{display:flex;justify-content:center;margin-bottom:var(--space-4)}.logo-image-lg{width:80px;height:80px;object-fit:contain}.login-header h1{font-size:var(--text-3xl);font-weight:700;background:linear-gradient(135deg,var(--color-primary-400),var(--color-primary-600));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-2)}.login-header p{color:var(--text-muted);font-size:var(--text-sm)}.login-form{display:flex;flex-direction:column;gap:var(--space-5)}.login-error{padding:var(--space-4);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);color:var(--color-error-500);font-size:var(--text-sm);text-align:center}.form-input.error{border-color:var(--color-error-500)}.password-input-wrapper{position:relative}.password-input-wrapper .form-input{padding-right:48px;width:100%}.password-toggle{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);color:var(--text-muted);padding:var(--space-1);border-radius:var(--radius-sm);transition:color var(--transition-fast)}.password-toggle:hover{color:var(--text-primary)}.login-footer{margin-top:var(--space-6);padding-top:var(--space-6);border-top:1px solid var(--border-subtle);text-align:center}.login-footer p{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-2)}.login-footer code{display:inline-block;padding:var(--space-2) var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--color-primary-400);font-family:var(--font-mono)}.login-bg{position:absolute;inset:0;pointer-events:none}.login-bg-pattern{position:absolute;inset:0;background:radial-gradient(ellipse at 80% 20%,rgba(139,195,74,.15) 0%,transparent 50%),radial-gradient(ellipse at 20% 80%,rgba(46,125,85,.1) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(139,195,74,.05) 0%,transparent 100%)}@media(max-width:768px){.login-container{padding:var(--space-4)}.login-card{padding:var(--space-6);max-width:none}.logo-image-lg{width:64px;height:64px}.login-header h1{font-size:var(--text-2xl)}.login-header{margin-bottom:var(--space-6)}}@media(max-width:480px){.login-container{padding:var(--space-3)}.login-card{padding:var(--space-5);border-radius:var(--radius-xl)}.login-header h1{font-size:var(--text-xl)}.login-footer code{font-size:var(--text-xs);padding:var(--space-1) var(--space-2)}}.dashboard-content{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-6);animation:fadeIn var(--transition-normal)}@media(max-width:768px){.dashboard-content{padding:var(--space-4);gap:var(--space-4)}}@media(max-width:480px){.dashboard-content{padding:var(--space-3)}}.dashboard-loading,.dashboard-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);min-height:400px;color:var(--text-muted)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}@media(max-width:1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.stats-grid{grid-template-columns:1fr}}.stat-value .currency{font-size:var(--text-lg);font-weight:400;color:var(--text-muted)}.daily-stats,.financial-stats{grid-template-columns:repeat(3,1fr)}.daily-stats{margin-bottom:var(--space-6)}.financial-stats .stat-card{position:relative;overflow:hidden}.financial-stats .stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px}.financial-stats .stat-card.income:before{background:linear-gradient(90deg,#22c55e,#16a34a)}.financial-stats .stat-card.expenses:before{background:linear-gradient(90deg,#ef4444,#dc2626)}.financial-stats .stat-card.profit.positive:before{background:linear-gradient(90deg,#22c55e,#16a34a)}.financial-stats .stat-card.profit.negative:before{background:linear-gradient(90deg,#ef4444,#dc2626)}.stat-icon.red{background:#ef444426;color:#ef4444}.stat-icon.purple{background:#8b5cf626;color:#8b5cf6}@media(max-width:1200px){.financial-stats{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.financial-stats{grid-template-columns:1fr}}.charts-row{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-6)}@media(max-width:1024px){.charts-row{grid-template-columns:1fr}}.chart-card{background:var(--bg-surface)}.chart-card .card-header h3{font-size:var(--text-lg);font-weight:600}.chart-container{min-height:300px;display:flex;flex-direction:column}.pie-chart-card .card-body{display:flex;flex-direction:column;gap:var(--space-4)}.pie-legend{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.legend-item{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.legend-color{width:12px;height:12px;border-radius:var(--radius-sm)}.legend-label{color:var(--text-secondary);flex:1}.legend-value{font-weight:600;color:var(--text-primary)}.no-data{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-8);color:var(--text-muted);min-height:200px}.no-data p{font-size:var(--text-sm)}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;gap:var(--space-4);color:var(--text-muted)}.actions-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}.search-box{position:relative;flex:1;max-width:400px}.search-icon{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input{padding-left:var(--space-12)!important;width:100%}.alert{padding:var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-2)}.alert-error{background:#ef44441a;border:1px solid var(--color-error-500);color:var(--color-error-500)}.ml-4{margin-left:var(--space-4)}.clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:var(--space-4)}.client-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-normal)}.client-card:hover{border-color:var(--color-primary-500);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.client-card-header{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5);border-bottom:1px solid var(--border-subtle)}.client-avatar{width:48px;height:48px;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));display:flex;align-items:center;justify-content:center;color:#fff;flex-shrink:0}.client-info{flex:1;min-width:0}.client-name{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.client-date{font-size:var(--text-sm);color:var(--text-muted)}.client-actions{display:flex;gap:var(--space-1)}.client-card-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.client-detail{display:flex;align-items:flex-start;gap:var(--space-3);color:var(--text-secondary);font-size:var(--text-sm)}.client-detail svg{color:var(--text-muted);flex-shrink:0;margin-top:2px}.client-notes{padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.client-notes span{color:var(--text-muted);font-style:italic}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16);text-align:center;color:var(--text-muted)}.empty-state svg{margin-bottom:var(--space-4);opacity:.5}.empty-state h3{font-size:var(--text-xl);color:var(--text-primary);margin-bottom:var(--space-2)}.empty-state p{color:var(--text-muted);max-width:400px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.form-textarea{resize:vertical;min-height:80px}.modal-sm{max-width:400px}@media(max-width:768px){.actions-bar{flex-direction:column;align-items:stretch}.search-box{max-width:none}.clients-grid,.form-row{grid-template-columns:1fr}}.actions-right{display:flex;gap:var(--space-3)}.filter-dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:var(--space-2);min-width:180px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:100;overflow:hidden}.dropdown-item{display:block;width:100%;padding:var(--space-3) var(--space-4);text-align:left;color:var(--text-secondary);transition:all var(--transition-fast)}.dropdown-item:hover{background:var(--bg-elevated);color:var(--text-primary)}.dropdown-item.active{background:#6366f11a;color:var(--color-primary-400)}.modal-xl{max-width:800px}.tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);margin-bottom:var(--space-4)}.tab{padding:var(--space-3) var(--space-4);color:var(--text-muted);font-weight:500;border-bottom:2px solid transparent;transition:all var(--transition-fast)}.tab:hover{color:var(--text-primary)}.tab.active{color:var(--color-primary-400);border-bottom-color:var(--color-primary-500)}.tab-content{min-height:200px}.empty-tab{display:flex;align-items:center;justify-content:center;height:200px;color:var(--text-muted)}.devis-lines-list{display:flex;flex-direction:column;gap:var(--space-2)}.devis-line-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-md)}.devis-line-info{flex:1;display:flex;align-items:center;gap:var(--space-3);min-width:0}.machine-badge{padding:var(--space-1) var(--space-2);font-size:var(--text-xs);font-weight:600;border-radius:var(--radius-sm);text-transform:uppercase}.machine-badge.cnc{background:#6366f133;color:#6366f1}.machine-badge.laser{background:#f59e0b33;color:#f59e0b}.machine-badge.champs{background:#22c55e33;color:#22c55e}.machine-badge.panneaux{background:#3b82f633;color:#3b82f6}.line-description{color:var(--text-secondary);font-size:var(--text-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.devis-line-details{display:flex;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-sm)}.devis-line-total{font-weight:600;color:var(--text-primary);white-space:nowrap}.add-line-form{margin-top:var(--space-4);padding:var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-default)}.add-line-form h4{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-4)}.services-list{display:flex;flex-direction:column;gap:var(--space-2)}.service-item{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--bg-elevated);border:2px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.service-item:hover{border-color:var(--border-default)}.service-item.selected{border-color:var(--color-primary-500);background:#6366f10d}.service-info{flex:1;min-width:0}.service-name{display:block;font-weight:500;color:var(--text-primary)}.service-description{display:block;font-size:var(--text-sm);color:var(--text-muted);margin-top:var(--space-1)}.service-price{font-weight:600;color:var(--text-primary);white-space:nowrap}.service-check{width:24px;height:24px;border-radius:var(--radius-full);border:2px solid var(--border-default);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.service-check.checked{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.devis-total{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-6);padding-top:var(--space-4);border-top:2px solid var(--border-default)}.devis-total span:first-child{font-size:var(--text-lg);color:var(--text-secondary)}.client-select-list{max-height:200px;overflow-y:auto;border:1px solid var(--border-default);border-radius:var(--radius-md)}.client-select-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-3) var(--space-4);text-align:left;border-bottom:1px solid var(--border-subtle);transition:all var(--transition-fast)}.client-select-item:last-child{border-bottom:none}.client-select-item:hover{background:var(--bg-elevated)}.client-select-item.selected{background:#6366f11a;border-left:3px solid var(--color-primary-500)}.client-select-name{font-weight:500;color:var(--text-primary)}.client-select-phone{font-size:var(--text-sm);color:var(--text-muted)}.mb-2{margin-bottom:var(--space-2)}.form-select{padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--text-base);width:100%;cursor:pointer}.form-select:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px #6366f126}.invoice-details{display:flex;align-items:center;justify-content:space-between;flex:1;padding:var(--space-4);background:#6366f10d;border:1px solid rgba(99,102,241,.2);border-radius:var(--radius-lg);gap:var(--space-4)}.invoice-info{display:flex;align-items:center;gap:var(--space-3)}.invoice-reference{font-weight:600;font-size:var(--text-base);color:var(--text-primary)}.invoice-date{font-size:var(--text-sm);margin-top:var(--space-1)}@media(max-width:768px){.actions-right{flex-direction:column;width:100%}.filter-dropdown{width:100%}.filter-dropdown .btn{width:100%;justify-content:space-between}.dropdown-menu{left:0;right:0}.devis-line-item{flex-wrap:wrap}.devis-line-details{width:100%;order:3}.invoice-details{flex-direction:column;align-items:stretch}.invoice-info{flex-direction:column;align-items:flex-start}}.select-status-override{cursor:pointer;border:1px solid transparent;outline:none;font-family:inherit;font-weight:600;appearance:none;padding-right:var(--space-6);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center;transition:all var(--transition-fast)}.select-status-override:hover{filter:brightness(.9)}.select-status-override:focus{border-color:#fff6}.employee-cell{display:flex;align-items:center;gap:var(--space-3)}.employee-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-neutral-600),var(--color-neutral-700));display:flex;align-items:center;justify-content:center;font-size:var(--text-sm);font-weight:600;color:var(--text-primary);text-transform:uppercase}.employee-avatar.admin{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600))}.employee-name{font-weight:500;color:var(--text-primary)}.inactive-row{opacity:.5}.table-actions{display:flex;gap:var(--space-1)}.machine-tags{display:flex;flex-wrap:wrap;gap:var(--space-1)}.machine-tag{padding:var(--space-1) var(--space-2);background:var(--bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text-secondary)}.status-indicator{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm)}.status-indicator:before{content:"";width:8px;height:8px;border-radius:var(--radius-full)}.status-indicator.active:before{background:var(--color-success-500);box-shadow:0 0 8px var(--color-success-500)}.status-indicator.inactive:before{background:var(--color-neutral-500)}.form-section{margin-bottom:var(--space-6);padding-bottom:var(--space-6);border-bottom:1px solid var(--border-subtle)}.form-section:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.form-section-title{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-4)}.role-selector{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.role-option{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-4);background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-fast)}.role-option:hover{border-color:var(--color-primary-400)}.role-option.active{border-color:var(--color-primary-500);background:#6366f11a}.role-option span{font-weight:500;color:var(--text-primary)}.role-option small{font-size:var(--text-xs);color:var(--text-muted);text-align:center}.machines-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-2)}.machine-option{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.machine-option:hover{border-color:var(--color-primary-400)}.machine-option.active{border-color:var(--color-primary-500);background:#6366f11a}.machine-option span{font-size:var(--text-sm);color:var(--text-primary)}.modal-lg{max-width:600px}@media(max-width:768px){.role-selector,.machines-grid{grid-template-columns:1fr}}.machines-pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-5);margin-bottom:var(--space-6)}.machine-pricing-card{background:var(--bg-surface);border:2px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;transition:all .2s ease;display:flex;flex-direction:column}.machine-pricing-card:hover{border-color:var(--border-base);box-shadow:0 8px 24px #0000001f;transform:translateY(-2px)}.machine-pricing-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-6);padding-bottom:var(--space-4)}.machine-icon{width:64px;height:64px;border-radius:var(--radius-xl);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #00000026}.machine-icon.cnc{background:linear-gradient(135deg,#6366f1,#4f46e5)}.machine-icon.laser{background:linear-gradient(135deg,#f59e0b,#d97706)}.machine-icon.champs{background:linear-gradient(135deg,#22c55e,#16a34a)}.machine-icon.panneaux{background:linear-gradient(135deg,#3b82f6,#2563eb)}.machine-icon.pliage{background:linear-gradient(135deg,#d97706,#b45309)}.machine-pricing-body{padding:0 var(--space-6) var(--space-6);flex:1}.machine-name{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary);margin-bottom:var(--space-2);letter-spacing:-.01em}.machine-description{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-6);line-height:1.5}.machine-price{display:flex;flex-direction:column;gap:var(--space-1)}.price-value{font-size:2.5rem;font-weight:800;color:var(--text-primary);line-height:1;letter-spacing:-.02em}.price-unit{font-size:var(--text-sm);color:var(--text-muted);font-weight:500}.formula-explanation{margin-top:var(--space-4);padding:var(--space-3);background:var(--bg-elevated);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-secondary);font-family:var(--font-mono);line-height:1.4;border-left:3px solid #d97706}.machine-pricing-footer{padding:var(--space-4) var(--space-6);background:var(--bg-base);border-top:1px solid var(--border-subtle);margin-top:auto}.last-updated{font-size:var(--text-xs);color:var(--text-muted);display:block}.price-input-wrapper{position:relative;display:flex;align-items:center}.price-input{padding-right:var(--space-12)!important}.price-currency{position:absolute;right:var(--space-4);color:var(--text-muted);font-weight:500}.formulas-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--space-4)}.formula-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-lg)}.formula-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.formula-icon.cnc{background:#6366f133;color:#6366f1}.formula-icon.laser{background:#f59e0b33;color:#f59e0b}.formula-icon.champs{background:#22c55e33;color:#22c55e}.formula-icon.panneaux{background:#3b82f633;color:#3b82f6}.formula-icon.pliage{background:#d9770633;color:#d97706}.formula-content h4{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.formula-content code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-secondary);background:var(--bg-surface);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.mt-6{margin-top:var(--space-6)}@media(max-width:768px){.machines-pricing-grid{grid-template-columns:1fr}}.date-filter-container{position:relative}.date-filter-btn{justify-content:space-between;min-width:200px;background:var(--bg-surface);border:1px solid var(--border-default)}.date-filter-btn.active-filter{background:#6366f11a;border-color:var(--color-primary-500);color:var(--color-primary-500)}.filter-text{flex:1;text-align:left;margin:0 .5rem}.clear-filter-btn{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#0000001a;color:var(--text-secondary);transition:all .2s}.clear-filter-btn:hover{background:var(--color-error-500);color:#fff}.date-filter-dropdown{position:absolute;top:100%;right:0;margin-top:.5rem;width:280px;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);z-index:100;padding:1rem;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.date-filter-header{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.date-filter-header h4{font-size:.875rem;font-weight:600;color:var(--text-primary);margin:0}.date-inputs-row{display:flex;flex-direction:column;gap:1rem}.date-field{display:flex;flex-direction:column;gap:.25rem}.field-label{font-size:.75rem;font-weight:500;color:var(--text-secondary)}.form-input-sm{padding:.5rem;font-size:.875rem}.filter-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-subtle)}.client-devis-group{margin-bottom:var(--space-6);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.client-header{padding:var(--space-4);background:var(--bg-elevated);border-bottom:1px solid var(--border-subtle)}.client-name{font-size:var(--text-base);font-weight:600;color:var(--text-primary)}.checkbox{width:18px;height:18px;cursor:pointer}.devis-list{display:flex;flex-direction:column}.devis-item{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);cursor:pointer;transition:all var(--transition-fast)}.devis-item:last-child{border-bottom:none}.devis-item:hover{background:var(--bg-hover)}.devis-item.selected{background:#6366f10d}.devis-checkbox{width:18px;height:18px;border:2px solid var(--border-default);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all var(--transition-fast)}.devis-item.selected .devis-checkbox{background:var(--color-primary-500);border-color:var(--color-primary-500);color:#fff}.devis-info{flex:1;display:flex;flex-direction:column;gap:var(--space-1)}.devis-reference{font-weight:500;color:var(--text-primary);font-size:var(--text-sm)}.devis-date{font-size:var(--text-xs)}.devis-amount{font-weight:600;color:var(--text-primary);font-size:var(--text-base)}.invoice-summary{margin-top:var(--space-6);padding:var(--space-4);background:var(--bg-elevated);border-radius:var(--radius-lg);border:1px solid var(--border-default)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;color:var(--text-secondary)}.summary-row.total{border-top:2px solid var(--border-default);margin-top:var(--space-2);padding-top:var(--space-3);font-size:var(--text-lg)}.total-amount{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary)}.flex{display:flex}.items-center{align-items:center}.gap-3{gap:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.invoices-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.payment-status{display:flex;align-items:center;justify-content:center;gap:.75rem}.payment-progress-mini{width:80px;height:6px;background:var(--color-bg-secondary);border-radius:3px;overflow:hidden}.payment-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-primary),var(--color-success));transition:width .3s ease}.payment-badge{padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;white-space:nowrap}.payment-badge.paid{background:#d4edda;color:#155724}.payment-badge.partial{background:#fff3cd;color:#856404}.payment-badge.unpaid{background:#f8d7da;color:#721c24}.action-buttons{display:flex;gap:.5rem;flex-wrap:wrap}.invoice-ref{display:flex;align-items:center;gap:var(--space-2)}.devis-link{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--color-primary-400);font-size:var(--text-sm);transition:color var(--transition-fast)}.devis-link:hover{color:var(--color-primary-300)}.spinner-sm{width:16px;height:16px;border-width:2px}.currency{font-size:var(--text-lg);font-weight:400}.devis-references{display:flex;flex-wrap:wrap;gap:var(--space-1);align-items:center}.devis-ref-tag{font-size:var(--text-xs);font-weight:500;color:var(--color-primary-400);background:#6366f11a;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);white-space:nowrap}.table-date{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--text-muted)}@media(max-width:768px){.invoices-stats{grid-template-columns:1fr}.action-buttons{flex-direction:column;width:100%}.action-buttons .btn{width:100%}.payment-status{flex-direction:column;align-items:flex-start;gap:.5rem}.payment-progress-mini{width:100%}.devis-references{flex-direction:column;align-items:flex-start}}.settings-tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-6);padding:var(--space-2);background:var(--bg-surface);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.settings-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);border-radius:var(--radius-md);color:var(--text-muted);font-weight:500;transition:all var(--transition-fast)}.settings-tab:hover{color:var(--text-primary);background:var(--bg-elevated)}.settings-tab.active{background:linear-gradient(135deg,var(--color-primary-500),var(--color-primary-600));color:#fff}.tab-count{padding:var(--space-1) var(--space-2);background:#fff3;border-radius:var(--radius-full);font-size:var(--text-xs)}.settings-tab:not(.active) .tab-count{background:var(--bg-elevated)}.settings-content{animation:fadeIn var(--transition-normal)}.settings-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6)}.settings-header h3{font-size:var(--text-xl);color:var(--text-primary)}.settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.settings-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden;transition:all var(--transition-normal)}.settings-card:hover{border-color:var(--color-primary-500);box-shadow:var(--shadow-lg)}.settings-card.inactive{opacity:.6}.settings-card-header{display:flex;justify-content:space-between;align-items:flex-start;padding:var(--space-4)}.settings-card-icon{width:44px;height:44px;border-radius:var(--radius-lg);background:linear-gradient(135deg,#6366f133,#6366f11a);color:var(--color-primary-400);display:flex;align-items:center;justify-content:center}.settings-card-icon.service{background:linear-gradient(135deg,#22c55e33,#22c55e1a);color:var(--color-success-500)}.settings-card-actions{display:flex;gap:var(--space-1)}.settings-card-body{padding:0 var(--space-4) var(--space-4)}.settings-card-body h4{font-size:var(--text-lg);font-weight:600;color:var(--text-primary);margin-bottom:var(--space-1)}.settings-card-body p{font-size:var(--text-sm);color:var(--text-muted);margin-bottom:var(--space-3)}.settings-card-price{font-size:var(--text-xl);font-weight:700;color:var(--text-primary)}.settings-card-footer{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-elevated);border-top:1px solid var(--border-subtle);font-size:var(--text-sm);color:var(--text-muted)}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-neutral-500)}.status-dot.active{background:var(--color-success-500);box-shadow:0 0 8px var(--color-success-500)}.toggle-label{display:flex;align-items:center;gap:var(--space-3);cursor:pointer}.toggle-label input{display:none}.toggle-switch{position:relative;width:44px;height:24px;background:var(--bg-elevated);border:2px solid var(--border-default);border-radius:var(--radius-full);transition:all var(--transition-fast)}.toggle-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:var(--text-muted);border-radius:var(--radius-full);transition:all var(--transition-fast)}.toggle-label input:checked+.toggle-switch{background:var(--color-primary-500);border-color:var(--color-primary-500)}.toggle-label input:checked+.toggle-switch:after{left:22px;background:#fff}@media(max-width:768px){.settings-tabs{flex-direction:column}.settings-header{flex-direction:column;gap:var(--space-4);align-items:stretch}.settings-grid{grid-template-columns:1fr}}.expenses-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.expenses-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.expenses-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.expense-stat-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:8px}.expense-stat-card .stat-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;margin-bottom:8px}.expense-stat-card .stat-icon.total{background:#0066cc1a;color:#06c}.expense-stat-card .stat-icon.count{background:#28a7451a;color:#28a745}.expense-stat-card .stat-label{font-size:14px;color:var(--text-muted)}.expense-stat-card .stat-value{font-size:24px;font-weight:700;color:var(--text-primary)}.expenses-table-container{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;overflow:hidden}.expenses-table{width:100%;border-collapse:collapse}.expenses-table th,.expenses-table td{padding:14px 16px;text-align:left;border-bottom:1px solid var(--border-subtle)}.expenses-table th{background:var(--bg-elevated);font-weight:600;font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px}.expenses-table tbody tr:hover{background:var(--bg-elevated)}.expenses-table tbody tr:last-child td{border-bottom:none}.expense-amount{font-weight:600;color:#dc3545}.expense-category-v2{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:16px;font-size:13px;font-weight:600;background:color-mix(in srgb,var(--cat-color),transparent 90%);color:var(--cat-color);border:1px solid color-mix(in srgb,var(--cat-color),transparent 80%)}.expense-actions-main{display:flex;gap:12px}.expense-date{color:var(--text-muted);font-size:14px}.expense-reference{color:var(--text-muted);font-size:13px;font-style:italic}.expense-actions{display:flex;gap:8px}.category-chart{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:12px;padding:20px;margin-bottom:24px}.category-chart h3{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.category-bars{display:flex;flex-direction:column;gap:12px}.category-bar-item{display:flex;align-items:center;gap:12px}.category-bar-label{min-width:100px;font-size:14px;font-weight:500}.category-bar-container{flex:1;height:24px;background:var(--bg-elevated);border-radius:12px;overflow:hidden}.category-bar-fill{height:100%;border-radius:12px;transition:width .3s ease}.category-bar-value{min-width:100px;text-align:right;font-size:14px;font-weight:600}.empty-state{text-align:center;padding:60px 20px;color:var(--text-muted)}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state h3{font-size:18px;font-weight:600;margin-bottom:8px;color:var(--text-primary)}.empty-state p{font-size:14px}@media(max-width:768px){.expenses-header{flex-direction:column;align-items:stretch}.expenses-filters{flex-direction:column;width:100%}.expenses-filters .form-select,.expenses-filters .form-input{width:100%}.expenses-stats{grid-template-columns:1fr}.expenses-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.expenses-table{min-width:600px}.expense-actions{flex-direction:column}.category-bar-item{flex-wrap:wrap}.category-bar-label,.category-bar-value{min-width:80px;font-size:12px}}.modal-overlay{position:fixed;inset:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;justify-content:center;align-items:center;z-index:1000;padding:var(--space-6);overflow-y:auto;scrollbar-width:none;animation:fadeIn var(--transition-fast)}.modal-overlay::-webkit-scrollbar{display:none}.modal-content{background:var(--bg-surface);color:var(--text-primary);padding:0;border-radius:var(--radius-2xl);width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);border:1px solid var(--border-default);animation:slideUp var(--transition-normal)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.modal-header h2{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.modal-body{padding:var(--space-6)}.modal-content .close-btn{background:var(--bg-elevated);border:1px solid var(--border-default);width:32px;height:32px;border-radius:var(--radius-md);font-size:1.1rem;cursor:pointer;color:var(--text-muted);display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.modal-content .close-btn:hover{color:var(--text-primary);background:var(--bg-hover);border-color:var(--color-primary-500)}.modal-footer{padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-3)}.closure-summary{background:var(--bg-elevated);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border-subtle)}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) 0;font-size:var(--text-sm);color:var(--text-secondary)}.summary-row:last-child{margin-bottom:0}.summary-row.total{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-default);font-weight:700;color:var(--text-primary);font-size:var(--text-base)}.amount.green{color:var(--color-primary-400)}.amount.red{color:var(--color-error-500)}.form-control{width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--border-default);background:var(--bg-elevated);color:var(--text-primary);border-radius:var(--radius-md);font-size:var(--text-sm);margin-top:var(--space-1);transition:all var(--transition-fast)}.form-control:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px #8bc34a26}.form-control::placeholder{color:var(--text-muted)}.form-group label{font-size:var(--text-sm);font-weight:500;color:var(--text-secondary)}.custom-tabs{display:flex;margin-bottom:0;border-bottom:1px solid var(--border-default);overflow-x:auto;gap:var(--space-1);padding:0 var(--space-2)}.tab-btn{padding:var(--space-4) var(--space-5);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;cursor:pointer;font-weight:500;font-size:var(--text-sm);color:var(--text-muted);display:flex;align-items:center;white-space:nowrap;transition:all var(--transition-fast)}.tab-btn:hover{color:var(--text-secondary);background:var(--bg-elevated);border-radius:var(--radius-md) var(--radius-md) 0 0}.tab-btn.active{color:var(--color-primary-400);border-bottom-color:var(--color-primary-500)}.tab-content{padding:var(--space-5)}.devis-detail-panel{background:var(--bg-elevated);border-top:1px solid var(--border-default);padding:var(--space-6);animation:fadeIn var(--transition-fast)}.devis-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.devis-detail-section h4{font-size:var(--text-sm);font-weight:600;color:var(--text-primary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.devis-detail-section .detail-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.devis-detail-section .detail-table th{background:var(--bg-surface);padding:var(--space-2) var(--space-3);text-align:left;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.65rem;border-bottom:1px solid var(--border-default)}.devis-detail-section .detail-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);color:var(--text-secondary)}.devis-detail-section .detail-table tbody tr:last-child td{border-bottom:none}.devis-detail-section .detail-table tbody tr:hover{background:#8bc34a08}.client-info-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-4)}.client-info-card p{font-size:var(--text-sm);margin-bottom:var(--space-1);color:var(--text-secondary)}.client-info-card .client-name{font-weight:600;color:var(--text-primary);font-size:var(--text-base);margin-bottom:var(--space-2)}.invoice-info-card{background:#8bc34a14;border:1px solid rgba(139,195,74,.2);border-radius:var(--radius-lg);padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);display:flex;align-items:center;gap:var(--space-3)}.invoice-info-card span{font-size:var(--text-sm);color:var(--color-primary-300)}.payment-total-row{display:flex;justify-content:space-between;align-items:center;margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-default);font-size:var(--text-sm)}.payment-total-row .paid-amount{font-weight:700;color:var(--color-primary-400)}.payment-total-row .total-amount{color:var(--text-muted)}.no-data-msg{color:var(--text-muted);font-size:var(--text-sm);padding:var(--space-3) 0}.caisse-filters{display:flex;gap:var(--space-4);margin-bottom:var(--space-4);flex-wrap:wrap}.caisse-search-wrapper{flex:1;min-width:200px;position:relative}.caisse-search-wrapper .search-icon{position:absolute;left:var(--space-3);top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.caisse-search-wrapper .form-input{padding-left:2.5rem}.caisse-filters .form-input{width:180px}.status-badge-row{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);flex-wrap:wrap}.status-badge-row .badge{padding:var(--space-1) var(--space-3);font-size:var(--text-xs)}@media(max-width:768px){.devis-detail-grid{grid-template-columns:1fr}.caisse-filters{flex-direction:column}.caisse-filters .form-input{width:100%}.modal-content{max-width:none;margin:var(--space-4);max-height:calc(100vh - var(--space-8))}.custom-tabs{gap:0}.tab-btn{padding:var(--space-3) var(--space-4);font-size:var(--text-xs)}.tab-content,.devis-detail-panel{padding:var(--space-4)}}.rapport-header-actions{display:flex;align-items:center;gap:12px}.year-selector{display:flex;align-items:center;gap:8px}.year-selector label{font-size:var(--text-sm);font-weight:600;color:var(--text-secondary)}.year-selector select{padding:8px 16px;border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-base);color:var(--text-primary);font-size:var(--text-sm);font-weight:600;cursor:pointer}.rapport-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:24px}.rapport-stat-card{background:var(--bg-surface);border-radius:var(--radius-lg);padding:20px;border:1px solid var(--border-subtle);display:flex;align-items:center;gap:16px}.rapport-stat-card .stat-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.rapport-stat-card .stat-icon.blue{background:#3b82f61a;color:#3b82f6}.rapport-stat-card .stat-icon.green{background:#22c55e1a;color:#22c55e}.rapport-stat-card .stat-icon.orange{background:#f973161a;color:#f97316}.rapport-stat-card .stat-icon.red{background:#ef44441a;color:#ef4444}.rapport-stat-card .stat-icon.purple{background:#a855f71a;color:#a855f7}.rapport-stat-card .stat-icon.emerald{background:#10b9811a;color:#10b981}.rapport-stat-card .stat-info{flex:1;min-width:0}.rapport-stat-card .stat-value{font-size:1.3rem;font-weight:700;color:var(--text-primary);line-height:1.2}.rapport-stat-card .stat-label{font-size:var(--text-xs);color:var(--text-muted);margin-top:4px}.rapport-section{margin-bottom:32px}.rapport-section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.rapport-section-header h3{font-size:var(--text-lg);font-weight:600;color:var(--text-primary)}.rapport-actions{display:flex;gap:12px;margin-bottom:24px}.btn-danger-outline{background:transparent;border:1px solid #ef4444;color:#ef4444}.btn-danger-outline:hover{background:#ef44441a}.rapport-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.rapport-modal{background:var(--bg-surface);border-radius:var(--radius-xl);padding:32px;max-width:480px;width:90%;box-shadow:var(--shadow-xl)}.rapport-modal h3{font-size:var(--text-lg);font-weight:700;color:var(--text-primary);margin-bottom:12px}.rapport-modal p{color:var(--text-secondary);font-size:var(--text-sm);margin-bottom:8px;line-height:1.5}.rapport-modal .warning-text{color:#ef4444;font-weight:600;font-size:var(--text-sm);margin-top:12px;margin-bottom:20px}.rapport-modal-actions{display:flex;gap:12px;justify-content:flex-end}.currency{font-size:.7em;color:var(--text-muted)}.table .badge-paid{background:#22c55e26;color:#22c55e;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}.table .badge-unpaid{background:#ef444426;color:#ef4444;padding:2px 8px;border-radius:6px;font-size:11px;font-weight:600}#root{min-height:100vh}.page-header{padding:var(--space-4) var(--space-6);background:#0f172acc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border-subtle);position:sticky;top:0;z-index:50}.page-header h1{font-size:var(--text-2xl);font-weight:600}.page-content{padding:var(--space-6)}
