*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}:root{--blue: #2563eb;--blue-dk: #1d4ed8;--blue-lt: #eff6ff;--gray-50: #f9fafb;--gray-100: #f3f4f6;--gray-200: #e5e7eb;--gray-400: #9ca3af;--gray-600: #4b5563;--gray-800: #1f2937;--white: #ffffff;--danger: #dc2626;--radius: 10px;--shadow: 0 1px 4px rgba(0,0,0,.1);--shadow-md:0 4px 12px rgba(0,0,0,.12)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:var(--gray-50);color:var(--gray-800);line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.btn-primary{display:inline-block;background:var(--blue);color:var(--white);border:none;border-radius:var(--radius);padding:10px 20px;font-size:15px;font-weight:600;cursor:pointer;transition:background .15s}.btn-primary:hover{background:var(--blue-dk);text-decoration:none;color:#fff}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-ghost{background:transparent;border:1.5px solid var(--gray-200);border-radius:var(--radius);padding:8px 16px;font-size:14px;cursor:pointer;color:var(--gray-600)}.btn-ghost:hover{background:var(--gray-100)}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:60px;background:var(--white);border-bottom:1px solid var(--gray-200);position:sticky;top:0;z-index:100}.navbar-brand{font-size:20px;font-weight:700;color:var(--blue);text-decoration:none}.navbar-links{display:flex;align-items:center;gap:20px;font-size:14px}.main-content{max-width:1200px;margin:0 auto;padding:32px 24px}.auth-page{display:flex;justify-content:center;align-items:flex-start;padding:48px 16px}.auth-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow-md);padding:40px;width:100%;max-width:440px}.auth-card h1{font-size:22px;margin-bottom:24px}.role-toggle{display:flex;border:1.5px solid var(--gray-200);border-radius:var(--radius);overflow:hidden;margin-bottom:24px}.role-toggle button{flex:1;padding:10px;border:none;background:var(--white);cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-600);transition:background .15s,color .15s}.role-toggle button.active{background:var(--blue);color:var(--white)}form{display:flex;flex-direction:column;gap:16px}label{display:flex;flex-direction:column;gap:4px;font-size:14px;font-weight:500;color:var(--gray-600)}input{padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:8px;font-size:15px;outline:none;transition:border-color .15s}input:focus{border-color:var(--blue)}.error{color:var(--danger);font-size:14px}.browse-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:16px;flex-wrap:wrap}.browse-header h1{font-size:26px}.search-input{padding:10px 16px;border:1.5px solid var(--gray-200);border-radius:8px;font-size:15px;min-width:260px;outline:none}.search-input:focus{border-color:var(--blue)}.plumber-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px}.plumber-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;cursor:pointer;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s,transform .15s}.plumber-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.plumber-card-header{display:flex;gap:14px;align-items:flex-start}.plumber-avatar{width:52px;height:52px;flex-shrink:0}.plumber-avatar img{width:52px;height:52px;border-radius:8px;object-fit:contain;background:#fff}.avatar-placeholder{width:52px;height:52px;border-radius:50%;background:var(--blue-lt);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}.plumber-card-info h3{font-size:17px;margin-bottom:2px}.plumber-rating{display:flex;align-items:center;gap:6px;font-size:13px}.star-rating{color:#f59e0b}.rating-num{color:var(--gray-600)}.review-count{color:var(--gray-400);font-size:12px}.plumber-experience{font-size:13px;color:var(--gray-400);margin-top:2px}.plumber-bio{font-size:14px;color:var(--gray-600);line-height:1.4}.service-areas{display:flex;flex-wrap:wrap;gap:6px}.area-tag{background:var(--gray-100);border-radius:20px;padding:3px 10px;font-size:12px;color:var(--gray-600)}.area-tag.muted{color:var(--gray-400)}.plumber-services-preview{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--gray-100);padding-top:10px}.service-preview-row{display:flex;justify-content:space-between;font-size:13px;color:var(--gray-600)}.service-price{font-weight:600;color:var(--gray-800)}.card-cta{width:100%;text-align:center;margin-top:4px}.loading-text,.empty-text{color:var(--gray-400);font-size:15px;text-align:center;padding:48px 0}.loading-screen{display:flex;align-items:center;justify-content:center;height:80vh;color:var(--gray-400)}textarea{padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:inherit;outline:none;resize:vertical}textarea:focus{border-color:var(--blue)}select{padding:10px 12px;border:1.5px solid var(--gray-200);border-radius:8px;font-size:14px;font-family:inherit;outline:none;background:var(--white);cursor:pointer}select:focus{border-color:var(--blue)}.profile-page{max-width:800px;margin:0 auto;display:flex;flex-direction:column;gap:32px}.profile-header{display:flex;gap:20px;align-items:flex-start;background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px;flex-wrap:wrap}.profile-avatar-lg{flex-shrink:0}.profile-avatar-lg img{width:80px;height:80px;border-radius:10px;object-fit:contain;background:#fff}.avatar-placeholder-lg{width:80px;height:80px;border-radius:50%;background:var(--blue-lt);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:700}.profile-header-info{flex:1;min-width:200px}.profile-header-info h1{font-size:24px;margin-bottom:6px}.profile-rating{display:flex;align-items:center;gap:8px;margin-bottom:8px}.stars-lg{color:#f59e0b;font-size:18px}.rating-detail{font-size:14px;color:var(--gray-600)}.profile-meta{display:flex;gap:16px;font-size:13px;color:var(--gray-400);margin-bottom:10px;flex-wrap:wrap}.profile-areas{display:flex;flex-wrap:wrap;gap:6px}.profile-book-btn{white-space:nowrap;align-self:flex-start;margin-left:auto}.profile-section{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.profile-section h2{font-size:18px;margin-bottom:16px}.profile-bio{font-size:15px;color:var(--gray-600);line-height:1.6}.profile-services{display:flex;flex-direction:column;gap:12px}.profile-service-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px;border:1.5px solid var(--gray-100);border-radius:var(--radius);flex-wrap:wrap}.psc-left h3{font-size:15px;margin-bottom:4px}.psc-left p{font-size:13px;color:var(--gray-600);margin-bottom:4px}.psc-duration{font-size:12px;color:var(--gray-400)}.psc-right{display:flex;align-items:center;gap:12px;flex-shrink:0}.psc-price{font-size:18px;font-weight:700;color:var(--blue)}.psc-book-btn{padding:8px 16px;font-size:13px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.modal-card{background:var(--white);border-radius:14px;width:100%;max-width:680px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0003}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--gray-200);flex-shrink:0}.modal-header h2{font-size:17px}.modal-steps{display:flex;border-bottom:1px solid var(--gray-200);flex-shrink:0}.step-tab{flex:1;padding:12px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-400);border-bottom:2px solid transparent;transition:all .15s}.step-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.step-tab:disabled{cursor:not-allowed;opacity:.5}.modal-body{padding:20px 24px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;flex:1;min-height:0}.modal-note{font-size:12px;color:var(--gray-400);text-align:center;line-height:1.5}.mini-cal-nav{display:flex;align-items:center;justify-content:space-between}.mini-cal-nav span{font-size:14px;font-weight:600}.slot-grid{display:grid;grid-template-columns:40px repeat(7,1fr);grid-auto-rows:28px;border:1px solid var(--gray-200);border-radius:8px;overflow:hidden}.slot-corner{background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.slot-day-header{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:11px;font-weight:600;background:var(--gray-50);border-left:1px solid var(--gray-200);border-bottom:1px solid var(--gray-200)}.slot-day-header.slot-today{background:var(--blue-lt);color:var(--blue)}.slot-time-label{display:flex;align-items:center;justify-content:flex-end;padding-right:6px;font-size:9px;color:var(--gray-400);border-bottom:1px solid var(--gray-100)}.slot-cell{border-left:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);transition:background .1s}.slot-open{background:#f0fdf4;cursor:pointer}.slot-open:hover{background:#bbf7d0}.slot-off{background:var(--gray-50);cursor:default}.slot-selected{background:var(--blue);cursor:pointer}.selected-slot-display{background:var(--blue-lt);color:var(--blue);border-radius:8px;padding:10px 14px;font-size:14px;text-align:center}.operator-dashboard{display:flex;flex-direction:column;height:calc(100vh - 60px);overflow:hidden;padding:0;max-width:100%;margin:0}.operator-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--white);border-bottom:1px solid var(--gray-200);flex-shrink:0;gap:16px;flex-wrap:wrap}.operator-title h1{font-size:20px;line-height:1.2}.operator-subtitle{font-size:13px;color:var(--gray-400)}.operator-stats{display:flex;gap:12px;flex-wrap:wrap}.stat-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:var(--radius);padding:10px 18px;text-align:center;min-width:90px}.stat-card.blue{background:#eff6ff;border-color:#bfdbfe}.stat-card.amber{background:#fffbeb;border-color:#fde68a}.stat-card.green{background:#f0fdf4;border-color:#bbf7d0}.stat-value{display:block;font-size:24px;font-weight:700;line-height:1.2}.stat-label{display:block;font-size:11px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em;margin-top:2px}.operator-body{display:flex;flex:1;overflow:hidden;gap:0;min-height:0}.operator-empty{display:flex;align-items:center;justify-content:center;flex:1;color:var(--gray-400)}.cal-full-wrap{display:flex;flex-direction:column;flex:1;min-width:0;min-height:0;overflow:hidden}.cal-tech-filter{display:flex;align-items:center;gap:8px;padding:8px 16px;border-bottom:1px solid var(--gray-200);background:var(--white);flex-shrink:0}.cal-tech-filter-label{font-size:12px;color:var(--gray-400);font-weight:500;white-space:nowrap}.cal-tech-select{border:1.5px solid var(--gray-200);border-radius:8px;padding:5px 10px;font-size:13px;font-weight:500;color:var(--gray-700);background:var(--white);cursor:pointer;outline:none}.cal-tech-select:focus{border-color:var(--blue)}.status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.status-dot.green{background:#22c55e}.status-dot.amber{background:#f59e0b}.status-dot.red{background:#ef4444}.status-dot.gray{background:var(--gray-300, #d1d5db)}.weekly-calendar{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--white);min-height:0}.cal-nav{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--gray-200);flex-shrink:0}.cal-nav h2{font-size:16px;flex:1;text-align:center}.cal-week-wrap{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.cal-week-header-row{display:flex;flex-shrink:0;background:var(--white);border-bottom:2px solid var(--gray-200);z-index:3}.cal-time-body{flex:1;overflow-y:auto;min-height:0}.cal-week-gutter{width:52px;flex-shrink:0;border-right:1px solid var(--gray-200)}.cal-week-day-hdr{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 4px;border-left:1px solid var(--gray-100);font-size:12px;cursor:pointer;-webkit-user-select:none;user-select:none}.cal-week-day-hdr:hover{background:var(--gray-50)}.cal-week-day-hdr.cal-today{background:var(--blue-lt);color:var(--blue)}.day-name{font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.05em}.day-num{font-size:20px;font-weight:700;line-height:1.2}.cal-week-inner{display:flex;position:relative}.cal-week-time-gutter{width:52px;flex-shrink:0;border-right:1px solid var(--gray-200);position:sticky;left:0;background:var(--white);z-index:2}.cal-week-time-slot{display:flex;align-items:flex-start;justify-content:flex-end;padding:3px 6px 0 0;font-size:10px;color:var(--gray-400);border-bottom:1px solid var(--gray-100);box-sizing:border-box}.cal-week-day-col{flex:1;position:relative;border-right:1px solid var(--gray-100);min-width:0}.cal-week-hour-slot{position:absolute;left:0;right:0;border-bottom:1px solid var(--gray-100);box-sizing:border-box;cursor:pointer;z-index:0}.cal-week-hour-slot:hover{background:#3b82f60f}.cal-week-slot-off{background:var(--gray-50);cursor:default}.cal-week-slot-off:hover{background:var(--gray-50)}.cal-week-slot-target{background:#3b82f62e!important}.cal-week-event{position:absolute;border-radius:5px;padding:3px 5px;overflow:hidden;cursor:pointer;z-index:1;box-sizing:border-box;border:1px solid rgba(255,255,255,.25);transition:filter .1s}.cal-week-event:hover{filter:brightness(1.08);z-index:2}.cal-day-event{padding:5px 8px;border-radius:6px}.cal-event-time{display:block;font-size:9px;color:#fffc;font-weight:600;line-height:1.2}.cal-event-name{display:block;font-size:11px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-service{display:block;font-size:10px;color:#ffffffd9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-tech{display:block;font-size:9px;color:#ffffffbf;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-week-now-line{position:absolute;left:0;right:0;height:2px;background:#ef4444;z-index:3;pointer-events:none}.cal-week-now-line:before{content:"";position:absolute;left:-4px;top:-4px;width:10px;height:10px;border-radius:50%;background:#ef4444}.cal-legend{display:flex;gap:16px;padding:8px 16px;border-top:1px solid var(--gray-100);font-size:11px;color:var(--gray-600);flex-shrink:0;flex-wrap:wrap}.legend-swatch{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:4px;vertical-align:middle}.day-view-grid{display:flex;flex-direction:column;padding:8px 16px;gap:2px}.day-row{display:flex;align-items:flex-start;gap:12px;min-height:48px;padding:4px 0;border-bottom:1px solid var(--gray-100)}.day-row-open{background:transparent;cursor:pointer}.day-row-off{background:transparent;opacity:.5}.day-row-time{font-size:12px;color:var(--gray-400);width:40px;flex-shrink:0;padding-top:4px}.day-row-bookings{flex:1;display:flex;flex-direction:column;gap:4px}.day-booking-block{display:flex;align-items:flex-start;justify-content:space-between;background:#f8fafc;border-left:4px solid #3b82f6;border-radius:6px;padding:8px 12px;cursor:pointer;gap:12px}.day-booking-block:hover{background:#f1f5f9}.day-booking-left{display:flex;flex-direction:column;gap:2px}.day-booking-client{font-size:14px;font-weight:600}.day-booking-service{font-size:12px;color:var(--gray-500)}.day-booking-address{font-size:12px;color:var(--gray-400)}.day-booking-tech{font-size:12px;font-weight:500}.day-booking-notes{font-size:11px;color:var(--gray-400);font-style:italic}.day-booking-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex-shrink:0}.day-booking-price{font-size:14px;font-weight:700;color:var(--gray-700)}.day-open-label{font-size:12px;color:var(--gray-300);padding-top:4px}.service-panel{width:240px;flex-shrink:0;border-left:1px solid var(--gray-200);overflow-y:auto;padding:16px;background:var(--white);display:flex;flex-direction:column;gap:16px}.service-panel-header{display:flex;gap:12px;align-items:flex-start}.sp-avatar{width:44px;height:44px;border-radius:50%;background:var(--blue-lt);color:var(--blue);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0}.service-panel h3{font-size:15px;margin:0}.sp-rating{display:flex;align-items:center;gap:4px;font-size:11px;color:var(--gray-600);margin-top:2px}.sp-rating .stars{color:#f59e0b}.sp-bio{font-size:12px;color:var(--gray-600);line-height:1.5}.sp-meta{display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--gray-400)}.sp-section h4{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400);margin-bottom:8px}.sp-services{display:flex;flex-direction:column;gap:10px}.sp-service-row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.sp-service-left{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0}.sp-service-name{font-size:13px;font-weight:600}.sp-service-desc{font-size:11px;color:var(--gray-400);line-height:1.3}.sp-service-duration{font-size:10px;color:var(--gray-400)}.sp-price{font-size:13px;font-weight:700;color:var(--blue);white-space:nowrap}.sp-price-estimate{color:#16a34a}.sp-areas{display:flex;flex-wrap:wrap;gap:4px}.sp-empty{font-size:12px;color:var(--gray-400)}.sp-stripe-badge{font-size:12px;padding:6px 10px;border-radius:6px;font-weight:500}.sp-stripe-badge.active{background:#f0fdf4;color:#16a34a}.sp-stripe-badge.inactive{background:#fffbeb;color:#d97706}.quick-book-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:200}.quick-book-form{background:var(--white);border-radius:14px;padding:28px;width:100%;max-width:440px;box-shadow:0 20px 60px #0003}.qb-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;gap:8px}.qb-header h3{font-size:18px;margin:0}.qb-slot{font-size:13px;color:var(--gray-400);display:block;margin-top:2px}.qb-close{background:none;border:none;font-size:18px;cursor:pointer;color:var(--gray-400);padding:0;margin-left:auto}.qb-client-search{position:relative;margin-bottom:12px}.qb-search-row{position:relative;display:flex;align-items:center}.qb-search-row input{flex:1}.qb-input-selected{border-color:var(--blue)!important;background:var(--blue-lt)!important}.qb-clear-client{position:absolute;right:8px;background:none;border:none;color:var(--gray-400);cursor:pointer;font-size:13px;padding:0 4px}.qb-searching{position:absolute;right:10px;color:var(--gray-400);font-size:12px}.qb-selected-client{display:flex;align-items:center;gap:8px;padding:6px 10px;background:var(--blue-lt);border-radius:6px;margin-top:4px}.qb-client-name{font-size:13px;font-weight:600;color:var(--blue)}.qb-client-phone{font-size:12px;color:var(--gray-400)}.qb-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--gray-200);border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:100;overflow:hidden}.qb-dropdown-item{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;cursor:pointer;gap:8px}.qb-dropdown-item:hover{background:var(--gray-50)}.qb-dropdown-name{font-size:14px;font-weight:500}.qb-dropdown-phone{font-size:12px;color:var(--gray-400)}.qb-dropdown-empty{padding:12px 14px;font-size:13px;color:var(--gray-400);text-align:center}.qb-price-preview{background:var(--blue-lt);color:var(--blue);border-radius:8px;padding:10px 14px;font-size:14px}.qb-actions{display:flex;gap:10px;justify-content:flex-end}.detail-panel-backdrop{position:fixed;inset:0;background:#00000059;z-index:49;animation:backdropIn .2s ease}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.detail-panel{position:fixed;top:0;right:0;bottom:0;width:540px;background:var(--white);display:flex;flex-direction:column;overflow:hidden;z-index:50;box-shadow:-8px 0 40px #0000002e;animation:drawerIn .22s cubic-bezier(.25,.46,.45,.94)}@keyframes drawerIn{0%{transform:translate(100%);opacity:.6}to{transform:translate(0);opacity:1}}.dp-header{display:flex;align-items:flex-start;justify-content:space-between;padding:16px;border-bottom:1px solid var(--gray-200);flex-shrink:0}.dp-header h3{font-size:15px;margin-bottom:4px}.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600}.badge-amber{background:#fef3c7;color:#d97706}.badge-blue{background:#dbeafe;color:#1d4ed8}.badge-green{background:#dcfce7;color:#16a34a}.badge-gray{background:var(--gray-100);color:var(--gray-600)}.badge-red{background:#fee2e2;color:#dc2626}.dp-contact{display:flex;gap:8px;padding:12px 16px;border-bottom:1px solid var(--gray-100);flex-shrink:0}.contact-btn{flex:1;text-align:center;padding:8px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none;cursor:pointer}.call-btn{background:#f0fdf4;color:#16a34a}.call-btn:hover{background:#dcfce7;text-decoration:none}.sms-btn{background:#eff6ff;color:var(--blue)}.sms-btn:hover{background:#dbeafe;text-decoration:none}.wa-btn{background:#f0fdf4;color:#16a34a}.wa-btn:hover{background:#dcfce7;text-decoration:none}.no-phone{font-size:12px;color:var(--gray-400);padding:8px 0}.dp-emergency-badge{background:#fee2e2;color:#dc2626;font-size:13px;font-weight:700;padding:8px 16px;border-bottom:1px solid #fecaca;flex-shrink:0}.dp-tech-notify{display:flex;gap:8px;margin-top:8px}.dp-tabs{display:flex;border-bottom:1px solid var(--gray-200);flex-shrink:0}.dp-tab{flex:1;padding:10px;border:none;background:none;cursor:pointer;font-size:13px;font-weight:500;color:var(--gray-400);border-bottom:2px solid transparent}.dp-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.msg-count{background:var(--blue);color:#fff;border-radius:10px;padding:1px 5px;font-size:10px;margin-left:4px}.dp-body{padding:14px 16px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}.dp-row{display:flex;justify-content:space-between;font-size:13px;gap:8px}.dp-row span{color:var(--gray-400);flex-shrink:0}.dp-row strong{text-align:right}.dp-notes span{font-size:12px;color:var(--gray-400);display:block;margin-bottom:4px}.dp-notes p{font-size:13px;color:var(--gray-600);background:var(--gray-50);padding:8px;border-radius:6px;line-height:1.4}.dp-actions{display:flex;flex-direction:column;gap:8px;margin-top:4px}.btn-confirm{background:#16a34a;color:#fff;border:none;border-radius:8px;padding:9px;font-size:13px;font-weight:600;cursor:pointer}.btn-confirm:hover{background:#15803d}.btn-confirm:disabled{opacity:.5;cursor:not-allowed}.pending-conflict-warn{font-size:12px;color:#d97706;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:6px 10px;margin:4px 0}.pending-card{background:#fff;border:1px solid var(--gray-200);border-radius:10px;margin-bottom:10px;overflow:hidden}.pending-card-emergency{border-color:#fca5a5;box-shadow:0 0 0 2px #fee2e2}.pending-emergency-bar{background:#fee2e2;color:#dc2626;font-size:12px;font-weight:700;padding:6px 14px}.pending-card-top{padding:12px 14px;cursor:pointer;display:flex;justify-content:space-between;gap:12px}.pending-assign-row{padding:10px 14px 12px;border-top:1px solid var(--gray-100);display:flex;flex-direction:column;gap:8px}.emergency-toggle{display:flex;align-items:center;gap:12px;padding:14px 16px;border:2px dashed #fca5a5;border-radius:10px;cursor:pointer;margin-bottom:8px;background:#fff7f7;transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.emergency-toggle:hover{border-color:#ef4444;background:#fff1f1}.emergency-active{border-style:solid;border-color:#ef4444!important;background:#fee2e2!important}.emergency-icon{font-size:26px;flex-shrink:0}.emergency-toggle>div{flex:1;display:flex;flex-direction:column;gap:2px}.emergency-toggle strong{font-size:15px;color:#dc2626}.emergency-toggle span{font-size:12px;color:#ef4444;opacity:.8}.emergency-check{width:20px;height:20px;border-radius:50%;border:2px solid var(--gray-300);flex-shrink:0;transition:all .15s}.emergency-check.checked{background:#ef4444;border-color:#ef4444}.emergency-check.checked:after{content:"✓";display:block;color:#fff;font-size:12px;text-align:center;line-height:16px;font-weight:700}.btn-propose{background:#eff6ff;color:var(--blue);border:none;border-radius:8px;padding:9px;font-size:13px;font-weight:600;cursor:pointer}.btn-propose:hover{background:#dbeafe}.btn-decline{background:#fee2e2;color:#dc2626;border:none;border-radius:8px;padding:9px;font-size:13px;font-weight:600;cursor:pointer}.dp-propose{display:flex;flex-direction:column;gap:10px}.propose-label{font-size:12px;color:var(--gray-600);font-weight:500}.propose-selected{font-size:12px;background:var(--blue-lt);color:var(--blue);padding:6px 10px;border-radius:6px}.dp-messages{display:flex;flex-direction:column;flex:1;overflow:hidden}.msg-thread{flex:1;overflow-y:auto;padding:12px 16px;display:flex;flex-direction:column;gap:8px}.msg-empty{font-size:13px;color:var(--gray-400);text-align:center;padding:20px 0}.msg-bubble{display:flex;flex-direction:column;max-width:85%}.msg-in{align-self:flex-start}.msg-out{align-self:flex-end}.msg-system{align-self:center}.msg-sender{font-size:10px;font-weight:600;color:var(--gray-400);margin-bottom:2px}.msg-out .msg-sender{text-align:right}.msg-bubble p{padding:8px 10px;border-radius:10px;font-size:13px;margin:0;line-height:1.4}.msg-in p{background:var(--gray-100);color:var(--gray-800)}.msg-out p{background:var(--blue);color:#fff}.msg-system-text{font-size:11px;color:var(--gray-400);background:var(--gray-100);padding:4px 10px;border-radius:20px}.msg-time{font-size:10px;color:var(--gray-400);margin-top:2px}.msg-out .msg-time{text-align:right}.msg-input-row{display:flex;gap:8px;padding:10px 16px;border-top:1px solid var(--gray-200);flex-shrink:0}.msg-input-row input{flex:1;padding:8px 12px;font-size:13px;border:1.5px solid var(--gray-200);border-radius:8px;outline:none}.msg-input-row input:focus{border-color:var(--blue)}.msg-input-row .btn-primary{padding:8px 14px;font-size:13px}.tech-view{max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:0;min-height:100vh;background:var(--gray-50)}.tech-header{display:flex;align-items:center;gap:14px;padding:20px 20px 16px;background:var(--white);border-bottom:1px solid var(--gray-200)}.tech-logo{height:48px;object-fit:contain}.tech-header h1{font-size:18px;margin-bottom:2px}.tech-subtitle{font-size:13px;color:var(--gray-400)}.tech-stats{display:flex;background:var(--white);border-bottom:1px solid var(--gray-200)}.tech-stat{flex:1;text-align:center;padding:14px 8px;border-right:1px solid var(--gray-100)}.tech-stat:last-child{border-right:none}.tech-stat-num{display:block;font-size:26px;font-weight:700;color:var(--blue)}.tech-stat-label{display:block;font-size:11px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.05em}.tech-tabs{display:flex;background:var(--white);border-bottom:2px solid var(--gray-200);position:sticky;top:0;z-index:10}.tech-tab{flex:1;padding:12px;border:none;background:none;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-400);border-bottom:2px solid transparent;margin-bottom:-2px}.tech-tab.active{color:var(--blue);border-bottom-color:var(--blue)}.tech-tab-badge{background:var(--blue);color:#fff;border-radius:10px;padding:1px 6px;font-size:11px;margin-left:4px}.tech-jobs{display:flex;flex-direction:column;gap:10px;padding:16px}.tech-empty{text-align:center;color:var(--gray-400);font-size:14px;padding:48px 0}.tech-job-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;border-left:4px solid var(--gray-200)}.tech-job-card.job-active{border-left-color:#22c55e}.tech-job-header{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.tech-job-header:hover{background:var(--gray-50)}.tech-job-time{display:flex;flex-direction:column;align-items:center;min-width:54px;flex-shrink:0}.job-time-main{font-size:15px;font-weight:700}.job-time-date{font-size:10px;color:var(--gray-400);text-transform:uppercase}.tech-job-summary{flex:1;min-width:0}.job-service{display:block;font-size:14px;font-weight:600}.job-client{display:block;font-size:12px;color:var(--gray-600);margin-top:1px}.job-address{display:block;font-size:11px;color:var(--gray-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}.tech-job-right{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.job-chevron{font-size:10px;color:var(--gray-400)}.job-status-badge{font-size:11px;font-weight:600;padding:3px 8px;border-radius:20px}.status-confirmed{background:#dbeafe;color:#1d4ed8}.status-in_progress{background:#dcfce7;color:#16a34a}.status-completed{background:var(--gray-100);color:var(--gray-600)}.tech-job-detail{padding:0 16px 16px;border-top:1px solid var(--gray-100);display:flex;flex-direction:column;gap:12px}.job-notes span{font-size:11px;color:var(--gray-400);display:block;margin-bottom:4px;margin-top:12px}.job-notes p{font-size:13px;color:var(--gray-600);background:var(--gray-50);padding:10px;border-radius:8px;line-height:1.5}.job-detail-row{display:flex;justify-content:space-between;font-size:13px}.job-detail-row span{color:var(--gray-400)}.job-contact-row{display:flex;gap:8px}.job-contact-btn{flex:1;text-align:center;padding:10px;border-radius:8px;font-size:13px;font-weight:600;text-decoration:none}.job-call{background:#f0fdf4;color:#16a34a}.job-call:hover{background:#dcfce7;text-decoration:none}.job-map{background:#eff6ff;color:var(--blue)}.job-map:hover{background:#dbeafe;text-decoration:none}.job-actions{display:flex;gap:8px}.job-btn-start{flex:1;background:var(--blue);color:#fff;border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:600;cursor:pointer}.job-btn-start:hover{background:var(--blue-dk)}.job-btn-done{flex:1;background:#16a34a;color:#fff;border:none;border-radius:8px;padding:12px;font-size:14px;font-weight:600;cursor:pointer}.job-btn-done:hover{background:#15803d}.operator-brand{display:flex;align-items:center;gap:12px}.operator-logo{height:44px;object-fit:contain}.tech-assign-section{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--gray-100);padding-top:12px}.tech-assign-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400)}.tech-avail-grid{display:flex;flex-wrap:wrap;gap:5px}.tech-avail-chip{display:flex;align-items:center;gap:4px;padding:4px 8px;border-radius:20px;font-size:11px;font-weight:500;border:1.5px solid transparent;cursor:default}.tech-free{background:#f0fdf4;border-color:#bbf7d0;cursor:pointer}.tech-busy{background:var(--gray-50);color:var(--gray-400)}.tech-selected{border-color:var(--blue)!important;background:var(--blue-lt)!important;color:var(--blue)}.tech-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.tech-dot.green{background:#22c55e}.tech-dot.red{background:#ef4444}.tech-chip-name{white-space:nowrap}.tech-dropdown{width:100%}.landing-page{margin:-32px -24px;display:flex;flex-direction:column}.landing-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:60px 24px 56px;background:linear-gradient(160deg,#1e3a8a,#2563eb 60%,#3b82f6);color:#fff;gap:16px}.landing-logo{height:100px;object-fit:contain;filter:drop-shadow(0 4px 16px rgba(0,0,0,.3));background:#fff;border-radius:12px;padding:8px 16px}.landing-tagline{font-size:clamp(20px,4vw,30px);font-weight:700;max-width:640px;line-height:1.3;margin:0}.landing-established{font-size:15px;opacity:.85;margin:0}.landing-phone{font-size:22px;font-weight:700;color:#fff;text-decoration:none;letter-spacing:.03em}.landing-phone:hover{text-decoration:underline;color:#fff}.landing-book-btn{font-size:18px;padding:14px 40px;border-radius:50px;background:#fff;color:var(--blue);box-shadow:0 4px 20px #0003;margin-top:4px;border:none;cursor:pointer;font-weight:700;transition:transform .15s,box-shadow .15s}.landing-book-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px #00000040;background:#f0f9ff;text-decoration:none;color:var(--blue-dk)}.landing-areas-bar{display:flex;align-items:center;justify-content:center;gap:10px;background:#1e40af;color:#bfdbfe;padding:12px 24px;font-size:14px}.landing-areas-bar strong{color:#fff}.landing-services-section{padding:56px 24px 48px;max-width:1100px;margin:0 auto;width:100%}.landing-services-section h2{font-size:26px;text-align:center;margin-bottom:32px;color:var(--gray-800)}.landing-services-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin-bottom:40px}.landing-service-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px;display:flex;gap:14px;align-items:flex-start;transition:box-shadow .15s,transform .15s}.landing-service-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.lsc-icon{font-size:28px;flex-shrink:0}.lsc-body h3{font-size:15px;margin-bottom:4px}.lsc-body p{font-size:13px;color:var(--gray-600);margin-bottom:6px;line-height:1.4}.lsc-price{font-size:13px;font-weight:700;color:var(--blue)}.landing-book-cta{text-align:center}.landing-info-section{background:var(--gray-800);color:var(--gray-200);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0}.landing-info-card{display:flex;gap:14px;align-items:flex-start;padding:28px 24px;border-right:1px solid rgba(255,255,255,.08)}.landing-info-card:last-child{border-right:none}.lic-icon{font-size:24px;flex-shrink:0}.landing-info-card strong{display:block;font-size:14px;color:#fff;margin-bottom:4px}.landing-info-card p{font-size:13px;color:var(--gray-400);line-height:1.5;margin:0}.landing-info-card a{color:#93c5fd}.landing-info-card a:hover{color:#fff}.booking-form-modal{max-width:580px}.booking-request-form{display:flex;flex-direction:column;gap:14px}.brf-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.confirmed-page{display:flex;align-items:flex-start;justify-content:center;padding:48px 16px}.confirmed-card{background:var(--white);border-radius:16px;box-shadow:var(--shadow-md);padding:48px 40px;max-width:480px;width:100%;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.confirmed-logo{height:72px;object-fit:contain;background:#fff;border-radius:8px;padding:4px 12px;border:1px solid var(--gray-100)}.confirmed-check{width:72px;height:72px;background:#dcfce7;color:#16a34a;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:700}.confirmed-card h1{font-size:24px;margin:0}.confirmed-subtitle{font-size:15px;color:var(--gray-600);max-width:340px;line-height:1.5}.confirmed-summary{width:100%;background:var(--gray-50);border-radius:var(--radius);padding:16px 20px;display:flex;flex-direction:column;gap:10px;text-align:left}.cs-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;align-items:center}.cs-row span{color:var(--gray-400);flex-shrink:0}.cs-row strong{text-align:right}.confirmed-call-note{font-size:14px;color:var(--gray-600)}.confirmed-phone{font-weight:700;color:var(--blue)}.confirmed-btn{text-decoration:none;display:inline-block}.my-bookings-page{max-width:720px;margin:0 auto}.mb-header{text-align:center;margin-bottom:28px}.mb-logo{height:48px;margin:0 auto 12px;display:block}.mb-title{font-size:26px;margin-bottom:6px}.mb-subtitle{color:#6b7280;font-size:14px}.mb-lookup-form{display:flex;gap:10px;max-width:480px;margin:0 auto 28px}.mb-phone-input{flex:1;padding:11px 14px;border:1.5px solid #e5e7eb;border-radius:8px;font-size:16px}.mb-phone-input:focus{outline:none;border-color:#2563eb}.mb-empty{text-align:center;color:#6b7280;padding:32px 0}.mb-help{text-align:center;color:#9ca3af;font-size:13px;margin-top:32px}.mb-help a{color:#2563eb}.mb-card-link{text-decoration:none;color:inherit;cursor:pointer}.mb-card-link:hover{box-shadow:0 4px 16px #0000001a}.mb-list{display:flex;flex-direction:column;gap:12px}.mb-card{background:var(--white);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.mb-card-header{display:flex;align-items:center;gap:12px;padding:16px 20px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .12s}.mb-card-header:hover{background:var(--gray-50)}.mb-card-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.mb-card-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.mb-service-name{font-size:16px;font-weight:600}.mb-card-meta{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:var(--gray-600)}.mb-meta-item{white-space:nowrap}.mb-chevron{color:var(--gray-400);font-size:11px;flex-shrink:0}.mb-card-detail{border-top:1px solid var(--gray-100);padding:16px 20px;display:flex;flex-direction:column;gap:14px}.mb-notes-label{font-size:12px;color:var(--gray-400);display:block;margin-bottom:4px}.mb-notes p{font-size:13px;color:var(--gray-600);background:var(--gray-50);padding:10px;border-radius:8px;line-height:1.5;margin:0}.mb-detail-row{display:flex;justify-content:space-between;font-size:13px}.mb-detail-row span{color:var(--gray-400)}.mb-messages-section{display:flex;flex-direction:column;gap:8px}.mb-msg-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400)}.mb-msg-thread{background:var(--gray-50);border-radius:8px;padding:12px;display:flex;flex-direction:column;gap:8px;max-height:280px;overflow-y:auto}.inbox-layout{display:flex;flex:1;overflow:hidden;height:100%}.inbox-list{width:300px;flex-shrink:0;border-right:1px solid var(--gray-200);display:flex;flex-direction:column;overflow:hidden}.inbox-list-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--gray-100);flex-shrink:0}.inbox-list-header h2{font-size:16px}.inbox-count{font-size:12px;color:var(--gray-400)}.inbox-empty{padding:24px 16px;color:var(--gray-400);font-size:13px;text-align:center}.inbox-row{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--gray-100);transition:background .1s}.inbox-row:hover{background:var(--gray-50)}.inbox-row-active{background:#eff6ff!important;border-left:3px solid var(--blue)}.inbox-avatar{width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.inbox-avatar-lg{width:44px;height:44px;font-size:18px}.inbox-row-body{flex:1;min-width:0}.inbox-row-top{display:flex;justify-content:space-between;align-items:baseline;gap:4px}.inbox-client-name{font-size:14px;font-weight:600}.inbox-time{font-size:11px;color:var(--gray-400);flex-shrink:0}.inbox-row-sub{display:flex;align-items:center;justify-content:space-between;margin-top:2px}.inbox-preview{font-size:12px;color:var(--gray-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.inbox-unread{background:var(--blue);color:#fff;border-radius:10px;padding:1px 6px;font-size:10px;font-weight:700;flex-shrink:0}.inbox-booking-tag{font-size:10px;color:var(--blue);background:#eff6ff;border-radius:4px;padding:2px 6px;margin-top:4px;display:inline-block}.inbox-detail{flex:1;display:flex;flex-direction:column;overflow:hidden}.inbox-detail-header{display:flex;gap:16px;padding:14px 16px;border-bottom:1px solid var(--gray-200);flex-shrink:0;background:var(--gray-50)}.inbox-detail-client{display:flex;gap:12px;align-items:flex-start;flex:1}.inbox-detail-client h3{font-size:16px;margin-bottom:6px}.inbox-contact-row{display:flex;gap:6px}.inbox-booking-summary{min-width:220px;max-width:260px;background:#fff;border:1px solid var(--gray-200);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:6px}.ibs-row{display:flex;justify-content:space-between;font-size:12px;gap:8px}.ibs-row span{color:var(--gray-400)}.ibs-row strong{text-align:right;font-size:12px}.ibs-notes span{font-size:11px;color:var(--gray-400);display:block;margin-bottom:2px}.ibs-notes p{font-size:12px;background:var(--gray-50);border-radius:6px;padding:6px;line-height:1.4}.inbox-emergency-tag{background:#fee2e2;color:#dc2626;font-size:11px;font-weight:700;border-radius:6px;padding:4px 8px;text-align:center}.inbox-thread{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:4px}.inbox-msg-group{display:flex;flex-direction:column;gap:4px;flex-shrink:0}.inbox-date-sep{display:flex;align-items:center;gap:8px;margin:10px 0 6px}.inbox-date-sep:before,.inbox-date-sep:after{content:"";flex:1;height:1px;background:var(--gray-200)}.inbox-date-sep span{font-size:11px;color:var(--gray-400);font-weight:600;white-space:nowrap}.inbox-msg-row{display:flex;align-items:flex-end;gap:4px}.inbox-msg-row--out{flex-direction:row-reverse}.inbox-msg-row .msg-bubble{flex-shrink:0}.inbox-msg-delete{opacity:0;background:none;border:none;color:var(--gray-400);font-size:11px;cursor:pointer;padding:2px 4px;border-radius:4px;flex-shrink:0;transition:opacity .15s}.inbox-msg-row:hover .inbox-msg-delete{opacity:1}.inbox-msg-delete:hover{color:#dc2626;background:#fee2e2}.inbox-input-row{display:flex;gap:8px;padding:12px 16px;border-top:1px solid var(--gray-200);flex-shrink:0;align-items:center}.inbox-input{flex:1}.inbox-img-btn{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--gray-200);background:var(--gray-50);cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gray-500);font-size:11px}.inbox-img-btn:hover:not(:disabled){background:var(--gray-100)}.inbox-img-btn:disabled{opacity:.5;cursor:default}.inbox-empty-state{flex:1;display:flex;align-items:center;justify-content:center;color:var(--gray-400);font-size:14px}.invoicing-view{padding:24px;overflow-y:auto;flex:1}.invoicing-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.invoicing-header h2{font-size:20px}.invoicing-sub{font-size:13px;color:var(--gray-400);margin-top:2px}.invoicing-summary{display:flex;gap:16px}.inv-stat{display:flex;flex-direction:column;align-items:flex-end}.inv-stat-num{font-size:22px;font-weight:700}.inv-stat-label{font-size:11px;color:var(--gray-400)}.inv-bulk-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--gray-50);border-radius:8px;margin-bottom:12px}.inv-check-all{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.inv-selected-count{font-size:13px;color:var(--gray-500)}.inv-table-wrap{overflow-x:auto;border:1px solid var(--gray-200);border-radius:10px}.inv-table{width:100%;border-collapse:collapse;font-size:13px}.inv-table th{background:var(--gray-50);padding:10px 12px;text-align:left;font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--gray-200)}.inv-table td{padding:10px 12px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.inv-table tr:last-child td{border-bottom:none}.inv-row-selected td{background:#eff6ff}.inv-client{font-weight:600;display:block}.inv-phone{font-size:11px;color:var(--gray-400);display:block}.inv-date{white-space:nowrap;color:var(--gray-500)}.inv-address{font-size:12px;color:var(--gray-500);max-width:160px}.inv-amount{font-weight:700;white-space:nowrap}.inv-no-price{color:var(--gray-400);font-style:italic;font-weight:400}.inv-row-actions{display:flex;gap:6px;align-items:center}.inv-export-btn{background:var(--gray-100);color:var(--gray-600);border:none;border-radius:6px;padding:5px 10px;font-size:12px;cursor:pointer}.inv-export-btn:hover{background:var(--gray-200)}.inv-done-section{margin-top:28px}.inv-done-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.inv-done-header h3{font-size:15px;color:var(--gray-500)}.inv-done-list{border:1px solid var(--gray-200);border-radius:10px;overflow:hidden}.inv-done-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--gray-100);font-size:13px}.inv-done-row:last-child{border-bottom:none}.inv-done-check{color:#16a34a;font-weight:700;flex-shrink:0}.inv-invoiced-on{font-size:11px;color:var(--gray-400);margin-left:auto}.inv-more{padding:10px 14px;font-size:12px;color:var(--gray-400)}.dp-edit-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--border)}.dp-edit-row-col{flex-direction:column;align-items:flex-start}.dp-edit-label{font-size:12px;color:var(--text-muted);width:88px;flex-shrink:0;font-weight:500}.dp-edit-input{flex:1;border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:13px;color:var(--text);background:var(--surface);outline:none;transition:border-color .15s}.dp-edit-input:focus{border-color:var(--primary)}.dp-edit-input-sm{max-width:120px;flex:none}.dp-edit-textarea{width:100%;border:1px solid var(--border);border-radius:6px;padding:6px 8px;font-size:13px;color:var(--text);background:var(--surface);resize:vertical;font-family:inherit;outline:none;transition:border-color .15s}.dp-edit-textarea:focus{border-color:var(--primary)}.dp-status-select{flex:1;border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:13px;font-weight:600;outline:none;cursor:pointer;background:var(--surface)}.status-sel-pending{color:#b45309;border-color:#fbbf24;background:#fffbeb}.status-sel-confirmed{color:#1d4ed8;border-color:#60a5fa;background:#eff6ff}.status-sel-in_progress{color:#15803d;border-color:#4ade80;background:#f0fdf4}.status-sel-completed,.status-sel-cancelled{color:#374151;border-color:#9ca3af;background:#f9fafb}.status-sel-declined{color:#b91c1c;border-color:#f87171;background:#fef2f2}.dp-save-bar{margin-top:16px;padding-top:12px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:8px}.dp-confirm-btn{width:100%;padding:11px;font-size:14px;font-weight:700;border-radius:8px;background:#16a34a;color:#fff;border:none;cursor:pointer}.dp-confirm-btn:hover:not(:disabled){background:#15803d}.dp-confirm-btn:disabled{opacity:.45;cursor:default}.dp-deposit-banner{padding:8px 12px;border-radius:8px;font-size:13px;margin-bottom:4px}.dp-deposit-pending{background:#fffbeb;color:#92400e;border:1px solid #fde68a}.dp-deposit-paid{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}.inv-amount-breakdown{display:flex;flex-direction:column;gap:2px}.inv-deposit-credit{font-size:11px;color:#16a34a}.inv-balance{font-size:12px;font-weight:700;color:#1d4ed8}.dp-save-btn{width:100%;padding:10px;font-size:14px;font-weight:600;border-radius:8px}.dp-save-btn:disabled{opacity:.45;cursor:default}.tech-recommended{border-color:#f59e0b!important;background:#fffbeb!important;box-shadow:0 0 0 1.5px #f59e0b44}.tech-rec-star{margin-left:4px;color:#f59e0b;font-size:13px;line-height:1}.landing-socials{display:flex;gap:12px;justify-content:center;margin-top:20px}.social-btn{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:50%;background:#ffffff26;color:#fff;transition:background .2s,transform .15s;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.social-btn:hover{background:#ffffff4d;transform:translateY(-2px)}.landing-reviews-section{padding:60px 24px;background:#f8fafc}.reviews-header{text-align:center;margin-bottom:32px}.reviews-header h2{font-size:28px;font-weight:700;color:var(--text);margin-bottom:14px}.reviews-ratings{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.rating-pill{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;background:#fff;border:1px solid var(--border);text-decoration:none;font-size:13px;font-weight:600;color:var(--text);transition:box-shadow .15s}.rating-pill:hover{box-shadow:0 2px 8px #0000001a}.rating-stars{color:#f59e0b;letter-spacing:1px}.rating-label{color:var(--text-muted)}.reviews-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;max-width:1100px;margin:0 auto}.review-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:20px;box-shadow:0 1px 4px #0000000d}.review-top{display:flex;align-items:center;gap:10px;margin-bottom:12px}.review-avatar{width:38px;height:38px;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.review-name{font-weight:600;font-size:14px;color:var(--text)}.review-stars{color:#f59e0b;font-size:13px;letter-spacing:1px}.review-source-badge{margin-left:auto;opacity:.8}.review-text{font-size:14px;color:var(--text-muted);line-height:1.6;font-style:italic}.google-rating-block{display:inline-flex;align-items:center;gap:12px;padding:12px 20px;background:#fff;border:1px solid var(--border);border-radius:14px;text-decoration:none;color:var(--text);transition:box-shadow .15s,transform .15s;margin-top:4px}.google-rating-block:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.google-rating-score{font-size:28px;font-weight:800;color:var(--text);line-height:1}.google-rating-stars{color:#f59e0b;font-size:20px;letter-spacing:1px}.google-rating-sub{font-size:12px;color:var(--text-muted);margin-top:3px}.chat-fab{position:fixed;bottom:28px;right:28px;width:56px;height:56px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 16px #0003;z-index:999;transition:transform .15s,box-shadow .15s}.chat-fab:hover{transform:scale(1.08);box-shadow:0 6px 24px #00000040}.chat-fab-badge{position:absolute;top:-4px;right:-4px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;border-radius:999px;min-width:18px;height:18px;display:flex;align-items:center;justify-content:center;padding:0 4px}.chat-widget{position:fixed;bottom:28px;right:28px;width:340px;max-height:520px;border-radius:18px;background:var(--surface);box-shadow:0 8px 40px #0000002e;display:flex;flex-direction:column;z-index:999;overflow:hidden;border:1px solid var(--border)}.chat-widget-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--primary);color:#fff}.chat-widget-avatar{width:38px;height:38px;border-radius:50%;background:#fff3;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;flex-shrink:0}.chat-widget-title{font-weight:700;font-size:14px}.chat-widget-sub{font-size:11px;opacity:.85;display:flex;align-items:center;gap:5px;margin-top:2px}.chat-online-dot{width:7px;height:7px;border-radius:50%;background:#4ade80;display:inline-block}.chat-widget-close{margin-left:auto;background:none;border:none;color:#fff;cursor:pointer;font-size:16px;opacity:.8;padding:4px}.chat-widget-close:hover{opacity:1}.chat-intro{padding:20px 16px;display:flex;flex-direction:column;gap:10px}.chat-intro-text{font-size:14px;color:var(--text-muted);margin:0}.chat-intro-input{border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:14px;outline:none;color:var(--text);background:var(--surface)}.chat-intro-input:focus{border-color:var(--primary)}.chat-thread{flex:1;overflow-y:auto;padding:14px 12px;display:flex;flex-direction:column;gap:8px;min-height:0}.chat-bubble{max-width:85%;border-radius:14px;padding:9px 13px;font-size:13px;line-height:1.5}.chat-bubble p{margin:0 0 3px}.chat-time{font-size:10px;opacity:.6}.chat-out{align-self:flex-end;background:var(--primary);color:#fff;border-bottom-right-radius:4px}.chat-out .chat-time{color:#ffffffb3}.chat-in{align-self:flex-start;background:var(--bg);color:var(--text);border:1px solid var(--border);border-bottom-left-radius:4px}.chat-system{align-self:center;background:#f0fdf4;color:#166534;font-size:12px;border-radius:8px;text-align:center;max-width:95%;padding:7px 12px}.chat-input-row{display:flex;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.chat-input{flex:1;border:1px solid var(--border);border-radius:20px;padding:8px 14px;font-size:13px;outline:none;background:var(--bg)}.chat-input:focus{border-color:var(--primary)}.chat-send-btn{width:36px;height:36px;border-radius:50%;background:var(--primary);color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s}.chat-send-btn:disabled{background:var(--border);cursor:default}.inbox-chat-tag{background:#eff6ff;color:#1d4ed8}.kanban-board{display:flex;gap:14px;flex:1;overflow-x:auto;padding:16px;align-items:flex-start}.kanban-col{flex:0 0 280px;background:#f8fafc;border-radius:12px;border:2px dashed transparent;transition:border-color .15s,background .15s;display:flex;flex-direction:column;height:calc(100vh - 180px)}.kanban-col-over{border-color:#93c5fd;background:#eff6ff}.kanban-col-header{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;border-top:3px solid #e5e7eb;border-radius:10px 10px 0 0;background:#fff}.kanban-col-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.kanban-col-title{font-weight:700;font-size:13px;flex:1;color:var(--gray-700)}.kanban-col-count{background:var(--gray-100);color:var(--gray-500);font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px}.kanban-col-toggle{background:none;border:none;cursor:pointer;font-size:14px;color:var(--gray-400);padding:0 2px;line-height:1;flex-shrink:0}.kanban-col-toggle:hover{color:var(--gray-600)}.kanban-col-collapsed{min-height:unset}.kanban-cards{display:flex;flex-direction:column;gap:8px;padding:10px;overflow-y:auto;flex:1}.kanban-card{background:#fff;border-radius:10px;border:1px solid #e5e7eb;padding:11px 12px;cursor:grab;transition:box-shadow .15s,transform .1s,opacity .15s;position:relative;overflow:hidden;flex-shrink:0;height:104px}.kanban-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.kanban-card-dragging{opacity:.4;transform:scale(.97)}.kanban-card-emergency{border-left:3px solid #ef4444}.kanban-emergency-tag{font-size:11px;font-weight:700;color:#ef4444;margin-bottom:5px}.kanban-card-service{font-weight:700;font-size:13px;color:var(--gray-800);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card-client{font-size:12px;color:var(--gray-600);margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card-address{font-size:11px;color:var(--gray-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kanban-card-footer{display:flex;flex-wrap:nowrap;gap:6px;align-items:center;margin-top:6px;overflow:hidden}.kanban-card-time{font-size:11px;color:var(--gray-500)}.kanban-card-tech{font-size:11px;color:#2563eb}.kanban-card-price{font-size:12px;font-weight:700;color:#16a34a;margin-left:auto}.kanban-card-saving{position:absolute;inset:0;background:#ffffffd9;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;color:var(--gray-500);font-weight:600;border-radius:10px}.kanban-empty{text-align:center;padding:24px 12px;color:var(--gray-300);font-size:12px;border:2px dashed #e5e7eb;border-radius:8px;transition:border-color .15s,color .15s}.kanban-empty-over{border-color:#93c5fd;color:#2563eb}@keyframes shimmer{0%{background-position:-600px 0}to{background-position:600px 0}}.skeleton{background:linear-gradient(90deg,#f0f0f0 25%,#e0e0e0,#f0f0f0 75%);background-size:600px 100%;animation:shimmer 1.4s infinite linear;border-radius:6px}.skeleton-line{height:13px;margin-bottom:8px}.skeleton-line-sm{height:10px;margin-bottom:6px}.skeleton-card{background:#fff;border-radius:12px;border:1px solid #e5e7eb;padding:16px;margin-bottom:10px}.sidebar-skeleton{padding:8px 12px;display:flex;flex-direction:column;gap:10px}.sidebar-skeleton-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:8px;background:#f8fafc}.sidebar-skeleton-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.sidebar-skeleton-text{flex:1;display:flex;flex-direction:column;gap:5px}@keyframes spin{to{transform:rotate(360deg)}}.saving-spinner{width:14px;height:14px;border-radius:50%;border:2px solid #d1d5db;border-top-color:#2563eb;animation:spin .7s linear infinite;flex-shrink:0}.saving-spinner-lg{width:20px;height:20px;border-radius:50%;border:2px solid #d1d5db;border-top-color:#2563eb;animation:spin .7s linear infinite}.toast-stack{position:fixed;bottom:24px;left:24px;display:flex;flex-direction:column;gap:8px;z-index:9000;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;background:#1e293b;color:#fff;padding:12px 16px;border-radius:10px;font-size:13px;font-weight:500;box-shadow:0 4px 20px #00000040;pointer-events:auto;animation:toast-in .25s ease;max-width:320px}.toast-success{border-left:3px solid #22c55e}.toast-error{border-left:3px solid #ef4444}.toast-info{border-left:3px solid #3b82f6}@keyframes toast-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.notif-banner{display:flex;align-items:center;gap:10px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:10px 14px;font-size:13px;color:#1e40af;margin-bottom:10px}.notif-banner button{margin-left:auto;background:#2563eb;color:#fff;border:none;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:600;cursor:pointer}.notif-banner button:hover{background:#1d4ed8}.day-roster{display:flex;flex-direction:column;height:100%;overflow:hidden}.day-kpi-bar{display:flex;align-items:center;gap:0;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0;padding:0 16px}.day-kpi{display:flex;flex-direction:column;align-items:center;padding:12px 20px;border-right:1px solid var(--border)}.day-kpi-val{font-size:22px;font-weight:800;color:var(--gray-800);line-height:1}.day-kpi-label{font-size:10px;color:var(--gray-400);text-transform:uppercase;letter-spacing:.5px;margin-top:3px}.day-kpi-revenue{border-left:none}.day-kpi-revenue .day-kpi-val{color:#2563eb}.day-kpi-book{margin-left:auto;background:#2563eb;color:#fff;border:none;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;cursor:pointer}.day-kpi-book:hover{background:#1d4ed8}.day-roster-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--gray-400);text-align:center;padding:40px}.day-empty-icon{font-size:48px;margin-bottom:12px}.day-roster-empty p{font-size:15px;color:var(--gray-500)}.day-timeline{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:4px}.day-now-marker{display:flex;align-items:center;gap:8px;color:#ef4444;font-size:12px;font-weight:700;margin:8px 0}.day-now-dot{width:10px;height:10px;border-radius:50%;background:#ef4444;flex-shrink:0}.day-now-label{flex-shrink:0}.day-now-line-h{flex:1;height:2px;background:#fca5a5;border-radius:1px}.day-gap{display:flex;align-items:center;gap:8px;color:var(--gray-300);font-size:11px;margin:4px 0}.day-gap-line{flex:1;height:1px;background:#f0f0f0}.day-gap-label{flex-shrink:0;white-space:nowrap}.day-job-card{display:flex;align-items:stretch;gap:0;background:#fff;border-radius:10px;border:1px solid var(--border);border-left:4px solid #e5e7eb;cursor:pointer;transition:box-shadow .15s,transform .1s;overflow:hidden}.day-job-card:hover{box-shadow:0 4px 16px #0000001a;transform:translateY(-1px)}.day-job-past{opacity:.55}.day-job-time-col{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:14px 12px;min-width:56px;background:#f8fafc;border-right:1px solid var(--border);flex-shrink:0}.day-job-time{font-size:16px;font-weight:800;color:var(--gray-800);line-height:1}.day-job-ampm{font-size:10px;color:var(--gray-400);text-transform:uppercase;margin-top:1px}.day-job-dur{font-size:10px;color:var(--gray-400);margin-top:6px;background:var(--gray-100);border-radius:4px;padding:1px 4px}.day-job-color-bar{width:4px;flex-shrink:0}.day-job-main{flex:1;padding:12px 14px;display:flex;flex-direction:column;gap:4px}.day-job-header{display:flex;align-items:center;gap:8px;margin-bottom:2px}.day-job-service{font-size:14px;font-weight:700;color:var(--gray-800);flex:1}.day-job-client{display:flex;align-items:center;gap:10px}.day-job-client-name{font-size:13px;color:var(--gray-700);font-weight:500}.day-job-phone{font-size:12px;color:#2563eb;text-decoration:none}.day-job-phone:hover{text-decoration:underline}.day-job-address{font-size:12px;color:var(--gray-400)}.day-job-footer{display:flex;align-items:center;gap:10px;margin-top:2px}.day-job-tech{font-size:12px;font-weight:500}.day-job-price{font-size:13px;font-weight:700;color:#16a34a;margin-left:auto}.month-view{display:flex;flex-direction:column;flex:1;overflow:hidden;min-height:0}.month-summary-bar{display:flex;align-items:center;gap:20px;padding:9px 16px;background:#fff;border-bottom:1px solid var(--border);font-size:13px;color:var(--gray-600);flex-shrink:0;font-weight:500}.month-summary-revenue{color:#16a34a;font-weight:700;margin-left:auto}.month-dow-row{display:grid;grid-template-columns:repeat(7,1fr);background:#f8fafc;border-bottom:1px solid var(--border);flex-shrink:0}.month-dow-label{padding:7px 0;text-align:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400)}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;flex:1;min-height:0;overflow:hidden}.month-cell{display:flex;flex-direction:column;cursor:pointer;padding:5px 6px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:background .1s;overflow:hidden;min-height:0}.month-cell:hover{background:#f8fafc}.month-cell-today{background:#eff6ff!important}.month-cell-pad{background:#fafafa;border-right:1px solid var(--border);border-bottom:1px solid var(--border)}.month-cell-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:3px;flex-shrink:0}.month-cell-num{font-size:12px;font-weight:700;color:var(--gray-600);width:22px;height:22px;display:flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.month-cell-today .month-cell-num{background:#2563eb;color:#fff}.month-cell-revenue{font-size:9px;color:#16a34a;font-weight:700}.month-cell-jobs{display:flex;flex-direction:column;gap:2px;overflow:hidden;flex:1}.month-job-pill{display:flex;align-items:center;gap:3px;border-radius:3px;padding:2px 5px;font-size:10px;color:#fff;cursor:pointer;overflow:hidden;white-space:nowrap;flex-shrink:0;transition:filter .1s}.month-job-pill:hover{filter:brightness(.9)}.month-pill-time{font-weight:700;flex-shrink:0;font-size:9px;opacity:.9}.month-pill-name{font-weight:600;overflow:hidden;text-overflow:ellipsis}.month-pill-service{opacity:0;width:0;overflow:hidden}.month-overflow{font-size:10px;color:var(--gray-500);font-weight:600;padding:1px 5px;cursor:pointer}.month-overflow:hover{color:var(--blue)}.operator-search-wrap{position:relative;flex:1;max-width:340px;margin:0 12px}.operator-search{width:100%;box-sizing:border-box;border:1.5px solid var(--border);border-radius:8px;padding:8px 14px;font-size:13px;outline:none;background:#f8fafc;color:var(--gray-800);transition:border-color .15s}.operator-search:focus{border-color:#2563eb;background:#fff}.operator-search-results{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 30px #0000001f;z-index:9990;max-height:360px;overflow-y:auto}.operator-search-empty{padding:20px;text-align:center;color:var(--gray-400);font-size:13px}.operator-search-item{display:flex;align-items:center;gap:12px;padding:10px 14px;cursor:pointer;border-bottom:1px solid #f0f0f0;transition:background .1s}.operator-search-item:last-child{border-bottom:none}.operator-search-item:hover{background:#f8fafc}.bsi-main{flex:1;display:flex;flex-direction:column;gap:2px}.bsi-name{font-size:13px;font-weight:700;color:var(--gray-800)}.bsi-svc{font-size:11px;color:var(--gray-400)}.bsi-right{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.bsi-addr{font-size:11px;color:var(--gray-400);text-align:right;max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 20px;overflow:hidden}.overview-col{display:flex;flex-direction:column;min-height:0;background:var(--white);border:1px solid var(--gray-200);border-radius:10px;overflow:hidden}.overview-col-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--gray-100);flex-shrink:0}.overview-col-title{font-size:14px;font-weight:700;color:var(--gray-800)}.overview-job-list{flex:1;min-height:0;overflow-y:auto;padding:10px 12px;display:flex;flex-direction:column;gap:6px}.overview-job-list .list-job-row{flex-shrink:0}.list-job-row--emergency{border-left:3px solid #dc2626}.ljr-emergency-tag{font-size:11px;font-weight:700;color:#dc2626;margin-bottom:2px}.list-view{flex:1;display:flex;flex-direction:column;overflow:hidden;background:#f8fafc}.list-view-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px 12px;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0}.list-view-header h2{font-size:16px;font-weight:700;color:var(--gray-800);margin:0}.list-view-count{background:var(--gray-100);color:var(--gray-500);font-size:12px;font-weight:700;border-radius:999px;padding:3px 10px}.list-jobs{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.list-job-row{display:flex;align-items:center;gap:0;background:#fff;border-radius:10px;border:1px solid var(--border);box-shadow:0 1px 3px #0000000a;cursor:pointer;overflow:hidden;transition:box-shadow .15s,transform .1s}.list-job-row:hover{box-shadow:0 4px 14px #00000014;transform:translateY(-1px)}.list-job-row--active{border-left:3px solid #16a34a}.ljr-time{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;padding:16px 10px;background:#f8fafc;border-right:1px solid var(--border);flex-shrink:0;gap:1px;align-self:stretch}.ljr-time span:first-child{font-size:15px;font-weight:800;color:var(--gray-800);line-height:1}.ljr-time span:last-child{font-size:10px;color:var(--gray-400);text-transform:uppercase;font-weight:600}.active-pulse{font-size:11px;color:#16a34a;animation:pulse 1.5s infinite}.ljr-main{flex:1;display:flex;flex-direction:column;gap:2px;padding:12px 14px;min-width:0}.ljr-service{font-size:14px;font-weight:700;color:var(--gray-800)}.ljr-client{font-size:12px;color:var(--gray-500)}.ljr-address{font-size:11px;color:var(--gray-400);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ljr-notes{font-size:11px;color:#d97706;font-style:italic;margin-top:2px}.ljr-time-req{font-size:12px;color:var(--gray-500);font-weight:500}.ljr-right{display:flex;flex-direction:column;align-items:flex-end;gap:5px;padding:12px 14px;flex-shrink:0}.ljr-tech{font-size:11px;color:var(--gray-500);white-space:nowrap}.ljr-price{font-size:13px;font-weight:700;color:#16a34a}.pending-card{background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;box-shadow:0 1px 3px #0000000a;transition:box-shadow .15s}.pending-card:hover{box-shadow:0 4px 14px #00000014}.pending-card-emergency{border-left:3px solid #ef4444}.pending-emergency-bar{background:#fee2e2;color:#dc2626;font-size:11px;font-weight:700;padding:5px 14px;letter-spacing:.02em}.pending-card-top{display:flex;justify-content:space-between;gap:12px;padding:14px 16px;cursor:pointer}.pending-assign-row{padding:10px 16px 14px;border-top:1px solid var(--gray-100);display:flex;flex-direction:column;gap:10px;background:#fafafa}.pending-actions{display:flex;gap:8px}.btn-confirm{background:#16a34a;color:#fff;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer}.btn-confirm:hover:not(:disabled){background:#15803d}.btn-confirm:disabled{opacity:.45;cursor:not-allowed}.btn-decline{background:#fee2e2;color:#dc2626;border:none;border-radius:8px;padding:9px 16px;font-size:13px;font-weight:600;cursor:pointer}.btn-decline:hover{background:#fecaca}.dispatch-board{display:flex;flex-direction:column;flex:1;overflow:hidden;background:#f8fafc}.dispatch-summary{display:flex;align-items:center;gap:24px;padding:12px 20px;background:#fff;border-bottom:1px solid var(--border);flex-shrink:0}.dispatch-summary-item{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--gray-600)}.dispatch-summary-item strong{color:var(--gray-800);font-size:15px}.dispatch-summary-date{margin-left:auto;font-size:13px;color:var(--gray-400);font-weight:500}.dispatch-table-wrap{flex:1;overflow-y:auto;overflow-x:auto}.dispatch-table{width:100%;border-collapse:collapse;font-size:13px}.dispatch-table th{position:sticky;top:0;background:#fff;z-index:2;padding:10px 14px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--gray-400);border-bottom:2px solid var(--border)}.dispatch-table th:first-child{position:sticky;top:0;left:0;z-index:3;background:#fff;border-right:2px solid var(--gray-200)}.dispatch-row td{padding:12px 14px;border-bottom:1px solid var(--gray-100);vertical-align:middle}.dispatch-row:last-child td{border-bottom:none}.dispatch-row:hover td{background:#f8fafc}.dispatch-row-active td{background:#f0fdf4}.dispatch-row-active:hover td{background:#dcfce7}.dispatch-row-off{opacity:.45}.dispatch-tech-cell{min-width:160px;position:sticky;left:0;z-index:1;background:#fff;border-right:2px solid var(--gray-200)}.dispatch-row:hover .dispatch-tech-cell{background:#f8fafc}.dispatch-row-active .dispatch-tech-cell{background:#f0fdf4}.dispatch-row-active:hover .dispatch-tech-cell{background:#dcfce7}.dispatch-tech-name{display:flex;align-items:center;gap:7px;font-weight:700;font-size:14px;color:var(--gray-800)}.dispatch-tech-phone{margin-top:3px}.dispatch-contact-link{font-size:11px;color:var(--gray-400);text-decoration:none}.dispatch-contact-link:hover{color:var(--blue)}.dispatch-now-cell,.dispatch-next-cell{min-width:200px}.dispatch-job{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.dispatch-job:hover .dispatch-job-service{color:var(--blue)}.dispatch-job-pulse{color:#16a34a;font-size:9px;flex-shrink:0;margin-top:4px;animation:pulse 1.5s infinite}.dispatch-job>div{display:flex;flex-direction:column;gap:2px}.dispatch-job-service{font-size:13px;font-weight:700;color:var(--gray-800)}.dispatch-job-address{font-size:11px;color:var(--gray-400)}.dispatch-job-client{font-size:11px;color:var(--gray-500)}.dispatch-job-next{opacity:.85}.dispatch-next-time{font-size:11px;font-weight:700;color:var(--blue);flex-shrink:0;margin-top:4px}.dispatch-off{font-size:12px;color:var(--gray-300);font-style:italic}.dispatch-free{font-size:12px;color:#16a34a;font-weight:600}.dispatch-none{color:var(--gray-300);font-size:13px}.dispatch-count{font-size:18px;font-weight:800;color:var(--gray-700)}.dispatch-count-mid{color:#d97706}.dispatch-count-high{color:#dc2626}.dispatch-done-count{font-size:16px;font-weight:700;color:#16a34a}.dispatch-actions-cell{white-space:nowrap}.dispatch-action-btn{background:none;border:1px solid var(--gray-200);border-radius:7px;padding:5px 8px;cursor:pointer;font-size:14px;margin-right:4px;transition:background .1s}.dispatch-action-btn:hover{background:var(--gray-100)}.history-section-title{font-size:13px;font-weight:700;color:var(--gray-700);margin:0 0 10px}.history-subtitle{font-weight:400;color:var(--gray-400);font-size:12px;margin-left:4px}.history-empty{font-size:13px;color:var(--gray-400);font-style:italic;margin:0}.history-list{display:flex;flex-direction:column;gap:6px}.history-row{display:flex;align-items:center;justify-content:space-between;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:8px 12px;gap:8px}.history-row-left{display:flex;flex-direction:column;gap:2px}.history-row-right{display:flex;align-items:center;gap:6px;flex-shrink:0}.history-service{font-size:13px;font-weight:600;color:var(--gray-800)}.history-date{font-size:11px;color:var(--gray-400)}.history-client{font-size:11px;color:var(--gray-500)}.history-price{font-size:13px;font-weight:700;color:#16a34a}.brf-photo-section{display:flex;flex-direction:column;gap:8px;background:#f8fafc;border:1.5px dashed var(--gray-300);border-radius:10px;padding:14px}.brf-photo-header{display:flex;flex-direction:column;gap:3px}.brf-photo-title{font-size:14px;font-weight:700;color:var(--gray-800)}.brf-photo-hint{font-size:12px;color:var(--gray-400)}.brf-photo-previews{display:flex;flex-wrap:wrap;gap:8px}.brf-photo-thumb{position:relative;width:72px;height:72px;border-radius:8px;overflow:hidden;border:1px solid var(--gray-200)}.brf-photo-thumb img{width:100%;height:100%;object-fit:cover;display:block}.brf-photo-remove{position:absolute;top:2px;right:2px;background:#0000008c;color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:9px;cursor:pointer;display:flex;align-items:center;justify-content:center}.brf-photo-btn{align-self:flex-start;background:none;border:1.5px solid var(--blue);color:var(--blue);font-size:13px;font-weight:600;padding:6px 14px;border-radius:8px;cursor:pointer}.brf-photo-btn:disabled{opacity:.5;cursor:default}.dp-photos{display:flex;flex-direction:column;gap:6px}.dp-photos-label{font-size:12px;font-weight:700;color:var(--gray-500)}.dp-photos-grid{display:flex;flex-wrap:wrap;gap:6px}.dp-photo-thumb{width:80px;height:80px;object-fit:cover;border-radius:8px;border:1px solid var(--gray-200);cursor:pointer;transition:opacity .15s}.dp-photo-thumb:hover{opacity:.85}.confirmed-update-flash{background:#dbeafe;color:#1e40af;font-size:13px;font-weight:600;border-radius:8px;padding:8px 14px;margin-bottom:12px;animation:fadeIn .3s ease}.confirmed-live-note{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--gray-400);margin-top:4px}.confirmed-live-dot{width:8px;height:8px;border-radius:50%;background:#16a34a;flex-shrink:0;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.inbox-back-btn,.mobile-overview{display:none}@media(max-width:430px){.landing-hero{padding:36px 16px 32px}.landing-logo{height:72px}.modal-overlay{padding:0;align-items:flex-end}.modal-card{max-width:100%;height:92vh;border-radius:18px 18px 0 0}.modal-header{padding:16px 16px 12px;flex-shrink:0}.booking-form-modal{max-width:100%}.modal-body{flex:1;min-height:0;overflow-y:scroll;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;overflow-x:hidden}.brf-row{grid-template-columns:1fr}.booking-request-form{width:100%}.booking-request-form input,.booking-request-form select,.booking-request-form textarea{max-width:100%;box-sizing:border-box}.confirmed-card{padding:32px 20px;margin:16px}.operator-header{flex-direction:column;align-items:stretch;padding:12px 14px;gap:10px}.operator-title{flex-direction:column;gap:6px}.operator-brand{gap:8px}.operator-logo{height:32px}.operator-title h1{font-size:16px}.operator-view-tabs{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;gap:4px;padding-bottom:2px;scrollbar-width:none}.operator-view-tabs::-webkit-scrollbar{display:none}.operator-view-tab{white-space:nowrap;flex-shrink:0}.operator-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-card{min-width:0}.operator-search-wrap,.operator-search{width:100%}.overview-grid,.operator-stats{display:none}.mobile-overview{display:flex;flex-direction:column;flex:1;overflow-y:auto;min-height:0}.mobile-top-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 14px 8px;flex-shrink:0}.mobile-top-tile{background:#fff;border-radius:14px;border:1px solid var(--gray-200);padding:18px 12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.mobile-top-tile{cursor:pointer}.mobile-top-tile--active{border-color:#3b82f6;background:#eff6ff}.mobile-top-tile--purple.mobile-top-tile--active{border-color:#7c3aed;background:#f5f3ff}.mobile-top-tile-count{font-size:32px;font-weight:800;line-height:1;color:var(--gray-800)}.mobile-top-tile--purple .mobile-top-tile-count{color:#7c3aed}.mobile-top-tile-label{font-size:12px;color:var(--gray-500);font-weight:600}.mobile-sections{display:flex;flex-direction:column;padding:0 14px 14px;gap:8px;flex-shrink:0}.mobile-section{border-radius:12px;overflow:hidden;border:1px solid var(--gray-200);background:#fff}.mobile-section-header{display:flex;align-items:center;gap:8px;padding:14px 16px;cursor:pointer;border-left:4px solid transparent}.mobile-section-header--amber{border-left-color:#d97706}.mobile-section-header--blue{border-left-color:var(--blue)}.mobile-section-header--green{border-left-color:#16a34a}.mobile-section-header--gray{border-left-color:var(--gray-300)}.mobile-section-title{flex:1;font-size:14px;font-weight:700;color:var(--gray-800)}.mobile-section-count{font-size:13px;font-weight:700;color:var(--gray-500)}.mobile-section-chevron{font-size:10px;color:var(--gray-400);margin-left:4px}.mobile-section-list{border-top:1px solid var(--gray-100);display:flex;flex-direction:column;gap:0}.mobile-section-list .list-job-row{flex-shrink:0;border-radius:0;border:none;border-bottom:1px solid var(--gray-100)}.mobile-section-list .list-job-row:last-child{border-bottom:none}.mobile-section-empty{padding:14px 16px;font-size:13px;color:var(--gray-400)}.detail-panel{width:100%;top:0}.inbox-layout{position:relative}.inbox-list{width:100%;position:absolute;inset:0;z-index:2;background:var(--white)}.inbox-list--hidden{display:none}.inbox-detail{width:100%;position:absolute;inset:0;z-index:3;background:var(--white)}.inbox-detail--hidden{display:none}.inbox-back-btn{display:flex;align-items:center;gap:6px;padding:10px 14px;background:none;border:none;border-bottom:1px solid var(--gray-200);font-size:14px;font-weight:600;color:var(--blue);cursor:pointer;width:100%;flex-shrink:0}.kanban-board{-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory}.kanban-col{scroll-snap-align:start;flex:0 0 85vw}.inbox-detail-header{flex-direction:column}.inbox-booking-summary{min-width:0;max-width:100%}}
