@import url(https://fonts.googleapis.com/css2?family=Syne:wght@600;700;800&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;1,9..40,300&display=swap);body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--color-primary:#0f62fe;--color-primary-hover:#0353e9;--color-primary-subtle:#dde8ff;--color-bg:#f4f5f7;--color-surface:#fff;--color-border:#e2e5eb;--color-border-strong:#c8cdd8;--color-text-primary:#111827;--color-text-secondary:#4b5563;--color-text-muted:#9ca3af;--color-text-inverse:#fff;--status-booked-bg:#dbeafe;--status-booked-border:#3b82f6;--status-booked-text:#1e40af;--status-progress-bg:#fef3c7;--status-progress-border:#f59e0b;--status-progress-text:#92400e;--status-finished-bg:#d1fae5;--status-finished-border:#10b981;--status-finished-text:#065f46;--status-canceled-bg:#f3f4f6;--status-canceled-border:#9ca3af;--status-canceled-text:#4b5563;--status-rescheduled-bg:#ede9fe;--status-rescheduled-border:#8b5cf6;--status-rescheduled-text:#4c1d95;--color-danger:#ef4444;--color-danger-subtle:#fee2e2;--color-success:#10b981;--color-warning:#f59e0b;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--font-body:"DM Sans",sans-serif;--font-display:"Syne",sans-serif;--text-xs:11px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--weight-normal:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:16px;--radius-full:9999px;--shadow-sm:0 1px 3px #00000014,0 1px 2px #0000000a;--shadow-md:0 4px 12px #00000014,0 2px 4px #0000000a;--shadow-lg:0 10px 30px #0000001a,0 4px 10px #0000000f;--shadow-focus:0 0 0 3px #0f62fe33;--transition-fast:120ms ease;--transition-normal:200ms ease;--transition-slow:350ms ease;--sidebar-width:220px;--topbar-height:56px;--content-max-width:1100px;--form-max-width:580px}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;font-size:16px;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f4f5f7;background-color:var(--color-bg);font-family:DM Sans,sans-serif;font-family:var(--font-body);font-size:14px;font-size:var(--text-base);font-weight:400;font-weight:var(--weight-normal);line-height:1.55}body,h1,h2,h3,h4,h5,h6{color:#111827;color:var(--color-text-primary)}h1,h2,h3,h4,h5,h6{font-family:Syne,sans-serif;font-family:var(--font-display);font-weight:700;font-weight:var(--weight-bold);letter-spacing:-.02em;line-height:1.2}h1{font-size:36px;font-size:var(--text-3xl)}h2{font-size:28px;font-size:var(--text-2xl)}h3{font-size:22px;font-size:var(--text-xl)}h4{font-size:18px;font-size:var(--text-lg)}h5,h6{font-size:15px;font-size:var(--text-md)}p{color:#4b5563;color:var(--color-text-secondary);line-height:1.65}a{color:#0f62fe;color:var(--color-primary);text-decoration:none;transition:color .12s ease;transition:color var(--transition-fast)}a:hover{color:#0353e9;color:var(--color-primary-hover);text-decoration:underline}b,strong{font-weight:600;font-weight:var(--weight-semibold)}small{color:#9ca3af;color:var(--color-text-muted);font-size:11px;font-size:var(--text-xs)}input,select,textarea{appearance:none;-webkit-appearance:none;background-color:#fff;background-color:var(--color-surface);border:1.5px solid #e2e5eb;border:1.5px solid var(--color-border);border-radius:6px;border-radius:var(--radius-md);color:#111827;color:var(--color-text-primary);font-family:DM Sans,sans-serif;font-family:var(--font-body);font-size:14px;font-size:var(--text-base);font-weight:400;font-weight:var(--weight-normal);outline:none;padding:8px 11px;transition:border-color .12s ease,box-shadow .12s ease;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);width:100%}input::placeholder,textarea::placeholder{color:#9ca3af;color:var(--color-text-muted);font-weight:400;font-weight:var(--weight-normal)}input:focus,select:focus,textarea:focus{border-color:#0f62fe;border-color:var(--color-primary);box-shadow:0 0 0 3px #0f62fe33;box-shadow:var(--shadow-focus)}input:disabled,select:disabled,textarea:disabled{background-color:#f4f5f7;background-color:var(--color-bg);color:#9ca3af;color:var(--color-text-muted);cursor:not-allowed;opacity:.7}textarea{line-height:1.5;min-height:80px;resize:vertical}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='m1 1 5 5 5-5' stroke='%239ca3af' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;cursor:pointer;padding-right:32px}input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none}input[type=checkbox],input[type=radio]{cursor:pointer;height:16px;padding:0;width:16px}label{color:#4b5563;color:var(--color-text-secondary);display:block;margin-bottom:4px;margin-bottom:var(--space-1)}button,label{font-size:13px;font-size:var(--text-sm);font-weight:500;font-weight:var(--weight-medium)}button{align-items:center;background-color:#fff;background-color:var(--color-surface);border:1.5px solid #e2e5eb;border:1.5px solid var(--color-border);border-radius:6px;border-radius:var(--radius-md);color:#111827;color:var(--color-text-primary);cursor:pointer;display:inline-flex;font-family:DM Sans,sans-serif;font-family:var(--font-body);gap:8px;gap:var(--space-2);line-height:1;padding:7px 14px;transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,color .12s ease,transform .12s ease;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),color var(--transition-fast),transform var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}button:hover:not(:disabled){background-color:#f4f5f7;background-color:var(--color-bg);border-color:#c8cdd8;border-color:var(--color-border-strong)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{box-shadow:0 0 0 3px #0f62fe33;box-shadow:var(--shadow-focus);outline:none}button:disabled{cursor:not-allowed;opacity:.5}.btn-primary,button[type=submit]{background-color:#0f62fe;background-color:var(--color-primary);border-color:#0f62fe;border-color:var(--color-primary);color:#fff;color:var(--color-text-inverse);font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.01em;padding:9px 20px}.btn-primary:hover:not(:disabled),button[type=submit]:hover:not(:disabled){background-color:#0353e9;background-color:var(--color-primary-hover);border-color:#0353e9;border-color:var(--color-primary-hover)}.btn-danger{background:#0000;border-color:#0000;color:#ef4444;color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:#fee2e2;background-color:var(--color-danger-subtle);border-color:#ef4444;border-color:var(--color-danger)}.btn-ghost{background:#0000;border-color:#0000}.btn-ghost:hover:not(:disabled){background-color:#f4f5f7;background-color:var(--color-bg);border-color:#e2e5eb;border-color:var(--color-border)}.card{background:#fff;background:var(--color-surface);border:1px solid #e2e5eb;border:1px solid var(--color-border);border-radius:10px;border-radius:var(--radius-lg);box-shadow:0 1px 3px #00000014,0 1px 2px #0000000a;box-shadow:var(--shadow-sm);padding:20px;padding:var(--space-5)}.card-header{background:#f4f5f7;background:var(--color-bg);border-bottom:1px solid #e2e5eb;border-bottom:1px solid var(--color-border);border-radius:10px 10px 0 0;border-radius:var(--radius-lg) var(--radius-lg) 0 0;color:#9ca3af;color:var(--color-text-muted);font-family:Syne,sans-serif;font-family:var(--font-display);letter-spacing:.07em;margin:-20px;margin:calc(var(--space-5)*-1);margin-bottom:16px;margin-bottom:var(--space-4);padding:12px 16px;padding:var(--space-3) var(--space-4)}.badge,.card-header{font-size:11px;font-size:var(--text-xs);font-weight:600;font-weight:var(--weight-semibold);text-transform:uppercase}.badge{align-items:center;border-radius:9999px;border-radius:var(--radius-full);display:inline-flex;letter-spacing:.04em;line-height:1.4;padding:3px 9px;white-space:nowrap}.badge-booked{background:#dbeafe;background:var(--status-booked-bg);color:#1e40af;color:var(--status-booked-text)}.badge-in-progress{background:#fef3c7;background:var(--status-progress-bg);color:#92400e;color:var(--status-progress-text)}.badge-work-finished{background:#d1fae5;background:var(--status-finished-bg);color:#065f46;color:var(--status-finished-text)}.badge-canceled{background:#f3f4f6;background:var(--status-canceled-bg);color:#4b5563;color:var(--status-canceled-text)}.badge-rescheduled{background:#ede9fe;background:var(--status-rescheduled-bg);color:#4c1d95;color:var(--status-rescheduled-text)}.page-content{max-width:1100px;max-width:var(--content-max-width);padding:24px 32px;padding:var(--space-6) var(--space-8)}.page-title{font-family:Syne,sans-serif;font-family:var(--font-display);font-size:28px;font-size:var(--text-2xl);font-weight:700;font-weight:var(--weight-bold);letter-spacing:-.025em;margin-bottom:24px;margin-bottom:var(--space-6)}.section-label{color:#9ca3af;color:var(--color-text-muted);font-size:11px;font-size:var(--text-xs);font-weight:600;font-weight:var(--weight-semibold);letter-spacing:.07em;margin-bottom:8px;margin-bottom:var(--space-2);text-transform:uppercase}.empty-state{align-items:center;display:flex;flex-direction:column;gap:12px;gap:var(--space-3);justify-content:center;padding:48px 24px;padding:var(--space-12) var(--space-6);text-align:center}.empty-state,.loading-text{color:#9ca3af;color:var(--color-text-muted);font-size:13px;font-size:var(--text-sm)}.loading-text{padding:20px;padding:var(--space-5)}hr{border:none;border-top:1px solid #e2e5eb;border-top:1px solid var(--color-border);margin:20px 0;margin:var(--space-5) 0}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#c8cdd8;background:var(--color-border-strong);border-radius:9999px;border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#9ca3af;background:var(--color-text-muted)}.text-muted{color:#9ca3af;color:var(--color-text-muted)}.text-secondary{color:#4b5563;color:var(--color-text-secondary)}.text-danger{color:#ef4444;color:var(--color-danger)}.text-success{color:#10b981;color:var(--color-success)}.text-warning{color:#f59e0b;color:var(--color-warning)}.font-medium{font-weight:500;font-weight:var(--weight-medium)}.font-semibold{font-weight:600;font-weight:var(--weight-semibold)}.font-bold{font-weight:700;font-weight:var(--weight-bold)}.font-display{font-family:Syne,sans-serif;font-family:var(--font-display)}.truncate{text-overflow:ellipsis}.sr-only,.truncate{overflow:hidden;white-space:nowrap}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;padding:0;position:absolute;width:1px}.form-page{grid-gap:var(--space-4);display:grid;gap:var(--space-4);max-width:var(--form-max-width);padding:var(--space-5)}.form-section-title{border-top:2px solid var(--color-border);color:var(--color-text-primary);font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.02em;margin-top:var(--space-2);padding-top:var(--space-2)}.form-section-title:first-child{border-top:none;margin-top:0;padding-top:0}.form-subtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3);margin-top:2px}.form-grid-2{grid-gap:var(--space-3);display:grid;gap:var(--space-3);grid-template-columns:1fr 1fr}.form-field{display:flex;flex-direction:column;gap:var(--space-1)}.service-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--space-3) var(--space-4);transition:box-shadow var(--transition-fast)}.service-card:hover{box-shadow:var(--shadow-md)}.service-card-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.service-card-name{color:var(--color-text-primary);font-size:var(--text-md);font-weight:var(--weight-semibold)}.service-card-hours{align-items:center;display:flex;gap:var(--space-2);margin-bottom:var(--space-3)}.service-card-hours label{color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:0;white-space:nowrap}.service-card-hours input{width:80px}.service-card-hours .labor-preview{color:var(--color-text-muted);font-size:var(--text-xs);margin-left:auto}.parts-list,.parts-list-label{margin-bottom:var(--space-2)}.parts-list-label{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:.06em;text-transform:uppercase}.part-row{align-items:center;display:flex;font-size:var(--text-sm);gap:var(--space-2);padding:var(--space-1) 0}.part-row-name{color:var(--color-text-primary);flex:2 1}.part-row-price{color:var(--color-text-muted);flex-shrink:0;text-align:right;width:64px}.part-row input[type=number]{text-align:center;width:56px}.part-row-total{color:var(--color-text-secondary);flex-shrink:0;text-align:right;width:60px}.part-row-remove{background:#0000;border-color:#0000;color:var(--color-text-muted);font-size:var(--text-xs);padding:2px 4px}.part-row-remove:hover{background:var(--color-danger-subtle);border-color:#0000;color:var(--color-danger)}.service-card-footer{align-items:center;border-top:1px solid var(--color-border);color:var(--color-text-muted);display:flex;font-size:var(--text-sm);gap:var(--space-3);justify-content:flex-end;margin-top:var(--space-2);padding-top:var(--space-3)}.grand-total,.service-card-footer strong{color:var(--color-text-primary);font-size:var(--text-base)}.grand-total{align-items:center;border-top:2px solid var(--color-border);display:flex;font-weight:var(--weight-semibold);gap:var(--space-2);justify-content:flex-end;margin-top:var(--space-1);padding:var(--space-2) 0}.appointments-list{display:flex;flex-direction:column;gap:var(--space-2);max-width:800px}.appointment-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;padding:var(--space-4);position:relative;transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.appointment-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.appointment-card-accent{border-left-style:solid;border-left-width:4px;border-radius:0 var(--radius-lg) var(--radius-lg) 0;padding-left:var(--space-4)}.appointment-card-top{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.appointment-card-name{color:var(--color-text-primary);font-size:var(--text-md);font-weight:var(--weight-semibold)}.appointment-card-vehicle{color:var(--color-text-muted);font-size:var(--text-sm);margin-left:var(--space-2)}.appointment-card-meta{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-3)}.appointment-card-meta,.appointment-card-services{color:var(--color-text-secondary);font-size:var(--text-sm);margin-top:var(--space-1)}.appointment-card-notes{color:var(--color-text-muted);font-size:var(--text-sm);font-style:italic;margin-top:var(--space-1)}.appointment-card-delete{background:#0000;border-color:#0000;color:var(--color-text-muted);font-size:var(--text-xs);margin-top:var(--space-3);padding:4px 8px}.appointment-card-delete:hover{background:var(--color-danger-subtle);border-color:#0000;color:var(--color-danger)}.bill-toggle{color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:4px 10px}.bill-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);font-size:var(--text-sm);margin-top:var(--space-3);overflow:hidden}.bill-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:9px var(--space-4)}.bill-service-row{border-bottom:1px solid var(--color-bg);padding:var(--space-3) var(--space-4)}.bill-service-name-row{color:var(--color-text-primary);font-weight:var(--weight-medium);margin-bottom:var(--space-1)}.bill-line,.bill-service-name-row{display:flex;justify-content:space-between}.bill-line{color:var(--color-text-muted);line-height:1.7;padding-left:var(--space-3)}.bill-pending{color:var(--color-warning);font-size:var(--text-xs);font-weight:var(--weight-medium)}.bill-total-row{background:var(--color-bg);color:var(--color-text-primary);display:flex;font-size:var(--text-base);font-weight:var(--weight-semibold);justify-content:space-between;padding:var(--space-3) var(--space-4)}.detail-page{max-width:700px}.detail-header{align-items:flex-start;display:flex;gap:var(--space-4);justify-content:space-between;margin-bottom:var(--space-5)}.detail-customer-name{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-bold);letter-spacing:-.02em}.detail-vehicle-line{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:var(--space-1)}.detail-actions{display:flex;flex-shrink:0;gap:var(--space-2)}.detail-info-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-wrap:wrap;font-size:var(--text-sm);gap:var(--space-8);margin-bottom:var(--space-4);padding:var(--space-4)}.detail-info-item-label{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:.05em;margin-bottom:3px;text-transform:uppercase}.edit-panel{background:#faf5ff;border:2px solid var(--status-rescheduled-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);padding:var(--space-4)}.edit-panel-title{align-items:center;color:#6d28d9;display:flex;font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--weight-bold);gap:var(--space-2);margin-bottom:var(--space-4)}.edit-panel-notice{background:var(--status-rescheduled-bg);border-radius:var(--radius-full);color:var(--status-rescheduled-text);font-size:var(--text-xs);font-weight:var(--weight-medium);padding:3px 9px}.edit-panel-save{background:#7c3aed;border:none;border-radius:var(--radius-md);color:#fff;cursor:pointer;font-weight:var(--weight-semibold);padding:9px 20px}.edit-panel-save:hover:not(:disabled){background:#6d28d9}.status-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);margin-bottom:var(--space-4);padding:var(--space-4)}.status-panel h4{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:.06em;margin-bottom:var(--space-3);text-transform:uppercase}.status-controls{align-items:flex-end;display:flex;flex-wrap:wrap;gap:var(--space-4)}.status-field label{color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:var(--space-1)}.chat-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.chat-panel-header{background:var(--color-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);padding:var(--space-3) var(--space-4)}.chat-messages{display:flex;flex-direction:column;gap:var(--space-3);height:280px;overflow-y:auto;padding:var(--space-4)}.chat-empty{color:var(--color-text-muted);font-size:var(--text-sm)}.chat-message{align-items:flex-start;display:flex;gap:var(--space-2)}.chat-message.mine{flex-direction:row-reverse}.chat-avatar{object-fit:cover}.chat-avatar,.chat-avatar-placeholder{border-radius:var(--radius-full);flex-shrink:0;height:32px;width:32px}.chat-avatar-placeholder{align-items:center;background:var(--color-border);color:var(--color-text-secondary);display:flex;font-size:var(--text-sm);font-weight:var(--weight-semibold);justify-content:center}.chat-bubble-wrap{max-width:70%}.chat-bubble-meta{color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:3px}.chat-message.mine .chat-bubble-meta{text-align:right}.chat-bubble{background:var(--color-bg);border-radius:12px 12px 12px 2px;color:var(--color-text-primary);font-size:var(--text-sm);line-height:1.45;overflow:hidden;padding:8px 12px;white-space:pre-line}.chat-message.mine .chat-bubble{background:var(--color-primary);border-radius:12px 12px 2px 12px;color:var(--color-text-inverse)}.chat-input-area{border-top:1px solid var(--color-border);padding:var(--space-2) var(--space-3)}.chat-input-row{align-items:flex-end;display:flex;gap:var(--space-2)}.chat-input-row textarea{flex:1 1;min-height:0;min-height:auto;padding:8px 10px;resize:none}.chat-attach-btn{align-self:stretch;background:#0000;border-color:#0000;font-size:18px;padding:0 10px}.chat-attach-btn:hover{background:var(--color-bg);border-color:var(--color-border)}.chat-image-preview{display:inline-block;margin-bottom:var(--space-2);position:relative}.chat-image-preview img{border-radius:var(--radius-md);display:block;max-height:100px;max-width:200px}.chat-image-remove{align-items:center;background:var(--color-danger);border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;display:flex;font-size:11px;height:20px;justify-content:center;padding:0;position:absolute;right:-6px;top:-6px;width:20px}.calendar-wrapper{font-family:var(--font-body);overflow-x:auto;width:100%}.calendar-header-row{background:var(--color-surface);border-bottom:2px solid var(--color-border);display:flex;position:-webkit-sticky;position:sticky;top:0;z-index:20}.calendar-corner{flex-shrink:0;width:150px}.calendar-hour-cell{border-left:1px solid var(--color-border);color:var(--color-text-muted);flex-shrink:0;font-size:var(--text-xs);font-weight:var(--weight-medium);padding:var(--space-1) 0;text-align:center}.calendar-tech-row{border-bottom:1px solid var(--color-border);display:flex}.calendar-tech-row:nth-child(2n){background:#fafafa}.calendar-tech-row:nth-child(odd){background:var(--color-surface)}.calendar-tech-label{align-items:center;border-right:1px solid var(--color-border);display:flex;flex-shrink:0;gap:var(--space-2);padding:var(--space-2) var(--space-3);width:150px}.calendar-tech-avatar{object-fit:cover}.calendar-tech-avatar,.calendar-tech-avatar-placeholder{border-radius:var(--radius-full);flex-shrink:0;height:28px;width:28px}.calendar-tech-avatar-placeholder{align-items:center;background:var(--color-border);color:var(--color-text-secondary);display:flex;font-size:var(--text-xs);font-weight:var(--weight-semibold);justify-content:center}.calendar-tech-name{color:var(--color-text-primary);font-size:var(--text-sm);font-weight:var(--weight-medium)}.calendar-grid-area{flex-shrink:0;position:relative}.calendar-grid-line{background:var(--color-border)}.calendar-grid-line,.calendar-half-line{bottom:0;position:absolute;top:0;width:1px}.calendar-half-line{border-left:1px dashed var(--color-border)}.calendar-now-line{background:var(--color-danger);bottom:0;position:absolute;top:0;width:2px;z-index:5}.calendar-now-dot{background:var(--color-danger);border-radius:var(--radius-full);height:8px;margin-left:-3px;margin-top:-1px;width:8px}.appt-block{border-radius:var(--radius-md);box-sizing:border-box;cursor:pointer;font-size:var(--text-xs);overflow:hidden;padding:3px 6px;position:absolute;transition:box-shadow var(--transition-fast)}.appt-block:hover{box-shadow:var(--shadow-md);z-index:10!important}.appt-block-name{font-weight:var(--weight-semibold)}.appt-block-name,.appt-block-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.appt-block-sub{opacity:.85}.appt-tooltip{background:#1f2937;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:#fff;font-size:var(--text-xs);left:0;line-height:1.6;padding:8px 10px;pointer-events:none;position:absolute;top:calc(100% + 4px);white-space:nowrap;z-index:100}.appt-tooltip-name{font-weight:var(--weight-semibold)}.calendar-legend{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-4)}.calendar-legend-item{align-items:center;color:var(--color-text-muted);display:flex;font-size:var(--text-xs);gap:5px}.calendar-legend-dot{border-radius:var(--radius-sm);flex-shrink:0;height:12px;width:12px}.calendar-empty{color:var(--color-text-muted);font-size:var(--text-sm);padding:var(--space-5)}.customer-page{max-width:800px;padding:var(--space-5)}.customer-info-panel{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);padding:var(--space-5)}.customer-name{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-bold);letter-spacing:-.02em;margin-bottom:var(--space-4)}.customer-info-grid{grid-gap:8px 24px;display:grid;font-size:var(--text-sm);gap:8px 24px;grid-template-columns:1fr 1fr}.customer-info-row span:first-child{color:var(--color-text-muted)}.customer-info-row span:last-child{color:var(--color-text-primary);font-weight:var(--weight-medium)}.section-header-row{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-3)}.section-header-row h3{font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:-.01em}.vehicle-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-4);overflow:hidden;transition:box-shadow var(--transition-fast)}.vehicle-card:hover{box-shadow:var(--shadow-md)}.vehicle-card-image{background:var(--color-bg);border-bottom:1px solid var(--color-border)}.vehicle-card-image img{display:block;max-height:220px;object-fit:contain;width:100%}.vehicle-card-no-image{align-items:center;background:var(--color-bg);border-bottom:1px solid var(--color-border);color:var(--color-text-muted);display:flex;font-size:var(--text-sm);height:120px;justify-content:center}.vehicle-card-body{padding:var(--space-4)}.vehicle-card-title{color:var(--color-text-primary);font-size:var(--text-md);font-weight:var(--weight-semibold);margin-bottom:var(--space-3)}.vehicle-card-trim{color:var(--color-text-muted);font-size:var(--text-sm);font-weight:var(--weight-normal)}.vehicle-card-grid{grid-gap:6px 20px;display:grid;font-size:var(--text-sm);gap:6px 20px;grid-template-columns:1fr 1fr}.vehicle-card-grid span:first-child{color:var(--color-text-muted)}.vehicle-card-grid span:last-child{color:var(--color-text-primary);font-weight:var(--weight-medium)}.add-vehicle-form{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);padding:var(--space-4)}.add-vehicle-form h4{font-size:var(--text-base);margin-bottom:var(--space-3)}.add-vehicle-grid{grid-gap:var(--space-2);display:grid;gap:var(--space-2);grid-template-columns:1fr 1fr}.customer-appointment-card{border-radius:var(--radius-lg);cursor:pointer;margin-bottom:var(--space-3);padding:var(--space-4);transition:box-shadow var(--transition-fast)}.customer-appointment-card:hover{box-shadow:var(--shadow-md)}.customer-appt-top{align-items:center;display:flex;justify-content:space-between;margin-bottom:var(--space-2)}.customer-appt-top strong{color:var(--color-text-primary);font-size:var(--text-sm)}.customer-appt-grid{grid-gap:4px 20px;display:grid;font-size:var(--text-sm);gap:4px 20px;grid-template-columns:1fr 1fr}.customer-appt-grid span:first-child{color:var(--color-text-muted)}.part-list-row{align-items:center;border-bottom:1px solid var(--color-border);display:flex;font-size:var(--text-sm);justify-content:space-between;padding:9px 0;transition:background var(--transition-fast)}.part-list-row:hover{background:var(--color-bg)}.part-list-row-fields{display:flex;flex:1 1;gap:20px}.part-list-name{color:var(--color-text-primary);flex:2 1;font-weight:var(--weight-medium)}.part-list-num{color:var(--color-text-muted);flex:1 1}.part-list-cost{width:80px}.part-list-stock{width:70px}.part-list-stock.out-of-stock{color:var(--color-danger);font-weight:var(--weight-semibold)}.part-row-actions{display:flex;gap:var(--space-1)}.part-edit-row{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.part-edit-row input{padding:6px}.service-list-row{align-items:flex-start;border-bottom:1px solid var(--color-border);display:flex;font-size:var(--text-sm);gap:var(--space-3);justify-content:space-between;padding:var(--space-2) 0}.service-list-fields{align-items:center;display:flex;flex:1 1;gap:var(--space-4)}.service-list-name{color:var(--color-text-primary);flex:2 1;font-weight:var(--weight-medium)}.service-list-rate{color:var(--color-text-secondary);width:120px}.service-list-hours{color:var(--color-text-secondary);width:100px}.service-list-parts{color:var(--color-text-muted);width:80px}.service-row-actions{display:flex;flex-shrink:0;gap:var(--space-1)}.service-edit-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-2);padding:var(--space-3)}.service-edit-header{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-2)}.service-edit-part-row{align-items:center;display:flex;gap:var(--space-2);margin-bottom:6px}.service-edit-actions{display:flex;gap:var(--space-2);margin-top:var(--space-2)}.workflow-board{align-items:flex-start;display:flex;gap:var(--space-4);overflow-x:auto;padding-bottom:var(--space-4)}.workflow-column{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1 1;max-width:260px;min-width:200px;padding:var(--space-3)}.workflow-column-header{align-items:center;border-bottom:2px solid var(--color-border);color:var(--color-text-muted);display:flex;font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--weight-bold);justify-content:space-between;letter-spacing:.07em;margin-bottom:var(--space-3);padding-bottom:var(--space-3);text-transform:uppercase}.workflow-count{background:var(--color-bg);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:var(--weight-semibold);padding:1px 7px}.workflow-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;font-size:var(--text-sm);margin-bottom:var(--space-2);padding:var(--space-3);transition:box-shadow var(--transition-fast),border-color var(--transition-fast)}.workflow-card:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-md)}.workflow-card-name{color:var(--color-text-primary);font-weight:var(--weight-semibold);margin-bottom:2px}.workflow-card-vehicle{color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:2px}.workflow-card-tech{color:var(--color-text-secondary);font-size:var(--text-xs)}.workflow-card-time{color:var(--color-text-muted);font-size:var(--text-xs);margin-top:var(--space-1)}@media (max-width:768px){.add-vehicle-grid,.customer-appt-grid,.customer-info-grid,.form-grid-2,.service-list-fields,.vehicle-card-grid{grid-template-columns:1fr}.detail-header,.status-controls{align-items:flex-start;flex-direction:column}.workflow-board{flex-direction:column}.workflow-column{max-width:100%}.page-content{padding:var(--space-4)}}