.jobs-page{display:flex;flex-direction:column;gap:24px;padding:0}.jobs-header{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.jobs-header h1{font-size:28px;font-weight:800;color:var(--gray-900);margin:0}.jobs-subtitle{font-size:14px;color:var(--gray-600);margin:0}.filter-bar{display:flex;gap:8px;flex-wrap:wrap;padding:0;margin-bottom:20px}.filter-chip{display:inline-flex;align-items:center;justify-content:center;padding:8px 16px;border-radius:var(--radius-full);background:var(--white);color:var(--gray-600);font-size:13px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease);white-space:nowrap;border:1px solid var(--gray-300)}.filter-chip:hover{border-color:var(--brand-500);color:var(--brand-600);background:var(--brand-50)}.jobs-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px}.job-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:0;overflow:hidden;transition:all var(--dur) var(--ease);cursor:pointer}.job-card:hover{border-color:var(--brand-300);box-shadow:0 4px 12px #2563eb14;transform:translateY(-2px)}.job-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--gray-100)}.job-card-header h3{font-size:16px;font-weight:700;color:var(--gray-900);margin:0;flex:1}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.badge-info,.badge-primary{background:var(--brand-100);color:var(--brand-700)}.badge-success{background:var(--success-100);color:var(--success-700)}.badge-warning{background:var(--warning-100);color:var(--warning-700)}.badge-error{background:var(--danger-100);color:var(--danger-700)}.status-dot{width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;display:inline-block;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.job-card-body{padding:16px 20px;display:flex;flex-direction:column;gap:12px}.job-info-row{display:flex;flex-direction:column;gap:4px}.job-info-row .label{font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.job-info-row .value{font-size:14px;font-weight:600;color:var(--gray-900)}.job-card-footer{padding:12px 20px;border-top:1px solid var(--gray-100);background:var(--gray-50);display:flex;align-items:center;justify-content:space-between}.photo-count-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;background:var(--brand-100);color:var(--brand-700);border-radius:var(--radius);font-size:12px;font-weight:600}.job-detail-page{display:flex;flex-direction:column;gap:24px}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:var(--brand-600);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease)}.status-tracker{display:flex;align-items:stretch;gap:0;padding:20px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);margin:12px 0}.status-step-wrapper{display:flex;align-items:stretch;flex:1;position:relative}.status-step{display:flex;flex-direction:column;align-items:center;gap:12px;flex:1;position:relative;z-index:1}.status-circle{width:40px;height:40px;border-radius:var(--radius-full);background:var(--gray-200);color:var(--gray-600);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;transition:all var(--dur) var(--ease)}.status-step.completed .status-circle{background:var(--success-600);color:var(--white)}.status-step.pending .status-circle{background:var(--gray-200);color:var(--gray-500)}.status-label{font-size:12px;font-weight:600;color:var(--gray-600);text-align:center}.status-step.completed .status-label{color:var(--gray-900);font-weight:700}.status-line{position:absolute;top:20px;left:50%;right:-50%;height:2px;background:var(--gray-300);z-index:0}.status-line.completed{background:var(--success-500)}.eta-banner{display:flex;align-items:center;gap:16px;padding:16px 20px;background:linear-gradient(135deg,var(--brand-50),var(--brand-100));border:1px solid var(--brand-200);border-radius:var(--radius-lg);margin:12px 0}.eta-icon{font-size:24px;flex-shrink:0}.eta-content{flex:1}.eta-label{font-size:13px;font-weight:600;color:var(--brand-900);margin:0}.eta-time{font-size:14px;font-weight:700;color:var(--brand-600);margin:4px 0 0}.job-info-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px}.job-info-section h2{font-size:16px;font-weight:700;color:var(--gray-900);margin:0 0 16px}.info-card{display:flex;flex-direction:column;gap:8px}.info-card label{font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.info-card p{font-size:15px;font-weight:600;color:var(--gray-900);margin:0}.phone-link{display:inline-block;color:var(--brand-600);text-decoration:none;font-size:14px;font-weight:500;margin-top:4px}.phone-link:hover{text-decoration:underline}.checklist-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px}.checklist-section h2{font-size:16px;font-weight:700;color:var(--gray-900);margin:0 0 16px}.checklist{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.checklist-item{display:flex;align-items:center;gap:12px;padding:10px 0}.checklist-icon{width:24px;height:24px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.checklist-icon.completed{background:var(--success-100);color:var(--success-600)}.checklist-icon.pending{background:var(--gray-100);color:var(--gray-400)}.checklist-item span{font-size:14px;color:var(--gray-900);flex:1}.checklist-item span.completed{color:var(--gray-600);text-decoration:line-through}.checklist-progress{font-size:13px;color:var(--gray-600);padding-top:8px;border-top:1px solid var(--gray-100)}.photo-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px}.photo-section h2{font-size:16px;font-weight:700;color:var(--gray-900);margin:0 0 16px}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.photo-thumb{border-radius:var(--radius);overflow:hidden;aspect-ratio:1;cursor:pointer;position:relative;border:1px solid var(--gray-200);transition:all var(--dur) var(--ease)}.photo-thumb:hover{border-color:var(--brand-500);box-shadow:0 2px 8px #2563eb1a}.photo-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur) var(--ease)}.photo-label{position:absolute;bottom:0;left:0;right:0;padding:6px 8px;background:linear-gradient(transparent,#000c);color:var(--white);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.timeline-section{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px}.timeline-section h2{font-size:16px;font-weight:700;color:var(--gray-900);margin:0 0 16px}.timeline-item{position:relative;padding-bottom:20px;display:flex;gap:16px}.timeline-dot{position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:var(--radius-full);background:var(--brand-600);border:2px solid var(--white);flex-shrink:0}.timeline-content{flex:1}.timeline-title{font-size:14px;font-weight:600;color:var(--gray-900);margin:0 0 4px}.timeline-time{font-size:12px;color:var(--gray-500);margin:0}.timeline-notes{font-size:13px;color:var(--gray-600);margin:8px 0 0}.action-buttons{display:flex;flex-wrap:wrap;gap:12px;padding:20px;background:var(--gray-50);border-radius:var(--radius-lg);justify-content:flex-start}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;border:none;transition:all var(--dur) var(--ease);white-space:nowrap;cursor:pointer}.btn-outline{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300)}.btn-outline:hover:not(:disabled){background:var(--gray-50);border-color:var(--brand-500);color:var(--brand-600)}.lightbox-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.lightbox-content{position:relative;display:flex;flex-direction:column;align-items:center;gap:16px;max-width:90vw;max-height:90vh}.lightbox-content img{max-width:100%;max-height:80vh;border-radius:var(--radius-lg);object-fit:contain}.lightbox-close{position:absolute;top:-36px;right:0;width:32px;height:32px;border-radius:var(--radius-full);background:#ffffff26;border:none;color:var(--white);font-size:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur) var(--ease)}.lightbox-label{color:var(--white);font-size:13px;text-align:center}.modal h2{font-size:18px;font-weight:700;color:var(--gray-900);margin:0;padding:24px 24px 0}input[type=text],input[type=date],textarea,select{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;color:var(--gray-800);background:var(--white);font-family:inherit;transition:all var(--dur) var(--ease)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.star-rating{display:flex;gap:8px}.star{width:32px;height:32px;border:none;background:none;font-size:24px;cursor:pointer;opacity:.3;transition:opacity var(--dur) var(--ease)}.star:hover,.star.active{opacity:1}.empty-state{display:flex;flex-direction:column;align-items:center;padding:60px 24px;text-align:center;color:var(--gray-600)}.empty-state p{font-size:14px;margin:0}.loading-state{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--gray-600);font-size:14px}.service-requests-page{min-height:100vh;background-color:var(--color-background, #f9fafb);padding:24px}.page-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px}.spinner{width:40px;height:40px;border:4px solid var(--color-border, #e5e7eb);border-top-color:var(--color-primary, #3b82f6);border-radius:50%;animation:spin .8s linear infinite}.alert{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px;font-weight:500}.alert-error{background-color:#fee;border:1px solid #f87171;color:#991b1b}.alert-warning{background-color:#fef3c7;border:1px solid #fcd34d;color:#92400e}.list-view{max-width:1200px;margin:0 auto}.list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.list-header h1{font-size:28px;font-weight:600;margin:0;color:var(--color-text-primary, #111827)}.filter-chips{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter-chip{padding:8px 16px;border:1px solid var(--color-border, #e5e7eb);border-radius:24px;background-color:#fff;color:var(--color-text-secondary, #6b7280);font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.filter-chip:hover{border-color:var(--color-primary, #3b82f6);color:var(--color-primary, #3b82f6)}.filter-chip.active{background-color:var(--color-primary, #3b82f6);border-color:var(--color-primary, #3b82f6);color:#fff}.requests-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.request-card{background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:12px;padding:20px;cursor:pointer;transition:all .2s ease}.request-card:hover{border-color:var(--color-primary, #3b82f6);box-shadow:0 4px 12px #3b82f61a}.card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;gap:12px}.card-title-section{display:flex;align-items:flex-start;gap:8px;flex:1}.card-title-section h3{font-size:18px;font-weight:600;margin:0;color:var(--color-text-primary, #111827);word-break:break-word}.priority-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;margin-top:4px}.priority-dot.priority-emergency{background-color:#ef4444}.priority-dot.priority-high{background-color:#f97316}.priority-dot.priority-normal{background-color:#3b82f6}.priority-dot.priority-low{background-color:#10b981}.status-badge{padding:6px 12px;border-radius:16px;font-size:12px;font-weight:600;text-transform:uppercase;white-space:nowrap;flex-shrink:0}.status-submitted{background-color:#e0e7ff;color:#3730a3}.status-received{background-color:#dbeafe;color:#0c4a6e}.status-in-review{background-color:#fef3c7;color:#78350f}.status-approved{background-color:#d1fae5;color:#065f46}.status-scheduled{background-color:#c7d2fe;color:#312e81}.status-in-progress{background-color:#fed7aa;color:#7c2d12}.status-completed{background-color:#d1fae5;color:#065f46}.card-badges{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.category-badge{display:inline-block;padding:4px 10px;background-color:var(--color-background-secondary, #f3f4f6);color:var(--color-text-secondary, #6b7280);border-radius:6px;font-size:12px;font-weight:500}.card-meta{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;font-size:13px}.meta-item{display:flex;justify-content:space-between;color:var(--color-text-secondary, #6b7280)}.meta-label{font-weight:500}.meta-value{font-weight:400}.card-preview{margin-bottom:12px;padding-top:12px;border-top:1px solid var(--color-border, #e5e7eb)}.note-preview{font-size:13px;color:var(--color-text-secondary, #6b7280);margin:0;line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.card-footer{padding-top:12px;border-top:1px solid var(--color-border, #e5e7eb)}.click-hint{font-size:12px;color:var(--color-primary, #3b82f6);font-weight:500}.empty-state{text-align:center;padding:60px 20px}.empty-icon{width:64px;height:64px;margin:0 auto 16px;color:var(--color-border, #e5e7eb)}.empty-state h2{font-size:20px;font-weight:600;color:var(--color-text-primary, #111827);margin:0 0 8px}.empty-state p{font-size:14px;color:var(--color-text-secondary, #6b7280);margin:0 0 24px}.detail-view{max-width:900px;margin:0 auto}.btn-back{background:none;border:none;color:var(--color-primary, #3b82f6);font-size:14px;font-weight:500;cursor:pointer;padding:8px;margin-bottom:24px;transition:color .2s ease}.btn-back:hover{color:#1d4ed8}.detail-header{margin-bottom:32px}.detail-title-section{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.detail-title-section h1{font-size:32px;font-weight:600;margin:0;color:var(--color-text-primary, #111827)}.status-tracker{background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:12px;padding:24px;margin-bottom:32px}.progress-bar{width:100%;height:4px;background-color:var(--color-background-secondary, #f3f4f6);border-radius:2px;overflow:hidden;margin-bottom:20px}.progress-fill{height:100%;background-color:var(--color-primary, #3b82f6);transition:width .3s ease}.status-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.status-step{display:flex;flex-direction:column;align-items:center;gap:8px;opacity:.5;transition:opacity .2s ease}.status-step.completed{opacity:1}.step-indicator{width:24px;height:24px;border-radius:50%;border:2px solid var(--color-border, #e5e7eb);background-color:#fff}.status-step.completed .step-indicator{border-color:var(--color-primary, #3b82f6);background-color:var(--color-primary, #3b82f6)}.step-label{font-size:12px;font-weight:500;color:var(--color-text-secondary, #6b7280);text-align:center}.info-section,.description-section,.notes-section{background:#fff;border:1px solid var(--color-border, #e5e7eb);border-radius:12px;padding:24px}.info-section h2,.notes-section h2{font-size:18px;font-weight:600;margin:0 0 16px;color:var(--color-text-primary, #111827)}.description-section h3{font-size:16px;font-weight:600;margin:0 0 12px;color:var(--color-text-primary, #111827)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item label{font-size:12px;font-weight:600;color:var(--color-text-secondary, #6b7280);text-transform:uppercase}.info-item span{font-size:14px;color:var(--color-text-primary, #111827);font-weight:500}.priority-indicator{display:inline-flex;align-items:center;gap:6px;width:fit-content}.description-section p{font-size:14px;color:var(--color-text-primary, #111827);line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.notes-timeline{display:flex;flex-direction:column;gap:16px;margin-bottom:20px;max-height:400px;overflow-y:auto}.note-item{padding:12px;background-color:var(--color-background-secondary, #f3f4f6);border-radius:8px}.note-item.note-from-customer{margin-left:20px;background-color:#dbeafe}.note-item.note-from-team{margin-right:20px;background-color:#e0e7ff}.note-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:12px}.note-author{color:var(--color-text-primary, #111827);font-weight:600}.note-time{color:var(--color-text-secondary, #6b7280);font-size:11px}.note-body{font-size:13px;color:var(--color-text-primary, #111827);margin:0;line-height:1.5;white-space:pre-wrap;word-break:break-word}.no-notes{text-align:center;padding:24px;color:var(--color-text-secondary, #6b7280);font-size:14px;margin:0}.add-note-form{padding-top:16px;border-top:1px solid var(--color-border, #e5e7eb)}.note-input{width:100%;padding:12px;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;font-family:inherit;font-size:14px;resize:vertical}.note-input:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.form-actions{display:flex;gap:12px;margin-top:12px;flex-wrap:wrap}.btn{padding:10px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn-primary{background-color:var(--color-primary, #3b82f6);color:#fff}.btn-primary:hover:not(:disabled){background-color:#1d4ed8}.btn-secondary{background-color:var(--color-background-secondary, #f3f4f6);color:var(--color-text-primary, #111827);border:1px solid var(--color-border, #e5e7eb)}.btn-secondary:hover:not(:disabled){background-color:#e5e7eb}.btn-danger{background-color:#ef4444;color:#fff}.btn-danger:hover:not(:disabled){background-color:#dc2626}.new-request-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.new-request-modal{background:#fff;border-radius:12px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px;border-bottom:1px solid var(--color-border, #e5e7eb)}.modal-header h1{font-size:24px;font-weight:600;margin:0;color:var(--color-text-primary, #111827)}.btn-close{background:none;border:none;font-size:28px;color:var(--color-text-secondary, #6b7280);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:color .2s ease}.btn-close:hover{color:var(--color-text-primary, #111827)}.new-request-form{padding:24px;display:flex;flex-direction:column;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--color-text-primary, #111827)}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid var(--color-border, #e5e7eb);border-radius:8px;font-family:inherit;font-size:14px;color:var(--color-text-primary, #111827)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-primary, #3b82f6);box-shadow:0 0 0 3px #3b82f61a}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background-color:var(--color-background-secondary, #f3f4f6);color:var(--color-text-secondary, #6b7280);cursor:not-allowed}.char-count{font-size:12px;color:var(--color-text-secondary, #6b7280);align-self:flex-end}.photo-upload-area{position:relative;border:2px dashed var(--color-border, #e5e7eb);border-radius:8px;padding:24px;text-align:center;cursor:pointer;transition:all .2s ease}.photo-upload-area:hover{border-color:var(--color-primary, #3b82f6);background-color:#3b82f60d}.file-input{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;cursor:pointer}.upload-placeholder{display:flex;flex-direction:column;align-items:center;gap:8px}.upload-icon{width:40px;height:40px;color:var(--color-text-secondary, #6b7280)}.upload-placeholder p{font-size:14px;font-weight:500;color:var(--color-text-primary, #111827);margin:0}.upload-hint{font-size:12px;color:var(--color-text-secondary, #6b7280)}.photo-list{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.photo-item{display:inline-block;padding:6px 10px;background-color:var(--color-background-secondary, #f3f4f6);border-radius:6px;font-size:12px;color:var(--color-text-secondary, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:150px}.modal-footer{display:flex;gap:12px;padding:24px;border-top:1px solid var(--color-border, #e5e7eb);justify-content:flex-end}@media(max-width:768px){.service-requests-page{padding:16px}.list-header{flex-direction:column;align-items:flex-start;gap:16px}.list-header h1{font-size:24px}.requests-grid,.form-row{grid-template-columns:1fr}.modal-footer{flex-direction:column-reverse}.modal-footer .btn{width:100%}.filter-chips{overflow-x:auto}.status-steps{grid-template-columns:repeat(2,1fr)}.info-grid{grid-template-columns:1fr}.detail-title-section{flex-direction:column;align-items:flex-start}.modal-header{flex-direction:column;align-items:flex-start;gap:12px}}@media(max-width:480px){.detail-title-section h1{font-size:24px}.status-steps{grid-template-columns:1fr}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.contracts-page{display:flex;flex-direction:column;gap:24px}.badge-signed,.badge-active{background:var(--success-100);color:var(--success-700)}.badge-cancelled{background:var(--danger-100);color:var(--danger-700)}.contracts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.contract-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:0;overflow:hidden;transition:all var(--dur) var(--ease));cursor:pointer}.contract-card:hover{border-color:var(--brand-300);box-shadow:0 4px 12px #2563eb14;transform:translateY(-2px)}.contract-detail{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:24px}.btn-large{padding:14px 28px;font-size:15px}.signature-confirmation{background:var(--success-50);border:1px solid var(--success-200);border-radius:var(--radius);padding:16px}.confirmation-badge{display:flex;align-items:center;gap:12px}.check-icon{width:32px;height:32px;border-radius:var(--radius-full);background:var(--success-100);color:var(--success-600);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.confirmation-text{font-size:14px;font-weight:600;color:var(--success-900);margin:0}.confirmation-date{font-size:12px;color:var(--success-700);margin:4px 0 0}.action-section{display:flex;justify-content:center;padding:16px;background:var(--brand-50);border-radius:var(--radius)}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 24px 0;border-bottom:1px solid var(--gray-100);margin-bottom:0}.modal-footer{padding:16px 24px;border-top:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--gray-50)}.footer-buttons{display:flex;gap:8px;justify-content:flex-end}.sig-pad-container{width:100%;border:2px solid var(--gray-300);border-radius:var(--radius);overflow:hidden;background:var(--white);margin:8px 0}.sig-pad-container canvas{display:block;width:100%;height:auto;background:var(--white);cursor:crosshair}.signature-hint{font-size:12px;color:var(--gray-500);margin:8px 0 0;text-align:center}.alert-content{flex:1}.alert-content p{margin:0;font-size:14px}.estimates-page{display:flex;flex-direction:column;gap:24px}.page-header{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.page-header h1{font-size:28px;font-weight:800;color:var(--gray-900);margin:0}.page-subtitle{font-size:14px;color:var(--gray-600);margin:0}.estimates-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.estimate-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:0;overflow:hidden;transition:all var(--dur) var(--ease));cursor:pointer}.estimate-card:hover{border-color:var(--brand-300);box-shadow:0 4px 12px #2563eb14;transform:translateY(-2px)}.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px 20px;border-bottom:1px solid var(--gray-100)}.card-header h3{font-size:16px;font-weight:700;color:var(--gray-900);margin:0 0 6px}.badge{display:inline-flex;align-items:center;gap:4px;padding:4px 12px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap;flex-shrink:0}.badge-draft{background:var(--gray-100);color:var(--gray-700)}.badge-sent{background:var(--brand-100);color:var(--brand-700)}.badge-accepted{background:var(--success-100);color:var(--success-700)}.badge-expired{background:var(--warning-100);color:var(--warning-700)}.badge-declined{background:var(--danger-100);color:var(--danger-700)}.card-body{padding:16px 20px;display:flex;flex-direction:column;gap:14px}.card-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:14px}.card-row.highlight{padding:12px;background:var(--brand-50);border-radius:var(--radius);border:1px solid var(--brand-200)}.card-row .label{color:var(--gray-600);font-weight:500}.card-row .value{color:var(--gray-900);font-weight:600;text-align:right}.card-row .value-highlight{color:var(--brand-600);font-weight:700;text-align:right}.card-footer{padding:12px 20px;border-top:1px solid var(--gray-100);background:var(--gray-50);text-align:center}.click-hint{font-size:12px;color:var(--gray-500);font-weight:500}.estimate-detail{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:24px}.btn-back{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;background:transparent;color:var(--brand-600);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease));width:fit-content}.btn-back:hover{background:var(--brand-50);border-radius:var(--radius)}.detail-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-bottom:16px;border-bottom:1px solid var(--gray-200)}.detail-header>div{display:flex;align-items:center;gap:16px;flex:1}.detail-header h2{font-size:22px;font-weight:700;color:var(--gray-900);margin:0}.detail-header .badge{flex-shrink:0}.btn-primary{background:var(--brand-600);color:var(--white);padding:10px 20px;border:none;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease));white-space:nowrap}.detail-content{display:flex;flex-direction:column;gap:24px}.detail-section{display:flex;flex-direction:column;gap:16px}.detail-section h3{font-size:15px;font-weight:700;color:var(--gray-900);margin:0;padding-bottom:12px;border-bottom:1px solid var(--gray-200)}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}.info-item{display:flex;flex-direction:column;gap:6px}.info-item label{font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.info-item p{font-size:14px;font-weight:600;color:var(--gray-900);margin:0}.value-highlight{color:var(--brand-600);font-weight:700}.scope-text{padding:16px;background:var(--gray-50);border-radius:var(--radius);border:1px solid var(--gray-200)}.scope-text p{font-size:14px;line-height:1.6;color:var(--gray-800);margin:0}.line-items{overflow-x:auto}.line-items-table{width:100%;border-collapse:collapse;font-size:14px}.line-items-table thead tr{border-bottom:2px solid var(--gray-200)}.line-items-table th{text-align:left;padding:12px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-600);background:var(--gray-50)}.line-items-table td{padding:12px 16px;border-bottom:1px solid var(--gray-100)}.line-items-table tr:hover{background:var(--gray-50)}.font-bold{font-weight:700}.no-data{padding:20px;text-align:center;color:var(--gray-500);font-size:14px}.action-buttons{display:flex;flex-wrap:wrap;gap:12px;padding:16px;background:var(--gray-50);border-radius:var(--radius);justify-content:flex-start}.btn-secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300);padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease))}.btn-success{background:var(--success-600);color:var(--white);border:none;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease))}.btn-danger{background:var(--danger-600);color:var(--white);border:none;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;cursor:pointer;transition:all var(--dur) var(--ease))}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999;padding:16px}.modal{background:var(--white);border-radius:var(--radius-xl);width:100%;max-width:540px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000001a;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:24px 24px 0}.modal-header h2{font-size:18px;font-weight:700;color:var(--gray-900);margin:0}.modal-close{width:32px;height:32px;border-radius:var(--radius-full);border:none;background:var(--gray-100);font-size:18px;color:var(--gray-600);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all var(--dur) var(--ease));flex-shrink:0}.modal-close:hover{background:var(--gray-200);color:var(--gray-900)}.modal-footer{padding:16px 24px;border-top:1px solid var(--gray-100);display:flex;align-items:center;justify-content:flex-end;gap:8px;background:var(--gray-50)}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--gray-700);margin-bottom:8px}.form-control{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;color:var(--gray-800);background:var(--white);font-family:inherit;transition:all var(--dur) var(--ease))}.form-control:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.alert-danger{background:var(--danger-50);border:1px solid var(--danger-200);color:var(--danger-700)}.alert-success{background:var(--success-50);border:1px solid var(--success-200);color:var(--success-700)}.empty-state{display:flex;flex-direction:column;align-items:center;padding:60px 24px;text-align:center;background:var(--gray-50);border-radius:var(--radius-lg)}.empty-state-icon{width:64px;height:64px;border-radius:var(--radius-full);background:var(--white);display:flex;align-items:center;justify-content:center;font-size:32px;margin-bottom:16px;border:2px solid var(--gray-200)}.empty-state h3{font-size:16px;font-weight:700;color:var(--gray-900);margin:0 0 8px}.empty-state p{font-size:14px;color:var(--gray-600);margin:0;max-width:320px;line-height:1.5}.loading{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--gray-600);font-size:14px}.error-message{display:flex;align-items:center;justify-content:center;min-height:300px;color:var(--danger-600);font-size:14px;background:var(--danger-50);border:1px solid var(--danger-200);border-radius:var(--radius-lg);padding:24px;text-align:center}:root{--brand-900:#0f2440;--brand-800:#1a365d;--brand-700:#1e3a5f;--brand-600:#2563eb;--brand-500:#3b82f6;--brand-400:#60a5fa;--brand-300:#93c5fd;--brand-200:#bfdbfe;--brand-100:#dbeafe;--brand-50:#eff6ff;--success-700:#15803d;--success-600:#16a34a;--success-500:#22c55e;--success-100:#dcfce7;--success-50:#f0fdf4;--warning-700:#a16207;--warning-600:#d97706;--warning-500:#f59e0b;--warning-100:#fef3c7;--warning-50:#fffbeb;--danger-700:#b91c1c;--danger-600:#dc2626;--danger-500:#ef4444;--danger-100:#fee2e2;--danger-50:#fef2f2;--purple-600:#7c3aed;--purple-100:#ede9fe;--gray-950:#020617;--gray-900:#0f172a;--gray-800:#1e293b;--gray-700:#334155;--gray-600:#475569;--gray-500:#64748b;--gray-400:#94a3b8;--gray-300:#cbd5e1;--gray-200:#e2e8f0;--gray-100:#f1f5f9;--gray-50:#f8fafc;--white:#ffffff;--sidebar-w:260px;--header-h:64px;--radius-sm:6px;--radius:8px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--shadow-xs:0 1px 2px rgba(0,0,0,.05);--shadow-sm:0 1px 3px rgba(0,0,0,.1),0 1px 2px rgba(0,0,0,.06);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--ease:cubic-bezier(.4,0,.2,1);--dur:.15s}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--gray-50);color:var(--gray-800);font-size:14px;line-height:1.5}a{color:var(--brand-600);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}.app-layout{display:flex;min-height:100vh}.sidebar{width:var(--sidebar-w);background:var(--brand-900);color:var(--white);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:200;transition:transform var(--dur) var(--ease)}.sidebar-logo{padding:20px 24px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:12px}.sidebar-logo h1{font-size:18px;font-weight:700;letter-spacing:-.3px}.sidebar-logo .logo-icon{width:36px;height:36px;background:var(--brand-600);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0}.sidebar-nav{flex:1;overflow-y:auto;padding:12px 0}.sidebar-section{padding:0 12px;margin-bottom:4px}.sidebar-section-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:#ffffff59;padding:16px 12px 6px}.sidebar-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--radius);font-size:14px;font-weight:500;color:#ffffffa6;transition:all var(--dur) var(--ease);border:none;background:none;width:100%;text-align:left;position:relative}.sidebar-item:hover{color:var(--white);background:#ffffff14}.sidebar-item.active{color:var(--white);background:var(--brand-600)}.sidebar-item .nav-icon{width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.sidebar-item .nav-badge{margin-left:auto;background:var(--danger-500);color:var(--white);font-size:10px;font-weight:700;padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}.sidebar-user{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:12px}.sidebar-user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--brand-600);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:13px;font-weight:600;color:var(--white);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-email{font-size:11px;color:#ffffff73;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.main-area{flex:1;margin-left:var(--sidebar-w);display:flex;flex-direction:column;min-height:100vh}.top-header{height:var(--header-h);background:var(--white);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:16px}.header-title{font-size:18px;font-weight:700;color:var(--gray-900)}.header-subtitle{font-size:13px;color:var(--gray-500)}.header-right{display:flex;align-items:center;gap:12px}.header-btn{width:40px;height:40px;border-radius:var(--radius-full);border:1px solid var(--gray-200);background:var(--white);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--gray-600);transition:all var(--dur) var(--ease);position:relative}.header-btn:hover{background:var(--gray-50);border-color:var(--gray-300)}.header-btn .notif-dot{position:absolute;top:8px;right:8px;width:8px;height:8px;background:var(--danger-500);border-radius:var(--radius-full);border:2px solid var(--white)}.mobile-menu-btn{display:none;width:40px;height:40px;border:none;background:none;font-size:24px;color:var(--gray-700);align-items:center;justify-content:center}.page-content{flex:1;padding:32px;max-width:1400px;width:100%;margin:0 auto}.preview-banner{background:var(--warning-500);color:var(--warning-700);padding:8px 16px;text-align:center;font-size:13px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:12px}.preview-banner button{background:var(--warning-700);color:var(--white);border:none;padding:4px 14px;border-radius:var(--radius-sm);font-size:12px;font-weight:600}.card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.card-header{padding:16px 24px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title{font-size:15px;font-weight:700;color:var(--gray-900)}.card-body{padding:24px}.card-footer{padding:16px 24px;border-top:1px solid var(--gray-100);background:var(--gray-50)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-bottom:24px}.stat-card{background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);padding:20px 24px;transition:box-shadow var(--dur) var(--ease)}.stat-card:hover{box-shadow:var(--shadow-md)}.stat-card .stat-icon{width:40px;height:40px;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:12px}.stat-card .stat-icon.blue{background:var(--brand-100)}.stat-card .stat-icon.green{background:var(--success-100)}.stat-card .stat-icon.amber{background:var(--warning-100)}.stat-card .stat-icon.red{background:var(--danger-100)}.stat-card .stat-icon.purple{background:var(--purple-100)}.stat-label{font-size:12px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:28px;font-weight:800;color:var(--gray-900);margin-top:2px;line-height:1.1}.stat-sub{font-size:12px;color:var(--gray-500);margin-top:4px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius);font-size:14px;font-weight:600;border:none;transition:all var(--dur) var(--ease);white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--brand-600);color:var(--white)}.btn-primary:hover:not(:disabled){background:var(--brand-700)}.btn-success{background:var(--success-600);color:var(--white)}.btn-success:hover:not(:disabled){background:var(--success-700)}.btn-warning{background:var(--warning-600);color:var(--white)}.btn-warning:hover:not(:disabled){background:var(--warning-700)}.btn-danger{background:var(--danger-600);color:var(--white)}.btn-danger:hover:not(:disabled){background:var(--danger-700)}.btn-secondary{background:var(--white);color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover:not(:disabled){background:var(--gray-50);border-color:var(--gray-400)}.btn-ghost{background:transparent;color:var(--gray-600)}.btn-ghost:hover:not(:disabled){background:var(--gray-100)}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:14px 28px;font-size:16px}.btn-icon{width:36px;height:36px;padding:0;border-radius:var(--radius-full)}.btn-icon.sm{width:28px;height:28px;font-size:14px}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-full);font-size:12px;font-weight:600;white-space:nowrap}.badge-blue{background:var(--brand-100);color:var(--brand-600)}.badge-green{background:var(--success-100);color:var(--success-600)}.badge-amber{background:var(--warning-100);color:var(--warning-600)}.badge-red{background:var(--danger-100);color:var(--danger-600)}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.badge-purple{background:var(--purple-100);color:var(--purple-600)}.badge-dot:before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background:currentColor}.form-group{margin-bottom:20px}.form-label{display:block;font-size:13px;font-weight:600;color:var(--gray-700);margin-bottom:6px}.form-hint{font-size:12px;color:var(--gray-500);margin-top:4px}input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=date],input[type=time],select,textarea{width:100%;padding:10px 14px;border:1px solid var(--gray-300);border-radius:var(--radius);font-size:14px;color:var(--gray-800);background:var(--white);transition:all var(--dur) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}textarea{resize:vertical;min-height:100px}.table-wrapper{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;padding:12px 16px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--gray-500);border-bottom:2px solid var(--gray-200);background:var(--gray-50)}td{padding:14px 16px;border-bottom:1px solid var(--gray-100);vertical-align:middle}tr{transition:background var(--dur) var(--ease)}tr.clickable{cursor:pointer}tr.clickable:hover{background:var(--brand-50)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:999;padding:16px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn var(--dur) var(--ease)}.modal{background:var(--white);border-radius:var(--radius-xl);width:100%;max-width:540px;max-height:90vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);animation:slideUp .2s var(--ease)}.modal-lg{max-width:720px}.modal-header{padding:24px 24px 0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.modal-title{font-size:18px;font-weight:700;color:var(--gray-900)}.modal-close{width:32px;height:32px;border-radius:var(--radius-full);border:none;background:var(--gray-100);font-size:18px;color:var(--gray-500);display:flex;align-items:center;justify-content:center;flex-shrink:0}.modal-close:hover{background:var(--gray-200)}.modal-body{padding:24px;overflow-y:auto;flex:1}.modal-footer{padding:16px 24px;border-top:1px solid var(--gray-100);display:flex;align-items:center;justify-content:flex-end;gap:8px}.toast-container{position:fixed;top:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:8px}.toast{background:var(--gray-900);color:var(--white);padding:14px 20px;border-radius:var(--radius-lg);font-size:14px;font-weight:500;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;animation:slideIn .3s var(--ease);max-width:400px}.toast-success{background:var(--success-600)}.toast-error{background:var(--danger-600)}.toast-warning{background:var(--warning-600)}.alert{display:flex;align-items:flex-start;gap:12px;padding:14px 18px;border-radius:var(--radius);font-size:14px;margin-bottom:12px}.alert-icon{font-size:18px;flex-shrink:0;margin-top:1px}.alert-info{background:var(--brand-50);border:1px solid var(--brand-200);color:var(--brand-700)}.alert-success{background:var(--success-50);border:1px solid #86efac;color:var(--success-700)}.alert-warning{background:var(--warning-50);border:1px solid #fcd34d;color:var(--warning-700)}.alert-danger{background:var(--danger-50);border:1px solid #fca5a5;color:var(--danger-700)}.alert-clickable{cursor:pointer;transition:transform var(--dur) var(--ease)}.alert-clickable:hover{transform:translate(4px)}.empty-state{display:flex;flex-direction:column;align-items:center;padding:60px 24px;text-align:center}.empty-state-icon{width:64px;height:64px;border-radius:var(--radius-full);background:var(--gray-100);display:flex;align-items:center;justify-content:center;font-size:28px;margin-bottom:16px}.empty-state-title{font-size:16px;font-weight:700;color:var(--gray-700);margin-bottom:4px}.empty-state-text{font-size:14px;color:var(--gray-500);max-width:360px;margin-bottom:20px}.spinner{width:32px;height:32px;border:3px solid var(--gray-200);border-top-color:var(--brand-600);border-radius:50%;animation:spin .6s linear infinite}.loading-page{display:flex;align-items:center;justify-content:center;min-height:300px;flex-direction:column;gap:12px;color:var(--gray-500)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.photo-thumb{border-radius:var(--radius);overflow:hidden;aspect-ratio:1;cursor:pointer;position:relative}.photo-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .2s var(--ease)}.photo-thumb:hover img{transform:scale(1.05)}.photo-thumb .photo-label{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background:linear-gradient(transparent,#000000b3);color:var(--white);font-size:10px;font-weight:600;text-transform:uppercase}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--dur) var(--ease)}.lightbox img{max-width:90vw;max-height:90vh;border-radius:var(--radius);box-shadow:var(--shadow-xl)}.lightbox-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:var(--radius-full);background:#ffffff26;border:none;color:var(--white);font-size:24px;display:flex;align-items:center;justify-content:center}.lightbox-close:hover{background:#ffffff40}.timeline{position:relative;padding-left:28px}.timeline:before{content:"";position:absolute;left:10px;top:4px;bottom:4px;width:2px;background:var(--gray-200)}.timeline-item{position:relative;padding-bottom:20px}.timeline-item:last-child{padding-bottom:0}.timeline-dot{position:absolute;left:-22px;top:4px;width:12px;height:12px;border-radius:var(--radius-full);background:var(--gray-300);border:2px solid var(--white)}.timeline-dot.active{background:var(--brand-600)}.timeline-dot.success{background:var(--success-500)}.timeline-dot.warning{background:var(--warning-500)}.timeline-time{font-size:11px;color:var(--gray-500);margin-bottom:2px}.timeline-event{font-size:14px;font-weight:600;color:var(--gray-800)}.timeline-desc{font-size:13px;color:var(--gray-500);margin-top:2px}.status-tracker{display:flex;align-items:center;gap:0;margin:16px 0}.status-step{display:flex;flex-direction:column;align-items:center;flex:1;position:relative}.status-step-dot{width:32px;height:32px;border-radius:var(--radius-full);background:var(--gray-200);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--gray-400);position:relative;z-index:1;transition:all .3s var(--ease)}.status-step.active .status-step-dot{background:var(--brand-600);color:var(--white)}.status-step.completed .status-step-dot{background:var(--success-500);color:var(--white)}.status-step-label{font-size:11px;font-weight:600;color:var(--gray-400);margin-top:8px;text-align:center}.status-step.active .status-step-label,.status-step.completed .status-step-label{color:var(--gray-700)}.status-step-line{position:absolute;top:16px;left:50%;right:-50%;height:2px;background:var(--gray-200)}.status-step.completed .status-step-line{background:var(--success-500)}.chat-container{display:flex;flex-direction:column;height:calc(100vh - var(--header-h) - 128px);max-height:600px}.chat-messages{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px}.chat-bubble{max-width:75%;padding:12px 16px;border-radius:var(--radius-lg);font-size:14px;line-height:1.5}.chat-bubble.outgoing{align-self:flex-end;background:var(--brand-600);color:var(--white);border-bottom-right-radius:4px}.chat-bubble.incoming{align-self:flex-start;background:var(--gray-100);color:var(--gray-800);border-bottom-left-radius:4px}.chat-bubble-meta{font-size:11px;opacity:.7;margin-top:4px}.chat-input-bar{display:flex;gap:8px;padding:16px 20px;border-top:1px solid var(--gray-200);background:var(--white)}.chat-input-bar input{flex:1}.messages-page{display:flex;flex-direction:column;height:calc(100vh - var(--header-h) - 64px)}.messages-header{display:flex;align-items:center;justify-content:space-between;padding:20px 0 24px;border-bottom:1px solid var(--gray-200)}.messages-header h1{font-size:24px;font-weight:700;margin:0}.msg-list{border:1px solid var(--gray-200);border-radius:var(--radius-lg);overflow:hidden}.msg-item{display:flex;align-items:flex-start;gap:14px;padding:16px 20px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background var(--dur) var(--ease)}.msg-item:last-child{border-bottom:none}.msg-item:hover,.msg-item.unread{background:var(--brand-50)}.msg-item.unread .msg-subject{font-weight:700}.msg-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--brand-100);color:var(--brand-600);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0}.msg-body{flex:1;min-width:0}.msg-subject{font-size:14px;font-weight:600;color:var(--gray-900);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-preview{font-size:13px;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-meta{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.msg-time{font-size:12px;color:var(--gray-400);white-space:nowrap;flex-shrink:0}.msg-badge{background:var(--danger-500);color:var(--white);font-size:11px;font-weight:700;padding:2px 6px;border-radius:var(--radius-full);min-width:20px;text-align:center}.conversation-header{display:flex;align-items:center;gap:16px;padding:16px 0 20px;border-bottom:1px solid var(--gray-200);margin-bottom:0}.conversation-title{font-size:18px;font-weight:700;color:var(--gray-900);margin:0}.conversation-spacer{flex:1}.chat-bubble-wrapper{display:flex;margin-bottom:8px}.chat-bubble-wrapper.customer{justify-content:flex-end}.chat-bubble-wrapper.team{justify-content:flex-start}.chat-bubble{max-width:75%;padding:12px 16px;border-radius:var(--radius-lg);font-size:14px;line-height:1.5;word-wrap:break-word}.chat-bubble.outgoing{background:var(--brand-600);color:var(--white);border-bottom-right-radius:4px}.chat-bubble.incoming{background:var(--gray-100);color:var(--gray-800);border-bottom-left-radius:4px}.chat-bubble-content{margin-bottom:4px}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 24px;gap:16px}.error-message{color:var(--danger-600);font-size:15px;text-align:center;max-width:400px}.score-ring{display:inline-flex;align-items:center;justify-content:center;width:80px;height:80px;border-radius:var(--radius-full);border:4px solid var(--gray-200);font-size:24px;font-weight:800;color:var(--gray-900)}.score-ring.excellent{border-color:var(--success-500);color:var(--success-600)}.score-ring.good{border-color:var(--brand-500);color:var(--brand-600)}.score-ring.fair{border-color:var(--warning-500);color:var(--warning-600)}.score-ring.poor{border-color:var(--danger-500);color:var(--danger-600)}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);font-size:13px;font-weight:500;color:var(--gray-600);cursor:pointer;position:relative}.cal-day:hover{background:var(--gray-100)}.cal-day.today{background:var(--brand-600);color:var(--white);font-weight:700}.cal-day.has-event:after{content:"";position:absolute;bottom:4px;width:4px;height:4px;border-radius:var(--radius-full);background:var(--brand-500)}.cal-day.today.has-event:after{background:var(--white)}.cal-day.disabled{color:var(--gray-300);cursor:default}.cal-header-day{text-align:center;font-size:11px;font-weight:700;color:var(--gray-400);text-transform:uppercase;padding:8px 0}.notif-dropdown{position:absolute;top:calc(100% + 8px);right:0;width:380px;background:var(--white);border:1px solid var(--gray-200);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);max-height:480px;overflow:hidden;display:flex;flex-direction:column;animation:slideDown .2s var(--ease);z-index:1000}.notif-header{padding:16px 20px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between}.notif-header h3{font-size:15px;font-weight:700}.notif-list{overflow-y:auto;flex:1}.notif-item{display:flex;align-items:flex-start;gap:12px;padding:14px 20px;border-bottom:1px solid var(--gray-50);cursor:pointer;transition:background var(--dur) var(--ease)}.notif-item:hover{background:var(--gray-50)}.notif-item.unread{background:var(--brand-50)}.notif-icon{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}.notif-content{flex:1;min-width:0}.notif-title{font-size:13px;font-weight:600;color:var(--gray-800)}.notif-body{font-size:12px;color:var(--gray-500);margin-top:1px}.notif-time{font-size:11px;color:var(--gray-400);margin-top:4px}.tabs{display:flex;gap:0;border-bottom:2px solid var(--gray-200);margin-bottom:24px}.tab-btn{padding:12px 20px;font-size:14px;font-weight:600;color:var(--gray-500);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all var(--dur) var(--ease)}.tab-btn:hover{color:var(--gray-700)}.tab-btn.active{color:var(--brand-600);border-bottom-color:var(--brand-600)}.tab-btn .tab-badge{margin-left:6px;background:var(--gray-100);color:var(--gray-600);font-size:11px;padding:1px 6px;border-radius:var(--radius-full)}.tab-btn.active .tab-badge{background:var(--brand-100);color:var(--brand-600)}.filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:20px;flex-wrap:wrap}.filter-chip{padding:6px 14px;border-radius:var(--radius-full);font-size:13px;font-weight:600;background:var(--white);color:var(--gray-600);border:1px solid var(--gray-300);transition:all var(--dur) var(--ease)}.filter-chip:hover{border-color:var(--brand-500);color:var(--brand-600)}.filter-chip.active{background:var(--brand-600);color:var(--white);border-color:var(--brand-600)}.login-page{min-height:100vh;display:flex}.login-hero{flex:1;background:linear-gradient(135deg,var(--brand-900),var(--brand-600));display:flex;align-items:center;justify-content:center;padding:60px;position:relative;overflow:hidden}.login-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left: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.04'%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")}.login-hero-content{position:relative;color:var(--white);max-width:460px}.login-hero-content h2{font-size:36px;font-weight:800;margin-bottom:16px;line-height:1.2}.login-hero-content p{font-size:16px;color:#fffc;line-height:1.6}.login-hero-features{margin-top:32px;display:flex;flex-direction:column;gap:16px}.login-hero-feature{display:flex;align-items:center;gap:12px;font-size:15px;color:#ffffffe6}.login-hero-feature .check-icon{width:24px;height:24px;background:#ffffff26;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.login-form-side{width:480px;display:flex;align-items:center;justify-content:center;padding:40px;background:var(--white)}.login-form-container{width:100%;max-width:380px}.login-form-container h1{font-size:24px;font-weight:800;color:var(--gray-900);margin-bottom:4px}.login-form-container .login-subtitle{font-size:14px;color:var(--gray-500);margin-bottom:32px}.password-input-wrap{position:relative}.password-toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--gray-400);padding:4px;display:flex;align-items:center}.password-toggle:hover{color:var(--gray-600)}.sig-pad-container{border:2px dashed var(--gray-300);border-radius:var(--radius);background:var(--gray-50);padding:4px}.sig-pad-container canvas{width:100%;border-radius:var(--radius-sm);cursor:crosshair}.property-selector{display:flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--radius);border:1px solid var(--gray-300);background:var(--white);font-size:13px;color:var(--gray-700);cursor:pointer;transition:all var(--dur) var(--ease)}.property-selector:hover{border-color:var(--brand-500)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main-area{margin-left:0}.mobile-menu-btn{display:flex}.page-content{padding:20px}.login-hero{display:none}.login-form-side{width:100%}}@media(max-width:640px){.page-content{padding:16px}.top-header{padding:0 16px}.stats-grid{grid-template-columns:1fr 1fr}.card-body{padding:16px}.modal{margin:8px;max-height:calc(100vh - 16px)}.chat-bubble{max-width:90%}.filter-bar{gap:6px}.filter-chip{padding:5px 10px;font-size:12px}.notif-dropdown{width:calc(100vw - 32px);right:-16px}}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:199}@media(max-width:1024px){.sidebar-overlay.show{display:block}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.gap-6{gap:24px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.text-sm{font-size:13px}.text-xs{font-size:12px}.text-muted{color:var(--gray-500)}.text-bold{font-weight:700}.truncate{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:640px){.grid-2,.grid-3{grid-template-columns:1fr}}.mobile-bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:var(--white);border-top:1px solid var(--gray-200);z-index:300;padding:6px 0 env(safe-area-inset-bottom,6px);box-shadow:0 -2px 10px #0000000f}.mobile-bottom-nav-inner{display:flex;justify-content:space-around;align-items:center}.mobile-bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;background:none;border:none;color:var(--gray-400);font-size:10px;font-weight:600;transition:color var(--dur) var(--ease);min-width:56px;position:relative}.mobile-bottom-nav button.active{color:var(--brand-600)}.mobile-bottom-nav button .bnav-icon{font-size:20px;line-height:1}.mobile-bottom-nav button .bnav-badge{position:absolute;top:2px;right:6px;width:16px;height:16px;background:var(--danger-500);color:var(--white);font-size:9px;font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}@media(max-width:640px){.mobile-bottom-nav{display:block}.page-content{padding-bottom:80px}}@media(max-width:640px){.btn,.sidebar-item,.filter-chip,.header-btn{min-height:44px}.filter-chip{padding:8px 14px}}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.skeleton{background:linear-gradient(90deg,var(--gray-100) 25%,var(--gray-50) 50%,var(--gray-100) 75%);background-size:800px 100%;animation:shimmer 1.5s infinite linear;border-radius:var(--radius)}.skeleton-text{height:14px;margin-bottom:8px;border-radius:4px}.skeleton-text.short{width:60%}.skeleton-card{height:120px;border-radius:var(--radius-lg);margin-bottom:12px}.skeleton-stat{height:90px;border-radius:var(--radius-lg)}.app-layout{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.offline-banner{background:var(--warning-600);color:var(--white);text-align:center;padding:8px 16px;font-size:13px;font-weight:600;position:sticky;top:0;z-index:1000}.offline-banner span{font-weight:400;opacity:.9}.sync-banner{background:var(--brand-600);color:var(--white);text-align:center;padding:6px 16px;font-size:13px;font-weight:500;position:sticky;top:0;z-index:1000;animation:pulse-bg 1.5s ease-in-out infinite}@keyframes pulse-bg{0%,to{opacity:1}50%{opacity:.7}}.biometric-btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:14px;border-radius:var(--radius-lg);background:var(--gray-50);border:1.5px solid var(--gray-200);font-size:15px;font-weight:600;color:var(--gray-800);cursor:pointer;transition:all .15s ease;margin-top:12px}.biometric-btn:hover{background:var(--gray-100);border-color:var(--gray-300)}.biometric-btn:active{transform:scale(.98)}.biometric-btn .bio-icon{font-size:22px}body.keyboard-open .mobile-bottom-nav{display:none}.camera-actions{display:flex;gap:8px;margin-top:8px}.camera-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 16px;border-radius:var(--radius);background:var(--brand-50);border:1px solid var(--brand-200);color:var(--brand-700);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.camera-btn:hover{background:var(--brand-100)}.camera-btn .cam-icon{font-size:16px}.photo-previews{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.photo-preview{width:80px;height:80px;border-radius:var(--radius);object-fit:cover;border:2px solid var(--gray-200)}.photo-preview-wrapper{position:relative}.photo-remove{position:absolute;top:-6px;right:-6px;width:20px;height:20px;border-radius:50%;background:var(--danger-600);color:#fff;border:none;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center}@supports (padding-bottom:env(safe-area-inset-bottom)){.mobile-bottom-nav{padding-bottom:env(safe-area-inset-bottom)}@media(max-width:640px){.page-content{padding-bottom:calc(80px + env(safe-area-inset-bottom))}}}.intake-page{max-width:800px;margin:0 auto}.intake-header h1{margin:0 0 4px}.intake-header p{color:var(--gray-500);margin:0 0 24px}.intake-progress{display:flex;gap:4px;margin-bottom:24px;overflow-x:auto}.progress-step{display:flex;align-items:center;gap:8px;flex:1;padding:10px 12px;background:var(--gray-50);border-radius:8px;font-size:13px;color:var(--gray-500);transition:all .2s}.progress-step.active{background:var(--brand-50);color:var(--brand-600);font-weight:600}.progress-step.completed{background:var(--success-50);color:var(--success-700)}.step-number{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--gray-200);font-size:12px;font-weight:700;flex-shrink:0}.progress-step.active .step-number{background:var(--brand-600);color:#fff}.progress-step.completed .step-number{background:var(--success-600);color:#fff}.step-label{white-space:nowrap}.intake-form-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:28px}.form-step h2{margin:0 0 4px;font-size:18px}.step-desc{color:var(--gray-500);margin:0 0 20px;font-size:14px}.form-group{display:flex;flex-direction:column;gap:4px;margin-bottom:16px}.form-group label{font-size:13px;font-weight:600;color:var(--gray-700)}.form-group input,.form-group select,.form-group textarea{padding:10px 12px;border:1px solid var(--gray-300);border-radius:8px;font-size:14px;background:#fff;transition:border-color .15s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-row-3{grid-template-columns:1fr 1fr 1fr}@media(max-width:640px){.form-row,.form-row-3{grid-template-columns:1fr}}.service-grid{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.service-chip{padding:10px 16px;border:2px solid var(--gray-200);border-radius:24px;background:#fff;cursor:pointer;font-size:14px;transition:all .15s}.service-chip:hover{border-color:var(--brand-300)}.service-chip.selected{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-700);font-weight:500}.compliance-chips{display:flex;flex-wrap:wrap;gap:8px}.toggle-row{display:flex;gap:8px}.toggle-btn{padding:8px 20px;border:2px solid var(--gray-200);border-radius:8px;background:#fff;cursor:pointer;font-size:14px;transition:all .15s}.toggle-btn.active{border-color:var(--brand-500);background:var(--brand-50);color:var(--brand-700);font-weight:600}.intake-nav{display:flex;align-items:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--gray-200)}.nav-spacer{flex:1}.intake-error{background:var(--danger-50);color:var(--danger-700);padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.review-section{margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--gray-100)}.review-section h3{margin:0 0 8px;font-size:15px;color:var(--gray-700)}.review-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.review-item{display:flex;flex-direction:column;gap:2px}.review-label{font-size:12px;color:var(--gray-500);font-weight:500}.review-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.review-chip{padding:4px 12px;background:var(--brand-50);color:var(--brand-700);border-radius:16px;font-size:13px}.review-text{color:var(--gray-600);font-size:14px;line-height:1.5}.intake-success{text-align:center;padding:60px 20px}.success-icon{width:64px;height:64px;margin:0 auto 16px;background:var(--success-100);color:var(--success-600);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:32px}.intake-success h2{margin:0 0 8px}.intake-success p{color:var(--gray-600);max-width:480px;margin:0 auto 16px}.success-sub{font-size:13px;color:var(--gray-400)!important}.files-page{max-width:900px;margin:0 auto}.files-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.files-header h1{margin:0}.files-subtitle{color:var(--gray-500);font-size:13px;margin:2px 0 0}.files-filters{margin-bottom:20px}.files-search{width:100%;padding:10px 12px;border:1px solid var(--gray-300);border-radius:8px;font-size:14px;margin-bottom:12px}.files-search:focus{outline:none;border-color:var(--brand-500);box-shadow:0 0 0 3px var(--brand-100)}.category-tabs{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.category-tab{padding:6px 14px;border:1px solid var(--gray-200);border-radius:20px;background:#fff;font-size:13px;cursor:pointer;white-space:nowrap;transition:all .15s}.category-tab:hover{border-color:var(--brand-300)}.category-tab.active{background:var(--brand-600);color:#fff;border-color:var(--brand-600)}.files-error{background:var(--danger-50);color:var(--danger-700);padding:12px 16px;border-radius:8px;margin-bottom:16px}.files-loading{text-align:center;padding:40px;color:var(--gray-500)}.files-empty{text-align:center;padding:60px 20px}.empty-icon{font-size:48px;margin-bottom:12px}.files-empty h3{margin:0 0 8px}.files-empty p{color:var(--gray-500);max-width:420px;margin:0 auto 20px}.files-list{display:flex;flex-direction:column;gap:8px}.file-card{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:1px solid var(--gray-200);border-radius:10px;cursor:pointer;transition:all .15s}.file-card:hover{border-color:var(--brand-300);box-shadow:0 2px 8px #0000000f}.file-icon{font-size:28px;flex-shrink:0}.file-info{flex:1;min-width:0}.file-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{display:flex;gap:12px;font-size:12px;color:var(--gray-500);margin-top:2px}.file-desc{font-size:13px;color:var(--gray-600);margin-top:4px}.file-links{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.file-link-badge{font-size:11px;padding:2px 8px;background:var(--gray-100);border-radius:12px;color:var(--gray-600)}.file-category-badge{font-size:12px;padding:4px 12px;background:var(--gray-50);border-radius:16px;color:var(--gray-600);white-space:nowrap;flex-shrink:0}.files-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-100)}.page-info{font-size:13px;color:var(--gray-500)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.upload-modal{background:#fff;border-radius:16px;padding:28px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto}.upload-modal h2{margin:0 0 20px}.drop-zone{border:2px dashed var(--gray-300);border-radius:12px;padding:32px;text-align:center;transition:all .2s}.drop-zone.drag-over{border-color:var(--brand-500);background:var(--brand-50)}.drop-icon{font-size:40px;margin-bottom:8px}.drop-or{color:var(--gray-400);font-size:13px;margin:8px 0}.drop-hint{color:var(--gray-400);font-size:12px;margin-top:12px}.upload-options{margin-top:20px;display:flex;flex-direction:column;gap:12px}.upload-error{background:var(--danger-50);color:var(--danger-700);padding:10px 14px;border-radius:8px;margin-top:12px;font-size:13px}.upload-progress{text-align:center;padding:12px;color:var(--brand-600);font-weight:500}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px;padding-top:16px;border-top:1px solid var(--gray-100)}
