.notification{position:fixed;top:20px;right:20px;z-index:10000;min-width:300px;max-width:500px;border-radius:8px;box-shadow:0 4px 12px #00000026;animation:slideIn .3s ease-out;font-size:14px}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.notification-content{display:flex;align-items:center;padding:12px 16px;gap:12px}.notification-icon{font-size:20px;flex-shrink:0}.notification-message{flex:1;line-height:1.5}.notification-close{background:none;border:none;font-size:24px;cursor:pointer;color:inherit;opacity:.7;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .2s}.notification-close:hover{opacity:1}.notification-error{background:#fee2e2;color:#991b1b;border-left:4px solid #dc2626}.notification-warning{background:#fef3c7;color:#92400e;border-left:4px solid #f59e0b}.notification-info{background:#dbeafe;color:#1e40af;border-left:4px solid #3b82f6}.notification-success{background:#d1fae5;color:#065f46;border-left:4px solid #10b981}@media (max-width: 768px){.notification{top:10px;right:10px;left:10px;min-width:auto;max-width:none}}.employee-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.employee-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.employee-list-header h2{margin:0;color:#111827;font-size:24px}.filter-select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.employee-table-wrapper{overflow-x:auto}.employee-table{width:100%;border-collapse:collapse}.employee-table thead{background:#f9fafb}.employee-table th{padding:8px;text-align:left;font-weight:600;color:#374151;font-size:12px;border-bottom:2px solid #e5e7eb}.employee-table td{padding:8px;border-bottom:1px solid #e5e7eb;font-size:12px;color:#111827}.employee-table tbody tr:hover{background:#f9fafb}.type-employee{background:#dbeafe;color:#1e40af}.type-contractor{background:#fef3c7;color:#92400e}.user-link-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;background:#e0e7ff;color:#3730a3;display:inline-block}.no-user-badge{color:#9ca3af;font-style:italic}@media (max-width: 768px){.employee-list-container{padding:16px}.employee-list-header{flex-direction:column;align-items:stretch}.filters{flex-direction:column}.search-box{max-width:100%}.employee-table-wrapper{overflow-x:scroll}.employee-table{min-width:1000px}.action-buttons{flex-direction:column}.btn-sm{width:100%}}.employee-form{background:var(--bg-primary);border-radius:var(--radius-2xl);padding:var(--space-8);box-shadow:var(--shadow-xl);max-width:1000px;margin:0 auto;border:1px solid var(--border-light)}.form-section{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:2px solid var(--border-light)}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.form-section h3{margin:0 0 var(--space-5) 0;color:var(--text-primary);font-size:var(--text-xl);font-weight:var(--font-bold);padding-bottom:var(--space-2);border-bottom:3px solid var(--primary-600);display:inline-block;background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.form-group label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-sm)}.form-group .required{color:var(--error);margin-left:var(--space-1)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--text-sm);font-family:var(--font-sans);transition:all var(--transition-base);background:var(--bg-primary);color:var(--text-primary)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #0ea5e91a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:var(--error)}.form-group input.error:focus,.form-group select.error:focus,.form-group textarea.error:focus{box-shadow:0 0 0 3px #ef44441a}.error-message{display:block;color:var(--error);font-size:var(--text-xs);margin-top:var(--space-1);font-weight:var(--font-medium)}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.form-actions{display:flex;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-6);border-top:2px solid var(--border-light);justify-content:flex-end}.form-hint{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1);font-style:italic}@media (max-width: 768px){.employee-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{width:100%}}.error-display{margin:16px 0;border-radius:8px;background:#fee2e2;color:#991b1b;border-left:4px solid #dc2626;box-shadow:0 2px 4px #0000001a;animation:slideDown .3s ease-out}.error-display-content{display:flex;align-items:center;padding:12px 16px;gap:12px}.error-icon{font-size:20px;flex-shrink:0}.error-message{flex:1;line-height:1.5;font-size:14px}.error-close{background:none;border:none;font-size:24px;cursor:pointer;color:#991b1b;opacity:.7;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:opacity .2s}.error-close:hover{opacity:1}.error-close:focus{outline:2px solid #dc2626;outline-offset:2px}.employees-page{max-width:1200px;margin:0 auto}.employee-allocation-form-grid{max-width:100%;margin:0 auto;padding:16px 20px 20px;background:#fff;border-radius:12px}.form-header{margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.form-header h3{margin:0;color:#1e293b;font-size:20px;font-weight:700}.error-box{background:#fee2e2;border:1px solid #ef4444;border-radius:6px;padding:12px;margin-bottom:20px;color:#991b1b;font-size:14px}.error-box .error-message{margin:0}.form-controls{margin-bottom:16px;background:#f9fafb;padding:16px;border-radius:8px;border:1px solid #e5e7eb}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.form-group{margin-bottom:0}.form-group label{display:block;margin-bottom:6px;font-weight:600;color:#374151;font-size:13px}.form-group .required{color:#ef4444;margin-left:2px}.form-hint{display:block;margin-top:6px;color:#64748b;font-size:12px;line-height:1.5;font-style:italic}.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:all .2s;background:#fff}.form-group input:hover,.form-group select:hover,.form-group textarea:hover{border-color:#cbd5e1}.form-group input:disabled,.form-group select:disabled{background:#f8fafc;border-color:#e2e8f0;cursor:not-allowed}.date-input-group{display:flex;gap:8px;align-items:stretch;width:100%}.date-input-group input{flex:1;min-width:0}.date-input-group .btn-sm{padding:10px 16px;white-space:nowrap;flex-shrink:0;height:auto;min-width:100px;font-size:13px}.form-group input:disabled,.form-group select:disabled{background:#f3f4f6;color:#6b7280;cursor:not-allowed}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#ef4444}.employee-selection-section{margin-bottom:16px;padding:12px;background:#f9fafb;border-radius:8px;border:1px solid #e5e7eb}.employee-selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.employee-selection-header h4{margin:0;color:#111827;font-size:16px;font-weight:600}.employee-selection-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.employee-filter-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:200px}.employee-list{display:flex;flex-wrap:wrap;gap:6px;max-height:150px;overflow-y:auto;padding:8px;background:#fff;border-radius:6px}.employee-item{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:180px;font-size:13px}.employee-item.selected{background:#dbeafe;border-color:#2563eb}.employee-name{font-size:14px;color:#374151;font-weight:500}.allocation-grid-section{margin-bottom:16px}.allocation-grid-section h4{margin:0 0 12px;color:#111827;font-size:15px;font-weight:600}.allocation-grid-wrapper{overflow-x:auto;border:1px solid #e5e7eb;border-radius:6px;background:#fff}.allocation-grid-table{width:100%;border-collapse:collapse;min-width:600px}.allocation-grid-table thead{background:#f9fafb;position:sticky;top:0;z-index:10}.allocation-grid-table th{padding:10px 6px;text-align:left;font-weight:600;font-size:11px;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.employee-column{position:sticky;left:0;background:#f9fafb;z-index:11;min-width:180px;max-width:180px}.date-column{min-width:120px;text-align:center}.actions-column{min-width:100px;position:sticky;right:0;background:#f9fafb;z-index:11}.allocation-grid-table td{padding:6px;border-bottom:1px solid #e5e7eb;border-right:1px solid #e5e7eb}.employee-cell{position:sticky;left:0;background:#fff;z-index:9;font-weight:500;font-size:13px;color:#111827}.actions-cell{position:sticky;right:0;background:#fff;z-index:9}.allocation-cell{text-align:center;padding:6px;vertical-align:top}.allocation-select{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:12px;background:#fff;margin-bottom:4px;cursor:pointer;transition:all .2s}.category-select{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:11px;background:#fff;color:#374151;cursor:pointer}.category-select:disabled{background:#f3f4f6;color:#9ca3af;cursor:not-allowed}.category-select:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.allocation-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.allocation-select:hover{border-color:#2563eb}.allocation-grid-table tbody tr:hover,.allocation-grid-table tbody tr:hover .employee-cell,.allocation-grid-table tbody tr:hover .actions-cell{background:#f9fafb}.btn-icon{background:transparent;border:none;color:#6b7280;cursor:pointer;padding:4px 8px;font-size:16px;margin-left:8px;border-radius:4px;transition:all .2s}.btn-icon:hover{background:#fee2e2;color:#ef4444}.form-actions{display:flex;gap:10px;margin-top:20px;padding-top:16px;border-top:1px solid #e5e7eb;justify-content:flex-end;position:sticky;bottom:0;background:#fff;z-index:10;padding-bottom:8px}.btn{padding:10px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 2px 8px #667eea4d}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-secondary{background:#fff;color:#64748b;border:2px solid #e2e8f0;padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600}.btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1;color:#475569;transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.btn-sm{padding:6px 12px;font-size:12px;border-radius:4px}.btn-delete{background:#ef4444;color:#fff}.btn-delete:hover{background:#dc2626}@media (max-width: 768px){.employee-allocation-form-grid{padding:16px}.form-row{grid-template-columns:1fr}.employee-selection-header{flex-direction:column;align-items:flex-start}.employee-selection-actions{width:100%}.employee-filter-input{width:100%;min-width:auto}.allocation-grid-wrapper{overflow-x:scroll}.employee-column{min-width:150px;max-width:150px}.date-column{min-width:100px}}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000;padding:20px}.modal-content{background:#fff;border-radius:8px;box-shadow:0 4px 20px #00000026;max-height:90vh;overflow-y:auto;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-small{width:100%;max-width:400px}.modal-medium{width:100%;max-width:600px}.modal-large{width:100%;max-width:900px}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #e5e7eb}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:#111827}.modal-close{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s}.modal-close:hover{background:#f3f4f6;color:#111827}.modal-body{padding:24px}@media (max-width: 768px){.modal-overlay{padding:10px}.modal-content{max-height:95vh}.modal-header{padding:16px 20px}.modal-body{padding:20px}}.approve-pay-modal{padding:0}.payment-details-section{margin-bottom:24px;padding:16px;background:#f9fafb;border-radius:8px}.payment-details-section h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#111827}.payment-detail-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid #e5e7eb}.payment-detail-row:last-child{border-bottom:none}.payment-detail-row .label{font-weight:500;color:#6b7280;font-size:14px}.payment-detail-row .value{font-weight:600;color:#111827;font-size:14px}.payment-detail-row .value.amount{color:#059669;font-size:18px}.payment-status{text-align:center;padding:24px}.payment-status.creating{display:flex;flex-direction:column;align-items:center;gap:16px}.spinner{width:40px;height:40px;border:4px solid #e5e7eb;border-top-color:#2563eb;border-radius:50%;animation:spin 1s linear infinite}.payment-status.pending{display:flex;flex-direction:column;gap:20px}.mobile-payment,.desktop-payment{display:flex;flex-direction:column;align-items:center;gap:16px}.status-message{font-size:16px;font-weight:600;color:#111827;margin:0}.helper-text{font-size:14px;color:#6b7280;text-align:center;margin:0}.qr-code-container{padding:16px;background:#fff;border-radius:8px;border:2px solid #e5e7eb;display:flex;justify-content:center;align-items:center}.utr-input-section{margin-top:24px;padding-top:24px;border-top:1px solid #e5e7eb}.utr-input-section label{display:block;margin-bottom:8px;font-weight:600;color:#374151;font-size:14px}.utr-input-section .required{color:#dc2626}.utr-input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;margin-bottom:16px;box-sizing:border-box}.utr-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.btn-mark-paid{width:100%;margin-top:8px}.payment-status.paid{display:flex;flex-direction:column;align-items:center;gap:16px}.success-icon{width:64px;height:64px;border-radius:50%;background:#d1fae5;color:#059669;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700}.payment-status.failed{display:flex;flex-direction:column;align-items:center;gap:16px}.payment-status.failed .status-message{color:#dc2626}.error-state{display:flex;flex-direction:column;align-items:center;gap:16px;padding:24px}.qr-error{padding:40px;color:#dc2626;text-align:center;font-size:14px}.modal-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e5e7eb}.work-allocation-summary-container{padding:0;max-width:1400px;margin:0 auto;background:transparent}.workflow-guide{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:20px;margin-bottom:24px;box-shadow:0 4px 12px #667eea33;color:#fff;position:relative;overflow:hidden}.workflow-guide:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.05'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.1;pointer-events:none}.workflow-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;position:relative;z-index:1}.workflow-header h3{margin:0;color:#fff;font-size:18px;font-weight:600;display:flex;align-items:center;gap:8px}.workflow-toggle{background:#fff3;border:none;color:#fff;width:32px;height:32px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;position:relative;z-index:1}.workflow-toggle:hover{background:#ffffff4d;transform:scale(1.1)}.toggle-icon{font-size:14px;transition:transform .3s;display:inline-block}.workflow-steps.collapsed{display:none}.workflow-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-top:16px;position:relative;z-index:1;animation:slideDown .3s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.workflow-step{background:#ffffff26;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;padding:16px;display:flex;gap:12px;align-items:flex-start;transition:all .3s;border:1px solid rgba(255,255,255,.1)}.workflow-step:hover{background:#ffffff40;transform:translateY(-2px);box-shadow:0 4px 12px #0003}.step-number{background:#fff;color:#667eea;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0;box-shadow:0 2px 8px #00000026}.step-content{flex:1}.step-content h4{margin:0 0 6px;color:#fff;font-size:15px;font-weight:600}.step-content p{margin:0;color:#fffffff2;font-size:13px;line-height:1.6}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;margin-bottom:32px}.stat-card{background:#fff;border-radius:12px;padding:24px;display:flex;align-items:center;gap:16px;box-shadow:0 1px 3px #0000001a;transition:all .3s ease;border:1px solid #e2e8f0}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.stat-icon{font-size:32px;width:56px;height:56px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#f1f5f9}.stat-card-total .stat-icon{background:linear-gradient(135deg,#667eea,#764ba2)}.stat-card-paid .stat-icon{background:linear-gradient(135deg,#10b981,#059669)}.stat-card-pending .stat-icon{background:linear-gradient(135deg,#f59e0b,#d97706)}.stat-card-current .stat-icon{background:linear-gradient(135deg,#3b82f6,#2563eb)}.stat-content{flex:1}.stat-value{font-size:28px;font-weight:700;color:#1e293b;line-height:1.2;margin-bottom:4px}.stat-label{font-size:14px;color:#64748b;font-weight:500}.filters-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a;border:1px solid #e2e8f0}.filters-header{margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f1f5f9}.filters-header h3{margin:0;color:#1e293b;font-size:18px;font-weight:600}.filters-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{display:flex;align-items:center;gap:8px;font-weight:600;color:#475569;font-size:14px}.filter-icon{font-size:16px}.filter-select{padding:12px 16px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;background:#fff;color:#1e293b;transition:all .2s;cursor:pointer}.filter-select:hover{border-color:#cbd5e1}.filter-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.loading-spinner{width:40px;height:40px;border:4px solid #e2e8f0;border-top-color:#3b82f6;border-radius:50%;animation:spin .8s linear infinite}.loading-text{color:#64748b;font-size:14px;font-weight:500}.allocation-tabs-container{margin-top:24px}.allocation-tabs{display:flex;gap:8px;background:#fff;padding:8px;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid #e2e8f0;margin-bottom:24px;overflow-x:auto}.allocation-tab{display:flex;align-items:center;gap:8px;padding:12px 20px;border:none;background:transparent;color:#64748b;font-size:14px;font-weight:500;cursor:pointer;border-radius:8px;transition:all .2s;white-space:nowrap;position:relative}.allocation-tab:hover{background:#f1f5f9;color:#475569}.allocation-tab.active{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 8px #3b82f64d}.tab-icon{font-size:18px}.tab-label{font-weight:500}.tab-badge{background:#fff3;padding:2px 8px;border-radius:12px;font-size:12px;font-weight:600;min-width:24px;text-align:center}.allocation-tab.active .tab-badge{background:#ffffff4d}.tab-content{margin-top:0}.allocation-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;border:1px solid #e2e8f0;transition:all .3s ease}.allocation-section:hover{box-shadow:0 4px 12px #0000001a}.allocation-section.past-with-worksheet-section{border-left:4px solid #10b981}.allocation-section.past-without-worksheet-section{border-left:4px solid #f59e0b}.allocation-section.current-section{border-left:4px solid #3b82f6}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f1f5f9}.section-header-left{display:flex;flex-direction:column;gap:4px}.section-header h3{margin:0;color:#1e293b;font-size:20px;font-weight:600}.section-count{color:#64748b;font-size:13px;font-weight:500}.section-header-right{display:flex;align-items:center;gap:12px}.empty-state{text-align:center;padding:60px 20px;color:#94a3b8}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.5}.empty-text{font-size:16px;font-weight:500;color:#64748b;margin-bottom:8px}.empty-hint{font-size:14px;color:#94a3b8;font-style:italic}.allocation-grid-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e2e8f0}.allocation-summary-table{width:100%;border-collapse:collapse;font-size:14px;background:#fff}.allocation-summary-table thead{background:linear-gradient(135deg,#f8fafc,#f1f5f9);position:sticky;top:0;z-index:10}.allocation-summary-table th{padding:16px 12px;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;white-space:nowrap;font-size:13px;text-transform:uppercase;letter-spacing:.5px}.allocation-summary-table th.date-column{text-align:center;min-width:110px;font-size:12px}.allocation-summary-table td{padding:14px 12px;border-bottom:1px solid #f1f5f9;vertical-align:middle}.allocation-summary-table tbody tr{transition:all .2s}.allocation-summary-table tbody tr:hover{background:#f8fafc;transform:scale(1.001)}.employee-cell{font-weight:600;color:#1e293b;min-width:180px}.employee-cell:before{content:"👤";margin-right:8px;opacity:.6}.project-cell{color:#475569;min-width:200px;font-weight:500}.project-cell:before{content:"🏗️";margin-right:8px;opacity:.6}.allocation-cell{text-align:center;min-width:110px;padding:12px 8px}.allocation-cell.editable{cursor:pointer;transition:all .2s;border-radius:6px;position:relative}.allocation-cell.editable:hover{background:linear-gradient(135deg,#eff6ff,#dbeafe);transform:scale(1.05)}.allocation-cell.editable:active{transform:scale(.98)}.actions-cell{text-align:center;min-width:120px}.btn{padding:8px 16px;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.btn-action{padding:10px 18px;font-size:14px}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 4px #3b82f633}.btn-primary:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 8px #3b82f64d;transform:translateY(-1px)}.btn-edit{background:linear-gradient(135deg,#8b5cf6,#7c3aed);color:#fff;box-shadow:0 2px 4px #8b5cf633}.btn-edit:hover{background:linear-gradient(135deg,#7c3aed,#6d28d9);box-shadow:0 4px 8px #8b5cf64d;transform:translateY(-1px)}.btn-icon{font-size:16px;line-height:1}.allocation-badge{display:inline-block;padding:6px 12px;border-radius:8px;font-size:12px;font-weight:600;color:#fff;box-shadow:0 2px 4px #0000001a;transition:all .2s;min-width:70px;text-align:center}.allocation-badge:hover{transform:scale(1.05);box-shadow:0 4px 8px #00000026}.allocation-badge.allocation-4-hours{background:linear-gradient(135deg,#60a5fa,#3b82f6)}.allocation-badge.allocation-8-hours{background:linear-gradient(135deg,#3b82f6,#2563eb)}.allocation-badge.allocation-12-hours{background:linear-gradient(135deg,#1d4ed8,#1e40af)}.allocation-empty{color:#cbd5e1;font-style:italic;font-size:13px;padding:4px 8px}.allocation-cell.editable .allocation-empty{color:#94a3b8;cursor:pointer;border:1px dashed #cbd5e1;border-radius:6px;padding:6px 8px;transition:all .2s}.allocation-cell.editable .allocation-empty:hover{border-color:#3b82f6;color:#3b82f6;background:#eff6ff}@media (max-width: 1024px){.work-allocation-summary-container{padding:16px;flex-direction:column}.left-sidebar{position:relative!important;top:0!important;width:100%!important;min-width:100%!important;max-height:none!important;margin-bottom:16px}.summary-cards{grid-template-columns:repeat(2,1fr);gap:16px}.filters-grid{grid-template-columns:1fr}}@media (max-width: 768px){.work-allocation-summary-container{padding:12px;gap:12px}.left-sidebar{padding:12px!important}.summary-cards{grid-template-columns:1fr;gap:12px;margin-bottom:20px}.stat-card{padding:16px}.stat-icon{width:48px;height:48px;font-size:24px}.stat-value{font-size:24px}.stat-label{font-size:12px}.allocation-tabs{padding:6px;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch}.allocation-tab{padding:10px 16px;font-size:13px;flex-shrink:0}.tab-icon{font-size:16px}.allocation-grid-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:6px}.allocation-summary-table{font-size:12px;min-width:600px}.allocation-summary-table th,.allocation-summary-table td{padding:10px 8px}.allocation-summary-table th.date-column{min-width:100px;font-size:11px}.section-header{flex-direction:column;align-items:flex-start;gap:12px}.section-header-right{width:100%}.btn-action{width:100%;justify-content:center}.workflow-steps{grid-template-columns:1fr}.workflow-step{padding:12px}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.workflow-progress-step{transition:all .3s ease}.workflow-progress-step:hover{transform:translateY(-2px)}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}.quick-action-bar{animation:slideIn .3s ease-out}.allocation-tab-enhanced{position:relative;overflow:visible}.allocation-tab-enhanced:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:3px;background:linear-gradient(90deg,#667eea,#764ba2);transform:scaleX(0);transition:transform .3s ease}.allocation-tab-enhanced.active:after{transform:scaleX(1)}@media (max-width: 480px){.work-allocation-summary-container{padding:8px;gap:8px}.left-sidebar{padding:10px!important;border-radius:6px}.summary-cards{gap:10px;margin-bottom:16px}.stat-card{padding:12px;gap:12px}.stat-icon{width:40px;height:40px;font-size:20px}.stat-value{font-size:20px}.stat-label{font-size:11px}.allocation-tabs{padding:4px;gap:2px}.allocation-tab{padding:8px 12px;font-size:12px}.tab-icon{font-size:14px}.tab-label{font-size:11px}.tab-badge{font-size:10px;padding:1px 6px}.allocation-summary-table{font-size:11px;min-width:500px}.allocation-summary-table th,.allocation-summary-table td{padding:8px 6px}.allocation-summary-table th.date-column{min-width:80px;font-size:10px}.employee-cell,.project-cell{min-width:120px;font-size:11px}.allocation-cell{min-width:80px;padding:8px 4px}.allocation-badge{padding:4px 8px;font-size:10px;min-width:60px}.section-header h3{font-size:16px}.section-count{font-size:11px}.btn{padding:8px 12px;font-size:12px}.btn-action{padding:10px 16px;font-size:13px}.workflow-steps{gap:8px}.workflow-step{padding:10px}.step-number{width:28px;height:28px;font-size:12px}.step-content h4{font-size:13px}.step-content p{font-size:11px}.work-allocation-summary-container>div:last-child>div:first-child{flex-wrap:wrap;gap:4px}.work-allocation-summary-container>div:last-child>div:first-child>button{padding:8px 12px;font-size:12px;flex:1;min-width:calc(50% - 4px)}}@media (max-width: 768px) and (orientation: landscape){.left-sidebar{max-height:calc(100vh - 20px)!important}}@media (hover: none) and (pointer: coarse){.allocation-tab,.btn,button{min-height:44px;min-width:44px}.allocation-cell.editable{min-height:44px}}.employee-allocation-page{padding:0}.header-actions{display:flex;align-items:center;gap:16px}.view-tabs{display:flex;gap:8px;background:#f3f4f6;padding:4px;border-radius:8px}.tab-button{padding:8px 16px;border:none;background:transparent;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;border-radius:6px;transition:all .2s}.tab-button:hover{background:#e5e7eb;color:#374151}.tab-button.active{background:#fff;color:#2563eb;box-shadow:0 1px 2px #0000000d}.user-list-container{padding:24px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.user-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.user-list-header h2{margin:0;color:#111827;font-size:24px;font-weight:600}.filters{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.search-box{position:relative}.search-input{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:200px}.filter-select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.loading{text-align:center;padding:40px;color:#6b7280}.empty-state{text-align:center;padding:40px;color:#6b7280;background:#f9fafb;border-radius:6px}.user-table-wrapper{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;background:#fff}.user-table thead{background:#f9fafb}.user-table th{padding:8px;text-align:left;font-weight:600;font-size:12px;color:#374151;border-bottom:2px solid #e5e7eb}.user-table td{padding:8px;font-size:12px;color:#111827;border-bottom:1px solid #e5e7eb}.user-table tbody tr:hover{background:#f9fafb}.status-badge.status-inactive{background:#fee2e2;color:#991b1b}.user-form{max-width:800px;margin:0 auto;padding:24px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.form-section h3{margin:0 0 20px;color:#111827;font-size:18px;font-weight:600;padding-bottom:8px;border-bottom:2px solid #2563eb}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#374151;font-size:14px}.form-group .required{color:#ef4444}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s}.form-group input.error,.form-group select.error{border-color:#ef4444}.form-group .error-message{display:block;margin-top:4px;color:#ef4444;font-size:12px}.user-page{padding:0}.page-header h1{margin:0;color:#111827;font-size:28px;font-weight:600}.list-section{margin-top:0}.quotation-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.quotation-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.quotation-list-header .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.quotation-list-header .btn-primary{background:#2563eb;color:#fff}.quotation-list-header .btn-primary:hover{background:#1d4ed8}.quotation-list-header h2{margin:0;color:#111827;font-size:24px}.quotation-filters{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:10px;margin-bottom:14px}.quotation-filters input,.quotation-filters select{border:1px solid #d1d5db;border-radius:8px;padding:8px 10px;font-size:12px}.quotation-workflow-hint{margin:0 0 12px;font-size:12px;color:#475569}.quotation-table-wrapper{overflow-x:auto}.quotation-table{width:100%;border-collapse:collapse}.quotation-table thead{background:#f9fafb}.quotation-table th{padding:8px;text-align:left;font-weight:600;color:#374151;font-size:12px;border-bottom:2px solid #e5e7eb}.quotation-table td{padding:8px;border-bottom:1px solid #e5e7eb;font-size:12px;color:#111827}.quotation-table tbody tr:hover{background:#f9fafb}.quotation-table tbody tr.quotation-row-highlight,.quotation-table tbody tr.quotation-row-highlight:hover{background:#dcfce7;transition:background-color .8s ease}.quotation-number{font-weight:600;color:#2563eb}.customer-cell{color:#0f172a;font-weight:500}.new-badge{margin-left:8px;padding:2px 7px;border-radius:999px;background:#16a34a;color:#fff;font-size:10px;font-weight:700;letter-spacing:.04em}.amount-cell{font-weight:600;color:#059669}.status-draft{background:#f3f4f6;color:#374151}.status-sent{background:#dbeafe;color:#1e40af}.status-accepted{background:#d1fae5;color:#065f46}.status-rejected{background:#fee2e2;color:#991b1b}.status-expired,.status-under-review{background:#fef3c7;color:#92400e}.status-revision-requested{background:#ffedd5;color:#9a3412}.status-customer-approved{background:#dcfce7;color:#166534}.status-converted{background:#ede9fe;color:#5b21b6}.action-buttons{display:flex;gap:6px}.btn-action{border:1px solid #d1d5db;background:#fff;border-radius:6px;padding:4px 8px;font-size:12px;cursor:pointer}.btn-action:disabled{cursor:not-allowed;opacity:.6}.btn-action:hover:not(:disabled){background:#f8fafc}@media (max-width: 768px){.quotation-list-container{padding:16px}.quotation-list-header{flex-direction:column;align-items:stretch}.quotation-table-wrapper{overflow-x:scroll}.quotation-table{min-width:900px}.action-buttons{flex-wrap:wrap}.quotation-filters{grid-template-columns:1fr}}.quotation-summary-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a40;display:flex;justify-content:flex-end;z-index:11000}.quotation-summary-drawer{width:min(460px,100%);height:100%;background:#fff;box-shadow:-12px 0 28px #0f172a33;padding:20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.quotation-pdf-drawer{width:min(1000px,95vw)}.quotation-pdf-overlay{justify-content:center;align-items:center;padding:16px}.quotation-pdf-modal{width:min(1100px,calc(100vw - 32px));height:min(92vh,980px);max-height:calc(100vh - 32px);background:#fff;border-radius:12px;box-shadow:0 18px 44px #0f172a4d;padding:16px;display:flex;flex-direction:column;gap:12px;overflow:hidden}.quotation-pdf-frame-wrap{flex:1;min-height:0;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.quotation-pdf-frame{width:100%;height:100%;border:0;background:#f8fafc}.summary-header{display:flex;align-items:center;justify-content:space-between}.summary-header h3{margin:0;font-size:20px;color:#0f172a}.summary-close{border:none;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:#64748b}.summary-loading{padding:24px 0;color:#64748b}.summary-grid{display:grid;grid-template-columns:1fr;gap:10px}.summary-grid>div{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px;display:flex;flex-direction:column;gap:4px}.summary-grid span{font-size:12px;color:#475569}.summary-grid strong{font-size:14px;color:#0f172a}.summary-floorwise h4{margin:8px 0;font-size:15px}.floor-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:10px 12px;margin-bottom:8px;display:flex;justify-content:space-between;font-weight:600}.summary-actions{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:95;display:grid;place-items:center;background:#0f172a40}.modal-card{width:min(420px,calc(100vw - 32px));border-radius:10px;background:#fff;padding:16px}.modal-card-lg{width:min(760px,calc(100vw - 32px));max-height:80vh;overflow:auto}.share-input{width:100%;margin-top:10px;border:1px solid #d1d5db;border-radius:8px;padding:10px}.modal-meta{margin-top:8px;font-size:12px;color:#475569}.history-list{max-height:56vh;overflow:auto;display:grid;gap:10px}.history-row{border:1px solid #e2e8f0;border-radius:8px;padding:10px;background:#f8fafc}.history-title{font-weight:600;color:#0f172a}.history-date,.history-meta{font-size:12px;color:#475569}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.quotation-page{max-width:1400px;margin:0 auto}.page-header .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.page-header .btn-primary{background:#2563eb;color:#fff}.page-header .btn-primary:hover{background:#1d4ed8}.page-header .btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.page-header .btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.cash-flow-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--border-light);transition:all var(--transition-base)}.cash-flow-card:hover{box-shadow:0 2px 8px #0000000d}.cash-flow-card-net{box-shadow:0 1px 3px #0000000d}.cash-flow-card-net.surplus{border-color:var(--success)}.cash-flow-card-net.tight{border-color:var(--warning)}.cash-flow-card-net.deficit{border-color:var(--error)}.cash-flow-card-label{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-2)}.cash-flow-card-amount{font-size:var(--text-2xl);font-weight:var(--font-bold);line-height:var(--leading-tight)}.cash-flow-card-amount-inflow{color:var(--success)}.cash-flow-card-amount-outflow{color:var(--text-secondary)}.cash-flow-card-amount-net{margin-bottom:var(--space-2)}.cash-flow-card-amount-net.surplus{color:var(--success)}.cash-flow-card-amount-net.tight{color:var(--warning)}.cash-flow-card-amount-net.deficit{color:var(--error)}.cash-flow-card-status{display:inline-block;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--font-semibold);margin-top:var(--space-1)}.cash-flow-card-status.surplus{background:var(--success-light);color:var(--success)}.cash-flow-card-status.tight{background:var(--warning-light);color:var(--warning)}.cash-flow-card-status.deficit{background:var(--error-light);color:var(--error)}.cash-flow-radar{background:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:0 1px 3px #0000000d;border:1px solid var(--border-light)}.cash-flow-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-5);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-light)}.cash-flow-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary)}.cash-flow-tabs{display:flex;gap:var(--space-2)}.cash-flow-tab{padding:var(--space-2) var(--space-4);border:1px solid var(--border-light);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-base);background:var(--bg-primary);color:var(--text-secondary)}.cash-flow-tab:hover{background:var(--bg-secondary);border-color:var(--border-medium)}.cash-flow-tab.active{background:var(--primary-600);color:var(--text-inverse);border-color:var(--primary-600)}.cash-flow-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-bottom:var(--space-4)}.cash-flow-empty{padding:var(--space-10);text-align:center;color:var(--text-tertiary)}.cash-flow-empty .empty-icon{font-size:var(--text-4xl);margin-bottom:var(--space-3);opacity:.5}.cash-flow-insight{padding:var(--space-4);border-radius:var(--radius-lg);border-left:4px solid}.cash-flow-insight-deficit{background:var(--error-light);border-left-color:var(--error)}.cash-flow-insight-tight{background:var(--warning-light);border-left-color:var(--warning)}.cash-flow-insight-surplus{background:var(--success-light);border-left-color:var(--success)}.cash-flow-insight-text{font-size:var(--text-sm);color:var(--text-primary);font-weight:var(--font-medium);line-height:var(--leading-relaxed)}@media (max-width: 768px){.cash-flow-grid{grid-template-columns:1fr}.cash-flow-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.cash-flow-tabs{width:100%}.cash-flow-tab{flex:1;text-align:center}}.dashboard-container{max-width:var(--container-max-width);margin:0 auto;padding:0}.dashboard-layout{display:grid;grid-template-columns:260px 1fr;gap:var(--space-6);align-items:start}.dashboard-sidebar{position:sticky;top:calc(64px + var(--space-4));max-height:calc(100vh - 64px - var(--space-8));overflow-y:auto;padding-right:var(--space-3)}.dashboard-sidebar-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-light)}.dashboard-sidebar-header h2{margin:0;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.05em}.dashboard-main{min-width:0}.dashboard-header{margin-bottom:var(--space-6)}.dashboard-header h1{margin:0;font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);letter-spacing:-.3px}.financial-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.financial-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:0 1px 3px #0000000d;border:1px solid var(--border-light);transition:all var(--transition-base)}.financial-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.financial-card-profit{border:2px solid transparent}.financial-card-profit.profit{border-color:var(--success);background:linear-gradient(135deg,#f0fdf4 0%,var(--bg-primary) 100%)}.financial-card-profit.loss{border-color:var(--error);background:linear-gradient(135deg,#fef2f2 0%,var(--bg-primary) 100%)}.financial-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-2);font-weight:var(--font-medium);letter-spacing:.01em}.financial-value{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary);line-height:var(--leading-tight);margin-bottom:var(--space-2)}.financial-value-large{font-size:var(--text-4xl);font-weight:var(--font-extrabold)}.financial-value-positive{color:var(--success)}.financial-value-negative{color:var(--text-secondary)}.financial-value.profit{color:var(--success)}.financial-value.loss{color:var(--error)}.financial-indicator{font-size:var(--text-xs);font-weight:var(--font-semibold);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-light)}.financial-card-profit.profit .financial-indicator{color:var(--success)}.financial-card-profit.loss .financial-indicator{color:var(--error)}.dashboard-empty-state{text-align:center;padding:var(--space-12) var(--space-6);background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:0 1px 3px #0000000d;border:1px solid var(--border-light);max-width:560px;margin:0 auto}.empty-state-icon-wrapper{margin-bottom:var(--space-5);display:flex;justify-content:center;align-items:center}.empty-state-icon{font-size:56px;opacity:.8;filter:grayscale(.2);animation:float 3s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.empty-state-title{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-3);line-height:var(--leading-tight);letter-spacing:-.4px}.empty-state-description{font-size:var(--text-base);color:var(--text-secondary);margin-bottom:var(--space-6);max-width:480px;margin-left:auto;margin-right:auto;line-height:var(--leading-relaxed);font-weight:var(--font-normal)}.btn-empty-cta{padding:var(--space-3) var(--space-8);font-size:var(--text-base);font-weight:var(--font-semibold);border-radius:var(--radius-lg);box-shadow:0 4px 12px #0ea5e940;transition:all var(--transition-base);display:inline-flex;align-items:center;gap:var(--space-2);min-width:220px;justify-content:center}.btn-empty-cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px #0ea5e959}.btn-empty-cta:active{transform:translateY(0);box-shadow:0 2px 8px #0ea5e940}.empty-state-features{display:flex;justify-content:center;gap:var(--space-5);margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--border-light);flex-wrap:wrap}.empty-state-feature{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);flex:1;min-width:120px}.feature-icon{font-size:var(--text-2xl);opacity:.7}.feature-text{font-size:var(--text-sm);color:var(--text-tertiary);font-weight:var(--font-medium);text-align:center}.dashboard-section{margin-bottom:var(--space-6)}.dashboard-menu{display:flex;flex-direction:column;gap:var(--space-2)}.menu-card{background:var(--bg-primary);border-radius:var(--radius-lg);padding:var(--space-3);box-shadow:0 1px 2px #0000000d;cursor:pointer;transition:all var(--transition-base);display:flex;flex-direction:column;gap:var(--space-2);border:1px solid var(--border-light);position:relative;overflow:hidden;text-decoration:none;color:inherit}.menu-card:before{content:"";position:absolute;top:0;left:0;width:3px;height:100%;background:var(--card-color);transition:width var(--transition-base)}.menu-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000014;border-color:var(--border-medium)}.menu-card:hover:before{width:100%;opacity:.04}.menu-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.menu-card-icon{font-size:var(--text-xl);flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-md);transition:all var(--transition-base)}.menu-card:hover .menu-card-icon{background:var(--card-color);transform:scale(1.05);filter:brightness(1.1)}.menu-card-arrow{font-size:var(--text-base);color:var(--text-tertiary);transition:all var(--transition-base);flex-shrink:0;opacity:.5}.menu-card:hover .menu-card-arrow{color:var(--card-color);transform:translate(3px);opacity:1}.menu-card-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}.menu-card-content h3{margin:0;color:var(--text-primary);font-size:var(--text-sm);font-weight:var(--font-bold);transition:color var(--transition-base);line-height:var(--leading-tight)}.menu-card:hover .menu-card-content h3{color:var(--card-color)}.menu-card-content p{margin:0;color:var(--text-tertiary);font-size:var(--text-xs);line-height:var(--leading-relaxed);font-weight:var(--font-normal)}@media (max-width: 1024px){.dashboard-layout{grid-template-columns:1fr;gap:var(--space-6)}.dashboard-sidebar{position:static;max-height:none;padding-right:0}.dashboard-menu{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}.financial-metrics{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.dashboard-container{padding:var(--space-4) var(--space-4)}.dashboard-header h1{font-size:var(--text-2xl)}.financial-metrics{grid-template-columns:1fr;gap:var(--space-4)}.financial-value{font-size:var(--text-2xl)}.financial-value-large{font-size:var(--text-3xl)}.dashboard-menu{grid-template-columns:1fr}.menu-card{padding:var(--space-3)}.menu-card-icon{width:36px;height:36px;font-size:var(--text-lg)}.menu-card-content h3{font-size:var(--text-xs)}.menu-card-content p{font-size:11px}.dashboard-empty-state{padding:var(--space-12) var(--space-4);max-width:100%}.empty-state-icon{font-size:56px}.empty-state-title{font-size:var(--text-2xl)}.empty-state-description{font-size:var(--text-base);margin-bottom:var(--space-6)}.btn-empty-cta{padding:var(--space-3) var(--space-6);font-size:var(--text-sm);width:100%;max-width:280px}.empty-state-features{flex-direction:column;gap:var(--space-4);margin-top:var(--space-8);padding-top:var(--space-6)}.empty-state-feature{flex-direction:row;justify-content:center;min-width:auto}.feature-icon{font-size:var(--text-xl)}.feature-text{font-size:var(--text-xs)}}.dashboard-recent-quotations{margin-bottom:var(--space-6);background:var(--bg-primary);border-radius:var(--radius-xl);padding:var(--space-5);box-shadow:0 1px 3px #0000000d;border:1px solid var(--border-light)}.dashboard-recent-quotations h2{margin:0 0 var(--space-4) 0;color:var(--text-primary);font-size:var(--text-lg);font-weight:var(--font-bold)}.quotations-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--space-3)}.quotation-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-4);border:1px solid var(--border-light);transition:all var(--transition-base)}.quotation-card:hover{box-shadow:0 4px 12px #00000014;transform:translateY(-2px)}.quotation-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--space-3)}.quotation-card-header h3{margin:0 0 var(--space-1) 0;color:var(--text-primary);font-size:var(--text-base);font-weight:var(--font-bold)}.quotation-customer{margin:0;color:var(--text-tertiary);font-size:var(--text-sm)}.quotation-card-details{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.quotation-detail{display:flex;justify-content:space-between;font-size:var(--text-sm)}.detail-label{color:var(--text-tertiary)}.detail-value{color:var(--text-primary);font-weight:var(--font-semibold)}.quotation-card-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.status-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-semibold)}.status-draft{background:var(--bg-tertiary);color:var(--text-secondary)}.status-sent{background:var(--info-light);color:var(--info)}.status-accepted{background:var(--success-light);color:var(--success)}.status-rejected{background:var(--error-light);color:var(--error)}.status-expired{background:var(--warning-light);color:var(--warning)}.customer-list-container{background:var(--bg-primary);border-radius:var(--radius-2xl);padding:var(--space-6);box-shadow:var(--shadow-xl);border:1px solid var(--border-light)}.customer-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-6);flex-wrap:wrap;gap:var(--space-4);padding-bottom:var(--space-4);border-bottom:2px solid var(--border-light)}.customer-list-header h2{margin:0;color:var(--text-primary);font-size:var(--text-2xl);font-weight:var(--font-bold)}.search-input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--border-light);border-radius:var(--radius-lg);font-size:var(--text-sm);font-family:var(--font-sans);transition:all var(--transition-base);background:var(--bg-primary);color:var(--text-primary)}.search-input:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #0ea5e91a}.loading,.empty-state{text-align:center;padding:var(--space-10);color:var(--text-tertiary);font-size:var(--text-base)}.customer-table-wrapper{overflow-x:auto;border-radius:var(--radius-xl);border:1px solid var(--border-light)}.customer-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.customer-table thead{background:linear-gradient(135deg,var(--gray-50) 0%,var(--bg-secondary) 100%);border-bottom:2px solid var(--border-light)}.customer-table th{padding:var(--space-4) var(--space-5);text-align:left;font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.customer-table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-light);font-size:var(--text-sm);color:var(--text-secondary)}.customer-table tbody tr{transition:all var(--transition-fast)}.customer-table tbody tr:hover{background:var(--bg-secondary)}@media (max-width: 768px){.customer-list-container{padding:16px}.customer-list-header{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.customer-table-wrapper{overflow-x:scroll}.customer-table{min-width:800px}.action-buttons{flex-direction:column}.btn-sm{width:100%}}.customer-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:800px;margin:0 auto}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-group input.error:focus,.form-group textarea.error:focus{box-shadow:0 0 0 3px #dc26261a}@media (max-width: 768px){.customer-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{width:100%}}.customers-page{max-width:1200px;margin:0 auto}.confirmation-modal-content{padding:8px 0}.confirmation-message{margin:0 0 24px;color:#374151;font-size:14px;line-height:1.6}.confirmation-actions{display:flex;justify-content:flex-end;gap:12px}.btn-confirm-cancel{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-confirm-cancel:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-confirm-cancel:disabled{opacity:.5;cursor:not-allowed}.btn-confirm-danger{padding:8px 16px;border:none;border-radius:6px;background:#dc2626;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-confirm-danger:hover:not(:disabled){background:#b91c1c}.btn-confirm-danger:disabled{opacity:.5;cursor:not-allowed}.btn-confirm-warning{padding:8px 16px;border:none;border-radius:6px;background:#f59e0b;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-confirm-warning:hover:not(:disabled){background:#d97706}.btn-confirm-warning:disabled{opacity:.5;cursor:not-allowed}.btn-confirm-info{padding:8px 16px;border:none;border-radius:6px;background:#2563eb;color:#fff;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s}.btn-confirm-info:hover:not(:disabled){background:#1d4ed8}.btn-confirm-info:disabled{opacity:.5;cursor:not-allowed}.project-list-container{background:#fff;border-radius:12px;padding:32px;box-shadow:0 1px 3px #0000000d}.project-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.project-list-header h2{margin:0;color:#111827;font-size:24px}.search-input{width:100%;padding:10px 14px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;background:#fff;transition:all .2s}.project-filters{display:flex;gap:8px;margin-bottom:24px;border-bottom:1px solid #e5e7eb;padding-bottom:0}.filter-tab{padding:10px 20px;border:none;background:transparent;color:#6b7280;font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;transition:all .2s}.filter-tab:hover{color:#374151}.filter-tab.active{color:#2563eb;border-bottom-color:#2563eb}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-bottom:32px}.summary-card{padding:24px;background:#fff;border-radius:8px;box-shadow:0 1px 2px #0000000d;border:1px solid #e5e7eb;transition:box-shadow .2s}.summary-card:hover{box-shadow:0 2px 4px #00000014}.summary-card-profit{border:1px solid #e5e7eb;box-shadow:0 1px 2px #0000000d}.summary-label{font-size:12px;color:#6b7280;font-weight:500;margin-bottom:12px;letter-spacing:.01em;display:flex;align-items:center;justify-content:space-between;gap:8px}.trend-indicator{font-size:14px;font-weight:600;opacity:.7}.trend-indicator.up{color:#059669}.trend-indicator.down{color:#dc2626}.trend-indicator.neutral{color:#6b7280}.summary-value{font-size:28px;font-weight:700;color:#111827;line-height:1.2}.summary-value.amount.received{color:#2563eb}.summary-value.amount.expense{color:#6b7280}.summary-value.amount.profit{color:#059669;font-size:30px}.summary-value.amount.loss{color:#dc2626;font-size:30px}.summary-subtext{font-size:11px;color:#9ca3af;margin-top:8px;font-weight:400}.loading,.empty-state{text-align:center;padding:60px 20px;color:#6b7280;font-size:14px}.project-table-wrapper{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px}.project-table{width:100%;border-collapse:collapse;background:#fff}.project-table thead{background:#f9fafb}.project-table th{padding:14px 16px;text-align:left;font-weight:600;color:#374151;font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb;white-space:nowrap}.project-table th.actions-column{text-align:center}.project-table td{padding:16px;border-bottom:1px solid #f3f4f6;font-size:14px;color:#111827;vertical-align:middle}.project-table tbody tr:last-child td{border-bottom:none}.project-table tbody tr:hover{background:#f9fafb}.project-name-cell{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.archived-badge{padding:2px 8px;border-radius:4px;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#fef3c7;color:#92400e;border:1px solid #fde68a}.amount-cell{font-weight:600;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.expense-cell{color:#6b7280}.profit-cell{color:#059669}.loss-cell{color:#dc2626}.status-badge{padding:4px 12px;border-radius:6px;font-size:11px;font-weight:600;text-transform:capitalize;display:inline-block;letter-spacing:.01em}.status-planning{background:#dbeafe;color:#1e40af}.status-in-progress{background:#d1fae5;color:#065f46}.status-on-hold{background:#fef3c7;color:#92400e}.status-completed{background:#d1fae5;color:#065f46}.status-cancelled{background:#fee2e2;color:#991b1b}.actions-cell{text-align:center;width:180px}.action-buttons{display:flex;gap:4px;justify-content:center;align-items:center;flex-wrap:wrap}.btn-icon{min-width:32px;height:32px;padding:6px;border:none;border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .2s;background:transparent;color:#6b7280}.btn-icon:hover{background:#f3f4f6;color:#374151}.btn-icon.btn-analytics{color:#8b5cf6}.btn-icon.btn-analytics:hover{background:#ede9fe;color:#7c3aed}.btn-icon.btn-payment{color:#059669}.btn-icon.btn-payment:hover{background:#d1fae5;color:#047857}.btn-icon.btn-archive{color:#f59e0b;font-size:16px}.btn-icon.btn-archive:hover{background:#fef3c7;color:#d97706}.btn-icon.btn-restore{color:#059669}.btn-icon.btn-restore:hover{background:#d1fae5;color:#047857}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:16px 0;border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:12px}.pagination-info{font-size:13px;color:#6b7280}.pagination-page-info{font-size:13px;color:#374151;font-weight:500;min-width:80px;text-align:center}.pagination-page-size label{font-size:13px;color:#6b7280}.page-size-select{padding:6px 10px;border:1px solid #d1d5db;border-radius:6px;font-size:13px;background:#fff;cursor:pointer;transition:all .2s}.btn-sm{padding:6px 14px;font-size:13px;border-radius:6px;border:1px solid #d1d5db;cursor:pointer;font-weight:500;transition:all .2s;background:#fff;color:#374151}.btn-sm:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.btn-sm:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{background:#6b7280;color:#fff;border-color:#6b7280}.btn-secondary:hover:not(:disabled){background:#4b5563;border-color:#4b5563}@media (max-width: 768px){.project-list-container{padding:20px}.project-list-header{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.project-filters{overflow-x:auto;-webkit-overflow-scrolling:touch}.filter-tab{white-space:nowrap;flex-shrink:0}.summary-cards{grid-template-columns:1fr;gap:16px;margin-bottom:24px}.summary-card{padding:20px}.summary-value{font-size:24px}.summary-value.amount.profit,.summary-value.amount.loss{font-size:26px}.project-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.project-table{min-width:900px;font-size:13px}.project-table th,.project-table td{padding:12px;font-size:13px}.action-buttons{flex-wrap:wrap;gap:6px}.pagination-controls{flex-direction:column;align-items:stretch}.pagination-buttons{justify-content:center}}.project-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:1000px;margin:0 auto}.form-group input.readonly{background:#f3f4f6;cursor:not-allowed}@media (max-width: 768px){.project-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{width:100%}}.projects-page{max-width:1200px;margin:0 auto}.supplier-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.supplier-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.supplier-list-header h2{margin:0;color:#111827;font-size:24px}.search-box{flex:1;min-width:200px;max-width:400px}.supplier-table-wrapper{overflow-x:auto}.supplier-table{width:100%;border-collapse:collapse}.supplier-table thead{background:#f9fafb}.supplier-table th{padding:8px;text-align:left;font-weight:600;color:#374151;font-size:12px;border-bottom:2px solid #e5e7eb}.supplier-table td{padding:8px;border-bottom:1px solid #e5e7eb;font-size:12px;color:#111827}.supplier-table tbody tr:hover{background:#f9fafb}.type-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.type-material{background:#dbeafe;color:#1e40af}.type-equipment{background:#fef3c7;color:#92400e}.type-service{background:#d1fae5;color:#065f46}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-active{background:#d1fae5;color:#065f46}.status-inactive{background:#fee2e2;color:#991b1b}@media (max-width: 768px){.supplier-list-container{padding:16px}.supplier-list-header{flex-direction:column;align-items:stretch}.search-box{max-width:100%}.supplier-table-wrapper{overflow-x:scroll}.supplier-table{min-width:1000px}.action-buttons{flex-direction:column}.btn-sm{width:100%}}.supplier-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:1000px;margin:0 auto}.form-section h3{margin:0 0 20px;color:#111827;font-size:18px;font-weight:600;padding-bottom:8px;border-bottom:2px solid #2563eb;display:inline-block}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}@media (max-width: 768px){.supplier-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{width:100%}}.suppliers-page{max-width:1200px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;padding:0}.page-header h1{margin:0;color:#111827;font-size:28px}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-header h1{font-size:24px}}.parties-page{width:100%}.parties-tabs-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.parties-tabs{display:flex;border-bottom:2px solid #e5e7eb;background:#f9fafb;padding:0 16px}.parties-tab{padding:16px 24px;border:none;background:transparent;cursor:pointer;font-size:15px;font-weight:500;color:#6b7280;border-bottom:3px solid transparent;transition:all .2s;position:relative;top:2px}.parties-tab:hover{color:#374151;background:#ffffff80}.parties-tab.active{color:#2563eb;border-bottom-color:#2563eb;background:#fff}.parties-tab-content{padding:24px}.parties-tab-content>div{border-radius:0;box-shadow:none}.parties-tab-content .page-header h1{display:none}.project-analytics{padding:0}.analytics-header{margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #e5e7eb}.header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}.analytics-header h3{margin:0 0 8px;color:#111827;font-size:20px;font-weight:600}.project-info{margin:0;color:#6b7280;font-size:14px;line-height:1.6}.btn-download-report{display:flex;align-items:center;gap:8px;padding:10px 20px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap}.btn-download-report:hover{transform:translateY(-2px);box-shadow:0 4px 12px #667eea66}.btn-download-report .btn-icon{font-size:16px}.analytics-tabs{display:flex;gap:8px;margin-bottom:24px;border-bottom:2px solid #e5e7eb}.analytics-tab{padding:12px 24px;background:none;border:none;border-bottom:3px solid transparent;font-size:14px;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s;margin-bottom:-2px}.analytics-tab:hover{color:#667eea;background:#667eea0d}.analytics-tab.active{color:#667eea;border-bottom-color:#667eea;background:#667eea0d}.analytics-tab-content{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.summary-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:32px}.summary-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:12px;padding:20px;color:#fff;box-shadow:0 4px 6px #0000001a}.summary-card:nth-child(2){background:linear-gradient(135deg,#f093fb,#f5576c)}.summary-card:nth-child(3){background:linear-gradient(135deg,#4facfe,#00f2fe)}.summary-label{font-size:14px;opacity:.9;margin-bottom:8px;font-weight:500}.summary-value{font-size:24px;font-weight:700;margin-bottom:4px}.summary-value.amount{color:#059669}.summary-value.amount.paid{color:#60a5fa}.summary-value.amount.balance{color:#fca5a5}.summary-count{font-size:12px;opacity:.8;margin-top:4px}.analytics-section{margin-bottom:32px}.analytics-section h4{margin:0 0 16px;color:#111827;font-size:18px;font-weight:600;padding-bottom:8px;border-bottom:2px solid #e5e7eb}.analytics-table-wrapper{overflow-x:auto;border-radius:8px;border:1px solid #e5e7eb}.analytics-table{width:100%;border-collapse:collapse;background:#fff}.analytics-table thead{background:#f9fafb}.analytics-table th{padding:12px 16px;text-align:left;font-weight:600;color:#374151;font-size:14px;border-bottom:2px solid #e5e7eb}.analytics-table td{padding:12px 16px;border-bottom:1px solid #e5e7eb;color:#374151;font-size:14px}.analytics-table tbody tr:hover{background:#f9fafb}.analytics-table tbody tr:last-child td{border-bottom:none}.amount-cell{text-align:right;font-weight:600;color:#059669}.amount-cell.paid{color:#2563eb}.amount-cell.balance{color:#dc2626}.no-data{padding:24px;text-align:center;color:#6b7280;font-size:14px;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.charts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;margin-bottom:24px}.chart-container{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d}.chart-container h4{margin:0 0 16px;color:#111827;font-size:16px;font-weight:600}.bar-chart{width:100%}.chart-bars{display:flex;flex-direction:column;gap:16px}.chart-bar-wrapper{display:flex;align-items:center;gap:12px}.chart-bar-label{min-width:80px;font-size:13px;font-weight:500;color:#374151}.chart-bar-container{flex:1;height:40px;background:#f3f4f6;border-radius:8px;position:relative;overflow:hidden}.chart-bar{height:100%;border-radius:8px;display:flex;align-items:center;justify-content:flex-end;padding:0 12px;transition:width .3s ease;min-width:60px}.chart-bar-value{color:#fff;font-size:12px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2)}.pie-chart{display:flex;flex-direction:column;align-items:center;gap:20px}.pie-chart-visual{display:flex;justify-content:center;align-items:center}.pie-chart-legend{display:flex;flex-direction:column;gap:12px;width:100%}.legend-item{display:flex;align-items:center;gap:10px}.legend-color{width:16px;height:16px;border-radius:4px;flex-shrink:0}.legend-label{font-size:13px;color:#374151;font-weight:500}.progress-chart{width:100%}.progress-bar-container{width:100%;height:50px;background:#f3f4f6;border-radius:8px;overflow:hidden;display:flex;position:relative;margin-bottom:12px}.progress-bar{height:100%;display:flex;align-items:center;justify-content:center;transition:width .3s ease;min-width:80px}.progress-bar.outstanding{margin-left:auto}.progress-label{color:#fff;font-size:12px;font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.2);padding:0 8px}.progress-total{text-align:center;font-size:14px;font-weight:600;color:#374151;margin-top:8px}.profit-indicator{text-align:center;padding:20px}.profit-value{font-size:32px;font-weight:700;margin-bottom:8px}.profit-value.positive{color:#10b981}.profit-value.negative{color:#ef4444}.profit-percent{font-size:18px;font-weight:600;color:#6b7280;margin-bottom:16px}.profit-bar{width:100%;height:8px;background:#f3f4f6;border-radius:4px;overflow:hidden;display:flex}.profit-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.details-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}.detail-section{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000000d}.detail-section h4{margin:0 0 16px;color:#111827;font-size:16px;font-weight:600;padding-bottom:12px;border-bottom:2px solid #e5e7eb}.detail-list{display:flex;flex-direction:column;gap:12px}.detail-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid #f3f4f6}.detail-item:last-child{border-bottom:none}.detail-label{font-size:14px;color:#6b7280;font-weight:500}.detail-value{font-size:14px;color:#111827;font-weight:600;text-align:right}.detail-value.amount-paid{color:#10b981}.detail-value.amount-balance{color:#ef4444}.supplier-expense-list-container{background:transparent;border-radius:0;padding:0;box-shadow:none;border:none;font-family:Inter,Poppins,Segoe UI,sans-serif}.expense-list-header{margin-bottom:22px}.header-right{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px;border:none;border-radius:12px;background:#f8fafc}.filter-select{min-width:220px;height:40px;padding:0 12px;border:1px solid #d1d5db;border-radius:10px;font-size:14px;color:#0f172a;background:#fff;cursor:pointer}.filter-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.header-actions{display:flex;gap:10px}.summary-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:24px}.summary-card{background:#fff;border:none;border-radius:16px;padding:20px;box-shadow:0 2px 10px #0f172a14;transition:transform .18s ease,box-shadow .18s ease}.summary-card:hover{transform:translateY(-1px);box-shadow:0 8px 18px #0f172a1a}.summary-label{font-size:12px;color:#64748b;font-weight:600;margin-bottom:8px;text-transform:uppercase;letter-spacing:.04em}.summary-value{font-size:28px;font-weight:800;line-height:1.15;color:#0f172a}.summary-value.amount{color:#0f172a}.summary-value.amount.paid{color:#16a34a}.summary-value.amount.balance{color:#dc2626}.summary-count{font-size:12px;color:#64748b;margin-top:6px}.summary-status{display:flex;flex-wrap:wrap;gap:6px}.status-item{display:inline-flex;align-items:center;padding:4px 10px;border-radius:9999px;font-size:12px;font-weight:700}.status-item.unpaid{color:#991b1b;background:#fee2e2}.status-item.partial{color:#9a3412;background:#ffedd5}.status-item.paid{color:#166534;background:#dcfce7}.loading{text-align:center;padding:36px 20px;color:#64748b}.empty-state{margin-top:8px;border:1px dashed #cbd5e1;border-radius:12px;padding:36px 20px;text-align:center;background:#f8fafc}.empty-state-title{font-size:18px;font-weight:700;color:#0f172a;margin-bottom:6px}.empty-state-subtitle{font-size:14px;color:#64748b;margin-bottom:14px}.expense-table-wrapper{overflow-x:auto;background:#fff;border:none;border-radius:16px;box-shadow:0 2px 10px #0f172a14}.expense-table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}.expense-table thead th{position:sticky;top:0;z-index:2;background:#f8fafc;color:#334155;text-align:left;padding:14px 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;border-bottom:1px solid #e2e8f0;cursor:pointer}.expense-table td{padding:16px 12px;border-bottom:1px solid #f1f5f9;color:#334155}.expense-table tbody tr:hover{background:#f8fafc}.amount-cell{font-weight:700;color:#0f172a}.status-badge{display:inline-flex;align-items:center;justify-content:center;min-width:80px;padding:4px 11px;border-radius:9999px;font-size:11px;font-weight:700;text-transform:uppercase}.status-paid{background:#dcfce7;color:#166534}.status-partial{background:#ffedd5;color:#9a3412}.status-unpaid{background:#fee2e2;color:#991b1b}.project-link-btn{background:none;border:none;color:#2563eb;cursor:pointer;text-decoration:underline;text-underline-offset:2px;padding:0;font-size:inherit;font-family:inherit}.project-link-btn:hover{color:#1d4ed8}.btn{padding:9px 14px;border:none;border-radius:10px;font-size:14px;font-weight:700;cursor:pointer;transition:all .18s ease}.btn-primary{background:#2563eb;color:#fff;box-shadow:0 4px 14px #2563eb38}.btn-primary:hover:not(:disabled){background:#1d4ed8;transform:translateY(-1px)}.btn-secondary{background:#fff;color:#334155;border:1px solid #d1d5db}.btn-secondary:hover:not(:disabled){background:#f8fafc;border-color:#9ca3af}.btn-sm{padding:7px 12px;font-size:13px}.btn-icon{min-width:30px;height:30px;padding:0;border:1px solid #d1d5db;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all .18s ease;background:#fff}.btn-icon:hover{transform:translateY(-1px);box-shadow:0 6px 12px #0f172a14}.btn-icon.btn-payment{color:#16a34a;border-color:#bbf7d0}.btn-icon.btn-payment:hover{background:#f0fdf4;border-color:#86efac}.btn-icon.btn-edit{color:#475569;border-color:#cbd5e1}.btn-icon.btn-delete{color:#dc2626;border-color:#fecaca}.btn-icon.btn-delete:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5}.action-buttons{display:inline-flex;gap:6px;align-items:center}.payment-form .form-group{margin-bottom:20px}.payment-form label{display:block;margin-bottom:8px;font-weight:600;color:#334155;font-size:14px}.payment-form .required{color:#dc2626}.payment-form input,.payment-form select,.payment-form textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;color:#0f172a}.payment-form input:focus,.payment-form select:focus,.payment-form textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.helper-text{display:block;margin-top:5px;color:#64748b;font-size:12px}.payment-form .form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:24px;padding-top:16px;border-top:1px solid #e5e7eb}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:12px 8px 2px;flex-wrap:wrap;gap:12px}.pagination-info{font-size:13px;color:#64748b}.pagination-buttons{display:flex;align-items:center;gap:10px}.pagination-page-info{font-size:13px;color:#334155;font-weight:600}.pagination-page-size label{font-size:13px;color:#64748b}.page-size-select{padding:6px 8px;border:1px solid #d1d5db;border-radius:8px;font-size:13px;background:#fff;cursor:pointer}.page-size-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1f}.supplier-expense-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:1000px;margin:0 auto}.form-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #e5e7eb}.form-section:last-of-type{border-bottom:none}.form-section h3{margin:0 0 20px;color:#111827;font-size:18px;font-weight:600;padding-bottom:8px;border-bottom:2px solid #2563eb;display:block;width:100%;text-align:left}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#111827;font-size:14px;text-align:left}.form-group input,.form-group select,.form-group textarea{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;color:#111827;background:#fff;transition:border-color .2s;box-sizing:border-box}.file-name{display:block;margin-top:8px;color:#059669;font-size:14px;font-weight:500}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:32px;padding-top:24px;border-top:2px solid #e5e7eb}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:#fff;color:#334155;border:1px solid #cbd5e1}.btn-small{padding:6px 10px;font-size:12px}.boq-tree{border:1px solid #d1d5db;border-radius:8px;background:#fff;padding:6px;max-height:360px;overflow:auto}.boq-search-wrap{margin-bottom:10px}.boq-search-input{width:100%;padding:9px 12px;border:1px solid #cbd5e1;border-radius:8px;font-size:14px;color:#0f172a;background:#fff}.boq-search-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.boq-tree-empty{border:1px dashed #cbd5e1;border-radius:8px;padding:10px 12px;font-size:13px;color:#64748b;background:#f8fafc}.boq-department{margin-bottom:6px;border:1px solid #e5e7eb;border-radius:6px;background:#f8fafc}.boq-category,.boq-item-group{margin-left:14px;margin-bottom:4px}.boq-node-btn{width:100%;text-align:left;background:#fff;border:none;color:#334155;padding:7px 10px;border-radius:4px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px}.boq-node-btn:hover{background:#f1f5f9}.boq-item-btn{width:calc(100% - 6px);margin-left:6px;text-align:left;border:1px solid #e5e7eb;background:#fff;color:#334155;padding:7px 10px;border-radius:4px;cursor:pointer;font-size:13px}.boq-item-btn:hover{background:#f8fafc;border-color:#cbd5e1}.boq-item-btn.selected{border-color:#3b82f6;background:#eaf2ff;color:#1d4ed8}.boq-floor-btn{margin-left:20px}.boq-highlight{background:#fef3c7;color:#92400e;border-radius:3px;padding:0 2px}.selected-work-card{margin-top:14px;margin-bottom:18px;border:1px solid #bfdbfe;background:#eff6ff;border-radius:8px;padding:12px}.selected-work-title{font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#475569;margin-bottom:6px}.selected-work-name{font-size:16px;font-weight:700;color:#1e3a8a;margin-bottom:4px}.selected-work-meta{font-size:13px;color:#334155}.helper-text{margin-top:-2px;margin-bottom:8px;font-size:12px;color:#64748b}.helper-text.warning{color:#b45309}.amount-summary{border:1px solid #dbe3ef;border-radius:8px;padding:10px 12px;background:#f8fafc;display:grid;gap:6px;font-size:13px;color:#334155}.payment-status{display:inline-block;padding:2px 8px;border-radius:9999px;font-weight:600;font-size:12px}.payment-status.draft{background:#e5e7eb;color:#4b5563}.payment-status.partial{background:#ffedd5;color:#c2410c}.payment-status.paid{background:#dcfce7;color:#166534}.file-preview-row{margin-top:8px;display:flex;align-items:center;justify-content:space-between;gap:8px}.supplier-expense-page{padding:12px 0 28px;background:#f8fafc;font-family:Inter,Poppins,Segoe UI,sans-serif}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:0 2px}.page-header h1{margin:0;color:#0f172a;font-size:32px;line-height:1.2;font-weight:800;letter-spacing:-.02em}.page-header-actions{display:flex;align-items:center;gap:10px}.back-link{display:inline-flex;align-items:center;gap:6px;padding:9px 14px;border:1px solid #d1d5db;border-radius:10px;background:#fff;color:#334155;text-decoration:none;font-size:14px;font-weight:600;transition:all .18s ease}.back-link:hover{border-color:#94a3b8;background:#f8fafc;transform:translateY(-1px)}.add-expense-cta{padding:10px 16px;border-radius:10px;box-shadow:0 6px 16px #2563eb38}.add-expense-cta:hover{transform:translateY(-1px);box-shadow:0 9px 20px #2563eb47}.form-section,.list-section{margin-bottom:24px}.settings-layout{display:flex;gap:0;min-height:calc(100vh - 64px)}.settings-sidebar{width:240px;background:#f9fafb;border-right:1px solid #e5e7eb;position:sticky;top:64px;height:calc(100vh - 64px);overflow-y:auto;padding:24px 0}.sidebar-section{margin-bottom:32px}.sidebar-header{display:flex;align-items:center;gap:8px;padding:0 20px 16px;border-bottom:1px solid #e5e7eb;margin-bottom:16px}.sidebar-icon{font-size:18px}.sidebar-title{font-size:11px;font-weight:700;letter-spacing:.5px;color:#6b7280;text-transform:uppercase}.sidebar-group{padding:0 12px}.sidebar-group-header{font-size:10px;font-weight:700;letter-spacing:.5px;color:#9ca3af;text-transform:uppercase;padding:8px 12px;margin-bottom:4px}.sidebar-item{width:100%;padding:10px 12px;background:transparent;border:none;text-align:left;font-size:14px;color:#374151;cursor:pointer;border-radius:6px;margin-bottom:2px;transition:all .2s;display:flex;align-items:center}.sidebar-item:hover{background:#f3f4f6;color:#1f2937}.sidebar-item.active{background:#dbeafe;color:#2563eb;font-weight:500}.settings-content{flex:1;padding:24px;background:#fff;min-height:calc(100vh - 64px)}@media (max-width: 1024px){.settings-sidebar{width:200px}}@media (max-width: 768px){.settings-layout{flex-direction:column}.settings-sidebar{width:100%;height:auto;position:relative;top:0;border-right:none;border-bottom:1px solid #e5e7eb;padding:16px}.settings-content{padding:16px}}.settings-overview{max-width:1200px;margin:0 auto}.settings-header{margin-bottom:32px}.settings-header h1{font-size:28px;font-weight:700;color:#1f2937;margin:0 0 8px}.settings-subtitle{font-size:16px;color:#6b7280;margin:0}.settings-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:40px}.stat-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:16px;border:2px solid transparent;position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--card-color);transition:width .3s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:var(--card-color)}.stat-card:hover:before{width:100%;opacity:.1}.stat-card-icon{font-size:32px;flex-shrink:0}.stat-card-content{flex:1}.stat-card-count{font-size:32px;font-weight:700;color:var(--card-color);line-height:1;margin-bottom:4px}.stat-card-title{font-size:16px;font-weight:600;color:#1f2937;margin-bottom:2px}.stat-card-subtitle{font-size:12px;color:#6b7280}.stat-card-arrow{font-size:20px;color:#9ca3af;transition:all .3s ease;flex-shrink:0}.stat-card:hover .stat-card-arrow{color:var(--card-color);transform:translate(4px)}.settings-quick-actions{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a}.settings-quick-actions h2{font-size:20px;font-weight:600;color:#1f2937;margin:0 0 16px}.quick-actions-grid{display:flex;gap:12px;flex-wrap:wrap}.quick-action-btn{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;font-size:14px;font-weight:500;color:#374151;cursor:pointer;transition:all .2s}.quick-action-btn:hover{background:#f3f4f6;border-color:#d1d5db;color:#1f2937}.quick-action-icon{font-size:18px}@media (max-width: 768px){.settings-stats-grid{grid-template-columns:1fr}.quick-actions-grid{flex-direction:column}.quick-action-btn{width:100%;justify-content:center}}.master-data-list-container{width:100%}.list-header{margin-bottom:20px}.search-box{max-width:400px}.search-input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;background:#fff}.data-table th{padding:8px;text-align:left;font-weight:600;color:#374151;font-size:12px;border-bottom:2px solid #e5e7eb}.data-table td{padding:8px;border-bottom:1px solid #e5e7eb;font-size:12px;color:#111827}.action-buttons{display:flex;gap:4px}.btn-icon{width:24px;height:24px;padding:4px;border:none;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;background:transparent}.btn-icon.btn-edit{color:#3b82f6}.btn-icon.btn-edit:hover{background:#dbeafe;color:#2563eb}.btn-icon.btn-delete{color:#ef4444}.btn-icon.btn-delete:hover{background:#fee2e2;color:#dc2626}.btn-sm{padding:6px 12px;font-size:12px;border-radius:4px;border:none;cursor:pointer;font-weight:600;transition:all .2s}.tab-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.tab-header h2{margin:0;color:#111827;font-size:20px;font-weight:600}.form-section{margin-bottom:24px}.list-section{margin-top:24px}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;display:inline-block}.status-badge.inactive{background:#fee2e2;color:#991b1b}@media (max-width: 768px){.tab-header{flex-direction:column;align-items:flex-start;gap:16px}.action-buttons{flex-direction:column}.btn-sm{width:100%}}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 0;border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:12px}.pagination-info{font-size:14px;color:#6b7280}.pagination-buttons{display:flex;align-items:center;gap:12px}.pagination-page-info{font-size:14px;color:#374151;font-weight:500;min-width:80px;text-align:center}.pagination-page-size label{font-size:14px;color:#6b7280}.page-size-select{padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.page-size-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.master-data-form{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:800px}.form-group label{display:block;margin-bottom:8px;font-weight:600;color:#374151;font-size:14px}.form-group .required{color:#dc2626}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.form-actions{display:flex;gap:12px;margin-top:24px;padding-top:24px;border-top:1px solid #e5e7eb}.btn{padding:10px 20px;border:none;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.master-data-form{padding:16px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{width:100%}}.page-header-enhanced{margin-bottom:24px}.breadcrumbs{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:13px;color:#6b7280}.breadcrumb-item{display:flex;align-items:center;gap:8px}.breadcrumb-item a{color:#6b7280;text-decoration:none;transition:color .2s}.breadcrumb-item a:hover{color:#2563eb}.breadcrumb-separator{color:#d1d5db}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.page-header-content h1{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 8px}.page-header-action{flex-shrink:0}@media (max-width: 768px){.page-header-content{flex-direction:column;align-items:stretch}.page-header-action{width:100%}}.content-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb;transition:box-shadow .2s}.content-card:hover{box-shadow:0 4px 12px #0000001a}.department-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.department-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.department-table-wrapper{overflow-x:auto}.department-table{width:100%;border-collapse:collapse;font-size:14px}.department-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.department-table th{padding:12px;text-align:left;font-weight:600;color:#374151;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.department-table th:hover{background:#f3f4f6}.department-table td{padding:12px;border-bottom:1px solid #e5e7eb;color:#111827}.department-table tbody tr:hover{background:#f9fafb}.department-form-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:600px;margin:0 auto}.department-form{display:flex;flex-direction:column;gap:20px}.form-group input,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input.error,.form-group textarea.error{border-color:#dc2626}.departments-page{max-width:1400px;margin:0 auto}.category-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.category-list-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:24px;flex-wrap:wrap;gap:16px}.category-list-header .btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none;white-space:nowrap}.category-list-header .btn-primary{background:#2563eb;color:#fff}.category-list-header .btn-primary:hover{background:#1d4ed8}.filters{display:flex;gap:16px;flex-wrap:wrap;flex:1}.filter-group{display:flex;flex-direction:column;gap:6px}.filter-group label{font-size:12px;font-weight:500;color:#374151}.filter-select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;min-width:200px;cursor:pointer}.filter-select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.info-message{text-align:center;padding:40px;color:#6b7280;background:#f9fafb;border-radius:8px;border:1px dashed #d1d5db}.category-table-wrapper{overflow-x:auto}.category-table{width:100%;border-collapse:collapse;font-size:14px}.category-table thead{background:#f9fafb;border-bottom:2px solid #e5e7eb}.category-table th{padding:12px;text-align:left;font-weight:600;color:#374151;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.category-table th:hover{background:#f3f4f6}.category-table td{padding:12px;border-bottom:1px solid #e5e7eb;color:#111827}.category-table tbody tr:hover{background:#f9fafb}.btn-icon{padding:6px 10px;border:none;background:transparent;cursor:pointer;font-size:16px;border-radius:4px;transition:all .2s}.btn-icon:hover{background:#f3f4f6}.pagination{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding-top:20px;border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:16px}.pagination-controls{display:flex;align-items:center;gap:12px}.pagination-button{padding:8px 16px;border:1px solid #d1d5db;background:#fff;border-radius:6px;cursor:pointer;font-size:14px;transition:all .2s}.pagination-button:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.pagination-button:disabled{opacity:.5;cursor:not-allowed}.pagination-page{color:#374151;font-size:14px;font-weight:500}.pagination-size{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.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:8px;padding:24px;max-width:400px;width:90%;box-shadow:0 10px 25px #0003}.modal-content h3{margin:0 0 16px;color:#111827;font-size:18px}.modal-content p{margin:0 0 24px;color:#6b7280;line-height:1.5}.modal-actions{display:flex;gap:12px;justify-content:flex-end}.btn-secondary{background:#fff;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background:#f9fafb;border-color:#9ca3af}.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}.category-form-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;max-width:600px;margin:0 auto}.category-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-weight:500;color:#374151;font-size:14px}.form-group input,.form-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s}.form-group select:disabled{background:#f3f4f6;cursor:not-allowed}.form-group input:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.error-message{color:#dc2626;font-size:12px;margin-top:-4px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px}.categories-page{max-width:1400px;margin:0 auto}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;flex-wrap:wrap;gap:16px;padding:0;position:relative}.page-header h1{margin:0;color:#111827;font-size:28px;flex:1;text-align:center}.btn-back{padding:8px 16px;border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;position:absolute;left:0}.btn-primary{background:#2563eb;color:#fff;position:absolute;right:0}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.form-section,.list-section{margin-top:0}@media (max-width: 768px){.page-header{flex-direction:column;align-items:stretch}.page-header h1{font-size:24px}.btn-back,.btn-primary{position:static;width:100%}}.template-list-page{padding:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.template-grid{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;overflow:hidden}.data-table tbody tr{transition:background-color .2s}.data-table tbody tr:hover{background:#f3f4f6}.action-buttons{display:flex;gap:8px}.loading{text-align:center;padding:24px;color:#6b7280}.template-item-grid{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.grid-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.grid-header h3{margin:0;font-size:18px;font-weight:600}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:#f9fafb}.data-table th{padding:12px 16px;text-align:left;font-weight:600;font-size:14px;color:#374151;border-bottom:1px solid #e5e7eb}.data-table td{padding:12px 16px;border-bottom:1px solid #e5e7eb;font-size:14px}.data-table tbody tr:hover{background:#f9fafb}.empty-state{text-align:center;padding:48px;color:#6b7280}.template-edit-page{padding:20px}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.page-header h1{margin:0;font-size:24px;font-weight:600;flex:1;text-align:center}.header-actions{display:flex;gap:8px}.template-form{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a;max-width:600px;margin:0 auto}.form-group input,.form-group select{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.form-group input:focus,.form-group select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}.template-info{background:#fff;border-radius:8px;padding:16px;margin-bottom:20px;display:flex;gap:24px;box-shadow:0 1px 3px #0000001a}.info-item{display:flex;align-items:center;gap:8px}.info-item label{font-weight:500;color:#6b7280}.info-item span{color:#374151}.status-badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;margin-right:8px}.status-badge.draft{background:#fef3c7;color:#92400e}.status-badge.finalized{background:#dbeafe;color:#1e40af}.status-badge.active{background:#d1fae5;color:#065f46}.template-actions{margin-bottom:20px;display:flex;justify-content:flex-end}.loading{text-align:center;padding:48px;color:#6b7280}.floor-template-list-page{padding:0}.floor-template-list-page .loading,.floor-template-list-page .empty-state{text-align:center;padding:2rem;color:#6b7280}.floor-template-list-page .action-buttons{display:flex;gap:.5rem}.floor-template-list-page .status-badge{padding:.25rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500}.floor-template-list-page .status-badge.active{background-color:#d1fae5;color:#065f46}.floor-template-list-page .status-badge.inactive{background-color:#f3f4f6;color:#6b7280}.floor-template-edit-page{padding:0}.floor-template-edit-page .form-section{display:flex;flex-direction:column;gap:1.5rem}.floor-template-edit-page .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.floor-template-edit-page .form-group{display:flex;flex-direction:column;gap:.5rem}.floor-template-edit-page .form-group label{font-weight:500;color:#374151}.floor-template-edit-page .form-group input,.floor-template-edit-page .form-group select{padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem}.floor-template-edit-page .card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.floor-template-edit-page .block-section{border:1px solid #e5e7eb;border-radius:.5rem;padding:1rem;margin-bottom:1rem;background-color:#f9fafb}.floor-template-edit-page .block-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.floor-template-edit-page .block-name-input{flex:1;margin-right:1rem;padding:.5rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:1rem;font-weight:600}.floor-template-edit-page .floors-section{margin-top:1rem}.floor-template-edit-page .floors-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.floor-template-edit-page .floor-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:.375rem;padding:1rem;margin-bottom:.5rem}.floor-template-edit-page .floor-form-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:1rem;align-items:end}.floor-template-edit-page .header-actions{display:flex;gap:.5rem}.floor-template-edit-page .empty-state{text-align:center;padding:2rem;color:#6b7280}.project-types-page{padding:0}.project-types-page .loading,.project-types-page .empty-state{text-align:center;padding:2rem;color:#6b7280}.settings-page-content{max-width:1200px;margin:0 auto}.settings-page-header{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e5e7eb}.settings-page-header h1{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 8px}.page-description{font-size:14px;color:#6b7280;margin:0}.settings-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a;border:1px solid #e5e7eb}.tabs-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.tabs{display:flex;border-bottom:1px solid #e5e7eb;background:#f9fafb}.tab{padding:12px 24px;border:none;background:transparent;cursor:pointer;font-size:14px;font-weight:500;color:#6b7280;transition:all .2s;border-bottom:2px solid transparent;margin-bottom:-1px}.tab:hover{color:#2563eb;background:#f3f4f6}.tab.active{color:#2563eb;border-bottom-color:#2563eb;background:#fff}.tab-content{padding:24px}.tab-divider{width:1px;background:#e5e7eb;margin:8px 4px;align-self:stretch}@media (max-width: 768px){.master-data-page{padding:16px}.tabs{flex-direction:column}.tab{border-bottom:1px solid #e5e7eb;border-left:2px solid transparent;margin-bottom:0}.tab.active{border-left-color:#2563eb;border-bottom-color:#e5e7eb}}.reports-page{max-width:1400px;margin:0 auto;padding:24px}.page-header{margin-bottom:32px}.page-header h1{margin:0;font-size:28px;font-weight:700;color:#111827}.report-content{background:#fff;border-radius:"8px";border:"1px solid #e5e7eb";padding:24px}.report-content h3{margin:0 0 8px;font-size:20px;font-weight:600;color:#111827}:root{--pdf-primary: #1f6fb2;--pdf-primary-deep: #0f4f88;--pdf-bg: #ffffff;--pdf-surface-muted: #f3f7fb;--pdf-surface-neutral: #f8fafc;--pdf-border: #dbe4ef;--pdf-border-strong: #c7d4e4;--pdf-text-primary: #0f172a;--pdf-text-secondary: #334155;--pdf-text-muted: #64748b}@media print{body *{visibility:hidden}.quotation-print,.quotation-print *{visibility:visible}.quotation-print{position:absolute;left:0;top:0;width:100%;max-width:100%;margin:0;box-shadow:none}}.quotation-print{max-width:920px;margin:0 auto;padding:36px;background:var(--pdf-bg);border:1px solid var(--pdf-border);border-radius:14px;box-shadow:0 8px 24px #0f172a12;font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--pdf-text-primary)}.pdf-header{display:grid;grid-template-columns:1.1fr .9fr;gap:22px;align-items:start;padding-bottom:22px;border-bottom:1px solid var(--pdf-border)}.pdf-brand-row{display:flex;align-items:center;gap:10px;margin-bottom:18px}.pdf-brand-mark{width:26px;height:26px;display:inline-grid;place-items:center;border-radius:6px;background:linear-gradient(140deg,#d89f45,#f7c26b);color:#083c66;font-weight:800}.pdf-brand-name{font-size:30px;font-weight:700;letter-spacing:.01em;color:var(--pdf-primary)}.pdf-title{margin:0;text-transform:uppercase;letter-spacing:.03em;font-size:42px;color:var(--pdf-primary)}.pdf-revision-chip{width:-moz-fit-content;width:fit-content;margin:12px 0 20px;background:var(--pdf-surface-muted);color:var(--pdf-text-secondary);border-radius:9999px;font-weight:600;font-size:13px;padding:6px 12px}.pdf-client h2{margin:0;font-size:34px}.pdf-client p{margin:6px 0 0;color:var(--pdf-text-secondary);line-height:1.5}.pdf-meta-card{border:1px solid var(--pdf-border);border-radius:10px;overflow:hidden}.pdf-meta-row{display:flex;justify-content:space-between;gap:14px;padding:12px 14px;border-bottom:1px solid var(--pdf-border)}.pdf-meta-row:last-child{border-bottom:none}.pdf-meta-row span{color:var(--pdf-text-muted);font-size:13px}.pdf-meta-row strong{color:var(--pdf-text-primary);font-size:14px}.pdf-meta-row--status{align-items:center}.pdf-status{display:inline-flex;align-items:center;justify-content:center;padding:5px 12px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pdf-status--muted{background:#eef2f7;color:#475569}.pdf-status--draft{background:#fff6dc;color:#92400e}.pdf-status--sent{background:#dbeafe;color:#1e40af}.pdf-status--accepted{background:#dcfce7;color:#166534}.pdf-status--rejected{background:#fee2e2;color:#991b1b}.pdf-status--expired{background:#fef3c7;color:#92400e}.pdf-section{margin-top:22px}.pdf-section-title-wrap{margin-bottom:10px}.pdf-section-title{margin:0;color:var(--pdf-text-primary);font-size:28px}.pdf-boq-table-wrap{border:1px solid var(--pdf-border-strong);border-radius:10px;overflow:hidden}.pdf-boq-table{width:100%;border-collapse:collapse}.pdf-boq-table thead th{background:var(--pdf-primary);color:#f8fbff;font-size:13px;font-weight:600;text-align:left;padding:11px 12px;border-right:1px solid rgba(255,255,255,.1)}.pdf-boq-table thead th:last-child{border-right:none}.pdf-boq-table .num{text-align:right}.pdf-boq-department-row td{background:#edf4fc;color:#0f3658;font-weight:700;padding:11px 12px;border-top:1px solid var(--pdf-border)}.pdf-boq-category-row td{background:var(--pdf-surface-neutral);color:#1f2937;font-weight:700;padding:10px 12px;border-top:1px solid var(--pdf-border)}.pdf-boq-item-row td,.pdf-boq-subtotal-row td{padding:10px 12px;border-top:1px solid #edf2f8;vertical-align:top;font-size:13px;color:var(--pdf-text-secondary)}.pdf-item-title{font-weight:600;color:var(--pdf-text-primary)}.pdf-item-subtext{margin-top:4px;font-size:12px;color:var(--pdf-text-muted)}.pdf-item-meta{margin-top:4px;font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#7890ab}.pdf-boq-subtotal-row td{background:#f8fbff;font-weight:700}.pdf-totals{width:360px;max-width:100%;margin-left:auto;margin-top:18px;border:1px solid var(--pdf-border);border-radius:10px;overflow:hidden}.pdf-totals-row{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid var(--pdf-border)}.pdf-totals-row:last-child{border-bottom:none}.pdf-totals-row span{color:var(--pdf-text-muted);font-size:14px}.pdf-totals-row strong{color:var(--pdf-text-primary);font-size:14px}.pdf-totals-row--grand{background:#e9f4ff}.pdf-totals-row--grand span,.pdf-totals-row--grand strong{color:var(--pdf-primary-deep);font-size:17px;font-weight:800}.pdf-notes{margin-top:18px;border-top:1px solid var(--pdf-border);padding-top:12px}.pdf-notes h4{margin:0 0 8px;font-size:15px}.pdf-notes p{margin:0;color:var(--pdf-text-secondary);line-height:1.55}.pdf-footer{margin-top:24px;padding-top:14px;border-top:1px solid var(--pdf-border);display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--pdf-text-muted)}@media (max-width: 900px){.quotation-print{padding:18px}.pdf-header{grid-template-columns:1fr}}.quotation-wizard-page{max-width:1400px;margin:0 auto;padding:24px 0}.wizard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:16px}.wizard-header h1{margin:0;font-size:26px;color:#111827}.wizard-steps-indicator{display:flex;gap:12px;font-size:13px;color:#9ca3af}.wizard-steps-indicator span{padding:4px 10px;border-radius:999px;border:1px solid #e5e7eb}.wizard-steps-indicator span.active{border-color:#2563eb;color:#2563eb;background:#eff6ff}.wizard-step{margin-top:8px}.wizard-step h2{margin:0 0 12px;font-size:20px;color:#111827}.wizard-form{margin-top:8px}.floor-preview{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}.floor-block{flex:1 1 220px;border-radius:8px;border:1px solid #e5e7eb;padding:12px;background:#fff}.floor-block h3{margin:0 0 8px;font-size:14px;color:#111827}.floor-block ul{list-style:none;padding:0;margin:0;font-size:13px;color:#4b5563}.wizard-step-3 .wizard-main-layout{display:grid;grid-template-columns:220px 1.6fr 260px;gap:16px;margin-top:12px}.wizard-sidebar{border-radius:12px;border:1px solid #e5e7eb;padding:12px;background:#f9fafb}.wizard-sidebar h3{margin:0 0 8px;font-size:14px;color:#111827}.block-list{display:flex;flex-direction:column;gap:6px}.block-button,.floor-button{width:100%;text-align:left;padding:6px 10px;border-radius:6px;border:none;background:transparent;font-size:13px;cursor:pointer;color:#374151}.block-button.active,.block-button:hover,.floor-button.active,.floor-button:hover{background:#e5e7eb}.floor-list{margin-top:12px}.floor-list h4{margin:0 0 6px;font-size:13px;color:#4b5563}.wizard-grid{border-radius:12px;border:1px solid #e5e7eb;padding:12px;background:#fff}.wizard-grid h2{margin:0 0 8px;font-size:16px;color:#111827}.wizard-grid-table-wrapper{max-height:520px;overflow:auto}.wizard-grid-table{width:100%;border-collapse:collapse}.wizard-grid-table th,.wizard-grid-table td{padding:8px;border-bottom:1px solid #e5e7eb;font-size:13px}.wizard-grid-table th{background:#f9fafb;font-weight:600;color:#4b5563}.wizard-grid-table input[type=number]{width:100%;padding:4px 6px;border-radius:4px;border:1px solid #d1d5db;font-size:13px}.wizard-summary{border-radius:12px;border:1px solid #e5e7eb;padding:12px;background:#f9fafb}.wizard-summary h3{margin:0 0 8px;font-size:14px;color:#111827}.summary-row{display:flex;justify-content:space-between;margin-bottom:6px;font-size:13px;color:#374151}.summary-row-strong{font-weight:600}@media (max-width: 1024px){.wizard-step-3 .wizard-main-layout{grid-template-columns:1fr}}.boq-preview-editor{display:flex;flex-direction:column;gap:1.5rem}@media (min-width: 1024px){.boq-preview-editor{flex-direction:row;align-items:flex-start}.boq-preview-editor__main{flex:1;min-width:0}.boq-preview-editor__summary{width:22rem;max-width:100%;flex-shrink:0}}.boq-preview-editor__summary-inner{position:sticky;top:1rem}.quotation-generate-page{padding:0;max-width:min(1400px,100%);margin:0 auto}.quotation-form{padding:0}.wizard-stepper{display:flex;gap:10px;margin-bottom:18px}.wizard-step{border:1px solid #d1d5db;background:#f9fafb;color:#374151;border-radius:6px;padding:8px 12px;font-weight:600;cursor:pointer}.wizard-step.active{border-color:#2563eb;background:#eff6ff;color:#1d4ed8}.wizard-step:disabled{cursor:not-allowed;opacity:.65}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151}.form-group select,.form-group input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff}.form-group select:focus,.form-group input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.form-group select:disabled,.form-group input:disabled{background:#f3f4f6;cursor:not-allowed}.form-hint{margin-top:8px;font-size:13px;color:#6b7280}.form-actions{display:flex;gap:12px;justify-content:flex-end;flex-wrap:wrap;margin-top:24px}.quotation-step-boq{margin-top:8px;margin-bottom:8px;width:100%}.packages-page{max-width:1200px;margin:0 auto}.packages-page-header{margin-bottom:24px}.packages-page-title{font-size:24px;font-weight:700;color:#1f2937;margin:0 0 8px}.packages-page-description{font-size:14px;color:#6b7280;margin:0}.packages-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 1px 3px #00000014;padding:16px;margin-bottom:24px}.packages-card-title{font-size:14px;font-weight:600;color:#374151;margin:0 0 16px}.packages-table-header{border-bottom:1px solid #f3f4f6;margin:-16px -16px 0;padding:12px 16px}.packages-table-header .packages-card-title{margin:0}.package-form{display:flex;align-items:flex-end;gap:12px}.package-form-field{display:flex;flex-direction:column}.package-form-field-name{flex:1}.package-form-field-code{width:224px}.package-form-label{margin-bottom:4px;font-size:12px;font-weight:500;color:#4b5563}.package-form-input{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:8px 12px;font-size:14px;color:#111827;outline:none}.package-form-input:focus{border-color:#6366f1;box-shadow:0 0 0 1px #6366f1}.package-code-input{text-transform:uppercase}.package-primary-button{border:none;border-radius:6px;background:#4f46e5;color:#fff;font-size:14px;font-weight:600;padding:8px 16px;cursor:pointer}.package-primary-button:hover:not(:disabled){background:#4338ca}.package-primary-button:disabled{background:#d1d5db;cursor:not-allowed}.package-form-actions{margin-top:0}.packages-table-container{overflow-x:auto}.packages-table{width:100%;border-collapse:collapse;min-width:720px}.packages-table thead{background:#f9fafb}.packages-table th{text-align:left;padding:10px 16px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280}.packages-table td{padding:10px 16px;border-top:1px solid #f3f4f6;font-size:14px;color:#374151}.packages-table .text-right{text-align:right}.package-name-cell{display:flex;align-items:center;gap:8px}.package-name{font-weight:600;color:#111827}.package-code-cell{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px;color:#4b5563}.package-tier-badge,.package-status-badge{display:inline-flex;align-items:center;border-radius:9999px;padding:2px 8px;font-size:12px;font-weight:600}.package-tier-badge.budget{background:#dcfce7;color:#15803d}.package-tier-badge.premium{background:#dbeafe;color:#1d4ed8}.package-tier-badge.super{background:#f3e8ff;color:#7e22ce}.package-status-badge.active{background:#d1fae5;color:#047857}.package-status-badge.inactive{background:#f3f4f6;color:#4b5563}.package-secondary-button{border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#374151;font-size:12px;font-weight:600;padding:4px 12px;cursor:pointer}.package-secondary-button:hover:not(:disabled){background:#f9fafb}.package-secondary-button:disabled{opacity:.6;cursor:not-allowed}.packages-state-message{padding:24px;text-align:center;color:#6b7280;font-size:14px}.packages-state-message.error{color:#dc2626}@media (max-width: 768px){.package-form{flex-direction:column;align-items:stretch}.package-form-field-code{width:100%}.package-form-actions{margin-top:8px}}.totals-panel{background:#fff;border-radius:8px;padding:20px;box-shadow:0 1px 3px #0000001a}.totals-title{margin:0 0 16px;font-size:18px;font-weight:600;color:#1f2937;border-bottom:2px solid #e5e7eb;padding-bottom:8px}.totals-content{display:flex;flex-direction:column;gap:12px}.total-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.total-label{font-weight:500;color:#6b7280;font-size:14px}.total-value{font-weight:600;color:#1f2937;font-size:16px}.total-row-grand{border-top:2px solid #e5e7eb;padding-top:12px;margin-top:4px}.total-row-grand .total-label{font-size:16px;color:#1f2937}.total-row-grand .total-value{font-size:20px;color:#059669}.quotation-edit-page{padding:0}.status-badge-readonly{display:inline-block;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500;background:#f3f4f6;color:#6b7280}.quotation-content{display:flex;gap:24px}.quotation-grid-container{flex:1;display:flex;flex-direction:column;gap:24px}.totals-sidebar{width:300px;position:sticky;top:20px;height:-moz-fit-content;height:fit-content}.block-section{padding:0}.block-title{margin:0 0 20px;font-size:20px;font-weight:600;color:#1f2937;border-bottom:2px solid #e5e7eb;padding-bottom:12px}.floor-section{margin-bottom:24px}.floor-section:last-child{margin-bottom:0}.floor-title{margin:0 0 12px;font-size:18px;font-weight:600;color:#374151}.department-section{margin-bottom:16px}.department-title{margin:0 0 8px;font-size:16px;font-weight:500;color:#4b5563}.category-section{margin-bottom:12px}.category-title{margin:0 0 8px;font-size:14px;font-weight:500;color:#6b7280}.quotation-items-table{width:100%;border-collapse:collapse;margin-bottom:16px}.quotation-items-table thead{background:#f9fafb}.quotation-items-table th{padding:10px 12px;text-align:left;font-weight:600;font-size:13px;color:#374151;border-bottom:1px solid #e5e7eb}.quotation-items-table td{padding:10px 12px;border-bottom:1px solid #e5e7eb;font-size:14px}.quotation-items-table tbody tr:hover{background:#f9fafb}.editable-input{width:100px;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.editable-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.editable-input:disabled{background:#f3f4f6;cursor:not-allowed}.boq-template-list-page{padding:24px}.boq-template-list-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.boq-template-list-page .page-header h1{margin:0;color:#111827;font-size:24px;font-weight:600}.boq-template-list-container{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.boq-template-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.filters{display:flex;gap:12px;flex-wrap:wrap}.search-box{flex:1;min-width:200px;max-width:300px}.search-input{width:100%;padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px}.search-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.loading,.empty-state{text-align:center;padding:40px;color:#6b7280}.boq-template-table-wrapper{overflow-x:auto}.boq-template-table{width:100%;border-collapse:collapse}.boq-template-table thead{background:#f9fafb}.boq-template-table th{padding:12px;text-align:left;font-weight:600;color:#374151;font-size:14px;border-bottom:2px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.boq-template-table th:hover{background:#f3f4f6}.boq-template-table td{padding:12px;border-bottom:1px solid #e5e7eb;font-size:14px;color:#111827}.boq-template-table tbody tr:hover{background:#f9fafb}.template-name{font-weight:500;color:#111827}.btn-icon.btn-view{color:#2563eb}.btn-icon.btn-view:hover{background:#dbeafe}.btn-icon.btn-finalize{color:#f59e0b}.btn-icon.btn-finalize:hover{background:#fef3c7}.btn-icon.btn-activate{color:#10b981}.btn-icon.btn-activate:hover{background:#d1fae5}.btn-icon.btn-clone{color:#6366f1}.btn-icon.btn-clone:hover{background:#e0e7ff}.pagination-controls{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:16px;border-top:1px solid #e5e7eb;flex-wrap:wrap;gap:16px}.pagination-info{color:#6b7280;font-size:14px}.pagination-buttons{display:flex;gap:8px;align-items:center}.pagination-page-info{color:#6b7280;font-size:14px;padding:0 12px}.pagination-page-size{display:flex;align-items:center;gap:8px}.pagination-page-size label{color:#6b7280;font-size:14px}.page-size-select{padding:6px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;background:#fff;cursor:pointer}.page-size-select:focus{outline:none;border-color:#2563eb}.btn-sm{padding:6px 12px;font-size:12px}.import-departments-form{display:flex;flex-direction:column;gap:20px}.form-description{color:#6b7280;font-size:14px;margin-bottom:8px}.departments-list{display:flex;flex-direction:column;gap:12px;max-height:400px;overflow-y:auto;padding:8px;border:1px solid #e5e7eb;border-radius:6px;background:#f9fafb}.department-checkbox{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border-radius:6px;cursor:pointer;transition:all .2s;border:1px solid transparent}.department-checkbox:hover{background:#f3f4f6;border-color:#d1d5db}.department-checkbox input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2563eb}.department-checkbox span{font-size:14px;color:#111827;font-weight:500}.empty-state{text-align:center;padding:40px;color:#6b7280}.error-message{color:#dc2626;font-size:14px;padding:12px;background:#fef2f2;border-radius:6px;border:1px solid #fecaca}.add-manual-item-form{display:flex;flex-direction:column;gap:20px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer;accent-color:#2563eb}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s;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.error,.form-group select.error,.form-group textarea.error{border-color:#dc2626}.form-group textarea{resize:vertical;min-height:80px}.form-group select:disabled{background:#f3f4f6;cursor:not-allowed;color:#6b7280}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.error-message{color:#dc2626;font-size:12px;margin-top:4px}.form-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid #e5e7eb}@media (max-width: 640px){.form-row{grid-template-columns:1fr}}.boq-item-rate-matrix{display:flex;flex-direction:column;gap:1.5rem}.matrix-header{border-bottom:1px solid #e5e7eb;padding-bottom:1rem}.item-info{display:flex;flex-direction:column;gap:.5rem}.item-code,.item-description{margin:0;font-size:.875rem;color:#374151}.item-code strong,.item-description strong{color:#111827}.error-message{padding:.75rem 1rem;background-color:#fee2e2;border:1px solid #fecaca;border-radius:.375rem;color:#991b1b;font-size:.875rem}.loading-state,.empty-state{padding:2rem;text-align:center;color:#6b7280}.rates-table-wrapper{overflow-x:auto}.rates-table{width:100%;border-collapse:collapse}.rates-table thead{background-color:#f9fafb}.rates-table th{padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.875rem;color:#374151;border-bottom:2px solid #e5e7eb}.rates-table td{padding:1rem;border-bottom:1px solid #e5e7eb}.rates-table tbody tr:hover{background-color:#f9fafb}.rates-table tbody tr.changed{background-color:#fef3c7}.package-badge{display:inline-block;padding:.25rem .75rem;border-radius:.375rem;font-size:.875rem;font-weight:500;margin-right:.5rem}.badge-green{background-color:#d1fae5;color:#065f46}.badge-blue{background-color:#dbeafe;color:#1e40af}.badge-purple{background-color:#e9d5ff;color:#6b21a8}.badge-gray{background-color:#f3f4f6;color:#374151}.package-code{font-size:.75rem;color:#6b7280}.rate-input{width:150px;padding:.5rem .75rem;border:1px solid #d1d5db;border-radius:.375rem;font-size:.875rem;transition:border-color .2s,box-shadow .2s}.rate-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.rate-input:invalid{border-color:#ef4444}.change-indicator{margin-left:.5rem;color:#f59e0b;font-weight:700;font-size:1.125rem}.matrix-footer{border-top:1px solid #e5e7eb;padding-top:1rem}.footer-actions{display:flex;justify-content:flex-end;gap:.75rem}.btn{padding:.5rem 1.5rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-secondary{background-color:#f3f4f6;color:#374151}.btn-secondary:hover:not(:disabled){background-color:#e5e7eb}.btn-primary{background-color:#3b82f6;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2563eb}.template-items-table-wrapper{overflow-x:auto}.template-items-table{width:100%;border-collapse:collapse}.template-items-table thead{background:#f9fafb}.template-items-table th{padding:12px;text-align:left;font-weight:600;color:#374151;font-size:14px;border-bottom:2px solid #e5e7eb;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.template-items-table th:hover{background:#f3f4f6}.template-items-table td{padding:12px;border-bottom:1px solid #e5e7eb;font-size:14px;color:#111827}.template-items-table tbody tr:hover{background:#f9fafb}.template-items-table tbody tr.editing-row{background:#fef3c7}.edit-input{width:100%;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:14px}.edit-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.badge{padding:4px 8px;border-radius:4px;font-size:12px;font-weight:500;display:inline-block}.badge-optional{background:#fef3c7;color:#92400e}.badge-required{background:#dbeafe;color:#1e40af}.action-buttons{display:flex;gap:8px;align-items:center}.btn-icon{background:none;border:none;cursor:pointer;padding:6px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#6b7280;transition:all .2s}.btn-icon:hover{background:#f3f4f6;color:#111827}.btn-icon.btn-edit{color:#2563eb}.btn-icon.btn-edit:hover{background:#dbeafe}.btn-icon.btn-save{color:#10b981}.btn-icon.btn-save:hover{background:#d1fae5}.btn-icon.btn-cancel{color:#6b7280}.btn-icon.btn-cancel:hover{background:#f3f4f6}.btn-icon.btn-delete{color:#dc2626}.btn-icon.btn-delete:hover{background:#fee2e2}.template-items-empty{text-align:center;padding:40px;color:#6b7280}.template-items-empty p{margin:0;font-size:14px}.rate-cell{display:flex;align-items:center;gap:8px}.rate-display{flex:1}.btn-rate-matrix{display:flex;align-items:center;gap:6px;padding:6px 12px;background-color:#3b82f6;color:#fff;border:none;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:background-color .2s}.btn-rate-matrix:hover{background-color:#2563eb}.btn-rate-matrix-icon{background:none;border:none;cursor:pointer;padding:4px;border-radius:4px;display:flex;align-items:center;justify-content:center;color:#3b82f6;transition:all .2s}.btn-rate-matrix-icon:hover{background-color:#dbeafe;color:#2563eb}.boq-template-detail-page{padding:24px}.boq-template-detail-page .page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;flex-wrap:wrap;gap:16px}.btn-back{padding:8px 16px;background:#fff;border:1px solid #d1d5db;color:#374151;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:6px}.btn-back:hover{background:#f9fafb;border-color:#9ca3af}.header-actions{display:flex;gap:12px;flex-wrap:wrap}.btn-primary:hover{background:#1d4ed8}.btn-warning{background:#f59e0b;color:#fff}.btn-warning:hover{background:#d97706}.btn-success{background:#10b981;color:#fff}.btn-success:hover{background:#059669}.btn-secondary:hover{background:#4b5563}.template-info{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;margin-bottom:24px}.info-section h2{margin:0 0 16px;color:#111827;font-size:24px;font-weight:600}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:16px}.info-item label{font-size:12px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.5px}.info-item span{font-size:14px;color:#111827}.status-badges{display:flex;gap:8px;flex-wrap:wrap}.status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:500;display:inline-block}.status-badge.status-draft{background:#fef3c7;color:#92400e}.status-badge.status-finalized{background:#dbeafe;color:#1e40af}.status-badge.status-active{background:#d1fae5;color:#065f46}.read-only-notice{background:#fef3c7;border:1px solid #fbbf24;border-radius:6px;padding:12px 16px;margin-top:16px}.read-only-notice p{margin:0;color:#92400e;font-size:14px}.template-items-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a}.template-items-section h3{margin:0 0 16px;color:#111827;font-size:18px;font-weight:600}.loading,.error-message{text-align:center;padding:40px;color:#6b7280}.error-message{color:#dc2626}.wizard-step{display:flex;flex-direction:column;gap:24px}.step-header{margin-bottom:8px}.step-header h2{margin:0 0 8px;font-size:24px;font-weight:600;color:#111827}.step-header p{margin:0;color:#6b7280;font-size:14px}.step-form,.step-content{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:#374151}.required{color:#dc2626}.form-group input[type=text],.form-group select{padding:10px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;transition:all .2s}.form-group input[type=text]:focus,.form-group select:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 3px #2563eb1a}.form-group input.error,.form-group select.error{border-color:#dc2626}.error-message{color:#dc2626;font-size:12px}.loading-hint,.form-hint{color:#6b7280;font-size:12px;font-style:italic}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px;color:#374151}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label-small{display:flex;align-items:center;justify-content:center;cursor:pointer}.checkbox-label-small input[type=checkbox]{width:16px;height:16px;cursor:pointer}.warning-message{background:#fef3c7;border:1px solid #f59e0b;border-radius:6px;padding:12px 16px;color:#92400e}.warning-message strong{display:block;margin-bottom:4px}.warning-message p{margin:0;font-size:13px}.step-actions{display:flex;justify-content:space-between;gap:12px;padding-top:24px;border-top:1px solid #e5e7eb}.btn{padding:10px 20px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.btn-primary{background:#2563eb;color:#fff}.btn-primary:hover:not(:disabled){background:#1d4ed8}.btn-secondary{background:#6b7280;color:#fff}.btn-secondary:hover:not(:disabled){background:#4b5563}.btn-large{padding:14px 28px;font-size:16px}.btn:disabled{opacity:.5;cursor:not-allowed}.load-template-section{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;gap:16px}.loading-message{color:#6b7280;font-size:14px}.template-editor{display:flex;flex-direction:column;gap:20px}.editor-header{margin-bottom:8px}.editor-header h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#111827}.editor-header p{margin:0;color:#6b7280;font-size:13px}.accordion-tree{display:flex;flex-direction:column;gap:8px;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.accordion-item{border-bottom:1px solid #e5e7eb}.accordion-item:last-child{border-bottom:none}.accordion-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:#f9fafb;cursor:pointer;transition:background .2s}.accordion-header:hover{background:#f3f4f6}.accordion-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#111827;flex:1;text-align:left;padding:0}.toggle-icon{width:16px;color:#6b7280;font-size:12px}.department-name{font-weight:600}.include-checkbox{display:flex;align-items:center;gap:6px;font-size:13px;color:#374151;cursor:pointer}.include-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.accordion-content{padding:16px;background:#fff}.category-item{margin-bottom:16px}.category-item:last-child{margin-bottom:0}.category-header{margin-bottom:12px}.category-toggle{display:flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;font-size:14px;font-weight:500;color:#374151;padding:0}.category-name{font-weight:500}.category-content{margin-left:24px}.items-table{width:100%;border-collapse:collapse;font-size:13px}.items-table thead{background:#f9fafb}.items-table th{padding:10px 12px;text-align:left;font-weight:600;color:#374151;font-size:12px;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid #e5e7eb}.items-table td{padding:10px 12px;border-bottom:1px solid #f3f4f6;color:#111827}.items-table tbody tr:hover{background:#f9fafb}.rate-input{width:100px;padding:6px 8px;border:1px solid #d1d5db;border-radius:4px;font-size:13px}.rate-input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 2px #2563eb1a}.summary-section{background:#f9fafb;border-radius:8px;padding:20px;margin-bottom:24px}.summary-section h3{margin:0 0 16px;font-size:18px;font-weight:600;color:#111827}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.summary-item{display:flex;flex-direction:column;gap:4px}.summary-item label{font-size:12px;font-weight:500;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.summary-item span{font-size:14px;font-weight:500;color:#111827}.creation-steps{margin-top:24px}.creation-steps h3{margin:0 0 12px;font-size:18px;font-weight:600;color:#111827}.steps-list{margin:0;padding-left:20px;color:#374151;font-size:14px}.steps-list li{margin-bottom:8px}.steps-list li:last-child{margin-bottom:0}@media (max-width: 768px){.summary-grid{grid-template-columns:1fr}.items-table{font-size:12px}.items-table th,.items-table td{padding:8px}}.create-template-wizard{padding:24px;max-width:1200px;margin:0 auto}.wizard-header{margin-bottom:32px}.wizard-header h1{margin:0 0 24px;font-size:28px;font-weight:600;color:#111827}.wizard-steps{display:flex;align-items:center;justify-content:center;gap:8px;margin-bottom:32px}.step-indicator{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:120px}.step-number{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:16px;background:#e5e7eb;color:#6b7280;border:2px solid #e5e7eb;transition:all .3s}.step-indicator.active .step-number{background:#2563eb;color:#fff;border-color:#2563eb}.step-indicator.completed .step-number{background:#10b981;color:#fff;border-color:#10b981}.step-label{font-size:14px;color:#6b7280;font-weight:500}.step-indicator.active .step-label{color:#2563eb;font-weight:600}.step-indicator.completed .step-label{color:#10b981}.step-connector{width:60px;height:2px;background:#e5e7eb;margin:0 8px}.step-connector.completed{background:#10b981}.wizard-content{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a;min-height:400px}@media (max-width: 768px){.wizard-steps{flex-wrap:wrap}.step-connector{display:none}.wizard-content{padding:20px}}.boq-review{margin-top:4px}.boq-review-intro{margin:0 0 14px;font-size:14px;color:#4b5563}.boq-review-toolbar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:16px;padding:12px 14px;background:#f9fafb;border:1px solid #e5e7eb;border-radius:10px}.boq-review-search{flex:1 1 220px;min-width:180px;padding:8px 12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px}.boq-review-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}.btn-sm{padding:6px 12px;font-size:13px}.boq-review-sync{display:inline-flex;align-items:center;gap:8px;font-size:13px;color:#374151;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.boq-review-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.boq-review-main{min-width:0}.boq-block{border:1px solid #e5e7eb;border-radius:10px;margin-bottom:14px;background:#fff;overflow:hidden}.boq-block-head{width:100%;display:flex;align-items:center;gap:10px;padding:12px 14px;text-align:left;border:none;background:#f3f4f6;cursor:pointer;font:inherit}.boq-block-head:hover{background:#e5e7eb}.boq-block-chevron{font-size:12px;color:#6b7280;width:16px}.boq-block-title{flex:1;font-weight:700;font-size:1.05rem;color:#111827}.boq-block-total{font-size:13px;color:#374151}.boq-floor-wrap{border-top:1px solid #e5e7eb;content-visibility:auto}.boq-floor-head{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px 10px 22px;text-align:left;border:none;background:#fafafa;cursor:pointer;font:inherit}.boq-floor-head:hover{background:#f3f4f6}.boq-floor-chevron{font-size:11px;color:#6b7280;width:14px}.boq-floor-title{flex:1;font-weight:600;font-size:.95rem;color:#1f2937}.boq-floor-total{font-size:13px;color:#4b5563}.boq-floor-body{padding:0 14px 14px 36px;background:#fff}.boq-dept{margin-top:14px}.boq-dept:first-child{margin-top:8px}.boq-dept-head{display:flex;align-items:center;gap:8px;margin-bottom:8px}.boq-dept-icon{font-size:1.1rem;line-height:1}.boq-dept-name{font-weight:600;font-size:.92rem;color:#374151}.boq-cat{margin-bottom:12px}.boq-cat-name{font-size:.78rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;margin-bottom:6px}.boq-table-scroll{overflow-x:auto;border:1px solid #e5e7eb;border-radius:8px;background:#fff}.boq-table{width:100%;border-collapse:collapse;font-size:13px}.boq-table th,.boq-table td{padding:8px 10px;border-bottom:1px solid #f3f4f6;text-align:left}.boq-table th{background:#f9fafb;font-weight:600;color:#374151;white-space:nowrap}.boq-table th:nth-child(3),.boq-table th:nth-child(5),.boq-table td:nth-child(3),.boq-table td:nth-child(5){text-align:right}.qgen-boq-tr--edited td{background:#fffbeb}.qgen-qty-input{width:100%;min-width:88px;max-width:120px;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}.qgen-remarks-input{width:100%;min-width:140px;padding:6px 8px;border:1px solid #d1d5db;border-radius:6px;font-size:13px}.qgen-qty-input::-moz-placeholder{color:#9ca3af}.qgen-qty-input::placeholder{color:#9ca3af}.boq-review-empty{padding:24px;text-align:center;color:#6b7280}.boq-review-sidebar{position:sticky;top:88px;align-self:start}.boq-summary-card{border:1px solid #e5e7eb;border-radius:10px;padding:14px 16px;background:#fff;box-shadow:0 1px 3px #0000000f}.boq-summary-title{margin:0 0 12px;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#6b7280}.boq-summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;font-size:14px;color:#374151}.boq-summary-row--grand{margin-top:8px;padding-top:12px;border-top:1px solid #e5e7eb;font-size:16px;font-weight:700;color:#1d4ed8}.boq-summary-floorwise{margin-top:10px;border-top:1px solid #e5e7eb;padding-top:10px}.boq-summary-floorwise h5{margin:0 0 6px;font-size:12px;color:#6b7280;text-transform:uppercase;letter-spacing:.04em}@media (max-width: 960px){.boq-review-layout{grid-template-columns:1fr}.boq-review-sidebar{position:relative;top:0;order:-1}}.quotation-editor-page{display:flex;flex-direction:column;gap:12px;overflow:visible;min-width:0;padding-bottom:24px}.quotation-editor-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.quotation-editor-header h2{margin:0}.quotation-editor-header p{margin:4px 0 0;color:#6b7280}.quotation-editor-back-btn{margin-bottom:8px}.header-controls{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.header-controls select,.header-controls input{border:1px solid #d1d5db;border-radius:6px;padding:6px 8px}.rate-toggle{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#111827}.revision-mode{border-radius:9999px;padding:4px 10px;font-size:12px;font-weight:700}.revision-mode.editable{background:#dcfce7;color:#166534}.revision-mode.readonly{background:#fee2e2;color:#991b1b}.quotation-editor-layout{display:grid;grid-template-columns:280px 1fr;gap:12px;align-items:start;min-height:0}.left-tree-panel{border:1px solid #e5e7eb;border-radius:8px;padding:10px;background:#fff;align-self:start}.tree-block+.tree-block{margin-top:10px}.tree-collapse-btn{margin-top:6px;border:1px solid #e5e7eb;background:#f8fafc;border-radius:6px;font-size:12px;padding:4px 8px;cursor:pointer}.tree-node{width:100%;text-align:left;border:1px solid transparent;border-radius:6px;padding:6px 8px;cursor:pointer;background:transparent}.tree-node.block{font-weight:700}.tree-node.floor{margin-left:10px}.tree-node.active{border-color:#bfdbfe;background:#eff6ff}.right-grid-panel{border:1px solid #e5e7eb;border-radius:8px;padding:10px;overflow-x:auto;overflow-y:visible;background:#fff;min-width:0}.boq-grid{width:100%;border-collapse:collapse}.boq-grid th,.boq-grid td{border-bottom:1px solid #f3f4f6;padding:8px}.boq-grid thead th{position:sticky;top:0;background:#f8fafc;z-index:1}.boq-grid input{width:110px;border:1px solid #d1d5db;border-radius:6px;padding:6px}.group-row{background:#f9fafb;font-weight:700}.group-row.category{background:#fcfcfd;font-weight:600}.group-toggle{border:none;background:transparent;cursor:pointer;font-weight:inherit;padding:0}tr.changed{background:#fffbeb}.changed-cell{background:#fff7cc}.override-chip{margin-left:8px;border:1px solid #f59e0b;color:#92400e;background:#fffbeb;border-radius:9999px;padding:2px 8px;font-size:11px;font-weight:700}.bottom-totals{border:1px solid #e5e7eb;border-radius:8px;background:#fff;padding:10px 12px;display:grid;grid-template-columns:repeat(6,minmax(130px,1fr));gap:8px}.totals-row{display:flex;flex-direction:column;gap:4px}.totals-row.grand-total{color:#1d4ed8}.totals-row input{width:100%;border:1px solid #d1d5db;border-radius:6px;padding:6px}@media (max-width: 768px){.quotation-editor-layout{grid-template-columns:1fr}.quotation-editor-header{flex-direction:column;align-items:stretch}.bottom-totals{grid-template-columns:repeat(2,minmax(0,1fr))}}.project-overview-page{padding:20px}.page-header{margin-bottom:24px}.page-header h1{margin:0;font-size:24px;font-weight:600}.project-summary{display:flex;flex-direction:column;gap:24px}.summary-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 1px 3px #0000001a}.summary-card h3{margin:0 0 20px;font-size:18px;font-weight:600;color:#1f2937;border-bottom:2px solid #e5e7eb;padding-bottom:8px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item label{font-weight:500;color:#6b7280;font-size:14px}.info-item span{color:#1f2937;font-size:16px}.status-badge{display:inline-block;padding:4px 12px;border-radius:4px;font-size:12px;font-weight:500}.status-badge.status-planning{background:#fef3c7;color:#92400e}.status-badge.status-in-progress{background:#dbeafe;color:#1e40af}.status-badge.status-on-hold{background:#f3f4f6;color:#374151}.status-badge.status-completed{background:#d1fae5;color:#065f46}.status-badge.status-cancelled{background:#fee2e2;color:#991b1b}.financial-grid{display:flex;flex-direction:column;gap:16px}.financial-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid #e5e7eb}.financial-item:last-child{border-bottom:none}.financial-item label{font-weight:500;color:#6b7280;font-size:14px}.financial-value{font-weight:600;color:#1f2937;font-size:18px}.boq-snapshot{padding:16px;background:#f9fafb;border-radius:6px}.boq-note{margin:0;color:#6b7280;font-size:14px;font-style:italic}.loading,.error-state{text-align:center;padding:48px;color:#6b7280}.error-state{color:#dc2626}.project-analytics-dashboard-page{padding:20px;position:relative}.dashboard-sticky-header{position:sticky;top:0;z-index:20;background:#fffffff2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #e5e7eb;border-radius:12px;margin-bottom:16px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px}.sticky-left{display:flex;align-items:center;gap:10px}.back-button{border:1px solid #cbd5e1;background:#fff;color:#1f2937;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;cursor:pointer}.back-button:hover{background:#f8fafc}.sticky-right{font-size:13px;color:#334155;font-weight:600}.analytics-state-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;color:#334155}.analytics-state-card.error{border-color:#fecaca;color:#991b1b}.analytics-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.analytics-card{grid-column:span 12;background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px}.project-header-card h1{margin:0 0 12px;font-size:24px;color:#0f172a}.header-controls{margin-top:14px}.range-filter-group{display:flex;gap:8px}.range-filter{border:1px solid #cbd5e1;background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;cursor:pointer}.range-filter.active{border-color:#1d4ed8;color:#1d4ed8;background:#eff6ff}.header-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.metric-label{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.section-title-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.health-card.safe{border-left:4px solid #16a34a}.health-card.warning{border-left:4px solid #f97316}.health-card.risk{border-left:4px solid #dc2626}.health-badge{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.health-badge.safe{background:#dcfce7;color:#166534}.health-badge.warning{background:#ffedd5;color:#9a3412}.health-badge.risk{background:#fee2e2;color:#991b1b}.health-grid{margin-top:12px;display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.health-grid span{display:block;color:#64748b;font-size:12px}.trend-indicator{margin-top:12px;display:inline-flex;align-items:center;gap:8px;border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}.trend-indicator.up{background:#fee2e2;color:#b91c1c}.trend-indicator.down{background:#dcfce7;color:#166534}.insight-list{display:grid;gap:10px}.insight-item{display:flex;align-items:center;gap:8px;padding:10px;border-radius:8px;border-left:4px solid transparent}.insight-text{flex:1}.insight-pill{border-radius:999px;font-size:11px;padding:2px 8px;font-weight:600;background:#f1f5f9;color:#334155}.insight-pill.type{background:#e2e8f0}.insight-item.high{background:#fef2f2;color:#991b1b;border-left-color:#dc2626}.insight-item.medium{background:#ffedd5;color:#9a3412;border-left-color:#f97316}.insight-item.low{background:#fefce8;color:#854d0e;border-left-color:#facc15}.boq-list{display:grid;gap:10px}.boq-row{display:grid;grid-template-columns:minmax(180px,1.5fr) 1fr 1fr 1fr;gap:10px;border:1px solid #e5e7eb;border-radius:8px;padding:10px;font-size:13px;width:100%;text-align:left;background:#fff;cursor:pointer}.boq-row.overrun{border-color:#fdba74;background:#fff7ed}.boq-name,.boq-variance{font-weight:600}.forecast-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.forecast-grid span{display:block;color:#64748b;font-size:12px;margin-bottom:4px}.forecast-grid .shortfall strong{color:#b91c1c}.forecast-grid .safe strong{color:#166534}.cost-bars{display:grid;gap:12px}.cost-row{display:grid;grid-template-columns:100px 1fr 120px;align-items:center;gap:12px;font-size:13px}.cost-bar-track{height:10px;background:#e5e7eb;border-radius:999px;overflow:hidden}.cost-bar-fill{height:100%;background:#64748b;border-radius:999px}.cost-value{text-align:right;font-weight:600}.recommendation-list{margin:0;padding-left:18px;color:#1f2937}.recommendation-list.actionable{list-style:none;padding-left:0;display:grid;gap:10px}.recommendation-list.actionable li{border:1px solid #e5e7eb;border-radius:8px;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.recommendation-actions{display:flex;gap:8px}.recommendation-actions button{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.action-message{margin-top:10px;color:#1d4ed8;font-size:12px}.muted{margin:0;color:#64748b}.burn-rate-note{margin-top:10px}.boq-detail-panel{position:fixed;right:16px;top:90px;width:320px;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 10px 24px #0f172a1f;z-index:30}.boq-detail-header{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;border-bottom:1px solid #e5e7eb}.boq-detail-header h3{margin:0;font-size:16px}.boq-detail-header button{border:none;background:transparent;cursor:pointer;font-size:16px}.boq-detail-body{padding:12px;display:grid;gap:10px}.boq-detail-body span{display:block;color:#64748b;font-size:12px}@media (max-width: 900px){.boq-row{grid-template-columns:1fr}.dashboard-sticky-header{flex-direction:column;align-items:flex-start}.boq-detail-panel{position:static;width:100%;margin-top:16px}}.logo{display:flex;align-items:center;gap:12px;font-weight:700;-webkit-user-select:none;-moz-user-select:none;user-select:none}.logo-icon{display:flex;align-items:center;justify-content:center;flex-shrink:0}.logo-svg{display:block;width:100%;height:100%}.logo-text{display:flex;flex-direction:column;line-height:1.2}.logo-text-primary{color:#111827;font-size:inherit;font-weight:700;letter-spacing:-.5px}.logo-text-secondary{color:#2563eb;font-size:.75em;font-weight:600;letter-spacing:.5px;text-transform:uppercase}.logo-small{font-size:18px}.logo-small .logo-icon{width:32px;height:32px}.logo-medium{font-size:24px}.logo-medium .logo-icon{width:48px;height:48px}.logo-large{font-size:36px}.logo-large .logo-icon{width:72px;height:72px}.logo-icon{animation:logoFloat 3s ease-in-out infinite}@keyframes logoFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.logo:hover .logo-icon{animation:logoFloat 1s ease-in-out infinite}.logo:hover .logo-text-primary{color:#2563eb;transition:color .3s ease}@media (max-width: 768px){.logo-medium{font-size:20px}.logo-medium .logo-icon{width:40px;height:40px}.logo-large{font-size:28px}.logo-large .logo-icon{width:56px;height:56px}}.auth-container{min-height:calc(100vh - 100px);display:flex;align-items:center;justify-content:center;padding:20px;background:linear-gradient(135deg,#667eea,#764ba2)}.auth-card{background:#fff;border-radius:16px;padding:40px;width:100%;max-width:450px;box-shadow:0 10px 40px #0003}.auth-logo{display:flex;justify-content:center;margin-bottom:24px}.auth-card h1{margin:0 0 8px;color:#111827;font-size:28px;text-align:center}.auth-subtitle{text-align:center;color:#6b7280;margin:0 0 32px;font-size:14px}.auth-form{display:flex;flex-direction:column}.auth-form .form-group{margin-bottom:20px}.auth-form label{display:block;margin-bottom:8px;font-weight:600;color:#374151;font-size:14px}.auth-form input{width:100%;padding:12px;border:1px solid #d1d5db;border-radius:8px;font-size:14px;font-family:inherit;transition:border-color .2s,box-shadow .2s}.auth-form input:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.auth-form input.error{border-color:#dc2626}.auth-form input.error:focus{box-shadow:0 0 0 3px #dc26261a}.auth-form input:disabled{background:#f3f4f6;cursor:not-allowed}.error-message{display:block;color:#dc2626;font-size:12px;margin-top:4px}.auth-error{background:#fee2e2;color:#991b1b;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;border-left:4px solid #dc2626}.auth-success{background:#d1fae5;color:#065f46;padding:12px;border-radius:8px;margin-bottom:20px;font-size:14px;border-left:4px solid #10b981}.btn-block{width:100%;padding:12px;font-size:16px;font-weight:600;margin-top:8px}.forgot-password-link{color:#667eea;text-decoration:none;font-size:14px;font-weight:500}.forgot-password-link:hover{text-decoration:underline}.auth-footer{margin-top:24px;text-align:center;font-size:14px;color:#6b7280}.auth-footer a{color:#667eea;text-decoration:none;font-weight:600}.auth-footer a:hover{text-decoration:underline}@media (max-width: 768px){.auth-container{padding:16px}.auth-card{padding:24px}.auth-card h1{font-size:24px}}.unauthorized-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);padding:20px}.unauthorized-content{text-align:center;background:#fff;padding:60px 40px;border-radius:12px;box-shadow:0 10px 40px #0003;max-width:500px;width:100%}.unauthorized-content h1{font-size:120px;font-weight:700;color:#667eea;margin:0;line-height:1}.unauthorized-content h2{font-size:32px;color:#333;margin:20px 0 10px}.unauthorized-content p{font-size:16px;color:#666;margin:10px 0;line-height:1.6}.unauthorized-subtitle{font-size:14px;color:#999;margin-top:20px}.btn-primary{margin-top:30px;padding:12px 32px;font-size:16px;font-weight:600;color:#fff;background:#667eea;border:none;border-radius:6px;cursor:pointer;transition:background .3s ease}.btn-primary:hover{background:#5568d3}.btn-primary:active{transform:translateY(1px)}.main-nav{background:var(--bg-primary);color:var(--text-primary);padding:var(--space-2) var(--space-5);display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);min-height:64px;height:auto;box-shadow:0 1px 3px #0000000d;position:sticky;top:0;z-index:var(--z-sticky);border-bottom:1px solid var(--border-light);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff2}.nav-brand{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--primary-600);letter-spacing:-.2px;display:flex;align-items:center;gap:var(--space-1);white-space:nowrap;transition:color var(--transition-base);flex-shrink:0}.nav-brand:before{content:"🏗️";font-size:var(--text-lg);filter:none}.nav-brand:hover{color:var(--primary-700)}.nav-links{display:flex;flex:1;flex-wrap:wrap;justify-content:center;justify-content:safe center;align-items:center;align-content:center;min-width:0;row-gap:6px;-moz-column-gap:clamp(4px,.5vw,var(--space-2));column-gap:clamp(4px,.5vw,var(--space-2))}.nav-links a{color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:all var(--transition-base);text-decoration:none;position:relative;white-space:nowrap;z-index:1}.nav-links a:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);background:var(--bg-secondary);opacity:0;transition:opacity var(--transition-base);z-index:-1}.nav-links a:hover{color:var(--text-primary)}.nav-links a:hover:before{opacity:1}.nav-links a.active{color:var(--primary-600);font-weight:var(--font-semibold);background:var(--primary-50)}.nav-links a.active:before{opacity:0}.nav-user{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.user-name{font-size:var(--text-sm);color:var(--text-secondary);font-weight:var(--font-medium)}.company-name{font-size:var(--text-xs);font-weight:var(--font-semibold);color:var(--text-tertiary);text-transform:uppercase;letter-spacing:.5px;margin-right:var(--space-3);padding-right:var(--space-3);border-right:1px solid var(--border-light)}.user-menu-trigger{background:transparent;border:none;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-medium);transition:all var(--transition-base)}.user-menu-trigger:hover{background:var(--bg-secondary);color:var(--text-primary)}.btn-logout{padding:var(--space-2) var(--space-4);background:var(--error);color:var(--text-inverse);border:none;border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-base);box-shadow:none}.btn-logout:hover{background:#dc2626;box-shadow:var(--shadow-sm)}.user-menu-dropdown{position:absolute;top:calc(100% + var(--space-2));right:0;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);min-width:200px;z-index:var(--z-dropdown);border:1px solid var(--border-light);overflow:hidden;animation:slideDown .2s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.user-menu-header{padding:var(--space-4);border-bottom:1px solid var(--border-light);background:var(--bg-secondary)}.user-menu-name{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-1)}.user-menu-email{font-size:var(--text-xs);color:var(--text-tertiary)}.user-menu-item{width:100%;padding:var(--space-3) var(--space-4);background:transparent;border:none;text-align:left;font-size:var(--text-sm);color:var(--text-primary);cursor:pointer;transition:all var(--transition-base);display:block}.user-menu-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.user-menu-item-danger{border-top:1px solid var(--border-light);color:var(--error)}.user-menu-item-danger:hover{background:var(--error-light);color:var(--error)}.nav-dropdown{position:relative}.nav-dropdown-trigger{background:transparent;border:none;color:var(--text-secondary);font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;transition:all var(--transition-base);position:relative;z-index:1}.nav-dropdown-trigger:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--radius-lg);background:var(--bg-secondary);opacity:0;transition:opacity var(--transition-base);z-index:-1}.nav-dropdown-trigger:hover{color:var(--text-primary)}.nav-dropdown-trigger:hover:before{opacity:1}.nav-dropdown-trigger.active{color:var(--primary-600);font-weight:var(--font-semibold);background:var(--primary-50)}.nav-dropdown-trigger.active:before{opacity:0}.nav-dropdown-menu{position:absolute;top:calc(100% + var(--space-2));left:0;background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);min-width:180px;z-index:var(--z-dropdown);border:1px solid var(--border-light);overflow:hidden;animation:slideDown .2s ease-out;display:flex;flex-direction:column}.nav-dropdown-menu a{padding:var(--space-3) var(--space-4);color:var(--text-primary);text-decoration:none;font-size:var(--text-sm);transition:all var(--transition-base);display:block}.nav-dropdown-menu a:hover{background:var(--bg-secondary);color:var(--primary-600)}.nav-dropdown-menu a.active{background:var(--primary-50);color:var(--primary-600);font-weight:var(--font-semibold)}@media (max-width: 1024px){.main-nav{padding:0 var(--space-4);gap:var(--space-3)}.nav-brand{font-size:clamp(.9375rem,.82rem + .35vw,var(--text-lg))}}@media (max-width: 768px){.main-nav{padding:0 var(--space-4);flex-direction:column;align-items:stretch;height:auto;min-height:var(--nav-height);padding-top:var(--space-4);padding-bottom:var(--space-4)}.nav-brand{font-size:var(--text-lg);margin-bottom:var(--space-3)}.nav-links{flex-direction:row;flex-wrap:wrap;gap:var(--space-1);justify-content:flex-start;padding-bottom:var(--space-2);margin-bottom:var(--space-2)}.nav-links a{padding:var(--space-2) var(--space-3);font-size:clamp(.625rem,.52rem + .35vw,var(--text-xs));white-space:nowrap}.nav-user{justify-content:space-between;padding-top:var(--space-3);border-top:1px solid var(--border-light);margin-top:var(--space-2)}.company-name{margin-right:var(--space-2);padding-right:var(--space-2);font-size:10px}.container{padding:var(--space-4) var(--space-4)}}:root{--primary-50: #f0f9ff;--primary-100: #e0f2fe;--primary-200: #bae6fd;--primary-300: #7dd3fc;--primary-400: #38bdf8;--primary-500: #0ea5e9;--primary-600: #0284c7;--primary-700: #0369a1;--primary-800: #075985;--primary-900: #0c4a6e;--accent-orange: #f97316;--accent-green: #10b981;--accent-amber: #f59e0b;--accent-red: #ef4444;--accent-purple: #8b5cf6;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-300: #d1d5db;--gray-400: #9ca3af;--gray-500: #6b7280;--gray-600: #4b5563;--gray-700: #374151;--gray-800: #1f2937;--gray-900: #111827;--success: #10b981;--success-light: #d1fae5;--warning: #f59e0b;--warning-light: #fef3c7;--error: #ef4444;--error-light: #fee2e2;--info: #3b82f6;--info-light: #dbeafe;--bg-primary: #ffffff;--bg-secondary: #f9fafb;--bg-tertiary: #f3f4f6;--bg-dark: #111827;--bg-dark-secondary: #1f2937;--text-primary: #111827;--text-secondary: #4b5563;--text-tertiary: #6b7280;--text-inverse: #ffffff;--text-muted: #9ca3af;--border-light: #e5e7eb;--border-medium: #d1d5db;--border-dark: #9ca3af;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-mono: "SF Mono", Monaco, "Cascadia Code", "Roboto Mono", Consolas, "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--text-5xl: 3rem;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--radius-sm: .25rem;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--transition-slower: .5s cubic-bezier(.4, 0, .2, 1);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--nav-height: 72px;--sidebar-width: 280px;--container-max-width: 1400px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background:linear-gradient(135deg,#f5f7fa,#e9ecef);min-height:100vh;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:var(--font-bold);line-height:var(--leading-tight);color:var(--text-primary);margin:0}h1{font-size:var(--text-4xl)}h2{font-size:var(--text-3xl)}h3{font-size:var(--text-2xl)}h4{font-size:var(--text-xl)}h5{font-size:var(--text-lg)}h6{font-size:var(--text-base)}p{margin:0;line-height:var(--leading-relaxed);color:var(--text-secondary)}a{text-decoration:none;color:inherit;transition:color var(--transition-fast)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:var(--font-semibold);line-height:1;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--transition-base);position:relative;overflow:hidden;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff4d;transform:translate(-50%,-50%);transition:width .6s,height .6s}.btn:hover:before{width:300px;height:300px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-700) 100%);color:var(--text-inverse);box-shadow:var(--shadow-md)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-700) 0%,var(--primary-800) 100%);box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-primary:active:not(:disabled){box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border:2px solid var(--border-light);box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--bg-secondary);border-color:var(--border-medium);box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-success{background:linear-gradient(135deg,var(--success) 0%,#059669 100%);color:var(--text-inverse);box-shadow:var(--shadow-md)}.btn-success:hover:not(:disabled){box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-danger{background:linear-gradient(135deg,var(--error) 0%,#dc2626 100%);color:var(--text-inverse);box-shadow:var(--shadow-md)}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-lg);transform:translateY(-2px)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-base)}.btn-icon{padding:var(--space-2);background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center}.btn-icon:hover{background:var(--bg-tertiary)}.btn-edit{color:var(--primary-600)}.btn-edit:hover{background:var(--primary-50);color:var(--primary-700)}.btn-delete{color:var(--error)}.btn-delete:hover{background:var(--error-light);color:var(--error)}.card{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);padding:var(--space-6);transition:all var(--transition-base);border:1px solid var(--border-light)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-header{margin-bottom:var(--space-4);padding-bottom:var(--space-4);border-bottom:1px solid var(--border-light)}.card-title{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-2)}.card-subtitle{font-size:var(--text-sm);color:var(--text-tertiary)}.card-body{margin-bottom:var(--space-4)}.card-footer{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--border-light)}.form-group{margin-bottom:var(--space-5)}.form-label{display:block;font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-2)}.form-label .required{color:var(--error);margin-left:var(--space-1)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-primary);border:2px solid var(--border-light);border-radius:var(--radius-lg);transition:all var(--transition-base);outline:none}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--primary-500);box-shadow:0 0 0 3px #0ea5e91a}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--bg-tertiary);color:var(--text-tertiary);cursor:not-allowed}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--error)}.form-input.error:focus,.form-select.error:focus,.form-textarea.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-hint{display:block;font-size:var(--text-xs);color:var(--text-tertiary);margin-top:var(--space-1)}.form-error{display:block;font-size:var(--text-xs);color:var(--error);margin-top:var(--space-1)}.table-wrapper{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-md);overflow:hidden;border:1px solid var(--border-light)}.table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.table thead{background:linear-gradient(135deg,var(--gray-50) 0%,var(--bg-secondary) 100%);border-bottom:2px solid var(--border-light)}.table th{padding:var(--space-4) var(--space-5);text-align:left;font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;white-space:nowrap}.table td{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-light);color:var(--text-secondary)}.table tbody tr{transition:all var(--transition-fast)}.table tbody tr:hover{background:var(--bg-secondary)}.table tbody tr:last-child td{border-bottom:none}.badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);white-space:nowrap}.badge-success{background:var(--success-light);color:#065f46}.badge-warning{background:var(--warning-light);color:#92400e}.badge-error{background:var(--error-light);color:#991b1b}.badge-info{background:var(--info-light);color:#1e40af}.badge-primary{background:var(--primary-100);color:var(--primary-800)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-muted{color:var(--text-muted)}.font-light{font-weight:var(--font-light)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-5{margin-bottom:var(--space-5)}.mb-6{margin-bottom:var(--space-6)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.spinner{display:inline-block;width:20px;height:20px;border:3px solid rgba(0,0,0,.1);border-radius:50%;border-top-color:currentColor;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{text-align:center;padding:var(--space-12) var(--space-6);color:var(--text-tertiary)}.empty-state-icon{font-size:var(--text-5xl);margin-bottom:var(--space-4);opacity:.5}.empty-state-title{font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--text-secondary);margin-bottom:var(--space-2)}.empty-state-description{font-size:var(--text-sm);color:var(--text-tertiary)}.container{padding:var(--space-5) var(--space-5);max-width:var(--container-max-width);margin:0 auto;min-height:calc(100vh - 64px);background:transparent}.container:has(.quotation-editor-page){min-height:auto}.page-header{margin-bottom:var(--space-8);padding-bottom:var(--space-6);border-bottom:2px solid var(--border-light);display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap}.page-header h1{font-size:var(--text-3xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0;background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.page-header .page-actions{display:flex;gap:var(--space-3);align-items:center}@media (max-width: 768px){.container{padding:12px}}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:8px;border-bottom:1px solid #e5e7eb;font-size:14px}.button{padding:6px 12px;border-radius:4px;border:none;cursor:pointer;font-size:14px}.button-primary{background:#2563eb;color:#fff}.selector-wrapper{display:flex;gap:12px;margin-top:12px}.selector-column{flex:1;background:#fff;border-radius:8px;padding:8px;max-height:400px;overflow:auto}.selector-items{flex:2}.selector-title{font-size:13px;font-weight:600;margin-bottom:8px}.selector-pill{display:block;width:100%;text-align:left;padding:8px;border-radius:6px;border:none;background:#f3f4f6;margin-bottom:4px;cursor:pointer;font-size:13px}.selector-pill-active{background:#2563eb;color:#fff}.selector-pill-active-green{background:#16a34a;color:#fff}.selector-search{width:100%;padding:6px;margin-bottom:8px;border-radius:6px;border:1px solid #d1d5db;font-size:13px}.selector-item-row{display:flex;justify-content:space-between;align-items:center;padding:6px;border-radius:6px;background:#f9fafb;margin-bottom:6px;cursor:pointer}.selector-item-name{font-size:13px;font-weight:500}.selector-item-meta{font-size:11px;color:#6b7280}.selector-add-btn{border:none;border-radius:4px;padding:4px 10px;font-size:12px;background:#2563eb;color:#fff}.boq-table th,.boq-table td{font-size:12px}.selector-loading,.selector-error,.selector-empty{padding:20px;text-align:center;color:#6b7280;font-size:14px}.selector-error{color:#dc2626;background:#fee2e2;border-radius:6px;margin:8px}.selector-empty{color:#9ca3af;font-style:italic}th.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s;position:relative;padding-right:24px!important}th.sortable:hover{background-color:#f3f4f6}th.sortable:after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;opacity:.3;transition:opacity .2s}th.sortable.sort-asc:after{border-bottom:6px solid #6b7280;border-top:none;opacity:1}th.sortable.sort-desc:after{border-top:6px solid #6b7280;border-bottom:none;opacity:1}th.sortable:not(.sort-asc):not(.sort-desc):after{border-top:3px solid #9ca3af;border-bottom:3px solid #9ca3af;border-left:3px solid transparent;border-right:3px solid transparent;height:8px;width:0;opacity:.4}th.sortable:hover:after{opacity:.6}th.sortable.sort-asc:hover:after,th.sortable.sort-desc:hover:after{opacity:1}th.sortable:active{background-color:#e5e7eb}table thead th.sortable{white-space:nowrap}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.tw-mx-2{margin-left:.5rem;margin-right:.5rem}.tw-mb-1\.5{margin-bottom:.375rem}.tw-mt-0\.5{margin-top:.125rem}.tw-mt-1{margin-top:.25rem}.tw-mt-1\.5{margin-top:.375rem}.tw-block{display:block}.tw-inline-block{display:inline-block}.tw-flex{display:flex}.tw-inline-flex{display:inline-flex}.tw-grid{display:grid}.tw-h-2{height:.5rem}.tw-h-4{height:1rem}.tw-h-8{height:2rem}.tw-w-2{width:.5rem}.tw-w-24{width:6rem}.tw-w-4{width:1rem}.tw-w-8{width:2rem}.tw-w-full{width:100%}.tw-min-w-0{min-width:0px}.tw-max-w-xl{max-width:36rem}.tw-flex-1{flex:1 1 0%}.tw-shrink-0{flex-shrink:0}.tw-border-collapse{border-collapse:collapse}.tw-origin-right{transform-origin:right}.tw-scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.tw-cursor-pointer{cursor:pointer}.tw-grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.tw-flex-col{flex-direction:column}.tw-flex-wrap{flex-wrap:wrap}.tw-items-start{align-items:flex-start}.tw-items-center{align-items:center}.tw-items-baseline{align-items:baseline}.tw-justify-center{justify-content:center}.tw-justify-between{justify-content:space-between}.tw-gap-2{gap:.5rem}.tw-gap-2\.5{gap:.625rem}.tw-gap-3{gap:.75rem}.tw-gap-4{gap:1rem}.tw-gap-5{gap:1.25rem}.tw-space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.tw-space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.tw-space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.tw-space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.tw-space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.tw-divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.tw-divide-slate-100>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(241 245 249 / var(--tw-divide-opacity, 1))}.tw-self-start{align-self:flex-start}.tw-overflow-hidden{overflow:hidden}.tw-overflow-x-auto{overflow-x:auto}.tw-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tw-whitespace-nowrap{white-space:nowrap}.tw-rounded{border-radius:.25rem}.tw-rounded-2xl{border-radius:1rem}.tw-rounded-full{border-radius:9999px}.tw-rounded-lg{border-radius:.5rem}.tw-rounded-xl{border-radius:.75rem}.tw-border{border-width:1px}.tw-border-b{border-bottom-width:1px}.tw-border-l-4{border-left-width:4px}.tw-border-t{border-top-width:1px}.tw-border-amber-200{--tw-border-opacity: 1;border-color:rgb(253 230 138 / var(--tw-border-opacity, 1))}.tw-border-blue-200{--tw-border-opacity: 1;border-color:rgb(191 219 254 / var(--tw-border-opacity, 1))}.tw-border-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity, 1))}.tw-border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.tw-border-sky-300{--tw-border-opacity: 1;border-color:rgb(125 211 252 / var(--tw-border-opacity, 1))}.tw-border-slate-100{--tw-border-opacity: 1;border-color:rgb(241 245 249 / var(--tw-border-opacity, 1))}.tw-border-slate-200{--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1))}.tw-border-slate-200\/90{border-color:#e2e8f0e6}.tw-border-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity, 1))}.tw-border-l-blue-500{--tw-border-opacity: 1;border-left-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.tw-bg-amber-50{--tw-bg-opacity: 1;background-color:rgb(255 251 235 / var(--tw-bg-opacity, 1))}.tw-bg-amber-50\/30{background-color:#fffbeb4d}.tw-bg-blue-50{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.tw-bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.tw-bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.tw-bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.tw-bg-gray-50\/50{background-color:#f9fafb80}.tw-bg-green-50{--tw-bg-opacity: 1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1))}.tw-bg-sky-50{--tw-bg-opacity: 1;background-color:rgb(240 249 255 / var(--tw-bg-opacity, 1))}.tw-bg-slate-100{--tw-bg-opacity: 1;background-color:rgb(241 245 249 / var(--tw-bg-opacity, 1))}.tw-bg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.tw-bg-slate-50\/40{background-color:#f8fafc66}.tw-bg-slate-50\/80{background-color:#f8fafccc}.tw-bg-slate-50\/90{background-color:#f8fafce6}.tw-bg-slate-900{--tw-bg-opacity: 1;background-color:rgb(15 23 42 / var(--tw-bg-opacity, 1))}.tw-bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.tw-bg-yellow-200{--tw-bg-opacity: 1;background-color:rgb(254 240 138 / var(--tw-bg-opacity, 1))}.tw-bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.tw-bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.tw-from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) }.tw-from-slate-50\/95{--tw-gradient-from: rgb(248 250 252 / .95) var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) }.tw-to-white{--tw-gradient-to: #fff var(--tw-gradient-to-position) }.tw-p-3{padding:.75rem}.tw-p-4{padding:1rem}.tw-p-5{padding:1.25rem}.tw-px-0\.5{padding-left:.125rem;padding-right:.125rem}.tw-px-2{padding-left:.5rem;padding-right:.5rem}.tw-px-3{padding-left:.75rem;padding-right:.75rem}.tw-px-3\.5{padding-left:.875rem;padding-right:.875rem}.tw-px-4{padding-left:1rem;padding-right:1rem}.tw-px-5{padding-left:1.25rem;padding-right:1.25rem}.tw-py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.tw-py-1{padding-top:.25rem;padding-bottom:.25rem}.tw-py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.tw-py-2{padding-top:.5rem;padding-bottom:.5rem}.tw-py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.tw-py-3{padding-top:.75rem;padding-bottom:.75rem}.tw-py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.tw-py-4{padding-top:1rem;padding-bottom:1rem}.tw-py-5{padding-top:1.25rem;padding-bottom:1.25rem}.tw-py-6{padding-top:1.5rem;padding-bottom:1.5rem}.tw-pt-0{padding-top:0}.tw-pt-6{padding-top:1.5rem}.tw-text-left{text-align:left}.tw-text-center{text-align:center}.tw-text-right{text-align:right}.tw-text-2xl{font-size:1.5rem;line-height:2rem}.tw-text-\[11px\]{font-size:11px}.tw-text-base{font-size:1rem;line-height:1.5rem}.tw-text-lg{font-size:1.125rem;line-height:1.75rem}.tw-text-sm{font-size:.875rem;line-height:1.25rem}.tw-text-xs{font-size:.75rem;line-height:1rem}.tw-font-bold{font-weight:700}.tw-font-medium{font-weight:500}.tw-font-semibold{font-weight:600}.tw-uppercase{text-transform:uppercase}.tw-tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.tw-leading-relaxed{line-height:1.625}.tw-leading-snug{line-height:1.375}.tw-tracking-tight{letter-spacing:-.025em}.tw-tracking-wide{letter-spacing:.025em}.tw-text-amber-950{--tw-text-opacity: 1;color:rgb(69 26 3 / var(--tw-text-opacity, 1))}.tw-text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.tw-text-blue-900{--tw-text-opacity: 1;color:rgb(30 58 138 / var(--tw-text-opacity, 1))}.tw-text-emerald-600{--tw-text-opacity: 1;color:rgb(5 150 105 / var(--tw-text-opacity, 1))}.tw-text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.tw-text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.tw-text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.tw-text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.tw-text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.tw-text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.tw-text-slate-300{--tw-text-opacity: 1;color:rgb(203 213 225 / var(--tw-text-opacity, 1))}.tw-text-slate-400{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.tw-text-slate-500{--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity, 1))}.tw-text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.tw-text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.tw-text-slate-800{--tw-text-opacity: 1;color:rgb(30 41 59 / var(--tw-text-opacity, 1))}.tw-text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.tw-text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.tw-opacity-100{opacity:1}.tw-opacity-60{opacity:.6}.tw-shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.tw-shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.tw-shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.tw-shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.tw-ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.tw-ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.tw-ring-amber-300\/80{--tw-ring-color: rgb(252 211 77 / .8) }.tw-ring-black\/\[0\.03\]{--tw-ring-color: rgb(0 0 0 / .03) }.tw-ring-black\/\[0\.04\]{--tw-ring-color: rgb(0 0 0 / .04) }.tw-ring-slate-200\/80{--tw-ring-color: rgb(226 232 240 / .8) }.tw-ring-offset-2{--tw-ring-offset-width: 2px }.tw-transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.tw-duration-200{transition-duration:.2s}.tw-duration-300{transition-duration:.3s}.tw-duration-500{transition-duration:.5s}.tw-ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.placeholder\:tw-text-slate-400::-moz-placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.placeholder\:tw-text-slate-400::placeholder{--tw-text-opacity: 1;color:rgb(148 163 184 / var(--tw-text-opacity, 1))}.hover\:tw-bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:tw-bg-slate-200:hover{--tw-bg-opacity: 1;background-color:rgb(226 232 240 / var(--tw-bg-opacity, 1))}.hover\:tw-bg-slate-50:hover{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity, 1))}.hover\:tw-bg-slate-50\/90:hover{background-color:#f8fafce6}.hover\:tw-from-slate-50:hover{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) }.hover\:tw-to-slate-50\/80:hover{--tw-gradient-to: rgb(248 250 252 / .8) var(--tw-gradient-to-position) }.focus\:tw-border-blue-500:focus{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.focus\:tw-outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:tw-ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:tw-ring-blue-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(96 165 250 / var(--tw-ring-opacity, 1)) }.focus\:tw-ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)) }.focus\:tw-ring-blue-500\/20:focus{--tw-ring-color: rgb(59 130 246 / .2) }.focus\:tw-ring-blue-500\/25:focus{--tw-ring-color: rgb(59 130 246 / .25) }.focus\:tw-ring-blue-500\/30:focus{--tw-ring-color: rgb(59 130 246 / .3) }.focus\:tw-ring-offset-2:focus{--tw-ring-offset-width: 2px }.disabled\:tw-cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:tw-opacity-50:disabled{opacity:.5}@media (min-width: 640px){.sm\:tw-col-span-2{grid-column:span 2 / span 2}.sm\:tw-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:tw-flex-row{flex-direction:row}.sm\:tw-items-start{align-items:flex-start}.sm\:tw-items-end{align-items:flex-end}.sm\:tw-justify-between{justify-content:space-between}.sm\:tw-p-5{padding:1.25rem}.sm\:tw-px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:tw-py-5{padding-top:1.25rem;padding-bottom:1.25rem}}@media (min-width: 1024px){.lg\:tw-w-auto{width:auto}.lg\:tw-flex-row{flex-direction:row}.lg\:tw-flex-wrap{flex-wrap:wrap}.lg\:tw-items-end{align-items:flex-end}}@media (min-width: 1280px){.xl\:tw-col-span-1{grid-column:span 1 / span 1}.xl\:tw-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
