.searchable-select{position:relative;width:100%}.searchable-select.disabled{opacity:.6;pointer-events:none}.searchable-select-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:.625rem .75rem;font-size:.9rem;background:#fff;border:1px solid #d1d5db;border-radius:6px;cursor:pointer;text-align:left;transition:border-color .15s,box-shadow .15s}.searchable-select-trigger:hover:not(:disabled){border-color:#3b82f6}.searchable-select-trigger:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.searchable-select.open .searchable-select-trigger{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a;border-bottom-left-radius:0;border-bottom-right-radius:0}.searchable-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#1f2937}.searchable-select-value.placeholder{color:#9ca3af}.searchable-select-value .sublabel{color:#6b7280;font-size:.85em}.searchable-select-arrow{margin-left:.5rem;font-size:.7rem;color:#6b7280;transition:transform .15s}.searchable-select-dropdown{position:absolute;top:100%;left:0;right:0;z-index:1000;background:#fff;border:1px solid #3b82f6;border-top:none;border-bottom-left-radius:6px;border-bottom-right-radius:6px;box-shadow:0 4px 12px #00000026;max-height:350px;display:flex;flex-direction:column}.searchable-select-search{position:relative;padding:.5rem;border-bottom:1px solid #e5e7eb;background:#f9fafb}.searchable-select-search-input{width:100%;padding:.5rem 2rem .5rem .75rem;font-size:.9rem;border:1px solid #d1d5db;border-radius:4px;outline:none;transition:border-color .15s}.searchable-select-search-input:focus{border-color:#3b82f6}.searchable-select-search-input::placeholder{color:#9ca3af}.searchable-select-clear-search{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);width:1.5rem;height:1.5rem;padding:0;background:#e5e7eb;border:none;border-radius:50%;font-size:1rem;line-height:1;color:#6b7280;cursor:pointer;transition:background-color .15s}.searchable-select-clear-search:hover{background:#d1d5db;color:#374151}.searchable-select-options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:250px;flex:1}.searchable-select-option{padding:.625rem .75rem;cursor:pointer;transition:background-color .1s;display:flex;flex-direction:column;gap:.125rem}.searchable-select-option:hover,.searchable-select-option.highlighted{background:#eff6ff}.searchable-select-option.selected{background:#dbeafe;font-weight:500}.searchable-select-option.selected.highlighted{background:#bfdbfe}.searchable-select-option .option-label{color:#1f2937}.searchable-select-option .option-sublabel{font-size:.8rem;color:#6b7280}.searchable-select-option .option-placeholder{color:#9ca3af;font-style:italic}.searchable-select-no-options{padding:1rem;text-align:center;color:#6b7280;font-style:italic}.searchable-select-footer{padding:.375rem .75rem;font-size:.75rem;color:#6b7280;background:#f9fafb;border-top:1px solid #e5e7eb;border-bottom-left-radius:6px;border-bottom-right-radius:6px;text-align:right}.searchable-select-options::-webkit-scrollbar{width:6px}.searchable-select-options::-webkit-scrollbar-track{background:#f1f1f1}.searchable-select-options::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.searchable-select-options::-webkit-scrollbar-thumb:hover{background:#a1a1a1}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1e3a5f,#2563eb);padding:20px}.login-container{background:#fff;border-radius:12px;box-shadow:0 10px 40px #0003;padding:40px;width:100%;max-width:420px}.login-header{text-align:center;margin-bottom:30px}.login-header h1{color:#2563eb;font-size:2rem;margin:0 0 8px}.login-header h2{color:#64748b;font-size:1.1rem;font-weight:400;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-weight:500;color:#334155;font-size:.9rem}.form-group input{padding:12px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.btn-primary{background:#2563eb;color:#fff;border:none;padding:14px 24px;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:background .2s}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;padding:10px 20px;border-radius:8px;font-size:.9rem;cursor:pointer;width:100%}.login-links{display:flex;justify-content:center;margin-top:20px;padding-top:20px;border-top:1px solid #e2e8f0}.link{color:#2563eb;text-decoration:none;font-size:.9rem}.link:hover{text-decoration:underline}.error-message{background:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:20px;font-size:.9rem;border:1px solid #fecaca}.test-users-section{margin-top:30px;padding-top:20px;border-top:1px solid #e2e8f0}.test-users-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.test-user-btn{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer}.test-user-btn:hover{background:#f1f5f9}.test-user-name{font-weight:500;color:#334155}.test-user-role{font-size:.8rem;color:#64748b;background:#e2e8f0;padding:2px 8px;border-radius:4px}.sidebar-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:999;animation:fadeIn .2s ease}.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;z-index:1000;transition:width .3s ease,transform .3s ease}.sidebar.collapsed{width:70px}.sidebar.collapsed:hover{width:280px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:20px;border-bottom:1px solid #e2e8f0;background:linear-gradient(135deg,#667eea,#764ba2)}.sidebar-header-actions{display:flex;align-items:center;gap:8px}.sidebar-collapse-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;font-size:1rem;color:#fff;background:#ffffff1a;border:none;border-radius:6px;cursor:pointer;transition:background .2s ease}.sidebar-collapse-btn:hover{background:#fff3}.sidebar.collapsed .sidebar-brand h1,.sidebar.collapsed .sidebar-badge{opacity:0;transition:opacity .2s ease}.sidebar.collapsed:hover .sidebar-brand h1,.sidebar.collapsed:hover .sidebar-badge{opacity:1}.sidebar-brand h1{margin:0;font-size:1.5rem;font-weight:700;color:#fff}.sidebar-badge{display:inline-block;padding:2px 8px;font-size:.75rem;font-weight:600;color:#667eea;background:#fff;border-radius:12px;margin-left:8px}.sidebar-close{display:none;padding:8px;font-size:1.5rem;color:#fff;background:transparent;border:none;cursor:pointer;border-radius:4px;transition:background .2s ease}.sidebar-close:hover{background:#ffffff1a}.sidebar-user{display:flex;align-items:center;gap:12px;padding:20px;border-bottom:1px solid #e2e8f0}.sidebar-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%;overflow:hidden}.sidebar-avatar img{width:100%;height:100%;object-fit:cover}.sidebar-user-info{flex:1;min-width:0;transition:opacity .2s ease}.sidebar.collapsed .sidebar-user-info{opacity:0;pointer-events:none}.sidebar.collapsed:hover .sidebar-user-info{opacity:1;pointer-events:auto}.sidebar-user-name{display:block;font-size:.9375rem;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-role{display:block;font-size:.8125rem;color:#64748b;margin-top:2px}.sidebar-nav{flex:1;padding:8px 0;overflow-y:auto}.sidebar-nav::-webkit-scrollbar{width:6px}.sidebar-nav::-webkit-scrollbar-track{background:#f1f5f9}.sidebar-nav::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:3px}.sidebar-nav::-webkit-scrollbar-thumb:hover{background:#94a3b8}.nav-group{margin-bottom:4px}.nav-group-header{display:flex;align-items:center;gap:12px;width:100%;padding:12px 20px;font-size:.9375rem;font-weight:600;color:#475569;background:transparent;border:none;cursor:pointer;transition:all .2s ease;text-align:left}.nav-group-header:hover{background:#f8fafc;color:#667eea}.nav-group-header.active{color:#667eea;background:#f0f4ff}.nav-group-icon{font-size:1.125rem}.nav-group-label{flex:1;transition:opacity .2s ease}.nav-group-arrow{font-size:.75rem;transition:transform .2s ease,opacity .2s ease}.sidebar.collapsed .nav-group-label,.sidebar.collapsed .nav-group-arrow{opacity:0;pointer-events:none}.sidebar.collapsed:hover .nav-group-label,.sidebar.collapsed:hover .nav-group-arrow{opacity:1;pointer-events:auto}.nav-group-header.expanded .nav-group-arrow{transform:rotate(0)}.nav-group-items{padding-left:12px;animation:slideDown .2s ease}.nav-item{display:flex;align-items:center;gap:12px;padding:10px 20px 10px 32px;font-size:.875rem;font-weight:500;color:#64748b;text-decoration:none;border-radius:8px;margin:2px 8px;transition:all .2s ease}.nav-item:hover{background:#f8fafc;color:#667eea}.nav-item.active{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);font-weight:600;box-shadow:0 2px 8px #667eea4d}.nav-item-icon{font-size:1rem}.nav-item-label{flex:1;transition:opacity .2s ease}.sidebar.collapsed .nav-item-label{opacity:0;pointer-events:none}.sidebar.collapsed:hover .nav-item-label{opacity:1;pointer-events:auto}.sidebar.collapsed .nav-group-items{display:none}.sidebar.collapsed:hover .nav-group-items{display:block}.sidebar-footer{padding:16px;border-top:1px solid #e2e8f0}.sidebar-logout{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;font-size:.9375rem;font-weight:500;color:#dc2626;background:#fef2f2;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.sidebar-logout:hover{background:#fee2e2;color:#b91c1c}@media (max-width: 1023px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{display:block}}@media (min-width: 1024px){.sidebar-overlay{display:none}}.app-layout{display:flex;min-height:100vh;background:#f8fafc}.app-main{flex:1;display:flex;flex-direction:column;margin-left:280px;min-height:100vh;transition:margin-left .3s ease}.app-main.sidebar-collapsed{margin-left:70px}.app-topbar{display:none;align-items:center;gap:16px;padding:16px 20px;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:100}.hamburger-btn{display:flex;flex-direction:column;gap:4px;padding:8px;background:transparent;border:none;cursor:pointer;border-radius:4px;transition:background .2s ease}.hamburger-btn:hover{background:#f1f5f9}.hamburger-btn span{display:block;width:24px;height:3px;background:#64748b;border-radius:2px;transition:all .2s ease}.app-topbar-title{margin:0;font-size:1.25rem;font-weight:600;color:#1e293b}.app-content{flex:1;padding:32px}@media (max-width: 1023px){.app-main{margin-left:0}.app-topbar{display:flex}.app-content{padding:20px}}@media (max-width: 640px){.app-content{padding:16px}.app-topbar-title{font-size:1.125rem}}@media (min-width: 1024px){.hamburger-btn{display:none}}.dashboard-new{display:flex;flex-direction:column;gap:32px}.dashboard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:20px}.spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#667eea;border-radius:50%;animation:spin 1s linear infinite}.dashboard-header-new h1{margin:0 0 4px;font-size:2rem;font-weight:700;color:#1e293b}.dashboard-header-new p{margin:0;font-size:1rem;color:#64748b}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.stat-card{padding:24px;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a;transition:all .2s ease}.stat-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #0000001f}.stat-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.stat-icon{font-size:2rem}.stat-badge{padding:4px 12px;font-size:.8125rem;font-weight:600;border-radius:20px}.stat-badge.positive{color:#16a34a;background:#dcfce7}.stat-badge.negative{color:#dc2626;background:#fef2f2}.stat-value{font-size:1.75rem;font-weight:700;color:#1e293b;margin-bottom:4px}.stat-label{font-size:.9375rem;color:#64748b}.charts-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.chart-card{padding:24px;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a}.chart-card:first-child{grid-column:span 2}.chart-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.chart-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#1e293b}.chart-subtitle{font-size:.875rem;color:#64748b}.period-selector{display:flex;gap:8px;padding:4px;background:#f1f5f9;border-radius:8px}.period-selector button{padding:8px 16px;font-size:.875rem;font-weight:500;color:#64748b;background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.period-selector button:hover{color:#334155}.period-selector button.active{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);box-shadow:0 2px 8px #667eea4d}.bar-chart{display:flex;align-items:flex-end;gap:16px;height:300px;padding:20px 0}.bar-wrapper{flex:1;display:flex;flex-direction:column;align-items:center;gap:12px}.bar-container{position:relative;flex:1;width:100%;display:flex;align-items:flex-end}.bar{position:relative;width:100%;min-height:20px;background:linear-gradient(180deg,#667eea,#764ba2);border-radius:8px 8px 0 0;transition:all .3s ease;cursor:pointer}.bar:hover{opacity:.8}.bar:hover .bar-tooltip{opacity:1;transform:translateY(-8px)}.bar-tooltip{position:absolute;top:-40px;left:50%;transform:translate(-50%);padding:6px 12px;font-size:.8125rem;font-weight:600;color:#fff;background:#1e293b;border-radius:6px;white-space:nowrap;opacity:0;transition:all .2s ease;pointer-events:none}.bar-tooltip:after{content:"";position:absolute;bottom:-4px;left:50%;transform:translate(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #1e293b}.bar-label{font-size:.8125rem;font-weight:500;color:#64748b}.top-list{display:flex;flex-direction:column;gap:16px}.top-item{display:flex;align-items:center;gap:16px}.top-rank{display:flex;align-items:center;justify-content:center;width:32px;height:32px;font-size:.875rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px}.top-info{flex:1;min-width:0}.top-name{font-size:.9375rem;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-meta{font-size:.8125rem;color:#64748b;margin-top:2px}.top-progress{width:120px;height:6px;background:#f1f5f9;border-radius:3px;overflow:hidden}.top-progress-bar{height:100%;background:linear-gradient(90deg,#667eea,#764ba2);border-radius:3px;transition:width .5s ease}.vip-list{display:flex;flex-direction:column;gap:16px}.vip-item{display:flex;align-items:center;gap:16px;padding:16px;background:#f8fafc;border-radius:12px;transition:all .2s ease}.vip-item:hover{background:#f1f5f9}.vip-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:50%}.vip-info{flex:1;min-width:0}.vip-name{font-size:.9375rem;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vip-meta{font-size:.8125rem;color:#64748b;margin-top:2px}.vip-amount{font-size:1rem;font-weight:700;color:#667eea}.debt-list{display:flex;flex-direction:column;gap:16px}.debt-item{display:flex;align-items:center;gap:16px;padding:16px;background:#fef2f2;border-radius:12px;border:1px solid #fecaca;transition:all .2s ease}.debt-item:hover{background:#fee2e2}.debt-avatar{display:flex;align-items:center;justify-content:center;width:48px;height:48px;font-size:1.25rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#ef4444,#dc2626);border-radius:50%}.debt-info{flex:1;min-width:0}.debt-name{font-size:.9375rem;font-weight:600;color:#1e293b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debt-meta{font-size:.8125rem;color:#64748b;margin-top:2px}.debt-amount{font-size:1rem;font-weight:700;color:#dc2626}.empty-state{display:flex;align-items:center;justify-content:center;padding:32px;text-align:center;color:#64748b;font-size:.9375rem}@media (max-width: 1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}.charts-grid{grid-template-columns:1fr}.chart-card:first-child{grid-column:span 1}}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}.bar-chart{height:250px;gap:8px}.top-progress{width:80px}.dashboard-header-new h1{font-size:1.5rem}}.enterprise-page{min-height:100vh;background:#f8fafc}.enterprise-page .dashboard-header{background:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a}.enterprise-page .header-left{display:flex;align-items:center;gap:16px}.enterprise-page .header-left h1{color:#2563eb;font-size:1.4rem;margin:0}.enterprise-page .header-right{display:flex;align-items:center;gap:16px}.enterprise-page .user-info{display:flex;align-items:center;gap:8px;color:#334155}.enterprise-page .role-badge{background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:4px;font-size:.8rem}.enterprise-page .btn-logout{background:none;border:1px solid #e2e8f0;padding:8px 16px;border-radius:6px;cursor:pointer;color:#64748b}.enterprise-page .btn-logout:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}.enterprise-content{padding:24px;max-width:900px;margin:0 auto}.message{padding:12px 16px;border-radius:8px;margin-bottom:20px}.message.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.message.success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.message.info{background:#eff6ff;color:#2563eb;border:1px solid #bfdbfe}.loading,.access-denied{text-align:center;padding:60px 20px}.access-denied h2{color:#dc2626;margin-bottom:12px}.access-denied p{color:#64748b;margin-bottom:24px}.enterprise-form{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.form-section{padding:24px;border-bottom:1px solid #e2e8f0}.form-section:last-of-type{border-bottom:none}.form-section h2{color:#1e293b;font-size:1.1rem;margin:0 0 20px;padding-bottom:8px;border-bottom:2px solid #2563eb;display:inline-block}.logo-section{display:flex;align-items:flex-start;gap:24px}.logo-preview{width:150px;height:150px;border:2px dashed #e2e8f0;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#f8fafc}.logo-preview img{max-width:100%;max-height:100%;object-fit:contain}.logo-placeholder{color:#94a3b8;font-size:.9rem}.logo-actions{display:flex;flex-direction:column;gap:12px}.logo-actions .hint{color:#94a3b8;font-size:.8rem;margin:0}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.form-group.full-width{grid-column:1 / -1}.form-group label{color:#374151;font-size:.9rem;font-weight:500}.form-group input,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding:20px 24px;background:#f8fafc;border-radius:0 0 12px 12px}.btn-primary{background:#2563eb;color:#fff;border:none;padding:12px 24px;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;padding:12px 24px;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#f3f4f6}.btn-danger{background:#fff;color:#dc2626;border:1px solid #fecaca;padding:12px 24px;border-radius:6px;font-size:1rem;cursor:pointer}.btn-danger:hover{background:#fef2f2}@media (max-width: 768px){.enterprise-page .dashboard-header{flex-direction:column;gap:12px;align-items:flex-start}.enterprise-page .header-right{width:100%;justify-content:space-between}.form-grid{grid-template-columns:1fr}.logo-section{flex-direction:column;align-items:center}.form-actions{flex-direction:column}.form-actions button{width:100%}}@media (max-width: 480px){.enterprise-content,.form-section{padding:16px}.logo-preview{width:120px;height:120px}}.dropdown-empty{padding:20px 16px;text-align:center;color:#64748b;font-style:italic;font-size:.875rem;background:#f8fafc}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;flex-wrap:wrap;gap:1rem;margin-top:1rem;border-top:1px solid #e0e0e0}.pagination-info{color:#666;font-size:.9rem}.pagination-controls{display:flex;gap:.25rem;align-items:center}.pagination-btn{min-width:2.5rem;height:2.5rem;border:1px solid #ddd;background:#fff;color:#333;cursor:pointer;border-radius:4px;font-size:.9rem;transition:all .2s ease;padding:.5rem}.pagination-btn:hover:not(:disabled){background:#f5f5f5;border-color:#007bff;color:#007bff}.pagination-btn.active{background:#007bff;color:#fff;border-color:#007bff;font-weight:600}.pagination-btn:disabled{opacity:.4;cursor:not-allowed}.pagination-ellipsis{padding:0 .5rem;color:#999}.pagination-page-size{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.pagination-page-size label{color:#666}.page-size-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;background:#fff;cursor:pointer;font-size:.9rem}.page-size-select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 2px #007bff1a}@media (max-width: 768px){.pagination-container{flex-direction:column;align-items:stretch}.pagination-info{text-align:center;order:3}.pagination-controls{justify-content:center;order:1;flex-wrap:wrap}.pagination-page-size{justify-content:center;order:2}.pagination-btn{min-width:2rem;height:2rem;font-size:.85rem}}.sites-page{min-height:100vh;background:#f8fafc}.sites-page .dashboard-header{background:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a}.sites-page .header-left{display:flex;align-items:center;gap:16px}.sites-page .header-left h1{color:#2563eb;font-size:1.4rem;margin:0}.sites-page .btn-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;color:#333}.sites-page .btn-back:hover{background:#f0f0f0;border-color:#667eea;color:#667eea}.sites-page .header-right{display:flex;align-items:center;gap:16px}.sites-page .user-info{display:flex;align-items:center;gap:8px;color:#334155}.sites-page .role-badge{background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:4px;font-size:.8rem}.sites-page .btn-logout{background:none;border:1px solid #e2e8f0;padding:8px 16px;border-radius:6px;cursor:pointer;color:#64748b}.sites-page .btn-logout:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}.sites-content{padding:24px;max-width:1200px;margin:0 auto}.sites-page .message{padding:12px 16px;border-radius:8px;margin-bottom:20px}.sites-page .message.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.sites-page .message.success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.sites-page .loading,.sites-page .access-denied,.sites-page .empty-state{text-align:center;padding:60px 20px}.sites-page .access-denied h2{color:#dc2626;margin-bottom:12px}.sites-page .access-denied p,.sites-page .empty-state p{color:#64748b;margin-bottom:12px}.sites-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.sites-header h2{color:#1e293b;font-size:1.25rem;margin:0}.sites-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.site-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:20px;transition:box-shadow .2s}.site-card:hover{box-shadow:0 4px 12px #00000026}.site-card.inactive{opacity:.7;background:#f8fafc}.site-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.site-type-badge{padding:4px 10px;border-radius:4px;font-size:.75rem;font-weight:600;text-transform:uppercase}.site-type-badge.siege{background:#dbeafe;color:#1d4ed8}.site-type-badge.magasin{background:#dcfce7;color:#16a34a}.site-status-badge{padding:4px 10px;border-radius:4px;font-size:.75rem}.site-status-badge.active{background:#f0fdf4;color:#16a34a}.site-status-badge.inactive{background:#fef2f2;color:#dc2626}.site-card h3{color:#1e293b;font-size:1.1rem;margin:0 0 8px}.default-badge{display:inline-block;background:#fef3c7;color:#d97706;padding:2px 8px;border-radius:4px;font-size:.75rem;margin-bottom:12px}.site-address{color:#64748b;font-size:.9rem;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.site-address p{margin:2px 0}.site-contact{color:#475569;font-size:.85rem;margin-bottom:16px}.site-contact p{margin:4px 0}.site-card-actions{display:flex;gap:8px}.sites-page .btn-primary{background:#2563eb;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.sites-page .btn-primary:hover:not(:disabled){background:#1d4ed8}.sites-page .btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.sites-page .btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s}.sites-page .btn-secondary:hover{background:#f3f4f6}.sites-page .btn-danger{background:#fff;color:#dc2626;border:1px solid #fecaca;padding:10px 20px;border-radius:6px;font-size:.95rem;cursor:pointer}.sites-page .btn-danger:hover:not(:disabled){background:#fef2f2}.sites-page .btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-sm{padding:6px 12px!important;font-size:.85rem!important}.modal{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background:#f8fafc;border-radius:0 0 12px 12px}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:disabled{background:#f3f4f6;color:#6b7280;cursor:not-allowed}@media (max-width: 768px){.sites-page .dashboard-header{flex-direction:column;gap:12px;align-items:flex-start}.sites-page .header-right{width:100%;justify-content:space-between}.sites-header{flex-direction:column;gap:16px;align-items:flex-start}.sites-header .btn-primary{width:100%}.sites-grid,.form-row{grid-template-columns:1fr}.modal-footer{flex-direction:column}.modal-footer button{width:100%}}@media (max-width: 480px){.sites-content{padding:16px}.site-card-actions{flex-direction:column}.site-card-actions button{width:100%}}.pagination-container{display:flex;justify-content:center;margin-top:24px;padding-bottom:24px}.article-image-upload{margin-top:1.5rem;padding-top:1rem;border-top:1px solid #e5e7eb}.article-image-upload h3{font-size:1rem;font-weight:600;color:#374151;margin-bottom:1rem}.images-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem;margin-bottom:1rem}.image-item{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;border:2px solid transparent;transition:border-color .2s}.image-item.main-image{border-color:#2563eb}.image-item img{width:100%;height:100%;object-fit:cover}.image-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 50%);opacity:0;transition:opacity .2s;display:flex;flex-direction:column;justify-content:space-between;padding:.5rem}.image-item:hover .image-overlay,.image-item.main-image .image-overlay{opacity:1}.image-actions{display:flex;justify-content:flex-end;gap:.25rem}.btn-image-action{width:28px;height:28px;border-radius:50%;border:none;background:#ffffffe6;cursor:pointer;font-size:.875rem;display:flex;align-items:center;justify-content:center;transition:background-color .2s,transform .1s}.btn-image-action:hover{background:#fff;transform:scale(1.1)}.btn-image-action.btn-remove{background:#ef4444e6;color:#fff}.btn-image-action.btn-remove:hover{background:#dc2626}.main-badge{position:absolute;bottom:.5rem;left:.5rem;background:#2563eb;color:#fff;font-size:.625rem;padding:.125rem .375rem;border-radius:4px;font-weight:600;text-transform:uppercase}.upload-zone{border:2px dashed #d1d5db;border-radius:8px;padding:2rem;text-align:center;cursor:pointer;transition:border-color .2s,background-color .2s;background:#f9fafb}.upload-zone:hover{border-color:#2563eb;background:#eff6ff}.upload-zone.drag-over{border-color:#2563eb;background:#dbeafe}.upload-zone.uploading{cursor:wait;opacity:.8}.upload-icon{font-size:2.5rem;margin-bottom:.5rem}.upload-text{font-size:.9375rem;color:#374151;margin-bottom:.25rem}.upload-hint{font-size:.8125rem;color:#6b7280}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:.75rem}.upload-progress p{color:#2563eb;font-size:.875rem}.spinner{width:32px;height:32px;border:3px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}.max-images-info{background:#fef3c7;color:#92400e;padding:.75rem 1rem;border-radius:6px;font-size:.875rem;text-align:center}.bulk-action-bar{position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:1000;animation:slideUp .3s ease-out}@keyframes slideUp{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.bulk-action-bar-content{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:16px 24px;box-shadow:0 8px 24px #0003;display:flex;align-items:center;gap:24px;color:#fff;min-width:400px}.bulk-action-info{display:flex;align-items:center;gap:8px;flex:1}.bulk-action-count{background:#ffffff4d;border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.bulk-action-text{font-size:15px;font-weight:500}.bulk-action-buttons{display:flex;gap:12px}.bulk-action-btn{padding:8px 16px;border-radius:8px;border:none;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:6px}.bulk-action-btn-delete{background:#ef4444;color:#fff}.bulk-action-btn-delete:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.bulk-action-btn-cancel{background:#fff3;color:#fff}.bulk-action-btn-cancel:hover{background:#ffffff4d}.bulk-action-confirm-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.bulk-action-confirm-dialog{background:#fff;border-radius:12px;padding:24px;max-width:450px;width:90%;box-shadow:0 20px 60px #0000004d;animation:scaleIn .2s ease-out}@keyframes scaleIn{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}.bulk-action-confirm-dialog h3{margin:0 0 16px;color:#1f2937;font-size:20px;display:flex;align-items:center;gap:8px}.bulk-action-confirm-dialog p{margin:0 0 12px;color:#4b5563;line-height:1.6}.bulk-action-warning{color:#ef4444;font-weight:500;font-size:14px}.bulk-action-confirm-buttons{display:flex;gap:12px;margin-top:24px}.bulk-action-confirm-btn{flex:1;padding:12px 24px;border-radius:8px;border:none;cursor:pointer;font-size:15px;font-weight:500;transition:all .2s}.bulk-action-confirm-btn-cancel{background:#e5e7eb;color:#374151}.bulk-action-confirm-btn-cancel:hover{background:#d1d5db}.bulk-action-confirm-btn-delete{background:#ef4444;color:#fff}.bulk-action-confirm-btn-delete:hover{background:#dc2626;transform:translateY(-2px);box-shadow:0 4px 12px #ef44444d}.articles-page{min-height:100vh;background:#f8fafc}.articles-page .dashboard-header{background:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a}.articles-page .header-left{display:flex;align-items:center;gap:16px}.articles-page .header-left h1{color:#2563eb;font-size:1.4rem;margin:0}.articles-page .btn-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;color:#333}.articles-page .btn-back:hover{background:#f0f0f0;border-color:#667eea;color:#667eea}.articles-page .header-right{display:flex;align-items:center;gap:16px}.articles-page .user-info{display:flex;align-items:center;gap:8px;color:#334155}.articles-page .role-badge{background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:4px;font-size:.8rem}.articles-page .btn-logout{background:none;border:1px solid #e2e8f0;padding:8px 16px;border-radius:6px;cursor:pointer;color:#64748b}.articles-page .btn-logout:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}.articles-content{padding:24px;max-width:1400px;margin:0 auto}.articles-page .message{padding:12px 16px;border-radius:8px;margin-bottom:20px}.articles-page .message.error{background:#fef2f2;color:#dc2626;border:1px solid #fecaca}.articles-page .message.success{background:#f0fdf4;color:#16a34a;border:1px solid #bbf7d0}.articles-toolbar{display:flex;gap:16px;align-items:center;margin-bottom:24px;flex-wrap:wrap}.search-box{display:flex;gap:8px;flex:1;min-width:300px}.search-box input{flex:1;padding:10px 14px;border:1px solid #d1d5db;border-radius:6px;font-size:.95rem}.search-box input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.btn-search{background:#f1f5f9;border:1px solid #d1d5db;padding:10px 16px;border-radius:6px;cursor:pointer;color:#475569}.btn-search:hover{background:#e2e8f0}.filters{display:flex;gap:12px}.filters select{padding:10px 14px;border:1px solid #d1d5db;border-radius:6px;font-size:.9rem;background:#fff;cursor:pointer}.filters select:focus{outline:none;border-color:#2563eb}.articles-page .loading,.articles-page .empty-state{text-align:center;padding:60px 20px;color:#64748b}.articles-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.articles-table{width:100%;border-collapse:collapse;font-size:.9rem}.articles-table th,.articles-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e2e8f0}.articles-table th{background:#f8fafc;color:#475569;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.articles-table tbody tr:hover{background:#f8fafc}.articles-table .inactive-row{opacity:.6;background:#fafafa}.ref-cell{font-family:monospace;font-weight:500;color:#2563eb}.price-cell{font-weight:500;text-align:right}.qr-cell{font-family:monospace;font-size:.8rem;color:#64748b}.actions-cell{white-space:nowrap}.type-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.type-badge.produit{background:#dbeafe;color:#1d4ed8}.type-badge.service{background:#fef3c7;color:#d97706}.status-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:.75rem}.status-badge.active{background:#dcfce7;color:#16a34a}.status-badge.inactive{background:#fef2f2;color:#dc2626}.status-badge.archived{background:#f1f5f9;color:#64748b}.frontoffice-badge{display:inline-block;margin-left:8px;padding:2px 6px;background:#f0fdf4;color:#16a34a;border-radius:4px;font-size:.7rem;font-weight:600}.articles-page .btn-primary{background:#2563eb;color:#fff;border:none;padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.articles-page .btn-primary:hover:not(:disabled){background:#1d4ed8}.articles-page .btn-primary:disabled{background:#93c5fd;cursor:not-allowed}.articles-page .btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db;padding:10px 20px;border-radius:6px;font-size:.95rem;font-weight:500;cursor:pointer}.articles-page .btn-secondary:hover{background:#f3f4f6}.articles-page .btn-danger{background:#fff;color:#dc2626;border:1px solid #fecaca;padding:10px 20px;border-radius:6px;cursor:pointer}.articles-page .btn-danger:hover:not(:disabled){background:#fef2f2}.btn-icon{background:#f1f5f9;border:1px solid #e2e8f0;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.8rem;margin-right:4px}.btn-icon:hover{background:#e2e8f0}.btn-icon.btn-danger{background:#fef2f2;border-color:#fecaca;color:#dc2626}.btn-icon.btn-danger:hover{background:#fee2e2}.articles-summary{margin-top:16px;padding:12px 16px;background:#f8fafc;border-radius:8px;color:#64748b;font-size:.9rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 40px #0003}.modal.modal-sm{max-width:400px}.modal.modal-lg{max-width:600px}.modal-header h2{color:#1e293b;font-size:1.2rem;margin:0}.modal-body h3{color:#1e293b;font-size:1rem;margin:20px 0 12px;padding-top:16px;border-top:1px solid #e2e8f0}.modal-body h3:first-of-type{margin-top:0;padding-top:0;border-top:none}.modal-body .warning{color:#dc2626;font-weight:500}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background:#f8fafc;border-radius:0 0 12px 12px;border-top:1px solid #e2e8f0;flex-shrink:0}.form-group label{display:block;color:#374151;font-size:.9rem;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s,box-shadow .2s;box-sizing:border-box}.form-group input:disabled{background:#f3f4f6;color:#6b7280}.form-group textarea{resize:vertical;min-height:80px}.form-row-3{grid-template-columns:1fr 1fr 1fr}.checkbox-group label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-group input[type=checkbox]{width:auto;cursor:pointer}.info-box{background:#eff6ff;border:1px solid #bfdbfe;color:#2563eb;padding:12px 16px;border-radius:8px;font-size:.9rem;margin-top:12px}@media (max-width: 1024px){.articles-toolbar{flex-direction:column;align-items:stretch}.search-box{min-width:100%}.filters{flex-wrap:wrap}.filters select{flex:1;min-width:140px}.articles-page .btn-primary{width:100%}.articles-table-container{overflow-x:auto}}@media (max-width: 768px){.articles-page .dashboard-header{flex-direction:column;gap:12px;align-items:flex-start}.articles-page .header-right{width:100%;justify-content:space-between}.form-row,.form-row-3{grid-template-columns:1fr}.modal-footer{flex-direction:column}.modal-footer button{width:100%}}@media (max-width: 480px){.articles-content{padding:16px}}.qr-toolbar{display:flex;justify-content:space-between;align-items:center;background:#eff6ff;border:1px solid #bfdbfe;padding:12px 16px;border-radius:8px;margin-bottom:16px;flex-wrap:wrap;gap:12px}.qr-selection-info{display:flex;align-items:center;gap:16px;color:#1e40af;font-size:.9rem}.qr-selection-info span:first-child{font-weight:500}.btn-link{background:none;border:none;color:#2563eb;cursor:pointer;text-decoration:underline;font-size:.85rem;padding:0}.btn-link:hover{color:#1d4ed8}.qr-actions{display:flex;gap:12px}.btn-qr{background:#2563eb;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s}.btn-qr:hover:not(:disabled){background:#1d4ed8}.btn-qr:disabled{background:#93c5fd;cursor:not-allowed}.btn-qr-all{background:#059669}.btn-qr-all:hover:not(:disabled){background:#047857}.btn-qr-all:disabled{background:#6ee7b7}.btn-category{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #667eea4d}.btn-category:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #667eea66}.btn-category:disabled{background:linear-gradient(135deg,#cbd5e1,#94a3b8);cursor:not-allowed;box-shadow:none}.checkbox-col{width:40px;text-align:center!important}.checkbox-col input[type=checkbox]{width:16px;height:16px;cursor:pointer}.no-qr{color:#94a3b8}.qr-cell{width:100px}.qr-actions-cell{display:flex;gap:4px}.btn-qr-small{background:#f1f5f9;border:1px solid #e2e8f0;padding:4px 8px;border-radius:4px;font-size:.75rem;cursor:pointer;color:#475569}.btn-qr-small:hover{background:#e2e8f0}.btn-qr-small.btn-download{background:#dbeafe;border-color:#93c5fd;color:#1d4ed8}.btn-qr-small.btn-download:hover{background:#bfdbfe}.no-qr-text{color:#94a3b8;font-size:.8rem;font-style:italic}.modal.modal-qr{max-width:400px}.qr-modal-body{text-align:center}.qr-preview{background:#f8fafc;border-radius:12px;padding:24px;margin-bottom:20px;display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:200px}.qr-image{max-width:200px;border-radius:8px;box-shadow:0 2px 8px #0000001a}.qr-reference-label{margin-top:16px;font-size:1.1rem;font-weight:600;color:#1e293b;background:#fff;padding:8px 16px;border-radius:6px;border:2px solid #e2e8f0;letter-spacing:.5px}.qr-loading{color:#64748b;font-style:italic}.qr-info{text-align:left;background:#f1f5f9;padding:16px;border-radius:8px}.qr-info p{margin:0 0 8px;font-size:.9rem;color:#475569}.qr-info p:last-child{margin-bottom:0}@media (max-width: 768px){.qr-toolbar{flex-direction:column;align-items:stretch}.qr-selection-info{flex-wrap:wrap;justify-content:center}.qr-actions{justify-content:center}}.photo-col{width:60px;text-align:center!important}.article-thumbnail{width:40px;height:40px;object-fit:cover;border-radius:4px;border:1px solid #e2e8f0}.no-photo{color:#94a3b8;font-size:.875rem}.category-badges{display:flex;flex-wrap:wrap;gap:8px;padding:12px;min-height:50px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;margin-bottom:12px}.category-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px;font-size:.875rem;font-weight:500;box-shadow:0 2px 4px #667eea4d;transition:all .2s ease;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.category-badge:hover{transform:translateY(-2px);box-shadow:0 4px 8px #667eea66}.remove-category{display:flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;background:#fff3;border:none;border-radius:50%;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease;line-height:1}.remove-category:hover{background:#ffffff4d;transform:scale(1.1)}.remove-category:active{transform:scale(.95)}.no-categories-badge{color:#94a3b8;font-size:.875rem;font-style:italic;padding:6px 0}.category-select{width:100%;padding:10px 36px 10px 14px;border:2px solid #e2e8f0;border-radius:8px;background:#fff;font-size:.9375rem;color:#334155;cursor:pointer;transition:all .2s ease;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='%23667eea' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;-webkit-appearance:none;-moz-appearance:none;appearance:none}.category-select:hover{border-color:#667eea;background-color:#f8fafc}.category-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.category-select option{padding:8px}.no-categories-available{color:#64748b;font-size:.875rem;margin:0;padding:12px;background:#fef3c7;border:1px solid #fbbf24;border-radius:6px}.no-categories-available a{color:#2563eb;font-weight:600;text-decoration:none}.no-categories-available a:hover{text-decoration:underline}.modal-bulk-category{max-width:700px}.modal-description{background:#eff6ff;border-left:4px solid #3b82f6;padding:12px 16px;border-radius:6px;margin-bottom:24px;font-size:.9rem;color:#1e40af;line-height:1.5}.selected-categories-section,.add-categories-section{margin-bottom:24px}.selected-categories-section label,.add-categories-section label,.selected-articles-list label{display:block;font-weight:600;margin-bottom:12px;color:#334155;font-size:.95rem}.selected-articles-list{margin-top:24px;padding-top:24px;border-top:1px solid #e2e8f0}.articles-preview{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:12px;max-height:200px;overflow-y:auto}.article-preview-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:6px;margin-bottom:8px;border:1px solid #e2e8f0;font-size:.875rem}.article-preview-item:last-child{margin-bottom:0}.article-ref{font-weight:600;color:#3b82f6;font-family:Courier New,monospace}.article-name{color:#334155;flex:1}.existing-categories{color:#64748b;font-size:.8rem;font-style:italic}.more-articles{text-align:center;padding:8px;color:#64748b;font-style:italic;font-size:.875rem}.header-buttons{display:flex;gap:12px;align-items:center}.modal-import{max-width:600px}.import-instructions{margin-bottom:24px}.import-instructions p{margin:0 0 8px;color:#334155}.import-hint{font-size:.875rem;color:#64748b}.import-instructions .btn-link{background:none;border:none;color:#3b82f6;cursor:pointer;padding:8px 0;font-size:.9rem;text-decoration:underline}.import-instructions .btn-link:hover{color:#2563eb}.import-dropzone{margin-bottom:16px}.dropzone-content{border:2px dashed #cbd5e1;border-radius:12px;padding:40px 24px;text-align:center;cursor:pointer;transition:all .2s ease;background:#f8fafc}.dropzone-content:hover{border-color:#3b82f6;background:#eff6ff}.dropzone-placeholder{display:flex;flex-direction:column;align-items:center;gap:12px;color:#64748b}.upload-icon{font-size:2.5rem}.file-selected{display:flex;align-items:center;justify-content:center;gap:12px;color:#334155}.file-icon{font-size:1.5rem}.file-name{font-weight:600}.file-size{color:#64748b;font-size:.875rem}.import-results{margin-top:16px}.import-summary{padding:20px;border-radius:12px;margin-bottom:20px}.import-summary.success{background:linear-gradient(135deg,#dcfce7,#bbf7d0);border:1px solid #86efac}.import-summary.error{background:linear-gradient(135deg,#fef3c7,#fde68a);border:1px solid #fcd34d}.import-summary h3{margin:0 0 16px;color:#1f2937}.summary-stats{display:flex;gap:24px;justify-content:center}.summary-stats .stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 20px;background:#fffc;border-radius:8px}.summary-stats .stat.success .stat-value{color:#16a34a}.summary-stats .stat.warning .stat-value{color:#d97706}.stat-value{font-size:1.5rem;font-weight:700;color:#1f2937}.stat-label{font-size:.8rem;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.import-errors{background:#fef2f2;border:1px solid #fecaca;border-radius:12px;padding:16px}.import-errors h4{margin:0 0 12px;color:#dc2626}.errors-list{max-height:200px;overflow-y:auto}.error-item{display:flex;gap:8px;align-items:flex-start;padding:8px 12px;background:#fff;border-radius:6px;margin-bottom:8px;font-size:.875rem}.error-row{font-weight:600;color:#dc2626;white-space:nowrap}.error-field{color:#9333ea;font-family:monospace}.error-message{color:#374151;flex:1}.more-errors{text-align:center;padding:8px;color:#9ca3af;font-style:italic}.article-categories-page{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-header .header-left{display:flex;align-items:center;gap:16px}.page-header h1{font-size:2rem;color:#333;margin:0}.categories-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:1.5rem}.category-card{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000000d;transition:all .2s}.category-card:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.category-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.category-header h3{font-size:1.25rem;color:#333;margin:0;flex:1}.category-description{color:#666;font-size:.95rem;line-height:1.5;margin:0}.btn-icon{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:.25rem;opacity:.7;transition:opacity .2s}.btn-icon:hover{opacity:1}.btn-icon.btn-danger{color:#dc3545}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:8px;border:2px dashed #e0e0e0}.empty-state p{color:#666;font-size:1.1rem;margin-bottom:1.5rem}.loading{text-align:center;padding:3rem;font-size:1.2rem;color:#666}.error-message{background:#fee;border:1px solid #fcc;color:#c00;padding:1rem;border-radius:4px;margin-bottom:1rem}.success-message{background:#efe;border:1px solid #cfc;color:#060;padding:1rem;border-radius:4px;margin-bottom:1rem}.modal-content{background:#fff;border-radius:8px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.modal-header h2{margin:0;font-size:1.5rem;color:#333}.btn-close{background:none;border:none;font-size:2rem;cursor:pointer;color:#999;line-height:1;padding:0}.btn-close:hover{color:#333}.form-group label{display:block;font-weight:500;margin-bottom:.5rem;color:#333}.required{color:#dc3545}.form-group input,.form-group textarea{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-family:inherit}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.modal-actions{display:flex;justify-content:flex-end;gap:1rem;margin-top:2rem}.btn-primary{background:#007bff;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-primary:hover{background:#0056b3}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-secondary:hover{background:#545b62}.btn-danger{background:#dc3545;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer;transition:background .2s}.btn-danger:hover{background:#c82333}.modal-confirm{max-width:400px}.modal-body{padding:1rem 0}.modal-body p{margin:0 0 1rem;color:#333;font-size:1rem;line-height:1.5}.modal-body .warning-text{color:#dc3545;font-size:.9rem;font-style:italic}.manage-articles-modal{max-width:800px}.articles-checklist{max-height:400px;overflow-y:auto;border:1px solid #ddd;border-radius:4px;padding:1rem}.article-checkbox-item{display:flex;align-items:center;padding:.5rem;border-bottom:1px solid #eee}.article-checkbox-item:last-child{border-bottom:none}.article-checkbox-item label{display:flex;align-items:center;cursor:pointer;width:100%}.article-checkbox-item input[type=checkbox]{margin-right:.75rem;width:18px;height:18px;cursor:pointer}.article-checkbox-item span{font-size:.95rem;color:#333}.searchable-select{position:relative}.search-input{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:.9375rem;color:#334155;background:#fff;transition:all .2s ease}.search-input::placeholder{color:#94a3b8}.search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:#fff;border:2px solid #667eea;border-radius:8px;box-shadow:0 10px 25px #00000026;z-index:1000;max-height:400px;display:flex;flex-direction:column;animation:slideDown .2s ease}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:6px 6px 0 0;font-size:.875rem;font-weight:600}.close-dropdown{background:#fff3;border:none;color:#fff;width:24px;height:24px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;transition:background .2s}.close-dropdown:hover{background:#ffffff4d}.dropdown-list{overflow-y:auto;max-height:340px}.dropdown-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;border-bottom:1px solid #f1f5f9;transition:all .15s ease}.dropdown-item:hover{background:linear-gradient(to right,#f8fafc,#eff6ff);border-left:3px solid #667eea;padding-left:13px}.dropdown-item:last-child{border-bottom:none}.item-reference{font-weight:700;color:#3b82f6;font-family:Courier New,monospace;font-size:.875rem;background:#eff6ff;padding:4px 8px;border-radius:4px;white-space:nowrap}.item-name{color:#334155;font-size:.9375rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-empty,.dropdown-more{padding:20px 16px;text-align:center;color:#64748b;font-style:italic;font-size:.875rem;background:#f8fafc}.dropdown-more{background:#fef3c7;color:#92400e;border-top:1px solid #fbbf24;font-style:normal}.dropdown-more small{display:block;margin-top:4px;font-size:.75rem;color:#b45309}.article-badges{display:flex;flex-wrap:wrap;gap:10px;padding:16px;min-height:80px;border:2px dashed #e2e8f0;border-radius:8px;background:linear-gradient(135deg,#f8fafc,#fff);margin-bottom:16px;transition:all .2s ease}.article-badges:hover{border-color:#cbd5e1;background:linear-gradient(135deg,#f1f5f9,#fff)}.article-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:20px;font-size:.875rem;box-shadow:0 2px 6px #3b82f64d;transition:all .2s ease;animation:slideIn .3s ease}@keyframes slideIn{0%{opacity:0;transform:scale(.8) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}.article-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #3b82f666}.article-badge-ref{font-weight:700;font-family:Courier New,monospace;background:#fff3;padding:2px 6px;border-radius:4px}.article-badge-name{font-weight:500}.remove-article{display:flex;align-items:center;justify-content:center;width:20px;height:20px;padding:0;background:#ffffff40;border:1px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;font-size:16px;font-weight:700;cursor:pointer;transition:all .2s ease;line-height:1}.remove-article:hover{background:#fff6;transform:rotate(90deg);border-color:#ffffff80}.no-articles-badge{color:#94a3b8;font-style:italic;padding:8px}.selected-articles-section label,.add-articles-section label{display:block;font-weight:600;margin-bottom:12px;color:#1e293b;font-size:.95rem;text-transform:uppercase;letter-spacing:.5px}.btn-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:2px solid #e2e8f0;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;color:#64748b}.btn-back:hover{background:#f8fafc;border-color:#667eea;color:#667eea;transform:translate(-2px)}.btn-back svg{width:20px;height:20px}.stocks-page{min-height:100vh;background:#f8fafc}.filters-bar{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap;background:#fff;padding:20px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.filter-group select,.filter-group input[type=text]{padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;min-width:180px;background:#fff}.search-group{flex:1;min-width:250px}.checkbox-group{justify-content:flex-end}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;color:#475569;font-weight:400!important}.btn-refresh{padding:10px 20px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;color:#475569;cursor:pointer;font-weight:500;transition:background .2s}.btn-refresh:hover{background:#e2e8f0}.error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;font-weight:500}.stock-stats{display:flex;gap:20px;margin-bottom:24px}.stat-item{background:#fff;padding:16px 24px;border-radius:10px;box-shadow:0 1px 3px #0000001a;display:flex;flex-direction:column;gap:4px}.stat-item.warning .stat-value{color:#f59e0b}.stat-item .stat-value{font-size:1.5rem;font-weight:700;color:#1e293b}.stocks-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.stocks-table{width:100%;border-collapse:collapse}.stocks-table th,.stocks-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #f1f5f9}.stocks-table th{background:#f8fafc;color:#475569;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.stocks-table .checkbox-col{width:40px;text-align:center}.stocks-table .checkbox-col input[type=checkbox]{cursor:pointer}.stocks-table tbody tr:hover{background:#f8fafc}.stocks-table .text-right{text-align:right}.article-name{font-weight:500;color:#1e293b}.article-ref{color:#64748b;font-family:monospace}.quantity{font-weight:600;font-size:1.1rem}.low-stock-row{background:#fffbeb}.low-stock-row:hover{background:#fef3c7!important}.actions{display:flex;gap:8px}.btn-action{padding:6px 12px;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;background:#2563eb;color:#fff;font-weight:500;transition:background .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.modal-large{max-width:800px}.modal-body{padding:24px;overflow-y:auto}.modal-footer{padding:16px 24px;border-top:1px solid #e2e8f0;display:flex;justify-content:flex-end;gap:12px}.stock-info{background:#f8fafc;padding:16px;border-radius:10px;margin-bottom:20px}.stock-info p{margin:0 0 6px;font-size:.95rem;color:#475569}.stock-info p:last-child{margin-bottom:0}.form-group label{display:block;font-size:.9rem;color:#475569;font-weight:500;margin-bottom:8px}.form-group input[type=number],.form-group select{width:100%;padding:12px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem}.radio-label{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:#475569;line-height:1}.radio-label input[type=radio]{width:18px;height:18px;cursor:pointer;margin:0;vertical-align:middle}.result-preview{background:#eff6ff;padding:14px;border-radius:8px;text-align:center;color:#1e40af}.result-preview p{margin:0}.info-text{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:12px 16px;border-radius:8px;font-size:.9rem;margin-bottom:20px}.btn-primary{padding:10px 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.movements-table-container{max-height:400px;overflow-y:auto}.movements-table th,.movements-table td{padding:12px 14px;text-align:left;border-bottom:1px solid #f1f5f9}.movements-table th{background:#f8fafc;color:#475569;font-weight:600;font-size:.8rem;text-transform:uppercase;position:sticky;top:0}.movements-table .text-right{text-align:right}.movement-type{display:inline-block;padding:3px 8px;border-radius:4px;font-size:.8rem;font-weight:500}.movement-type.type-in{background:#dcfce7;color:#16a34a}.movement-type.type-out{background:#fef2f2;color:#dc2626}.positive{color:#16a34a;font-weight:600}.negative{color:#dc2626;font-weight:600}@media (max-width: 1024px){.filters-bar{flex-direction:column;align-items:stretch}.filter-group{width:100%}.filter-group select,.filter-group input{min-width:100%}.stock-stats{flex-wrap:wrap}.stat-item{flex:1;min-width:150px}}@media (max-width: 768px){.page-content{padding:16px}.stocks-table-container{overflow-x:auto}.stocks-table{min-width:800px}.modal{margin:10px;max-height:calc(100vh - 20px)}.modal-large{max-width:calc(100vw - 20px)}}.stock-history-page{min-height:100vh;background:#f8fafc}.stock-history-content{max-width:1400px;margin:0 auto;padding:2rem}.filters-section{background:#fff;border-radius:8px;padding:1.5rem;margin-bottom:2rem;box-shadow:0 1px 3px #0000001a}.filters-section h2{margin:0 0 1.5rem;font-size:1.25rem;color:#1e293b}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.filter-group{display:flex;flex-direction:column}.filter-group label{margin-bottom:.5rem;font-weight:500;color:#475569;font-size:.875rem}.filter-group select,.filter-group input[type=date],.filter-group input[type=text]{padding:.5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.875rem}.filter-group small{margin-top:.25rem;font-size:.75rem;color:#64748b}.filter-search{grid-column:span 2}.search-row{display:flex;gap:.5rem}.search-row input{flex:1}.btn-search{padding:.5rem 1rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .2s}.btn-search:hover{background:#2563eb}.btn-reset{padding:.5rem 1rem;background:#64748b;color:#fff;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .2s}.btn-reset:hover{background:#475569}.filters-summary{display:flex;justify-content:space-between;align-items:center;padding-top:1rem;border-top:1px solid #e2e8f0}.active-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.filter-tag{display:inline-flex;align-items:center;gap:.5rem;background:#e0e7ff;color:#3730a3;padding:.25rem .75rem;border-radius:12px;font-size:.75rem;font-weight:500}.filter-tag-remove{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:none;background:#3730a333;color:#3730a3;border-radius:50%;cursor:pointer;font-size:14px;line-height:1;font-weight:700;transition:background .2s,color .2s}.filter-tag-remove:hover{background:#3730a3;color:#fff}.results-count{color:#64748b;font-size:.875rem}.results-count strong{color:#1e293b}.export-buttons{display:flex;gap:.75rem}.btn-export{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;box-shadow:0 2px 4px #0000001a}.btn-export:disabled{opacity:.7;cursor:not-allowed}.btn-export-excel:hover:not(:disabled){background:linear-gradient(135deg,#16a34a,#15803d);transform:translateY(-1px);box-shadow:0 4px 8px #22c55e4d}.btn-export-pdf:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c);transform:translateY(-1px);box-shadow:0 4px 8px #ef44444d}.export-icon{width:18px;height:18px;stroke-width:2}.loading-spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-radius:50%;border-top-color:#fff;animation:spin .8s linear infinite}.movements-table-container{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:visible;padding-bottom:1rem}.movements-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-bottom:1rem}.movements-table thead{background:#f1f5f9;position:sticky;top:0;z-index:10}.movements-table th{padding:1rem;text-align:left;font-weight:600;color:#475569;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.movements-table th.text-center{text-align:center}.movements-table tbody tr{border-bottom:1px solid #e2e8f0;transition:background .2s}.movements-table tbody tr:hover{background:#f8fafc}.movements-table td{padding:1rem;color:#1e293b;font-size:.875rem}.movements-table td.text-center{text-align:center}.date-cell{color:#64748b;white-space:nowrap}.article-info{display:flex;flex-direction:column;gap:.25rem}.article-info strong{color:#1e293b}.article-info small{color:#64748b}.type-badge{display:inline-block;padding:.25rem .75rem;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;white-space:nowrap}.quantity-cell{font-weight:600;font-size:1rem}.quantity-positive{color:#10b981}.quantity-negative{color:#ef4444}.reason{color:#475569;font-style:italic}.reference{margin-top:.25rem}.reference small{color:#64748b}.loading{text-align:center;padding:3rem;color:#64748b;font-size:1rem}.empty-state{text-align:center;padding:3rem;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.empty-state p:first-child{font-size:1.125rem;color:#1e293b;margin-bottom:.5rem}.empty-state p:last-child{color:#64748b;font-size:.875rem}@media (max-width: 1024px){.filters-grid{grid-template-columns:repeat(2,1fr)}.filter-search{grid-column:span 2}}@media (max-width: 768px){.stock-history-content{padding:1rem}.filters-grid{grid-template-columns:1fr}.filter-search{grid-column:span 1}.search-row{flex-direction:column}.filters-summary{flex-direction:column;align-items:flex-start;gap:1rem}.movements-table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}.movements-table{min-width:900px}.movements-table th,.movements-table td{padding:.75rem .5rem}}@media (max-width: 480px){.page-header h1{font-size:1.25rem}.filters-section h2{font-size:1.125rem}.movements-table{font-size:.75rem}}.users-page{min-height:100vh;background:#f8fafc}.users-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #f1f5f9}.users-table th{background:#f8fafc;color:#475569;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.users-table .checkbox-col{width:40px;text-align:center}.users-table .checkbox-col input[type=checkbox]{cursor:pointer}.users-table tbody tr:hover{background:#f8fafc}.inactive-row{opacity:.6;background:#fef2f2}.inactive-row:hover{background:#fee2e2!important}.user-name{font-weight:500;color:#1e293b}.user-email{color:#64748b;font-family:monospace;font-size:.9rem}.portal-badge{display:inline-block;padding:3px 8px;border-radius:4px;font-size:.8rem;font-weight:500}.portal-badge.backoffice{background:#eff6ff;color:#1d4ed8}.portal-badge.frontoffice{background:#f0fdf4;color:#16a34a}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:#f1f5f9;color:#475569;cursor:pointer;transition:all .2s}.btn-icon:hover:not(:disabled){background:#e2e8f0;transform:translateY(-1px)}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.btn-icon.btn-icon-danger{background:#fef2f2;color:#dc2626}.btn-icon.btn-icon-danger:hover:not(:disabled){background:#fee2e2}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px}.pagination button{padding:8px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:6px;cursor:pointer;color:#475569}.pagination button:hover:not(:disabled){background:#f8fafc}.form-group input,.form-group select{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled{background:#f1f5f9;cursor:not-allowed}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 1024px){.filters-bar{flex-direction:column;align-items:stretch}.filter-group{width:100%}.filter-group select,.filter-group input{min-width:100%}.form-row{grid-template-columns:1fr}}@media (max-width: 768px){.page-content{padding:16px}.users-table-container{overflow-x:auto}.users-table{min-width:900px}.modal{margin:10px;max-height:calc(100vh - 20px)}.actions{flex-direction:column}}.qr-scanner-modal{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;display:flex;align-items:center;justify-content:center}.qr-scanner-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#000000b3}.qr-scanner-content{position:relative;background-color:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;max-width:600px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;z-index:1001}.qr-scanner-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e5e7eb}.qr-scanner-header h3{margin:0;font-size:1.25rem;font-weight:600;color:#111827}.qr-scanner-close{background:none;border:none;font-size:1.5rem;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.qr-scanner-close:hover{background-color:#f3f4f6;color:#111827}.qr-scanner-body{padding:1.5rem;flex:1;overflow-y:auto;position:relative}.qr-scanner-error{background-color:#fee2e2;border:1px solid #fecaca;color:#991b1b;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.qr-scanner-video{width:100%;border-radius:8px;overflow:hidden;background-color:#000;min-height:300px;position:relative}.qr-scanner-video #html5-qrcode-button-camera-start,.qr-scanner-video #html5-qrcode-button-camera-stop,.qr-scanner-video #html5-qrcode-button-camera-permission{display:none!important}.qr-scanner-instructions{text-align:center;margin-top:1rem;color:#6b7280}.qr-scanner-instructions p{margin:0 0 1rem;font-size:.875rem}.qr-scanner-target{width:200px;height:200px;border:3px dashed #3b82f6;border-radius:8px;margin:0 auto;position:relative;animation:pulse-border 2s ease-in-out infinite}.qr-scanner-target:before,.qr-scanner-target:after{content:"";position:absolute;width:20px;height:20px;border:3px solid #3b82f6}.qr-scanner-target:before{top:-3px;left:-3px;border-right:none;border-bottom:none}.qr-scanner-target:after{bottom:-3px;right:-3px;border-left:none;border-top:none}@keyframes pulse-border{0%,to{opacity:1}50%{opacity:.5}}.qr-scanner-footer{padding:1rem 1.5rem;border-top:1px solid #e5e7eb;display:flex;justify-content:flex-end;gap:.75rem}@media (max-width: 768px){.qr-scanner-content{width:95%;max-height:95vh}.qr-scanner-header{padding:.75rem 1rem}.qr-scanner-header h3{font-size:1.125rem}.qr-scanner-body{padding:1rem}.qr-scanner-target{width:150px;height:150px}}.invoices-page{min-height:100vh;background-color:#f8fafc}.page-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;background:#fff;border-bottom:1px solid #e2e8f0}.user-info{display:flex;align-items:center;gap:8px;color:#475569}.role-badge{background-color:#e2e8f0;padding:2px 8px;border-radius:12px;font-size:.75rem;color:#64748b}.btn-logout{background-color:#f1f5f9;color:#64748b;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;transition:all .2s}.btn-logout:hover{background-color:#e2e8f0;color:#475569}.error-message{background-color:#fef2f2;color:#dc2626;padding:12px 16px;border-radius:8px;margin-bottom:16px;border:1px solid #fecaca}.actions-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px;flex-wrap:wrap}.filters{display:flex;gap:12px;flex-wrap:wrap}.filter-select{padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;background:#fff;color:#475569;min-width:150px}.search-input{padding:8px 12px;border:1px solid #e2e8f0;border-radius:6px;width:200px}.btn-primary{background-color:#2563eb;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;transition:background-color .2s}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.invoices-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.invoices-table{width:100%;border-collapse:collapse}.invoices-table th,.invoices-table td{padding:12px 16px;text-align:left;border-bottom:1px solid #e2e8f0}.invoices-table th{background-color:#f8fafc;color:#64748b;font-weight:500;font-size:.875rem}.invoices-table .checkbox-col{width:40px;text-align:center}.invoices-table .checkbox-col input[type=checkbox]{cursor:pointer}.invoices-table tbody tr:hover{background-color:#f8fafc}.invoice-number{font-weight:600;color:#2563eb}.amount{font-weight:600;color:#059669}.type-badge,.status-badge{display:inline-block;padding:4px 8px;border-radius:12px;font-size:.75rem;font-weight:500;color:#fff}.btn-action{background-color:#f1f5f9;color:#475569;border:none;padding:6px 12px;border-radius:4px;cursor:pointer;font-size:.875rem;margin:2px;transition:all .2s}.btn-action:hover{background-color:#e2e8f0;transform:translateY(-1px)}.actions-cell{display:flex;flex-wrap:wrap;gap:4px;min-width:200px}.btn-export-pdf{background-color:#ef4444;color:#fff}.btn-export-pdf:hover{background-color:#dc2626}.btn-export-excel{background-color:#10b981;color:#fff}.btn-export-excel:hover{background-color:#059669}.btn-print-ticket{background-color:#8b5cf6;color:#fff}.btn-print-ticket:hover{background-color:#7c3aed}.loading,.empty-state{text-align:center;padding:48px;color:#64748b;background:#fff;border-radius:12px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.modal{background:#fff;border-radius:12px;width:100%;max-width:500px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.btn-close{background:none;border:none;font-size:1.5rem;color:#64748b;cursor:pointer;padding:0;line-height:1}.btn-close:hover{color:#1e293b}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;color:#475569;font-size:.875rem;font-weight:500}.form-control{width:100%;padding:10px 12px;border:1px solid #e2e8f0;border-radius:6px;font-size:.95rem;transition:border-color .2s}.form-control:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}textarea.form-control{resize:vertical}.section-title{font-weight:600;color:#1e293b;margin:20px 0 12px;padding-bottom:8px;border-bottom:1px solid #e2e8f0}.add-article-row{display:flex;gap:12px;align-items:flex-end;margin-bottom:16px;flex-wrap:wrap}.add-article-row .form-group{margin-bottom:0!important}.add-article-row .form-control{height:38px;margin-bottom:0!important}.add-article-row .btn-add-article{height:38px;padding:0 16px;margin-bottom:0!important}.article-select-group{flex:2;min-width:200px;max-width:350px}.quantity-group{flex:0 0 100px}.quantity-group input{width:100%}.stock-info{flex:0 0 auto;padding:8px 12px;background:#eff6ff;border-radius:6px;font-size:.85rem;color:#1d4ed8;white-space:nowrap;align-self:flex-end;margin-bottom:0;height:38px;display:flex;align-items:center}.stock-info.low-stock{background:#fef3c7;color:#d97706}.stock-info.no-stock{background:#fef2f2;color:#dc2626}.flex-1{flex:1;min-width:100px}.flex-2{flex:2;min-width:150px}.sites-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.site-arrow{display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#64748b}.btn-add-article{background-color:#059669;color:#fff;border:none;padding:10px 16px;border-radius:6px;cursor:pointer;font-weight:500;white-space:nowrap}.btn-add-article:hover{background-color:#047857}.lines-table-container{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;margin-bottom:16px}.lines-table{width:100%;border-collapse:collapse}.lines-table th,.lines-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e2e8f0}.lines-table th{background-color:#f8fafc;color:#64748b;font-weight:500;font-size:.8rem}.lines-table tbody tr:last-child td{border-bottom:none}.quantity-input{width:60px;padding:6px 8px;border:1px solid #e2e8f0;border-radius:4px;text-align:center}.btn-remove{background-color:#fef2f2;color:#dc2626;border:none;width:28px;height:28px;border-radius:4px;cursor:pointer;font-size:1.2rem;line-height:1}.btn-remove:hover{background-color:#fee2e2}.totals-section{background-color:#f8fafc;border-radius:8px;padding:16px;margin-bottom:16px}.totals-display{text-align:right}.total-line{display:flex;justify-content:space-between;padding:4px 0;color:#475569}.total-line.discount{color:#059669}.total-line.total-ttc{font-weight:700;font-size:1.1rem;color:#1e293b;padding-top:8px;margin-top:8px;border-top:1px solid #e2e8f0}.detail-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.detail-info{display:flex;gap:8px}.detail-meta p{margin:4px 0;color:#64748b;font-size:.875rem}.detail-section{margin-bottom:20px}.detail-section h3{color:#1e293b;font-size:1rem;margin-bottom:8px}.detail-totals{background-color:#f8fafc;border-radius:8px;padding:16px;text-align:right}.btn-secondary{background-color:#f1f5f9;color:#475569;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500}.btn-secondary:hover{background-color:#e2e8f0}.btn-success{background-color:#059669;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500}.btn-success:hover{background-color:#047857}.btn-danger{background-color:#dc2626;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500}.btn-danger:hover:not(:disabled){background-color:#b91c1c}.payments-list{margin-bottom:16px}.payments-list .lines-table{margin-bottom:12px}.payment-summary{display:flex;justify-content:space-between;padding:12px 16px;background:#f8fafc;border-radius:8px;font-weight:500}.add-payment-form{background:#f8fafc;padding:16px;border-radius:8px;margin-bottom:16px}.add-payment-form .form-row,.add-payment-form .form-group{margin-bottom:12px}.btn-add-payment{background-color:#059669;color:#fff;border:none;padding:10px 20px;border-radius:6px;cursor:pointer;font-weight:500;width:100%;margin-top:8px}.btn-add-payment:hover:not(:disabled){background-color:#047857}.btn-add-payment:disabled{opacity:.6;cursor:not-allowed}.payment-complete{background:#dcfce7;color:#16a34a;padding:12px 16px;border-radius:8px;text-align:center;font-weight:500;margin-bottom:16px}.text-warning{color:#d97706}.text-success{color:#16a34a}.contact-type-label{color:#64748b;font-size:.8rem}.payments-detail-section{margin-top:20px}.payments-detail-section h3{margin-bottom:12px}.payments-detail-table{width:100%;border-collapse:collapse;margin-bottom:12px}.payments-detail-table th,.payments-detail-table td{padding:10px 12px;text-align:left;border-bottom:1px solid #e2e8f0}.payments-detail-table th{background:#f8fafc;color:#64748b;font-weight:500;font-size:.8rem}.payment-pending{background:#fef3c7;color:#d97706;padding:2px 8px;border-radius:4px;font-size:.75rem}.payment-collected{background:#dcfce7;color:#16a34a;padding:2px 8px;border-radius:4px;font-size:.75rem}.btn-collect{background:#059669;color:#fff;border:none;padding:4px 10px;border-radius:4px;font-size:.8rem;cursor:pointer}.btn-collect:hover{background:#047857}.payment-actions{display:flex;gap:4px;align-items:center;flex-wrap:wrap}.btn-edit-payment,.btn-delete-payment{border:none;padding:4px 8px;border-radius:4px;cursor:pointer;font-size:.85rem;min-width:28px;display:inline-flex;align-items:center;justify-content:center}.btn-edit-payment{background:#3b82f6;color:#fff}.btn-edit-payment:hover{background:#2563eb}.btn-delete-payment{background:#ef4444;color:#fff}.btn-delete-payment:hover{background:#dc2626}.payment-totals{background:#f8fafc;padding:12px 16px;border-radius:8px;margin-top:12px}.payment-totals .total-line{display:flex;justify-content:space-between;padding:4px 0}.btn-add-payment-detail{background:#2563eb;color:#fff;border:none;padding:8px 16px;border-radius:6px;cursor:pointer;font-size:.9rem;margin-top:12px}.btn-add-payment-detail:hover{background:#1d4ed8}.info-box{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.info-text{color:#64748b;font-size:.85rem;margin:8px 0;font-style:italic}.line-not-available{background-color:#fef2f2;opacity:.7}.line-not-available td{color:#9ca3af}.checkbox-not-available{width:18px;height:18px;cursor:pointer}.text-center{text-align:center}.quantity-input:disabled{background-color:#f1f5f9;color:#9ca3af;cursor:not-allowed}@media (max-width: 768px){.page-header{flex-direction:column;gap:12px;align-items:flex-start}.actions-bar{flex-direction:column;align-items:stretch}.filters{flex-direction:column}.filter-select,.search-input{width:100%}.form-row{grid-template-columns:1fr}.add-article-row{flex-direction:column;align-items:stretch}.invoices-table-container{overflow-x:auto}.modal-large{max-width:calc(100vw - 40px)}}.toast-notification{position:fixed;top:20px;right:20px;background-color:#10b981;color:#fff;padding:16px 24px;border-radius:8px;box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f;font-size:.95rem;font-weight:500;z-index:10000;animation:slideInRight .3s ease-out,slideOutRight .3s ease-in 1.7s;min-width:250px;max-width:400px}@keyframes slideInRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOutRight{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.price-input-large{min-width:140px!important;width:140px!important;text-align:right;font-family:Courier New,monospace;font-weight:500}.contacts-page{min-height:100vh;background:#f8fafc}.header-right{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:8px;color:#334155}.role-badge{background:#dbeafe;color:#1d4ed8;padding:2px 8px;border-radius:4px;font-size:.8rem}.btn-logout{background:none;border:1px solid #e2e8f0;padding:8px 16px;border-radius:6px;cursor:pointer;color:#64748b}.btn-logout:hover{background:#fef2f2;color:#dc2626;border-color:#fecaca}.success-banner{background:#dcfce7;border:1px solid #86efac;color:#16a34a;padding:12px 20px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.success-banner button{background:none;border:none;color:#16a34a;cursor:pointer;font-size:1.2rem}.error-banner{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:12px 20px;border-radius:8px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;color:#dc2626;cursor:pointer;font-size:1.2rem}.filters-bar{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;background:#fff;padding:20px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:24px}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group select,.filter-group input[type=text]{padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;min-width:150px;background:#fff}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.search-group{flex:1;min-width:200px}.search-group input{width:100%}.action-buttons{display:flex;gap:10px}.stats-bar{display:flex;gap:20px;margin-bottom:24px}.stat-item{background:#fff;padding:12px 20px;border-radius:10px;box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;gap:8px}.stat-item .stat-value{font-size:1.3rem;font-weight:700;color:#1e293b}.stat-item .stat-label{font-size:.85rem;color:#64748b}.loading-state{text-align:center;padding:60px 20px;color:#64748b}.spinner{width:40px;height:40px;border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 16px}.contacts-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.contacts-table{width:100%;border-collapse:collapse}.contacts-table th,.contacts-table td{padding:14px 16px;text-align:left;border-bottom:1px solid #f1f5f9}.contacts-table th{background:#f8fafc;color:#475569;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.contacts-table .checkbox-col{width:40px;text-align:center}.contacts-table .checkbox-col input[type=checkbox]{cursor:pointer}.contacts-table tbody tr:hover{background:#f8fafc}.contact-name{font-weight:500;color:#1e293b}.contact-email{color:#64748b;font-family:monospace;font-size:.9rem}.empty-state{text-align:center;padding:40px!important;color:#94a3b8}.type-badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500}.type-badge.client{background:#dbeafe;color:#1d4ed8}.type-badge.supplier{background:#fef3c7;color:#d97706}.subtype-text{display:block;font-size:.75rem;color:#94a3b8;margin-top:2px}.text-muted{color:#94a3b8;font-size:.85rem;font-style:italic}.badge{display:inline-block;padding:4px 10px;border-radius:20px;font-size:.8rem;font-weight:500}.badge-success{background:#dcfce7;color:#16a34a}.badge-warning{background:#fef3c7;color:#d97706}.badge-danger{background:#fef2f2;color:#dc2626}.badge-secondary{background:#f1f5f9;color:#64748b}.actions{display:flex;gap:6px;flex-wrap:wrap}.btn-action{padding:5px 10px;border:none;border-radius:6px;font-size:.8rem;cursor:pointer;font-weight:500;transition:all .2s}.btn-action.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-action.btn-danger{background:#fef2f2;color:#dc2626}.btn-action.btn-danger:hover:not(:disabled){background:#fee2e2}.btn-action.btn-small{padding:4px 8px;font-size:.75rem}.btn-primary{padding:10px 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{padding:10px 20px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.btn-cancel{padding:10px 20px;background:#fff;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.btn-cancel:hover{background:#f8fafc}.btn-danger{padding:10px 20px;background:#dc2626;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s}.btn-danger:hover:not(:disabled){background:#b91c1c}.btn-danger:disabled{background:#94a3b8;cursor:not-allowed}.modal{background:#fff;border-radius:16px;width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column}.modal-sm{max-width:400px}.modal-lg{max-width:700px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e2e8f0}.modal-header h2{margin:0;font-size:1.25rem;color:#1e293b}.modal-close{background:none;border:none;font-size:1.5rem;color:#94a3b8;cursor:pointer;line-height:1}.modal-close:hover{color:#64748b}.modal-body{padding:24px;overflow-y:auto;flex:1;min-height:0}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 24px;background:#f8fafc;border-radius:0 0 16px 16px;border-top:1px solid #e2e8f0;flex-shrink:0}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:.9rem;color:#475569;font-weight:500;margin-bottom:6px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input:disabled,.form-group select:disabled{background:#f1f5f9;cursor:not-allowed}.form-group-small{max-width:100px}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:16px}.form-hint{display:block;font-size:.8rem;color:#94a3b8;margin-top:4px}.form-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626;padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:.9rem}.form-fieldset{border:1px solid #e2e8f0;border-radius:8px;padding:16px;margin-bottom:16px}.form-fieldset legend{font-size:.9rem;font-weight:500;color:#475569;padding:0 8px}.radio-group{display:flex;gap:24px}.radio-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.95rem;color:#334155}.radio-label input[type=radio]{width:18px;height:18px;accent-color:#2563eb;cursor:pointer}.info-text{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af;padding:12px 16px;border-radius:8px;font-size:.9rem}.warning-text{color:#dc2626;font-size:.9rem}@media (max-width: 1024px){.filters-bar{flex-direction:column;align-items:stretch}.filter-group{width:100%}.filter-group select,.filter-group input{min-width:100%}.action-buttons{width:100%;flex-direction:column}.action-buttons button{width:100%}.form-row{grid-template-columns:1fr}}@media (max-width: 768px){.page-content{padding:16px}.contacts-table-container{overflow-x:auto}.contacts-table{min-width:800px}.modal{margin:10px;max-height:calc(100vh - 20px)}.actions{flex-direction:column}}.salaries-page{padding:2rem;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;gap:2rem}.header-left h1{font-size:2rem;color:#1e293b;margin-bottom:.5rem}.subtitle{color:#64748b;font-size:.95rem}.header-right{display:flex;gap:1rem}.message{padding:1rem 1.5rem;border-radius:8px;margin-bottom:1.5rem;display:flex;justify-content:space-between;align-items:center;font-size:.9rem}.message.error{background:#fee;color:#c00;border:1px solid #fcc}.message.success{background:#efe;color:#060;border:1px solid #cfc}.message button{background:none;border:none;font-size:1.5rem;cursor:pointer;padding:0 .5rem;color:inherit}.tabs{display:flex;gap:.5rem;border-bottom:2px solid #e2e8f0;margin-bottom:2rem}.tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;font-weight:500;color:#64748b;transition:all .2s}.tab:hover{color:#10b981}.tab.active{color:#10b981;border-bottom-color:#10b981}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.filters{display:flex;gap:1rem;flex-wrap:wrap;flex:1}.filter-input{padding:.625rem .875rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;min-width:200px}.filter-input:focus{outline:none;border-color:#10b981}.salaries-table-container{background:#fff;border-radius:8px;border:1px solid #e2e8f0;overflow-x:auto}.salaries-table{width:100%;border-collapse:collapse}.salaries-table thead{background:#f8fafc}.salaries-table th{padding:1rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;font-size:.875rem;white-space:nowrap}.salaries-table td{padding:1rem;border-bottom:1px solid #f1f5f9;font-size:.9rem}.salaries-table tbody tr:hover{background:#f8fafc}.employee-info{display:flex;flex-direction:column;gap:.25rem}.employee-id{font-size:.8rem;color:#64748b}.amount{font-weight:600;color:#10b981}.notes{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.actions{display:flex;gap:.5rem}.btn-icon{background:none;border:none;cursor:pointer;font-size:1.2rem;padding:.25rem .5rem;transition:transform .2s}.btn-icon:hover{transform:scale(1.2)}.btn-icon.btn-danger:hover{filter:brightness(1.2)}.empty-state{text-align:center;padding:4rem 2rem;background:#fff;border-radius:8px;border:1px solid #e2e8f0}.empty-state p{color:#64748b;margin-bottom:1.5rem;font-size:1rem}.report-selector{background:#fff;padding:1.5rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem}.report-selector label{font-weight:600;color:#475569}.form-select{padding:.625rem .875rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;min-width:250px;background:#fff;cursor:pointer}.report-form{background:#fff;padding:2rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:2rem}.report-form h3{color:#1e293b;margin-bottom:1rem}.form-row{display:flex;gap:1rem;align-items:center}.form-input{padding:.625rem .875rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;flex:1;min-width:200px}.form-input:focus{outline:none;border-color:#10b981}.report-result{background:#fff;padding:2rem;border-radius:8px;border:1px solid #e2e8f0}.report-result h3{color:#1e293b;margin-bottom:1.5rem;font-size:1.5rem}.report-result h4{color:#475569;margin:2rem 0 1rem;font-size:1.1rem}.report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.report-table{width:100%;border-collapse:collapse;margin-top:1rem}.report-table thead{background:#f8fafc}.report-table th{padding:1rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;font-size:.875rem}.report-table td{padding:1rem;border-bottom:1px solid #f1f5f9;font-size:.9rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #e2e8f0}.modal-header h2{font-size:1.5rem;color:#1e293b}.modal-close{background:none;border:none;font-size:2rem;cursor:pointer;color:#64748b;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center}.modal-close:hover{color:#1e293b}.modal-body{padding:1.5rem}.form-group{margin-bottom:1.5rem}.form-group .form-input,.form-group .form-textarea{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;font-family:inherit}.form-group .form-input:focus,.form-group .form-textarea:focus{outline:none;border-color:#10b981}.form-textarea{resize:vertical;min-height:80px}.modal-footer{display:flex;justify-content:flex-end;gap:1rem;padding:1.5rem;border-top:1px solid #e2e8f0}.btn{padding:.625rem 1.25rem;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;text-decoration:none;display:inline-block}.btn-primary{background:#10b981;color:#fff}.btn-primary:hover:not(:disabled){background:#059669}.btn-primary:disabled{background:#94a3b8;cursor:not-allowed}.btn-secondary{background:#f1f5f9;color:#475569}.loading{text-align:center;padding:3rem;color:#64748b}.loading-spinner{border:3px solid #e2e8f0;border-top:3px solid #10b981;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.salaries-page{padding:1rem}.page-header{flex-direction:column;gap:1rem}.header-right{width:100%;flex-direction:column}.toolbar{flex-direction:column;align-items:stretch}.filters{flex-direction:column}.filter-input{width:100%;min-width:0}.report-stats{grid-template-columns:1fr}.form-row{flex-direction:column}.form-input{width:100%;min-width:0}.salaries-table-container{overflow-x:scroll}.salaries-table{min-width:800px}}.orders-page{padding:2rem;max-width:1400px;margin:0 auto}.client-info{display:flex;flex-direction:column;gap:.25rem}.client-email{font-size:.8rem;color:#64748b}.invoice-link{color:#10b981;font-weight:600;font-size:.875rem}.no-invoice{color:#cbd5e1}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;padding:1rem}.pagination-info{font-size:.875rem;color:#64748b}.page-info{color:#475569;font-weight:500}.modal-large{max-width:900px}.detail-section{margin-bottom:2rem;padding-bottom:1.5rem;border-bottom:1px solid #e2e8f0}.detail-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.detail-section h3{color:#475569;font-size:1.1rem;margin-bottom:1rem;font-weight:600}.detail-section p{margin:.5rem 0;color:#1e293b}.order-date{margin-top:.5rem;color:#64748b!important;font-size:.875rem}.items-table{width:100%;border-collapse:collapse;margin-top:1rem}.items-table th{padding:.75rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;font-size:.875rem}.items-table td{padding:.75rem;border-bottom:1px solid #f1f5f9;font-size:.875rem}.totals{display:flex;flex-direction:column;gap:.5rem;max-width:400px;margin-left:auto}.total-row{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.95rem}.total-ttc{border-top:2px solid #e2e8f0;padding-top:1rem;margin-top:.5rem;font-weight:700;font-size:1.1rem;color:#10b981}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.form-row .form-group{margin-bottom:0}.form-select{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;background:#fff;cursor:pointer}.form-select:focus{outline:none;border-color:#10b981}.filter-select{padding:.625rem .875rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;min-width:200px;background:#fff;cursor:pointer}.filter-select:focus{outline:none;border-color:#10b981}@media (max-width: 768px){.orders-page{padding:1rem}.form-row{grid-template-columns:1fr}.totals{max-width:100%}.pagination{flex-direction:column;gap:.5rem}.modal-large{max-width:100%}}.inventory-page{padding:2rem;max-width:1400px;margin:0 auto}.status-badge{display:inline-block;padding:.375rem .75rem;border-radius:20px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.status-en_cours,.status-in_progress{background:#3b82f6;color:#fff}.status-valide,.status-completed{background:#10b981;color:#fff}.status-annule,.status-cancelled{background:#ef4444;color:#fff}.ecart{color:#ef4444;font-weight:600}.ecart-value{color:#ef4444!important}.positive{color:#10b981!important}.negative{color:#ef4444!important}.inventory-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.info-card{background:#f8fafc;padding:1.5rem;border-radius:8px;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:.5rem}.info-label{font-size:.875rem;color:#64748b;font-weight:500}.info-value{font-size:1.25rem;color:#1e293b;font-weight:700}.scan-section{background:#fff;padding:2rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:2rem}.scan-section h3{color:#1e293b;margin-bottom:1rem;font-size:1.1rem}.scan-form{display:flex;gap:1rem}.qr-input{flex:1;padding:.875rem 1rem;border:2px solid #10b981;border-radius:8px;font-size:1rem;font-weight:500}.qr-input:focus{outline:none;border-color:#059669;box-shadow:0 0 0 3px #10b9811a}.qr-input:disabled{background:#f1f5f9;border-color:#cbd5e1}.items-section{background:#fff;padding:2rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:2rem}.items-section h3{color:#1e293b;margin-bottom:1.5rem;font-size:1.1rem}.items-table{width:100%;border-collapse:collapse}.items-table thead{background:#f8fafc}.items-table th{padding:1rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;font-size:.875rem}.items-table td{padding:1rem;border-bottom:1px solid #f1f5f9;font-size:.9rem}.items-table tbody tr:hover{background:#f8fafc}.actions-footer{display:flex;justify-content:space-between;gap:1rem;padding:1.5rem;background:#f8fafc;border-radius:8px;border:1px solid #e2e8f0}.article-ref{color:#64748b;font-size:.875rem;margin-bottom:1rem}.report-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#f8fafc;padding:1.5rem;border-radius:8px;border:1px solid #e2e8f0;display:flex;flex-direction:column;gap:.5rem}.stat-label{font-size:.875rem;color:#64748b;font-weight:500}.stat-value{font-size:1.5rem;color:#10b981;font-weight:700}.warning-text{background:#fef3c7;border:1px solid #fbbf24;color:#92400e;padding:1rem;border-radius:6px;font-size:.9rem}.multi-user-badge{background:linear-gradient(135deg,#667eea,#764ba2)!important;color:#fff!important;flex-direction:row!important;align-items:center!important;gap:.5rem!important}.multi-user-badge .info-label,.multi-user-badge .info-value{color:#fff!important;font-size:1rem}.multi-user-panel{background:linear-gradient(135deg,#f5f7fa,#e4e9f2);border:1px solid #d1d5db;border-radius:12px;padding:1.5rem;margin-bottom:2rem;display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:1rem}.participants-section h4{color:#374151;margin-bottom:.75rem;font-size:1rem}.participants-list{display:flex;flex-wrap:wrap;gap:.75rem}.participant-badge{display:flex;align-items:center;gap:.5rem;background:#fff;border:1px solid #e5e7eb;border-radius:25px;padding:.5rem 1rem;box-shadow:0 1px 2px #0000000d;transition:all .2s ease}.participant-badge:hover{box-shadow:0 4px 8px #0000001a;transform:translateY(-1px)}.participant-badge.current-user{background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-color:#059669}.participant-badge.current-user .participant-count{background:#fff3;color:#fff}.participant-avatar{width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.8rem}.participant-badge.current-user .participant-avatar{background:#ffffff4d}.participant-name{font-weight:500;font-size:.875rem}.participant-count{background:#f3f4f6;color:#6b7280;padding:.125rem .5rem;border-radius:10px;font-size:.75rem;font-weight:500}.no-participants{color:#9ca3af;font-style:italic;font-size:.875rem}.multi-user-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.refresh-indicator{color:#6b7280;font-size:.8rem;display:flex;align-items:center;gap:.25rem}.row-locked-other{background:#fef2f2!important;opacity:.7}.row-locked-other:hover{background:#fee2e2!important}.row-locked-mine{background:#ecfdf5!important;border-left:3px solid #10b981}.row-counted{background:#f0fdf4}.lock-indicator{margin-left:.5rem;font-size:.8rem;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.counted-by{font-size:.85rem}.counted-badge{background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:.25rem .75rem;border-radius:15px;font-size:.75rem;font-weight:500;display:inline-block}.not-counted{color:#9ca3af}.checkbox-group{margin-top:1rem}.checkbox-label{display:flex;align-items:flex-start;gap:.75rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:20px;height:20px;margin-top:2px;accent-color:#10b981}.checkbox-text{display:flex;flex-direction:column;gap:.25rem}.checkbox-text small{color:#6b7280;font-size:.8rem}@media (max-width: 768px){.inventory-page{padding:1rem}.inventory-info{grid-template-columns:1fr}.scan-form,.actions-footer{flex-direction:column}.report-stats{grid-template-columns:1fr}.multi-user-panel{flex-direction:column}.multi-user-actions{width:100%;justify-content:space-between}.participants-list{width:100%}}.add-article-section{background:#fff;padding:2rem;border-radius:8px;border:1px solid #e2e8f0;margin-bottom:2rem}.add-article-section h3{color:#1e293b;margin-bottom:1rem;font-size:1.1rem}.add-article-row{display:flex;gap:1rem;align-items:flex-end}.add-article-row .form-group{margin-bottom:0}.add-article-row .flex-2{flex:2;min-width:300px}@media (max-width: 768px){.add-article-row{flex-direction:column;align-items:stretch}.add-article-row .flex-2{min-width:100%}.add-article-row .btn{width:100%}}.items-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;flex-wrap:wrap;gap:1rem}.items-header h3{margin:0;color:#1e293b}.items-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.btn-info{background:#3b82f6;color:#fff;border:none}.btn-info:hover{background:#2563eb}.modal-view-inventory{max-width:900px;max-height:85vh;overflow:hidden;display:flex;flex-direction:column}.modal-view-inventory .modal-header h2{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.modal-view-inventory .modal-body{overflow-y:auto;flex:1}.view-inventory-info{background:#f8fafc;padding:1.5rem;border-radius:8px;margin-bottom:1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.view-inventory-info .info-row{display:flex;flex-direction:column;gap:.25rem}.view-inventory-info .info-label{font-size:.8rem;color:#64748b;font-weight:500}.view-inventory-info .info-value{font-size:1rem;color:#1e293b;font-weight:600}.view-inventory-table{max-height:400px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:8px}.view-inventory-table table{margin:0;border:none}.view-inventory-table th{position:sticky;top:0;background:#f1f5f9;z-index:1}@media (max-width: 768px){.items-header{flex-direction:column;align-items:flex-start}.items-actions{width:100%;justify-content:flex-start}.view-inventory-info{grid-template-columns:1fr}.detail-search-bar{flex-direction:column;align-items:stretch}.detail-search-input{min-width:100%}.detail-pagination{flex-wrap:wrap}}.accounting-page{min-height:100vh;background:#f8fafc}.report-tabs{display:flex;gap:.5rem;border-bottom:2px solid #e2e8f0;margin-bottom:2rem;overflow-x:auto}.report-tab{padding:1rem 2rem;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;font-weight:500;color:#64748b;transition:all .2s;position:relative;bottom:-2px;white-space:nowrap}.report-tab:hover{color:#3b82f6}.report-tab.active{color:#3b82f6;border-bottom-color:#3b82f6}.report-section{display:flex;flex-direction:column;gap:2rem}.report-filters{background:#fff;border-radius:8px;border:1px solid #e2e8f0;padding:2rem}.report-filters h2{color:#1e293b;font-size:1.25rem;margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:2px solid #e2e8f0}.filter-row{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.form-group{flex:1;min-width:200px}.form-group label{display:block;font-weight:600;color:#475569;margin-bottom:.5rem;font-size:.9rem}.form-input{width:100%;padding:.75rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.95rem}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.comparison-periods{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:1.5rem}.period-group h3{color:#475569;font-size:1rem;margin-bottom:1rem}.report-content{background:#fff;border-radius:8px;border:1px solid #e2e8f0;padding:2rem}.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.summary-card{background:linear-gradient(135deg,#f8fafc,#e2e8f0);border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;border:1px solid #cbd5e1}.summary-label{font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.summary-value{font-size:1.75rem;font-weight:700;color:#1e293b}.summary-value.primary{color:#3b82f6}.summary-value.success{color:#10b981}.summary-value.danger{color:#ef4444}.report-table{margin-top:2rem}.report-table h3{color:#1e293b;font-size:1.1rem;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid #e2e8f0}.report-table table{width:100%;border-collapse:collapse}.report-table th{background:#f8fafc;padding:1rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #cbd5e1;font-size:.9rem}.report-table td{padding:1rem;border-bottom:1px solid #e2e8f0;color:#1e293b}.report-table tbody tr:hover{background:#f8fafc}.report-table tbody tr:last-child td{border-bottom:none}.comparison-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.comparison-column{background:#f8fafc;border-radius:8px;padding:1.5rem;border:1px solid #e2e8f0}.comparison-column.evolution{background:linear-gradient(135deg,#eff6ff,#dbeafe);border-color:#93c5fd}.comparison-column h3{color:#1e293b;font-size:1.1rem;margin-bottom:.75rem}.period-info{color:#64748b;font-size:.85rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #cbd5e1}.comparison-stats{display:flex;flex-direction:column;gap:1rem}.stat-item{display:flex;flex-direction:column;gap:.5rem}.stat-label{font-size:.85rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:1.25rem;font-weight:700;color:#1e293b}.stat-value.positive{color:#10b981}.stat-value.negative{color:#ef4444}.stat-percent{font-size:1rem;font-weight:600;margin-top:.25rem}.stat-percent.positive{color:#10b981}.stat-percent.negative{color:#ef4444}.balance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.balance-section{background:#f8fafc;border-radius:8px;padding:1.5rem;border:1px solid #e2e8f0}.balance-section.result{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border-color:#6ee7b7}.balance-section h3{color:#1e293b;font-size:1.1rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #cbd5e1}.balance-items{display:flex;flex-direction:column;gap:.75rem}.balance-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem 0;color:#475569;font-size:.95rem}.balance-item.total{margin-top:.5rem;padding-top:1rem;border-top:2px solid #cbd5e1;font-weight:700;font-size:1.05rem;color:#1e293b}.balance-item span:first-child{font-weight:500}.balance-item span:last-child{font-weight:700;font-size:1.1rem}.balance-item .positive{color:#10b981}.balance-item .negative{color:#ef4444}@media (max-width: 1200px){.comparison-grid,.balance-grid,.comparison-periods{grid-template-columns:1fr}}@media (max-width: 768px){.report-tabs{-webkit-overflow-scrolling:touch}.report-tab{padding:.75rem 1.5rem}.report-summary{grid-template-columns:1fr}.filter-row{flex-direction:column;align-items:stretch}.form-group{width:100%}.report-filters,.report-content{padding:1.5rem}.report-table{overflow-x:auto}.report-table table{min-width:600px}.summary-value{font-size:1.5rem}.stat-value{font-size:1.1rem}}.cash-register-page{padding:20px;max-width:1400px;margin:0 auto}.cash-register-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.header-title{display:flex;align-items:center;gap:12px}.cash-register-header h1{margin:0;font-size:28px;color:#1a1a2e}.header-actions{display:flex;gap:10px}.cash-register-loading{text-align:center;padding:40px;font-size:18px;color:#666}.error-banner{background-color:#ffe6e6;border:1px solid #ff4444;color:#c00;padding:12px 16px;border-radius:4px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;font-size:24px;color:#c00;cursor:pointer;padding:0 8px}.balance-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:24px;border-radius:8px;margin-bottom:20px;box-shadow:0 4px 6px #0000001a}.balance-label{font-size:14px;opacity:.9;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.balance-amount{font-size:36px;font-weight:700}.balance-amount.negative{color:#ff6b6b}.totals-section{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.main-balance{margin-bottom:0}.payment-totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.payment-total-card{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 4px #00000014;border-left:4px solid #ccc}.payment-total-card.especes{border-left-color:#28a745;background:linear-gradient(135deg,#f0fff4,#dcfce7)}.payment-total-card.cheque{border-left-color:#007bff;background:linear-gradient(135deg,#f0f7ff,#dbeafe)}.payment-total-card.virement{border-left-color:#17a2b8;background:linear-gradient(135deg,#f0fdfa,#ccfbf1)}.payment-total-card.credit{border-left-color:#ffc107;background:linear-gradient(135deg,#fffbeb,#fef3c7)}.payment-total-card.manuel{border-left-color:#6c757d;background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.payment-method-label{font-weight:600;font-size:14px;color:#333;margin-bottom:8px}.payment-amounts{display:flex;justify-content:space-between;font-size:13px;margin-bottom:4px}.payment-amounts .positive{color:#28a745}.payment-amounts .negative{color:#dc3545}.payment-net{font-size:14px;font-weight:600;color:#1a1a2e;padding-top:8px;border-top:1px solid rgba(0,0,0,.1);margin-top:4px}.badge-payment{font-size:11px;padding:3px 8px}.badge-payment.especes{background-color:#d4edda;color:#155724}.badge-payment.cheque{background-color:#cce5ff;color:#004085}.badge-payment.virement{background-color:#d1ecf1;color:#0c5460}.badge-payment.credit{background-color:#fff3cd;color:#856404}.badge-payment.manuel{background-color:#e9ecef;color:#495057}.client-invoice-cell{display:flex;flex-direction:column;gap:2px}.client-name{font-weight:500;color:#333;font-size:13px}.invoice-number{font-size:11px;color:#007bff;font-family:monospace}.manual-label,.not-cash{color:#999;font-style:italic}.movements-table tbody tr.from-invoice{background-color:#fafbff}.movements-table tbody tr.from-invoice:hover{background-color:#f0f4ff}.movements-table tbody tr.manual{background-color:#fff}.tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid #e0e0e0}.tabs button{padding:12px 24px;background:none;border:none;cursor:pointer;font-size:16px;color:#666;border-bottom:3px solid transparent;transition:all .3s ease}.tabs button.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.tabs button:hover:not(.active){color:#333;background-color:#f5f5f5}.filters{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.filter-input{padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:150px}.filter-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.movements-table-wrapper{overflow-x:auto;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px}.movements-table{width:100%;border-collapse:collapse}.movements-table thead{background-color:#f8f9fa}.movements-table th{padding:14px 12px;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #e0e0e0;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.movements-table td{padding:12px;border-bottom:1px solid #f0f0f0;font-size:14px}.movements-table tbody tr:hover{background-color:#f8f9fa}.movements-table .no-data{text-align:center;padding:40px;color:#999;font-style:italic}.movements-table .positive{color:#28a745;font-weight:600}.movements-table .negative{color:#dc3545;font-weight:600}.badge{display:inline-block;padding:4px 10px;border-radius:12px;font-size:12px;font-weight:500;background-color:#e9ecef;color:#495057}.badge-entree{background-color:#d4edda;color:#155724}.badge-sortie{background-color:#f8d7da;color:#721c24}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;padding:20px 0}.pagination button:disabled{opacity:.5;cursor:not-allowed}.report-section{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a}.report-filters h3{margin:0 0 16px;color:#1a1a2e}.report-form{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.report-preview{margin-top:24px;padding-top:24px;border-top:2px solid #e0e0e0}.report-preview h3{margin:0 0 8px;color:#1a1a2e;font-size:22px}.report-preview p{margin:0 0 24px;color:#666}.report-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.summary-card{background:#f8f9fa;padding:20px;border-radius:8px;text-align:center;border:2px solid transparent}.summary-card.positive{background:#d4edda;border-color:#28a745}.summary-card.negative{background:#f8d7da;border-color:#dc3545}.summary-card .label{font-size:14px;color:#666;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.summary-card .value{font-size:24px;font-weight:700;color:#1a1a2e}.summary-card .value.negative{color:#dc3545}.report-preview h4{margin:24px 0 16px;color:#1a1a2e;font-size:18px}.category-table{width:100%;border-collapse:collapse;margin-top:16px}.category-table thead{background-color:#f8f9fa}.category-table th{padding:12px;text-align:left;font-weight:600;border-bottom:2px solid #e0e0e0}.category-table td{padding:10px 12px;border-bottom:1px solid #f0f0f0}.btn-primary{background-color:#667eea;color:#fff;border:none;padding:10px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .3s ease}.btn-primary:hover:not(:disabled){background-color:#5568d3}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:#6c757d;color:#fff;border:none;padding:10px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .3s ease}.btn-secondary:hover:not(:disabled){background-color:#5a6268}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 4px 20px #00000026}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e0e0e0}.modal-header h2{margin:0;font-size:22px;color:#1a1a2e}.close-btn{background:none;border:none;font-size:32px;color:#999;cursor:pointer;padding:0;width:32px;height:32px;line-height:1}.close-btn:hover{color:#333}.modal-body{padding:24px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#333;font-size:14px}.form-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px;font-family:inherit}.form-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}textarea.form-input{resize:vertical;min-height:80px}.modal-footer{padding:16px 24px;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end;gap:12px}.export-buttons{display:flex;gap:8px;margin-left:auto}.btn-export-journal{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff}.btn-export-journal:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed,#6d28d9)}.actions-cell{width:100px;text-align:center}.action-buttons{display:flex;gap:6px;justify-content:center}.btn-action{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:6px;cursor:pointer;transition:all .2s ease}.btn-action:hover:not(:disabled){transform:translateY(-1px)}.btn-action:disabled{opacity:.5;cursor:not-allowed}.btn-action svg{width:16px;height:16px}.btn-edit{background-color:#3b82f6;color:#fff}.btn-edit:hover:not(:disabled){background-color:#2563eb}.btn-delete{background-color:#ef4444;color:#fff}.btn-delete:hover:not(:disabled){background-color:#dc2626}.invoice-badge{display:inline-block;background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;padding:4px 10px;border-radius:12px;font-size:11px;font-weight:500}.modal-delete .modal-content{max-width:450px}.btn-danger{background-color:#ef4444;color:#fff;border:none;padding:10px 20px;border-radius:4px;font-size:14px;font-weight:500;cursor:pointer;transition:background-color .3s ease}.btn-danger:hover:not(:disabled){background-color:#dc2626}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.delete-warning{display:flex;align-items:center;gap:12px;padding:16px;background-color:#fef2f2;border:1px solid #fee2e2;border-radius:8px;margin-bottom:20px}.delete-warning svg{width:24px;height:24px;color:#ef4444;flex-shrink:0}.delete-warning p{margin:0;color:#991b1b;font-size:14px}.delete-details{background-color:#f9fafb;border-radius:8px;padding:16px;margin-bottom:20px}.delete-details p{margin:0 0 8px;font-size:14px;color:#4b5563}.delete-details p:last-child{margin-bottom:0}.delete-details strong{color:#1f2937}.delete-note{font-size:12px;color:#6b7280;font-style:italic;margin-top:12px}.balance-billetage-row{display:flex;gap:20px;margin-bottom:20px}.balance-billetage-row .balance-card{flex:1;margin-bottom:0}.billetage-card{flex:1;background:linear-gradient(135deg,#10b981,#059669);color:#fff;padding:24px;border-radius:8px;box-shadow:0 4px 6px #0000001a;position:relative;transition:all .3s ease}.billetage-card.mismatch{background:linear-gradient(135deg,#f59e0b,#d97706);animation:pulse-warning 2s ease-in-out infinite}@keyframes pulse-warning{0%,to{box-shadow:0 4px 6px #0000001a}50%{box-shadow:0 4px 20px #f59e0b66}}.billetage-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.billetage-label{font-size:14px;opacity:.9;text-transform:uppercase;letter-spacing:.5px}.btn-edit-billetage{background:#fff3;border:none;border-radius:6px;padding:8px;cursor:pointer;color:#fff;transition:background .2s;display:flex;align-items:center;justify-content:center}.btn-edit-billetage:hover{background:#ffffff4d}.billetage-amount{font-size:32px;font-weight:700}.billetage-mismatch-alert{margin-top:12px;padding:10px 12px;background:#ffffff26;border-radius:6px;font-size:13px;line-height:1.4;border-left:3px solid white}.modal-billetage{max-width:700px}.billetage-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.billetage-section h4{margin:0 0 16px;color:#1a1a2e;font-size:16px;padding-bottom:8px;border-bottom:2px solid #667eea}.denomination-row{display:grid;grid-template-columns:100px 80px 1fr;gap:12px;align-items:center;margin-bottom:10px}.denomination-row label{font-weight:500;color:#333;text-align:right}.denomination-input{width:100%;padding:8px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;text-align:center}.denomination-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea33}.denomination-subtotal{font-size:13px;color:#666;text-align:right}.billetage-total-section{margin-top:24px;padding-top:20px;border-top:2px solid #e0e0e0}.billetage-total-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;background:#f8f9fa;border-radius:6px;margin-bottom:8px}.billetage-total-row .total-label{font-weight:500;color:#333}.billetage-total-row .total-value{font-size:18px;font-weight:700;color:#1a1a2e}.billetage-total-row.mismatch{background:#fef2f2;border:1px solid #fee2e2}.billetage-total-row.mismatch .total-label,.billetage-total-row.mismatch .total-value.negative{color:#dc2626}@media (max-width: 768px){.cash-register-header{flex-direction:column;align-items:flex-start;gap:12px}.filters{flex-direction:column}.filter-input{width:100%}.movements-table{font-size:12px}.movements-table th,.movements-table td{padding:8px}.report-summary{grid-template-columns:1fr}.modal-content{width:95%;max-height:95vh}.balance-billetage-row{flex-direction:column}.billetage-grid{grid-template-columns:1fr}.denomination-row{grid-template-columns:80px 60px 1fr}}.billetage-toggle{margin-top:10px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#333}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.virement-billetage-section{background:#f8f9fa;border:1px solid #e0e0e0;border-radius:8px;padding:16px;margin-top:10px}.virement-billetage-section h4{margin:0 0 12px;font-size:14px;color:#555}.billetage-compact-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.denomination-compact-row{display:flex;flex-direction:column;gap:4px}.denomination-compact-row label{font-size:11px;color:#666}.denomination-compact-input{width:100%;padding:6px 8px;border:1px solid #ddd;border-radius:4px;font-size:14px;text-align:center}.denomination-compact-input:focus{border-color:#667eea;outline:none}.billetage-total-compact{margin-top:12px;padding-top:12px;border-top:1px solid #ddd;display:flex;justify-content:space-between;align-items:center;font-size:14px}.billetage-total-compact strong{color:#667eea}.billetage-diff-warning{color:#e74c3c;font-size:12px}@media (max-width: 600px){.billetage-compact-grid{grid-template-columns:repeat(2,1fr)}}.sales-report-page{padding:20px;max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:15px;border-bottom:2px solid #e0e0e0}.page-header h1{margin:0;color:#333}.header-left{display:flex;align-items:center;gap:12px}.btn-back{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ddd;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;color:#333}.btn-back:hover{background:#f0f0f0;border-color:#667eea;color:#667eea}.user-info{display:flex;align-items:center;gap:15px}.error-banner{background-color:#f8d7da;color:#721c24;padding:15px;border-radius:6px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center}.error-banner button{background:none;border:none;font-size:24px;cursor:pointer;color:#721c24}.filters-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-bottom:30px}.filters-section h2{margin-top:0;margin-bottom:15px;color:#333;font-size:18px}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-size:14px;font-weight:500;color:#555}.filter-group select,.filter-group input{padding:8px 12px;border:1px solid #ddd;border-radius:4px;font-size:14px}.report-section{background:#fff;padding:20px;border-radius:8px;box-shadow:0 2px 4px #0000001a}.report-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px;padding-bottom:15px;border-bottom:2px solid #e0e0e0}.report-header h2{margin:0 0 5px;color:#333}.site-name{color:#666;font-size:14px;margin:0}.export-buttons{display:flex;gap:10px;flex-shrink:0}.grand-total-card{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:25px;border-radius:8px;margin-bottom:30px}.grand-total-card h3,.grand-total-card h4{margin-top:0;margin-bottom:15px}.totals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:15px;margin-bottom:20px}.total-item{display:flex;flex-direction:column;gap:5px}.total-item.highlight{background:#fff3;padding:10px;border-radius:6px}.total-item .label{font-size:13px;opacity:.9}.total-item .value{font-size:20px;font-weight:600}.total-item .value.positive{color:#90ee90}.total-item .value.negative{color:#ffcccb}.payment-methods-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:10px}.payment-method-item{display:flex;justify-content:space-between;background:#ffffff1a;padding:8px 12px;border-radius:4px}.daily-reports{margin-top:30px}.daily-reports>h3{margin-bottom:15px;color:#333}.daily-report-card{background:#f9f9f9;border:1px solid #e0e0e0;border-radius:6px;margin-bottom:15px;overflow:hidden}.daily-header{padding:15px 20px;background:#fff;border-bottom:1px solid #e0e0e0;cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .2s}.daily-header:hover{background:#f5f5f5}.daily-header h4{margin:0;color:#333}.daily-summary{display:flex;align-items:center;gap:15px;color:#666;font-size:14px}.toggle-icon{font-size:12px}.daily-content{padding:20px}.day-summary{background:#fff;padding:15px;border-radius:6px;margin-bottom:20px}.summary-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid #f0f0f0}.summary-row:last-child{border-bottom:none}.invoices-section{margin-bottom:25px}.invoices-section h5{margin-top:0;margin-bottom:15px;color:#333}.invoice-card{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:15px;margin-bottom:15px}.invoice-header{display:flex;align-items:center;gap:15px;margin-bottom:10px}.invoice-number{font-weight:600;font-size:16px;color:#333}.invoice-type,.invoice-status{padding:4px 10px;border-radius:4px;font-size:12px;font-weight:500}.invoice-type{background:#e3f2fd;color:#1976d2}.invoice-status{text-transform:uppercase}.status-payee{background:#c8e6c9;color:#2e7d32}.status-impayee{background:#ffcdd2;color:#c62828}.status-partielle{background:#fff9c4;color:#f57f17}.invoice-details p{margin:5px 0;font-size:14px}.invoice-details .remaining{color:#f57f17;font-weight:500}.payments-list{margin-top:10px;padding-top:10px;border-top:1px solid #f0f0f0}.payments-list strong{display:block;margin-bottom:8px;color:#666;font-size:13px}.payment-item{display:flex;justify-content:space-between;align-items:center;padding:6px 10px;background:#f5f5f5;border-radius:4px;margin-bottom:5px;font-size:13px}.payment-date{color:#999;font-size:12px}.cash-movements-section h5{margin-top:0;margin-bottom:15px;color:#333}.movement-card{background:#fff;border-left:4px solid #ddd;border-radius:6px;padding:15px;margin-bottom:15px}.movement-card.movement-entree{border-left-color:#4caf50}.movement-card.movement-sortie{border-left-color:#f44336}.movement-header{display:flex;align-items:center;gap:15px;margin-bottom:10px}.movement-type{font-weight:600;font-size:14px}.movement-category{padding:4px 10px;background:#f5f5f5;border-radius:4px;font-size:12px}.movement-amount{margin-left:auto;font-weight:600;font-size:16px}.movement-card p{margin:8px 0;font-size:14px}.movement-author{color:#999;font-size:12px;margin-top:10px}.attachments{margin-top:10px;padding-top:10px;border-top:1px solid #f0f0f0}.attachments strong{display:block;margin-bottom:5px;font-size:13px;color:#666}.attachments a{display:inline-block;margin-right:10px;padding:4px 10px;background:#e3f2fd;color:#1976d2;text-decoration:none;border-radius:4px;font-size:12px}.attachments a:hover{background:#bbdefb}.empty-state{text-align:center;padding:60px 20px;color:#999}.btn-primary,.btn-secondary{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5568d3}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#e0e0e0;color:#333}.btn-secondary:hover{background:#d0d0d0}.btn-export{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border:none;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 4px #0000001a}.btn-export:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.btn-export:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-export-excel{background:linear-gradient(135deg,#22c55e,#16a34a);color:#fff}.btn-export-excel:hover:not(:disabled){background:linear-gradient(135deg,#16a34a,#15803d)}.btn-export-pdf{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff}.btn-export-pdf:hover:not(:disabled){background:linear-gradient(135deg,#dc2626,#b91c1c)}.export-icon{width:18px;height:18px}.loading-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 768px){.filters-grid,.totals-grid{grid-template-columns:1fr}.daily-header{flex-direction:column;align-items:flex-start;gap:10px}.invoice-header,.movement-header{flex-wrap:wrap}}.profile-page{max-width:900px;margin:0 auto}.profile-header{margin-bottom:32px}.profile-header h1{margin:0 0 8px;font-size:2rem;font-weight:700;color:#1e293b}.profile-header p{margin:0;font-size:1rem;color:#64748b}.alert{display:flex;align-items:center;gap:12px;padding:16px 20px;margin-bottom:24px;border-radius:12px;font-size:.9375rem;font-weight:500}.alert-icon{font-size:1.25rem}.alert-success{background:#dcfce7;color:#166534;border:1px solid #86efac}.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fca5a5}.profile-form{display:flex;flex-direction:column;gap:32px}.form-section{padding:32px;background:#fff;border-radius:16px;box-shadow:0 1px 3px #0000001a}.form-section h2{margin:0 0 24px;font-size:1.25rem;font-weight:600;color:#1e293b}.avatar-section{display:flex;align-items:center;gap:32px}.avatar-preview-large{width:120px;height:120px;border-radius:50%;overflow:hidden;box-shadow:0 4px 12px #0000001a}.avatar-preview-large img{width:100%;height:100%;object-fit:cover}.avatar-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:2.5rem;font-weight:700;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2)}.avatar-actions{display:flex;flex-direction:column;gap:12px}.btn-upload{display:inline-flex;align-items:center;justify-content:center;padding:12px 24px;font-size:.9375rem;font-weight:600;color:#fff;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.btn-upload:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-remove{padding:8px 16px;font-size:.875rem;font-weight:500;color:#dc2626;background:#fef2f2;border:1px solid #fca5a5;border-radius:8px;cursor:pointer;transition:all .2s ease}.btn-remove:hover{background:#fee2e2}.avatar-help{margin:0;font-size:.875rem;color:#64748b}.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:.9375rem;font-weight:600;color:#334155}.form-group input{padding:12px 16px;font-size:.9375rem;color:#1e293b;background:#fff;border:2px solid #e2e8f0;border-radius:8px;transition:all .2s ease}.form-group input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input.input-disabled{color:#94a3b8;background:#f8fafc;cursor:not-allowed}.form-group small{font-size:.8125rem;color:#64748b}.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.info-item{display:flex;flex-direction:column;gap:8px}.info-item label{font-size:.875rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em}.info-badge{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;font-size:.9375rem;font-weight:600;border-radius:8px;text-transform:capitalize}.role-badge{color:#7c3aed;background:#f3e8ff;border:1px solid #e9d5ff}.portal-badge{color:#2563eb;background:#dbeafe;border:1px solid #bfdbfe}.info-text{font-size:.9375rem;color:#334155}.form-actions{display:flex;justify-content:flex-end;gap:12px;padding-top:24px;border-top:1px solid #e2e8f0}.btn-primary,.btn-secondary{padding:12px 24px;font-size:.9375rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease}.btn-primary{color:#fff;background:linear-gradient(135deg,#667eea,#764ba2)}.btn-primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{color:#64748b;background:#f1f5f9}.btn-secondary:hover{background:#e2e8f0}@media (max-width: 768px){.profile-page{padding:0}.form-section{padding:24px}.avatar-section{flex-direction:column;align-items:flex-start}.form-grid,.info-grid{grid-template-columns:1fr}.form-actions{flex-direction:column-reverse}.form-actions button{width:100%}}.faq-page{padding:2rem;max-width:1200px;margin:0 auto}.faq-header{text-align:center;margin-bottom:2rem}.faq-header h1{font-size:2.5rem;color:#2c3e50;margin-bottom:.5rem}.faq-header p{font-size:1.1rem;color:#7f8c8d}.faq-search-bar{margin-bottom:2rem}.search-input-wrapper{position:relative;max-width:600px;margin:0 auto}.search-icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1.2rem;color:#95a5a6}.search-input{width:100%;padding:1rem 3rem;font-size:1rem;border:2px solid #e0e0e0;border-radius:50px;transition:all .3s ease}.clear-search{position:absolute;right:1rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.2rem;color:#95a5a6;cursor:pointer;padding:.5rem}.clear-search:hover{color:#e74c3c}.faq-categories-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;justify-content:center}.category-filter-btn{padding:.5rem 1rem;border:2px solid #e0e0e0;background:#fff;border-radius:20px;font-size:.95rem;cursor:pointer;transition:all .2s ease}.category-filter-btn:hover{border-color:#667eea;color:#667eea}.category-filter-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:transparent}.faq-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d}.faq-category-section{margin-bottom:2rem}.faq-category-section:last-child{margin-bottom:0}.category-title{font-size:1.5rem;color:#2c3e50;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #e0e0e0;display:flex;flex-direction:column;gap:.25rem}.category-description{font-size:.9rem;color:#7f8c8d;font-weight:400}.faq-items{display:flex;flex-direction:column;gap:.75rem}.faq-item{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;transition:all .2s ease}.faq-item:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.faq-item.expanded{border-color:#667eea}.faq-question{width:100%;display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background:#fff;border:none;cursor:pointer;text-align:left;transition:background .2s ease}.faq-question:hover{background:#f8f9fa}.faq-item.expanded .faq-question{background:#f8f9fa;border-bottom:1px solid #e0e0e0}.question-text{font-size:1rem;font-weight:600;color:#2c3e50;flex:1}.expand-icon{font-size:.8rem;color:#667eea;margin-left:1rem}.faq-answer{padding:1.5rem;background:#fff;animation:slideDown .3s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.answer-content{font-size:.95rem;line-height:1.6;color:#34495e;margin-bottom:1rem}.faq-feedback{display:flex;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid #e0e0e0}.feedback-label{font-size:.9rem;color:#7f8c8d}.feedback-buttons{display:flex;gap:.5rem}.feedback-btn{padding:.4rem .8rem;border:1px solid #e0e0e0;background:#fff;border-radius:6px;font-size:.85rem;cursor:pointer;transition:all .2s ease}.feedback-btn:hover{transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.feedback-btn.positive:hover{background:#d4edda;border-color:#28a745;color:#28a745}.feedback-btn.negative:hover{background:#f8d7da;border-color:#dc3545;color:#dc3545}.feedback-thanks{font-size:.9rem;color:#28a745;font-weight:500}.faq-empty{text-align:center;padding:3rem 1rem;color:#7f8c8d}.faq-empty p{font-size:1.1rem;margin-bottom:1rem}.clear-filters-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:transform .2s ease}.clear-filters-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.faq-loading,.faq-error{text-align:center;padding:3rem 1rem;font-size:1.1rem}.faq-error{color:#e74c3c}@media (max-width: 768px){.faq-page{padding:1rem}.faq-header h1{font-size:2rem}.faq-categories-filter{justify-content:flex-start}.faq-content{padding:1rem}.faq-question{padding:.75rem 1rem}.question-text{font-size:.95rem}.faq-answer{padding:1rem}.faq-feedback{flex-direction:column;align-items:flex-start}}.faq-management-page{padding:2rem;max-width:1400px;margin:0 auto}.page-header{margin-bottom:2rem}.page-header h1{font-size:2rem;color:#2c3e50;margin-bottom:.5rem}.page-header p{color:#7f8c8d}.tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e0e0e0}.tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;font-size:1rem;color:#7f8c8d;transition:all .2s ease}.tab:hover{color:#667eea}.tab.active{color:#667eea;border-bottom-color:#667eea;font-weight:600}.tab-content{background:#fff;border-radius:12px;padding:2rem;box-shadow:0 2px 8px #0000000d}.content-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.content-header h2{font-size:1.5rem;color:#2c3e50}.btn-primary{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer;transition:transform .2s ease}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.btn-edit,.btn-delete,.btn-toggle{padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.btn-edit{background:#e3f2fd;color:#1976d2}.btn-edit:hover{background:#1976d2;color:#fff}.btn-delete{background:#ffebee;color:#c62828}.btn-delete:hover{background:#c62828;color:#fff}.btn-toggle{background:#f3e5f5;color:#7b1fa2}.btn-toggle:hover{background:#7b1fa2;color:#fff}.items-list{display:flex;flex-direction:column;gap:1rem}.item-card{border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;transition:all .2s ease}.item-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem}.item-header h3{font-size:1.1rem;color:#2c3e50;margin-bottom:.5rem}.category-tag{display:inline-block;padding:.25rem .75rem;background:#e3f2fd;color:#1976d2;border-radius:12px;font-size:.8rem;margin-right:.5rem}.status-tag{display:inline-block;padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600}.status-tag.published{background:#d4edda;color:#28a745}.status-tag.draft{background:#fff3cd;color:#856404}.item-actions{display:flex;gap:.5rem}.item-answer{color:#7f8c8d;margin-bottom:1rem;font-size:.95rem}.item-stats{display:flex;gap:1rem;font-size:.9rem;color:#7f8c8d}.categories-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.category-card{border:1px solid #e0e0e0;border-radius:8px;padding:1.5rem;display:flex;flex-direction:column;justify-content:space-between;gap:1rem;transition:all .2s ease}.category-card:hover{border-color:#667eea;box-shadow:0 2px 8px #667eea1a}.category-card h3{font-size:1.2rem;color:#2c3e50;margin-bottom:.5rem}.category-card p{color:#7f8c8d;font-size:.9rem;margin-bottom:.5rem}.order-badge{display:inline-block;padding:.25rem .75rem;background:#f0f0f0;border-radius:12px;font-size:.8rem;color:#666}.category-actions{display:flex;gap:.5rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:2rem;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal.large{max-width:700px}.modal h2{margin-bottom:1.5rem;color:#2c3e50}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;color:#2c3e50;font-weight:500}.form-group input[type=text],.form-group input[type=number],.form-group select,.form-group textarea{width:100%;padding:.75rem;border:1px solid #e0e0e0;border-radius:6px;font-size:1rem}.form-group input[type=checkbox]{margin-right:.5rem}.form-group textarea{resize:vertical;font-family:inherit}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.5rem}.btn-cancel{padding:.75rem 1.5rem;background:#e0e0e0;color:#666;border:none;border-radius:6px;cursor:pointer;transition:background .2s ease}.btn-cancel:hover{background:#d0d0d0}.btn-save{padding:.75rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:6px;cursor:pointer;transition:transform .2s ease}.btn-save:hover{transform:translateY(-2px)}.loading,.error{text-align:center;padding:3rem 1rem;font-size:1.1rem}.error{color:#e74c3c}@media (max-width: 768px){.faq-management-page,.tab-content{padding:1rem}.categories-list,.form-row{grid-template-columns:1fr}.item-header{flex-direction:column;gap:1rem}.item-actions{width:100%}}.stock-arrivals-page{min-height:100vh;background:#f8fafc}.page-header{background:#fff;padding:16px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 3px #0000001a}.header-left{display:flex;align-items:center;gap:16px}.header-left h1{color:#2563eb;font-size:1.4rem;margin:0}.page-content{padding:24px;max-width:1400px;margin:0 auto}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;display:flex;justify-content:space-between;align-items:center}.alert button{background:none;border:none;cursor:pointer;font-size:1.2rem;opacity:.7}.alert button:hover{opacity:1}.alert-error{background:#fef2f2;border:1px solid #fecaca;color:#dc2626}.alert-success{background:#f0fdf4;border:1px solid #bbf7d0;color:#16a34a}.arrivals-tabs{display:flex;gap:8px;margin-bottom:20px;background:#fff;padding:8px;border-radius:12px;box-shadow:0 1px 3px #0000001a}.tab-btn{padding:10px 20px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:.95rem;color:#64748b;transition:all .2s ease}.tab-btn:hover{background:#f1f5f9;color:#334155}.tab-btn.active{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.filter-bar{background:#fff;padding:16px 20px;border-radius:12px;box-shadow:0 1px 3px #0000001a;margin-bottom:20px;display:flex;gap:20px;align-items:flex-end}.filter-group{display:flex;flex-direction:column;gap:6px;min-width:200px}.filter-group label{font-size:.85rem;color:#64748b;font-weight:500}.list-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px;flex-wrap:wrap}.actions-left,.actions-right{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.selection-count{font-size:.875rem;color:#3b82f6;font-weight:600;padding:.25rem .75rem;background:#dbeafe;border-radius:12px}.btn{padding:10px 20px;border:none;border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:500;display:inline-flex;align-items:center;gap:8px;transition:all .2s ease}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #e2e8f0}.btn-secondary:hover:not(:disabled){background:#e2e8f0}.btn-success{background:#10b981;color:#fff}.btn-success:hover:not(:disabled){background:#059669}.btn-danger{background:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626}.btn-info{background:#3b82f6;color:#fff}.btn-info:hover:not(:disabled){background:#2563eb}.btn-back{background:#fff;border:1px solid #e2e8f0;color:#475569}.btn-back:hover{background:#f1f5f9;border-color:#667eea;color:#667eea}.btn-sm{padding:6px 10px;font-size:.85rem}.status-badge{display:inline-block;padding:4px 12px;border-radius:20px;font-size:.8rem;font-weight:600;color:#fff}.loading-state,.empty-state{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;color:#64748b}.empty-state p{margin-bottom:20px;font-size:1.1rem}.arrivals-table-container{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.arrivals-table{width:100%;border-collapse:collapse}.arrivals-table th{background:#f8fafc;padding:14px 16px;text-align:left;font-weight:600;color:#475569;font-size:.85rem;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e2e8f0}.arrivals-table td{padding:14px 16px;border-bottom:1px solid #f1f5f9;color:#334155}.arrivals-table tr:hover{background:#f8fafc}.arrivals-table .id-cell{font-family:monospace;color:#6366f1;font-weight:500}.arrivals-table .actions-cell{display:flex;gap:8px}.checkbox-col{width:40px;text-align:center}.checkbox-col input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#3b82f6}.checkbox-col input[type=checkbox]:disabled{cursor:not-allowed;opacity:.4}.row-selected{background-color:#dbeafe!important}.row-selected:hover{background-color:#bfdbfe!important}.warning-text{background:#fef3c7;border:1px solid #fbbf24;color:#92400e;padding:1rem;border-radius:6px;font-size:.9rem;margin-top:12px}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover:not(:disabled){background:#d97706}.lines-table{width:100%;border-collapse:collapse;background:#fff;border-radius:8px;overflow:hidden;margin-top:12px}.lines-table th{background:#f1f5f9;padding:10px 14px;text-align:left;font-weight:600;color:#475569;font-size:.85rem}.lines-table td{padding:10px 14px;border-bottom:1px solid #f1f5f9}.lines-table .quantity-input{width:80px;padding:6px 10px;border:1px solid #e2e8f0;border-radius:6px;text-align:center}.arrivals-create-view,.arrivals-detail-view{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;padding:24px}.create-header,.detail-header{display:flex;align-items:center;gap:16px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e2e8f0}.create-header h2,.detail-header h2{margin:0;color:#1e293b;font-size:1.3rem}.create-form{display:flex;flex-direction:column;gap:24px}.form-section{padding:20px;background:#f8fafc;border-radius:10px}.form-section h3{margin:0 0 16px;color:#475569;font-size:1rem}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.85rem;color:#64748b;font-weight:500}.form-group input,.form-group textarea{padding:10px 14px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;transition:border-color .2s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:16px;border-top:1px solid #e2e8f0}.article-search-container{position:relative}.search-input{width:100%;padding:12px 16px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem}.search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.article-dropdown{position:absolute;top:100%;left:0;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px #00000026;z-index:100;max-height:300px;overflow:hidden;display:flex;flex-direction:column}.dropdown-header{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.85rem;color:#64748b}.dropdown-header button{background:none;border:none;cursor:pointer;font-size:1rem;color:#94a3b8}.dropdown-list{overflow-y:auto;max-height:250px}.dropdown-item{padding:12px 14px;cursor:pointer;border-bottom:1px solid #f1f5f9;display:flex;gap:12px;align-items:center}.dropdown-item:hover{background:linear-gradient(135deg,#667eea1a,#764ba21a)}.dropdown-item .article-ref{font-weight:600;color:#6366f1;font-size:.9rem;min-width:100px}.dropdown-item .article-name{color:#334155}.detail-content{display:flex;flex-direction:column;gap:24px}.detail-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}.detail-card{background:#f8fafc;padding:16px;border-radius:10px}.detail-card h4{margin:0 0 8px;color:#64748b;font-size:.85rem}.detail-card p{margin:0;color:#1e293b;font-weight:600}.detail-card small{color:#94a3b8;font-size:.8rem}.detail-card.card-approved{background:linear-gradient(135deg,#f0fdf4,#dcfce7);border:1px solid #86efac}.detail-card.card-approved h4{color:#16a34a}.detail-card.card-rejected{background:linear-gradient(135deg,#fef2f2,#fee2e2);border:1px solid #fca5a5}.detail-card.card-rejected h4{color:#dc2626}.detail-card.card-received{background:linear-gradient(135deg,#eff6ff,#dbeafe);border:1px solid #93c5fd}.detail-card.card-received h4{color:#2563eb}.detail-card.card-summary{background:linear-gradient(135deg,#f5f3ff,#ede9fe);border:1px solid #c4b5fd}.detail-card.card-summary h4{color:#7c3aed}.detail-section{padding:20px;background:#f8fafc;border-radius:10px}.detail-section h3{margin:0 0 16px;color:#475569;font-size:1rem}.detail-actions{display:flex;gap:12px;padding-top:16px;border-top:1px solid #e2e8f0}.note-block{padding:12px 16px;background:#fff;border-radius:8px;margin-bottom:8px;border-left:4px solid #94a3b8}.note-block.success{border-left-color:#10b981;background:#f0fdf4}.note-block.error{border-left-color:#ef4444;background:#fef2f2}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;width:90%;max-width:500px;box-shadow:0 20px 50px #0000004d}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #e2e8f0}.modal-header h3{margin:0;color:#1e293b}.modal-close{background:none;border:none;font-size:1.2rem;cursor:pointer;color:#94a3b8}.modal-close:hover{color:#475569}.modal-body{padding:20px}.modal-body p{margin:0 0 16px;color:#475569}.modal-body textarea{width:100%;padding:12px;border:1px solid #e2e8f0;border-radius:8px;font-size:.95rem;resize:vertical}.modal-body textarea:focus{outline:none;border-color:#667eea}.modal-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid #e2e8f0}@media (max-width: 768px){.arrivals-tabs{flex-wrap:wrap}.tab-btn{flex:1;min-width:120px;text-align:center}.list-actions{flex-wrap:wrap}.form-row{grid-template-columns:1fr}.detail-cards{grid-template-columns:1fr 1fr}.arrivals-table{display:block;overflow-x:auto}}.article-search-row{display:flex;gap:12px;align-items:flex-start}.article-search-row .article-search-container{flex:1}.btn-qr-scan{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border:none;padding:12px 20px;border-radius:8px;font-size:.95rem;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-qr-scan:hover{background:linear-gradient(135deg,#1d4ed8,#1e40af);transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}@media (max-width: 600px){.article-search-row{flex-direction:column}.btn-qr-scan{width:100%}}.detail-search-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.detail-search-input{flex:1;min-width:200px;padding:.75rem 1rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem}.detail-search-input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.detail-count{font-size:.875rem;color:#64748b;white-space:nowrap}.detail-pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.detail-pagination .page-info{font-size:.875rem;color:#475569;font-weight:500}@media (max-width: 600px){.detail-search-bar{flex-direction:column;align-items:stretch}.detail-search-input{min-width:100%}.detail-pagination{flex-wrap:wrap}}@media (max-width: 1024px){.dashboard-stats{grid-template-columns:repeat(2,1fr)}.modal{width:90%;max-width:600px}.modal-lg{width:95%}}@media (max-width: 768px){body{font-size:14px}header{flex-direction:column;gap:1rem;padding:1rem}header h1{font-size:1.25rem}.header-actions{width:100%;flex-direction:column;gap:.5rem}nav{flex-wrap:wrap;gap:.5rem}nav a{padding:.5rem .75rem;font-size:.9rem}.filters,.filter-bar{flex-direction:column;gap:.75rem}.filter-group{width:100%}.filter-group label{display:block;margin-bottom:.25rem}.filter-group select,.filter-group input{width:100%}.button,button:not(.pagination-btn){width:100%;padding:.75rem 1rem;font-size:1rem}.button-group{flex-direction:column;gap:.5rem}.button-group button{width:100%}.dashboard-stats{grid-template-columns:1fr;gap:1rem}.stat-card{padding:1rem}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -1rem;padding:0 1rem}table{font-size:.85rem;min-width:600px}th,td{padding:.5rem;white-space:nowrap}.hide-mobile{display:none}.table-actions{display:flex;flex-direction:column;gap:.25rem}.table-actions button{width:100%;padding:.4rem;font-size:.8rem}.sites-grid,.articles-grid{grid-template-columns:1fr}.site-card,.article-card{margin:.5rem 0}.modal,.modal-lg{width:95%;max-width:none;margin:1rem auto;max-height:90vh;overflow-y:auto}.modal-header{padding:1rem}.modal-header h2{font-size:1.1rem}.modal-body{padding:1rem}.modal-footer{padding:1rem;flex-direction:column-reverse;gap:.5rem}.modal-footer button{width:100%}.form-row{flex-direction:column}.form-group{width:100%;margin-bottom:1rem}.form-group label{font-size:.9rem}.form-group input,.form-group select,.form-group textarea{width:100%;font-size:1rem;padding:.75rem}.invoice-lines-table{overflow-x:auto}.invoice-line-form{flex-direction:column}.invoice-line-form input{width:100%}.error-message,.success-message{margin:.5rem 0;padding:.75rem;font-size:.9rem}.pagination-container{flex-direction:column;text-align:center}.pagination-info{order:3;margin-top:.5rem}.pagination-controls{order:1;justify-content:center;flex-wrap:wrap}.pagination-page-size{order:2;margin:.5rem 0}.badge,.status-badge{font-size:.75rem;padding:.25rem .5rem}.info-box{padding:.75rem;font-size:.85rem}.qr-preview{max-width:100%}.search-bar{width:100%;margin-bottom:1rem}.search-bar input{width:100%}}@media (max-width: 480px){body{font-size:13px}header h1{font-size:1.1rem}nav a{font-size:.85rem;padding:.4rem .6rem}table{font-size:.75rem;min-width:500px}th,td{padding:.4rem}.modal-header h2{font-size:1rem}.pagination-btn{min-width:1.75rem;height:1.75rem;font-size:.8rem}}@media print{header nav,.filters,.button,.modal-overlay,.pagination-container{display:none!important}table{page-break-inside:avoid}.table-actions{display:none!important}}.show-mobile{display:none}@media (max-width: 768px){.hide-mobile{display:none!important}.show-mobile{display:block!important}}*{box-sizing:border-box}main{max-width:100%;overflow-x:hidden}img{max-width:100%;height:auto}.page-header{margin-bottom:32px}.page-header h1{margin:0 0 8px;font-size:2rem;font-weight:700;color:#1e293b}.page-header p{margin:0;font-size:1rem;color:#64748b}.dashboard-header{display:none!important}@media (max-width: 768px){.page-header h1{font-size:1.5rem}}.btn-action{padding:6px 12px;border:none;border-radius:6px;font-size:.85rem;cursor:pointer;background:#2563eb;color:#fff;font-weight:500;transition:background .2s;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;display:inline-block}.btn-action:hover{background:#1d4ed8}.btn-action:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6}.btn-action.btn-secondary{background:#f1f5f9;color:#475569}.btn-action.btn-secondary:hover{background:#e2e8f0}.btn-action.btn-danger{background:#dc2626;color:#fff}.btn-action.btn-danger:hover{background:#b91c1c}.btn-primary{padding:10px 20px;background:#2563eb;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap;font-size:.95rem}.btn-primary:hover{background:#1d4ed8}.btn-primary:disabled{background:#94a3b8;cursor:not-allowed;opacity:.6}.btn-secondary{padding:10px 20px;background:#f1f5f9;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;font-size:.95rem}.btn-secondary:hover{background:#e2e8f0;border-color:#cbd5e1}.btn-secondary:disabled{background:#f8fafc;color:#cbd5e1;cursor:not-allowed;opacity:.6}.btn-danger{padding:10px 20px;background:#dc2626;color:#fff;border:none;border-radius:8px;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap;font-size:.95rem}.btn-danger:hover{background:#b91c1c}.btn-danger:disabled{background:#fca5a5;cursor:not-allowed;opacity:.6}.btn-cancel{padding:10px 20px;background:#fff;color:#475569;border:1px solid #e2e8f0;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s;white-space:nowrap;font-size:.95rem}.btn-cancel:hover{background:#f8fafc;border-color:#cbd5e1}.btn-icon{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;border:none;border-radius:6px;background:#f1f5f9;color:#475569;cursor:pointer;transition:all .2s;font-size:1.1rem}.btn-icon:hover{background:#e2e8f0;color:#2563eb}.btn-icon.btn-danger{background:#fef2f2;color:#dc2626}.btn-icon.btn-danger:hover{background:#fee2e2;color:#b91c1c}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.actions .btn-action,.actions .btn-icon{flex-shrink:0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif;background:#f8fafc;color:#1e293b;line-height:1.6}.back-link{display:inline-block;color:#64748b;text-decoration:none;margin-bottom:16px}.back-link:hover{color:#2563eb}
