.react-grid-layout{position:relative;transition:height .2s ease}.react-grid-item{transition:all .2s ease;transition-property:left,top,width,height}.react-grid-item img{pointer-events:none;-webkit-user-select:none;user-select:none}.react-grid-item.cssTransforms{transition-property:transform,width,height}.react-grid-item.resizing{transition:none;z-index:1;will-change:width,height}.react-grid-item.react-draggable-dragging{transition:none;z-index:3;will-change:transform}.react-grid-item.dropping{visibility:hidden}.react-grid-item.react-grid-placeholder{background:red;opacity:.2;transition-duration:.1s;z-index:2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.react-grid-item.react-grid-placeholder.placeholder-resizing{transition:none}.react-grid-item>.react-resizable-handle{position:absolute;width:20px;height:20px}.react-grid-item>.react-resizable-handle:after{content:"";position:absolute;right:3px;bottom:3px;width:5px;height:5px;border-right:2px solid rgba(0,0,0,.4);border-bottom:2px solid rgba(0,0,0,.4)}.react-resizable-hide>.react-resizable-handle{display:none}.react-grid-item>.react-resizable-handle.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-w,.react-grid-item>.react-resizable-handle.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-n,.react-grid-item>.react-resizable-handle.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-grid-item>.react-resizable-handle.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-grid-item>.react-resizable-handle.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}.react-resizable{position:relative}.react-resizable-handle{position:absolute;width:20px;height:20px;background-repeat:no-repeat;background-origin:content-box;box-sizing:border-box;background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2IDYiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmYwMCIgeD0iMHB4IiB5PSIwcHgiIHdpZHRoPSI2cHgiIGhlaWdodD0iNnB4Ij48ZyBvcGFjaXR5PSIwLjMwMiI+PHBhdGggZD0iTSA2IDYgTCAwIDYgTCAwIDQuMiBMIDQgNC4yIEwgNC4yIDQuMiBMIDQuMiAwIEwgNiAwIEwgNiA2IEwgNiA2IFoiIGZpbGw9IiMwMDAwMDAiLz48L2c+PC9zdmc+);background-position:bottom right;padding:0 3px 3px 0}.react-resizable-handle-sw{bottom:0;left:0;cursor:sw-resize;transform:rotate(90deg)}.react-resizable-handle-se{bottom:0;right:0;cursor:se-resize}.react-resizable-handle-nw{top:0;left:0;cursor:nw-resize;transform:rotate(180deg)}.react-resizable-handle-ne{top:0;right:0;cursor:ne-resize;transform:rotate(270deg)}.react-resizable-handle-w,.react-resizable-handle-e{top:50%;margin-top:-10px;cursor:ew-resize}.react-resizable-handle-w{left:0;transform:rotate(135deg)}.react-resizable-handle-e{right:0;transform:rotate(315deg)}.react-resizable-handle-n,.react-resizable-handle-s{left:50%;margin-left:-10px;cursor:ns-resize}.react-resizable-handle-n{top:0;transform:rotate(225deg)}.react-resizable-handle-s{bottom:0;transform:rotate(45deg)}html,body{height:100%;margin:0;padding:0;overflow:auto}:root{--app-font-size: 14px;--app-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", sans-serif;--section-title-bg-mix: 10%;--section-title-border-mix: 34%;--info-surface-bg-mix: 8%;--info-surface-border-mix: 28%;--info-surface-accent-mix: 50%}body{font-family:var(--app-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif)}body[data-dx-theme*=".dark"],body[data-dx-theme*=darkmoon],body[data-dx-theme*=darkviolet],body[data-dx-theme*=contrast]{--section-title-bg-mix: 26%;--section-title-border-mix: 46%;--info-surface-bg-mix: 24%;--info-surface-border-mix: 44%;--info-surface-accent-mix: 62%}#root{width:100%;height:100vh;margin:0;padding:0;text-align:initial;box-sizing:border-box}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:var(--st-text-muted, #888)}.dx-datagrid .dx-row.dx-selection{background-color:var(--st-row-selected-bg, #1976d2)!important;color:var(--st-row-selected-text, #fff)!important}.smarttrade-shell{display:flex;height:100vh;background:var(--dx-color-main-bg, #fff);overflow:hidden;font-size:var(--app-font-size, 14px)}.smarttrade-nav{width:240px;background:var(--dx-color-main-bg, #fff);color:var(--dx-color-text, #222);display:flex;flex-direction:column;align-items:stretch;transition:width .2s;border-right:1px solid var(--dx-color-border, #e3e5e8);position:relative;flex:0 0 auto;min-height:0;height:100vh;box-sizing:border-box}.smarttrade-nav.collapsed{width:68px}.smarttrade-nav-btn{padding:16px 24px;border:none;background:none;color:var(--dx-color-text, #222);text-align:left;font-size:16px;cursor:pointer;border-bottom:1px solid var(--dx-color-border, #e3e5e8);display:flex;align-items:center;width:100%}.smarttrade-nav-btn.selected{background:var(--st-accent-bg, var(--dx-color-primary, #e3e5e8));color:var(--st-accent-text, #fff)}.smarttrade-nav-section.selected{background:var(--st-accent-bg, var(--dx-color-primary, #e3e5e8));color:var(--st-accent-text, var(--dx-color-text, #333))}.smarttrade-nav-sub-btn{border:none;background:none;color:var(--dx-color-text, #222);width:100%;text-align:left;cursor:pointer;display:flex;align-items:center;transition:background .2s}.smarttrade-nav-sub-btn:hover,.smarttrade-nav-sub-btn:focus{background:var(--st-accent-bg, var(--dx-color-primary, #e3e5e8));color:var(--st-accent-text, #fff)}.smarttrade-nav-submenu{background:var(--dx-component-color-bg, #fff);color:var(--dx-color-text, #222);border-left:2px solid var(--dx-color-border, #e3e5e8)}.smarttrade-settings-menu{background:var(--dx-color-main-bg, #fff);border:1px solid var(--dx-color-border, #e3e5e8);box-shadow:0 2px 8px #00000012;z-index:10;padding:8px}.widget-shell{background:color-mix(in srgb,var(--dx-component-color-bg, #fff) 70%,var(--dx-color-main-bg, #fafafa) 30%);border:1px solid var(--dx-color-border, #ddd);border-radius:12px;box-shadow:0 1px 2px #0000000f,0 8px 16px #0000000f;min-width:0;display:flex;flex-direction:column;overflow:hidden;height:100%}.widget-shell{min-width:320px;min-height:180px;overflow:auto}.widget-shell-content{min-height:120px;min-width:0;overflow:auto}.job-quick-menu{background:var(--dx-component-color-bg, #fff);border:1px solid var(--dx-color-border, #e3e5e8);border-radius:8px;box-shadow:0 6px 16px #0f172a14;padding:6px;display:flex;flex-direction:column;gap:6px}.job-quick-menu-btn{width:36px;height:36px;border-radius:8px;border:1px solid var(--dx-color-border, #d1d5db);background:var(--dx-component-color-bg, #fff);color:var(--dx-color-text, #111827);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease,transform 60ms ease}.job-quick-menu-btn:hover,.job-quick-menu-btn:focus{background:var(--dx-color-main-bg, #f5f6fa);border-color:var(--dx-color-primary, #1976d2);color:var(--dx-color-primary, #1976d2)}.job-quick-menu-btn:active{transform:translateY(.5px)}.job-quick-menu .job-quick-menu-label{display:none;margin-left:6px;font-size:13px;font-weight:600;white-space:nowrap}.job-quick-menu:hover .job-quick-menu-label{display:inline}.job-quick-menu:hover .job-quick-menu-btn{width:auto;padding-left:10px;padding-right:10px}.quick-actions-btn{border:1px solid var(--dx-color-border, #d1d5db);background:var(--dx-component-color-bg, #fff);color:var(--dx-color-text, #111827);box-shadow:0 1px 2px #0000000a;transition:background .12s ease,border-color .12s ease,color .12s ease,transform 60ms ease}.quick-actions-btn:hover,.quick-actions-btn:focus{background:var(--dx-color-main-bg, #f5f6fa);border-color:var(--dx-color-primary, #1976d2);color:var(--dx-color-primary, #1976d2)}.quick-actions-btn:active{transform:translateY(.5px)}.quick-actions-kbd{font-size:12px;font-weight:500;padding:2px 6px;border-radius:6px;border:1px solid var(--dx-color-border, #d1d5db);color:var(--dx-color-text, #111827);background:var(--dx-component-color-bg, #fff)}.dx-datagrid{min-width:420px;min-height:140px;overflow:auto!important}@media (max-width: 900px){.job-details-root .dx-splitter-separator,.job-details-root .dx-splitter-separator-horizontal,.job-details-root .dx-splitter-separator-vertical{opacity:0!important;pointer-events:none!important;background:transparent!important;border:none!important}.job-details-root{overflow:auto!important}.job-details-left,.job-details-right{overflow:visible!important}.job-details-right{margin-top:12px}}.sales-dashboard,.job-details-root,.job-details-left,.job-details-right,.customer-details-left{min-width:320px;min-height:180px;overflow:auto}.dx-datagrid .dx-row>td,.dx-datagrid .dx-header-row>td{min-width:120px;box-sizing:border-box}@media (max-width: 600px){.widget-shell,.sales-dashboard,.job-details-root,.job-details-left,.job-details-right,.customer-details-left{min-width:0;min-height:120px}.dx-datagrid{min-width:0}}.widget-title-bar{background:var(--st-accent-bg, var(--dx-color-primary, #8a9cbf));color:var(--st-accent-text, #fff);border-radius:12px;border-bottom:1px solid var(--st-accent-border, var(--dx-color-border, #7a88a6));font-weight:600;font-size:15px;padding:8px 12px;-webkit-user-select:none;user-select:none;cursor:default;min-height:0;line-height:1.4}.widget-title-icon-btn{width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;border:1px solid var(--dx-color-border, #d1d5db);background:var(--dx-component-color-bg, #fff);color:var(--dx-color-text, #374151);padding:0;outline:none;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease,transform 60ms ease}.widget-title-icon-btn:hover,.widget-title-icon-btn:focus{background:var(--dx-color-main-bg, #f5f6fa);border-color:var(--dx-color-primary, #1976d2);color:var(--dx-color-primary, #1976d2)}.widget-title-icon-btn:active{transform:translateY(.5px)}.widget-title-bar .dx-texteditor,.widget-title-bar .dx-textbox,.widget-title-bar .dx-texteditor.dx-editor-filled,.widget-title-bar .dx-texteditor.dx-editor-outlined{background:var(--st-surface-0, var(--dx-component-color-bg, #fff))!important;color:var(--st-text-primary, #111)!important;border-radius:4px;border:1px solid var(--st-border-subtle, rgba(0,0,0,.15));box-shadow:inset 0 1px 1px color-mix(in srgb,var(--st-border-subtle, rgba(0,0,0,.15)) 30%,transparent)}.widget-title-bar .dx-texteditor-input{color:var(--st-text-primary, #111)!important}.widget-title-bar .dx-placeholder{color:var(--st-text-muted, rgba(0,0,0,.55))!important}.widget-title-bar .dx-texteditor.dx-state-focused{border-color:var(--st-accent-border, var(--dx-color-primary, #1976d2))!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--st-accent-border, #1976d2) 24%,transparent)}.dx-map .gm-style .gm-style-iw-c,.dx-map .gm-style .gm-style-iw{padding:0!important;background:var(--dx-component-color-bg, #fff);border-radius:8px;border:1px solid rgba(0,0,0,.15);box-shadow:0 6px 18px #0000002e;max-width:320px!important}.dx-map .gm-style .gm-style-iw-d,.dx-map .gm-style .gm-style-iw>div{padding:10px 12px!important;overflow:visible!important;max-height:none!important;color:var(--dx-color-text, #222);font-size:13px;line-height:1.35;white-space:pre-line}.dx-map .gm-style .gm-style-iw-d a,.dx-map .gm-style .gm-style-iw a{color:var(--st-link, #1976d2);text-decoration:none}.dx-map .gm-style .gm-style-iw-d a:hover,.dx-map .gm-style .gm-style-iw a:hover{text-decoration:underline}.widget-shell-content{flex:1;min-height:0;padding:12px;overflow:visible}.section-title{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:0 0 8px}.section-title .icon{width:16px;height:16px;color:var(--dx-color-primary, #1976d2);display:inline-flex;align-items:center;justify-content:center}.section-title.pill{padding:6px 10px;border:1px solid color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--section-title-border-mix, 34%),var(--dx-component-color-bg, #fff));border-radius:10px;background:color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--section-title-bg-mix, 10%),var(--dx-component-color-bg, #fff))}.section-title-bar{--section-title-action-height: 32px;display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;box-sizing:border-box;margin:0 0 8px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--section-title-border-mix, 34%),var(--dx-component-color-bg, #fff));border-radius:10px;background:color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--section-title-bg-mix, 10%),var(--dx-component-color-bg, #fff))}.section-title-bar .section-title{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:0}.section-title-bar .section-actions{margin-left:auto;display:flex;align-items:center;gap:8px;flex-wrap:wrap;row-gap:6px}.section-title-bar .section-actions .dx-button,.section-title-bar .section-actions button{height:var(--section-title-action-height);min-height:var(--section-title-action-height)}.section-title-bar .section-actions .dx-button .dx-button-content,.section-title-bar .section-actions button{display:inline-flex;align-items:center}.info-surface-block{display:flex;flex-direction:column;gap:2px;margin:6px 0;padding:8px 10px;border-radius:10px;border:1px solid color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--info-surface-border-mix, 28%),var(--dx-component-color-bg, #fff));border-left:3px solid color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--info-surface-accent-mix, 50%),var(--dx-component-color-bg, #fff));background:color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--info-surface-bg-mix, 8%),var(--dx-component-color-bg, #fff))}.info-surface-block .customer-details-field,.info-surface-block .job-details-field{margin:0}.info-surface-block.job-address-block,.info-surface-block.customer-address-block{display:inline-flex;align-self:flex-start;width:fit-content;max-width:100%;padding:0;border-left:1px solid color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--info-surface-border-mix, 28%),var(--dx-component-color-bg, #fff))}.section-title-left{display:flex;align-items:center;gap:8px;min-width:0}.section-collapse-btn{width:var(--section-title-action-height, 32px);height:var(--section-title-action-height, 32px);border-radius:6px;border:1px solid var(--st-border-subtle, #d0d6e1);background:var(--st-surface-0, #fff);color:var(--st-text-muted, #475569);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .05s ease}.section-collapse-btn:hover{background:var(--st-surface-1, #eef2f7);border-color:var(--st-border-strong, #c1c9d6)}.section-collapse-btn:active{transform:translateY(.5px)}.section-title-bar .section-actions .dx-button svg,.section-title-bar .section-actions .dx-button .dx-icon{color:inherit!important;fill:currentColor!important}.doc-actions .btn-label{display:none!important}.dx-popup .dx-overlay-content{border-radius:12px!important;box-shadow:0 12px 36px #0000002e!important}.dx-dropdowneditor-overlay .dx-list-item,.dx-dropdowneditor-overlay .dx-list-item:first-of-type,.dx-dropdowneditor-overlay .dx-list-item:last-of-type{margin-top:0!important;margin-bottom:0!important;height:auto!important;min-height:0!important}.dx-dropdowneditor-overlay .dx-list-item-before-bag,.dx-dropdowneditor-overlay .dx-list-item-after-bag{height:auto!important;min-height:0!important}.dx-dropdowneditor-overlay .dx-list-item .dx-inkripple,.dx-dropdowneditor-overlay .dx-list-item .dx-inkripple-wave{display:none!important}.dx-popup-title{background:var(--dx-component-color-bg, #fff)!important;color:var(--dx-color-text, #222)!important;border-bottom:1px solid var(--dx-color-border, #e5e7eb)!important;position:relative}.dx-popup-title:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--dx-color-primary, #1976d2)}.dx-popup .dx-form-group-caption,.dx-popup-content .dx-form-group-caption,.dx-overlay-content .dx-form-group-caption{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;margin:0 0 8px;padding:6px 10px;border:1px solid color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--section-title-border-mix, 34%),var(--dx-component-color-bg, #fff))!important;border-radius:10px;background:color-mix(in srgb,var(--dx-color-primary, #1976d2) var(--section-title-bg-mix, 10%),var(--dx-component-color-bg, #fff))!important;color:var(--dx-color-text, #222)!important}.dx-popup .dx-form-group-with-caption>.dx-form-group-content,.dx-popup-content .dx-form-group-with-caption>.dx-form-group-content,.dx-overlay-content .dx-form-group-with-caption>.dx-form-group-content{margin-top:2px}.widget-shell-content .dx-datagrid{overflow:visible!important}.queue-bucket-group .dx-buttongroup-wrapper{align-items:stretch}.queue-bucket-group .dx-buttongroup-item{height:auto!important}.queue-bucket-group .dx-button{height:auto!important;min-height:58px;padding:2px 6px}.queue-bucket-group .dx-button .dx-button-content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;height:auto!important;line-height:1.2}.queue-bucket-group .dx-button .dx-icon{margin:0!important}.queue-bucket-group .dx-button .dx-button-text{white-space:normal!important;overflow:visible!important;text-overflow:clip!important;display:block;line-height:1.2}@media (max-width: 600px){.queue-bucket-group .dx-button{min-height:52px}}.pac-container{z-index:20000!important}.sales-dashboard{height:100%;display:flex;flex-direction:column;overflow-y:auto;background:var(--dx-color-main-bg, #f5f6fa)}.customer-details-notes{border-left:4px solid var(--dx-color-primary, #1976d2);border-radius:0 4px 4px 0;padding:8px 12px;color:var(--dx-color-text, #444);font-size:14px;margin-top:12px;margin-bottom:12px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-start;max-height:200px;overflow:auto}.customer-details-notes .no-notes{color:var(--st-text-muted, #aaa)}.metrics-widget-title{background:var(--st-accent-bg, var(--dx-color-primary, #8a9cbf));color:var(--st-accent-text, #fff);font-weight:700;font-size:18px;padding:14px 20px;border-top-left-radius:18px;border-top-right-radius:18px;-webkit-user-select:none;user-select:none;cursor:grab;border-bottom:1px solid var(--dx-color-border, #c5d7e5)}.metrics-widget-cards{padding:24px;background:var(--dx-component-color-bg, var(--dx-color-main-bg, #fff));border-radius:0 0 18px 18px;min-height:180px}.metric-card{background:var(--dx-component-color-bg, var(--dx-color-main-bg, #fff));border-radius:10px;box-shadow:0 2px 10px #00000014;padding:28px;display:flex;flex-direction:column;align-items:center;min-width:120px;max-width:260px;margin:0 auto;min-height:90px;justify-content:center;border:1px solid var(--dx-color-border, #e0e0e0);box-sizing:border-box}.dx-form .tight-time-row .dx-col{padding-right:6px}.dx-form .tight-time-row .dx-col:last-child{padding-right:0}.metric-card-value{font-size:32px;font-weight:700}.metric-card-unit{font-size:18px;color:var(--dx-color-text, #555);font-weight:500}.metric-card-title{margin-top:12px;color:var(--st-accent-border, var(--dx-color-primary, #156741));font-weight:500;font-size:17px}.react-grid-item,.react-grid-item>div{height:100%;width:100%}.dx-scheduler-appointment .dx-scheduler-appointment-content,.dx-scheduler-appointment .dx-scheduler-appointment-title{color:var(--st-text-primary, #000)!important}@keyframes pulse-border{0%{box-shadow:0 0 color-mix(in srgb,var(--st-accent-border, #1976d2) 70%,transparent)}to{box-shadow:0 0 0 4px color-mix(in srgb,var(--st-accent-border, #1976d2) 0%,transparent)}}.customer-details-container{background:var(--dx-component-color-bg, var(--dx-color-main-bg, #fff));border-radius:5px;box-shadow:0 2px 4px #3c50640d;padding:0;height:100%;display:flex;flex-direction:column}.customer-details-title{font-weight:600;font-size:18px;margin-bottom:2px}.customer-details-field{display:block;line-height:1.35;margin:0;white-space:normal;overflow-wrap:anywhere}.customer-search-dropdown{position:fixed;background:var(--dx-component-color-bg, var(--dx-color-main-bg, #fff));border:1px solid var(--dx-color-border, #ccc);z-index:5000;box-shadow:0 16px 32px #0f172a2e;border-radius:10px;display:flex;flex-direction:column;overflow:visible;padding:6px 0}.customer-details-left{flex:0 1 420px;min-width:340px;max-width:420px;display:flex;flex-direction:column;padding:0 12px 0 0;min-height:0;overflow:visible;box-sizing:border-box;background:var(--dx-component-color-bg, #fff);border-right:1px solid var(--dx-color-border, #eee)}.job-details-root{display:flex;flex-direction:row;height:100%;min-height:0;flex:1}.job-details-left{min-width:360px;box-sizing:border-box;padding:12px;display:flex;flex-direction:column;height:100%;background:var(--dx-component-color-bg, #fff);border-right:1px solid var(--dx-color-border, #eee);overflow:auto;container-type:inline-size}.job-details-title{font-weight:600;font-size:18px;margin-bottom:2px}.job-details-notes{border-left:4px solid var(--dx-color-primary, #1976d2);border-radius:0 4px 4px 0;padding:8px 12px;color:var(--dx-color-text, #444);font-size:14px;margin-top:12px;margin-bottom:12px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:flex-start;max-height:132px;overflow:auto}.job-details-appointments{flex:1;min-height:0;display:flex;flex-direction:column}.job-details-appointments-title{font-size:16px;font-weight:600;margin:0 0 8px}.job-details-right{flex:1;min-width:420px;display:flex;flex-direction:column;height:100%;padding-left:16px}.job-customer-grid{display:grid;grid-template-columns:1fr;gap:12px;align-items:start}.job-customer-grid.show-customer{grid-template-columns:minmax(380px,1.2fr) minmax(280px,1fr)}.job-info-col{min-width:0}.job-customer-grid.stacked{grid-template-columns:1fr!important}@container (max-width: 760px){.job-customer-grid.show-customer{grid-template-columns:1fr}}@media (max-width: 760px){.job-customer-grid.show-customer{grid-template-columns:1fr}}.job-customer-grid .customer-details-left{min-width:0;max-width:none;flex:initial;border-right:0;padding-right:0}.customer-info-subtitle{font-size:12px;font-weight:600;color:var(--st-text-muted, #64748b);text-transform:uppercase;letter-spacing:.02em;margin-bottom:4px}.job-details-preview-label{margin-bottom:8px;font-weight:700}.job-details-preview{flex:1;min-height:0;overflow:hidden;margin-bottom:16px;display:flex;flex-direction:column;min-width:420px}.job-details-documents-label{font-weight:600;font-size:15px;margin-bottom:6px}.dx-button-primary{background:var(--dx-color-primary)!important;color:var(--st-row-selected-text, #fff);border:2px solid transparent;border-radius:var(--dx-border-radius, 4px);padding-inline:var(--dx-button-padding-inline, 4px);font-size:inherit;min-width:0;box-shadow:none;transition:background .2s,border-color .2s;box-sizing:border-box}.dx-button-primary:hover,.dx-button-primary:focus{background:var(--st-surface-0, #fff)!important;color:var(--st-accent-border, var(--dx-color-primary));border:2px solid var(--st-accent-border, var(--dx-color-primary))!important}.dashboard-column{min-width:320px;min-height:320px;box-sizing:border-box;overflow:auto}.widget-shell{min-width:320px;min-height:180px;max-width:100vw;max-height:100vh;overflow:hidden;display:flex;flex-direction:column}.widget-shell-content{min-height:120px;min-width:0;overflow:auto;flex:1 1 0}.dx-widget{font-size:var(--app-font-size, 14px)}.dx-button{font-size:var(--app-font-size, 14px)!important}.dx-button .dx-button-content{font-size:inherit}.dx-datagrid{min-height:40px!important;min-width:0!important;overflow:auto!important;box-sizing:border-box}.dx-datagrid .dx-row>td{min-width:80px;box-sizing:border-box}.dx-datagrid .dx-header-row{position:sticky;top:0;background:inherit;z-index:2}.queue-grid .dx-header-row{position:static!important;top:auto!important;z-index:auto!important}.queue-grid{overflow:hidden!important}.queue-grid .dx-datagrid-rowsview .dx-row.dx-state-hover,.queue-grid .dx-data-row.dx-state-hover{background-color:color-mix(in srgb,var(--st-accent-bg, #1976d2) 76%,transparent)!important}.queue-grid .queue-stage-col{min-width:52px!important;max-width:60px;width:52px!important;padding-left:4px;padding-right:4px;text-align:center}.queue-grid .dx-header-row>td.queue-stage-col,.queue-grid .dx-data-row>td.queue-stage-col{padding-left:4px;padding-right:4px}.queue-grid .dx-header-row>td.dx-command-drag,.queue-grid .dx-data-row>td.dx-command-drag{min-width:26px!important;max-width:26px!important;width:26px!important;padding-left:2px!important;padding-right:2px!important}.queue-grid .dx-datagrid-headers colgroup col:first-child,.queue-grid .dx-datagrid-rowsview colgroup col:first-child{min-width:26px!important;max-width:26px!important;width:26px!important}.queue-grid .dx-datagrid-headers .dx-header-row>td:first-child,.queue-grid .dx-datagrid-rowsview .dx-data-row>td:first-child{min-width:26px!important;max-width:26px!important;width:26px!important}.service-queue-grid .dx-header-row>td,.service-queue-grid .dx-data-row>td{min-width:0!important}.service-queue-grid .dx-header-row>td.dx-command-drag,.service-queue-grid .dx-data-row>td.dx-command-drag{min-width:26px!important;max-width:26px!important;width:26px!important;padding-left:2px!important;padding-right:2px!important}.widget-shell-content .queue-grid{overflow:hidden!important}.widget-shell-content,.dx-datagrid,.dashboard-column{scrollbar-width:thin;scrollbar-color:var(--st-accent-border, var(--dx-color-primary, #8a9cbf)) var(--st-surface-2, #e3e5e8)}.widget-shell-content::-webkit-scrollbar,.dx-datagrid::-webkit-scrollbar,.dashboard-column::-webkit-scrollbar{width:8px;background:var(--st-surface-2, #e3e5e8)}.widget-shell-content::-webkit-scrollbar-thumb,.dx-datagrid::-webkit-scrollbar-thumb,.dashboard-column::-webkit-scrollbar-thumb{background:var(--st-accent-border, var(--dx-color-primary, #8a9cbf));border-radius:4px}.widget-shell{container-type:inline-size}.job-details-preview.pdf-fit-container{height:100%;overflow:auto;display:flex;flex-direction:column;min-width:0}.job-details-preview.pdf-fit-container.stacked{max-height:640px;height:100%;min-height:240px}.pdf-viewer-wrapper{flex:1 1 auto;height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;background:var(--st-surface-1, #f8fafc)}.pdf-viewer-wrapper>*{flex:1 1 auto!important;height:100%!important;max-height:100%!important;min-height:0!important;overflow:auto!important}.pdf-viewer-wrapper>.pdf-viewer-toolbar{flex:0 0 auto!important;height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important}body.job-details-stacked .pdf-viewer-wrapper>.pdf-viewer-toolbar{flex:0 0 auto!important;height:auto!important;max-height:none!important;min-height:0!important;overflow:visible!important}.pdf-page{margin:12px auto;padding:8px;background:var(--st-surface-0, #fff);border:1px solid var(--st-border-subtle, var(--dx-color-border, #e5e7eb));border-radius:8px;box-shadow:0 2px 6px #0f172a0f;width:fit-content}.pdf-viewer-wrapper .rpv-core__viewer{height:100%!important;max-height:100%!important;min-height:0!important}.pdf-viewer-wrapper .rp-core__inner-pages{height:100%!important;max-height:100%!important;min-height:0!important;overflow:auto!important}.pdf-viewer-wrapper .rpv-core__page-layer{max-width:100%!important;max-height:100%!important;min-height:0!important}body.job-details-stacked .widget-shell-content{overflow:hidden}body.job-details-stacked .job-details-stack{height:100%;min-height:0;overflow:auto}body.job-details-stacked .job-details-left,body.job-details-stacked .job-details-right{overflow:visible!important;flex:none!important;height:auto!important;min-width:0!important;width:100%!important}body.job-details-stacked .job-details-preview{width:100%!important;min-width:0!important;height:720px!important;max-height:720px!important;overflow:auto!important;position:relative;flex:none!important;clear:both!important}body.job-details-stacked .pdf-viewer-wrapper{height:100%!important;max-height:100%!important;overflow:auto!important;flex:none!important}body.job-details-stacked .pdf-viewer-wrapper>*{height:100%!important;max-height:100%!important;overflow:auto!important}body.job-details-stacked .rpv-core__viewer{height:100%!important;max-height:100%!important;overflow:auto!important}body.job-details-stacked .rpv-core__inner-pages,body.job-details-stacked .rpv-core__page-layer{height:auto!important;max-height:none!important;overflow:visible!important}.splitter-item-scrollable{height:100%;min-height:0;min-width:0;overflow:auto;display:flex;flex-direction:column}@media (pointer: coarse),(max-width: 820px){.dx-splitter .dx-splitter-separator{position:relative;touch-action:none}.dx-splitter.dx-orientation-horizontal .dx-splitter-separator{width:16px!important}.dx-splitter.dx-orientation-vertical .dx-splitter-separator{height:16px!important}.dx-splitter .dx-splitter-separator:before{content:"";position:absolute;top:-10px;bottom:-10px;left:-10px;right:-10px}.dx-splitter .dx-icon{font-size:22px}.dx-splitter .dx-button,.dx-splitter .dx-splitter-collapse-button,.dx-splitter .dx-splitter-expand-button{min-width:36px;min-height:36px}.dx-resizable-handle-bottom,.dx-resizable-handle-top{height:18px!important;touch-action:none}.dx-resizable-handle-left,.dx-resizable-handle-right{width:18px!important;touch-action:none}}.schedule-context-menu .dx-overlay-content,.schedule-context-menu .dx-context-menu{border-radius:10px!important;box-shadow:0 10px 30px #0000002e!important;overflow:hidden}.schedule-context-menu .dx-menu-items-container .dx-menu-item{min-height:40px;padding:10px 14px!important;font-size:15px}.schedule-context-menu .dx-menu-item .dx-icon{font-size:18px;margin-right:8px}.schedule-context-menu .dx-menu-item.dx-state-hover,.schedule-context-menu .dx-menu-item.dx-state-focused{background:var(--st-surface-1, #f1f5f9)!important}.schedule-context-menu .dx-submenu{border-radius:10px!important}.job-status-rect{min-width:110px;min-height:48px;border-radius:8px;font-weight:700;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 14px;text-align:center;box-shadow:0 2px 8px #0000000a;margin-left:8px}.job-status-rect.sold{background:var(--st-success-bg, #2e7d32);color:var(--st-success-text, #fff);border:1px solid var(--st-success-border, transparent)}.job-status-rect.not-sold{background:var(--st-warning-bg, #ff9800);color:var(--st-warning-text, #fff);border:1px solid var(--st-warning-border, transparent)}.job-status-rect.completed{background:var(--st-accent-bg, #3949ab);color:var(--st-accent-text, #fff);border:1px solid var(--st-accent-border, transparent)}.job-details-times-rect{display:flex;flex-direction:column;align-items:flex-end;width:100%;margin-top:8px;font-size:13px;font-weight:400;color:var(--st-row-selected-text, #fff)}.job-details-title-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.job-details-times-row{display:flex;gap:18px;margin:8px 0 4px;font-size:15px;font-weight:500;color:var(--st-text-muted, #444)}.dx-scheduler-date-table-droppable-cell{background-color:color-mix(in srgb,var(--st-accent-bg, #1976d2) 22%,transparent)!important}.schedule-slot-height-root{min-width:0;overflow:auto}.schedule-slot-height-root .dx-scheduler-cell-sizes-horizontal{width:auto!important;min-width:160px!important}.schedule-slot-height-root .dx-scheduler-cell-sizes-vertical,.schedule-slot-height-root .dx-scheduler-time-panel-row{height:var(--schedule-slot-height, 32px)!important}.dx-scheduler-appointment{margin:0!important;padding:0!important;box-sizing:border-box!important}.dx-scheduler-appointment>div{margin:0!important;padding:0!important;box-sizing:border-box!important}.dx-scheduler-appointment,.dx-scheduler-appointment.dx-state-focused,.dx-scheduler-appointment:focus{outline:none!important;box-shadow:none!important;border-color:transparent!important}.dx-scheduler-work-space-day .dx-scheduler-appointment .dx-item-content,.dx-scheduler-work-space-week .dx-scheduler-appointment .dx-item-content,.dx-scheduler-work-space-work-week .dx-scheduler-appointment .dx-item-content,.dx-scheduler-work-space-day .dx-scheduler-appointment .dx-scheduler-appointment-content,.dx-scheduler-work-space-week .dx-scheduler-appointment .dx-scheduler-appointment-content,.dx-scheduler-work-space-work-week .dx-scheduler-appointment .dx-scheduler-appointment-content,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-work-space-day .dx-scheduler-appointment .dx-item-content.dx-scheduler-appointment-content,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-work-space-week .dx-scheduler-appointment .dx-item-content.dx-scheduler-appointment-content,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-work-space-work-week .dx-scheduler-appointment .dx-item-content.dx-scheduler-appointment-content{display:flex!important;visibility:visible!important;opacity:1!important}body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-appointment:before,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-appointment.dx-state-focused:before,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-appointment:not(.dx-scheduler-appointment-drag-source):before,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-appointment.dx-state-focused:not(.dx-scheduler-appointment-drag-source):before,body[data-dx-theme="dx.light.compact.css"] .dx-scheduler-fixed-appointments .dx-draggable-dragging.dx-state-focused:not(.dx-scheduler-appointment-drag-source):before{content:""!important;background:transparent!important;opacity:0!important;box-shadow:none!important}.dx-scheduler .dx-loadpanel,.dx-scheduler .dx-overlay-shader{display:none!important;pointer-events:none!important}body.job-details-stacked .job-details-left,body.job-details-stacked .job-details-right,body.job-details-stacked .job-details-preview{display:block!important;width:100%!important;min-width:0!important;max-width:100%!important;float:none!important}body.job-details-stacked .job-details-left{position:relative!important}body.job-details-stacked .job-details-right,body.job-details-stacked .job-details-preview{position:static!important}body.job-details-stacked .job-details-right{margin-top:0!important;padding:0 12px!important}body.job-details-stacked .job-details-stack{gap:0!important}body.job-details-stacked .job-details-preview{margin-bottom:0!important}body.job-details-stacked .job-details-appointments{margin-bottom:0!important;padding-bottom:0!important}body.job-details-stacked .job-details-preview{max-height:640px;height:100%;min-height:240px;overflow:auto}.maint-card{background:var(--dx-component-color-bg, #fff);border:1px solid var(--dx-color-border, #e5e7eb);border-radius:12px;padding:16px;box-shadow:0 1px 3px #0f172a14;flex:1 1 360px;min-width:0}.maint-card__title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.maint-stats-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.st-section{border:1px solid #d1d5db;border-radius:8px;background:#fff;color:#111827}.st-section-subtle{border:1px solid #d1d5db;border-radius:8px;background:#f8fafc;color:#111827}.st-divider{border-top:1px solid #d1d5db}.st-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#1f2937}.st-chip-accent{border-color:#93c5fd;background:#e8f1ff;color:#0f2e68}.st-chip-success{border-color:#86efac;background:#e8f7ee;color:#14532d}.st-chip-warning{border-color:#fcd34d;background:#fff4df;color:#78350f}.st-chip-danger{border-color:#fca5a5;background:#feeaea;color:#7f1d1d}.st-highlight-accent{background:#e8f1ff;border:1px solid #93c5fd;color:#0f2e68}.st-highlight-success{background:#e8f7ee;border:1px solid #86efac;color:#14532d}.st-highlight-warning{background:#fff4df;border:1px solid #fcd34d;color:#78350f}.st-highlight-danger{background:#feeaea;border:1px solid #fca5a5;color:#7f1d1d}.st-text-muted{color:#475569}.st-link{color:#1d4ed8}.job-details-placeholder{color:var(--st-text-muted, #888);padding:8px}.job-details-loading{color:var(--st-text-muted, #999);padding:8px}.job-details-empty{color:var(--st-text-muted, #888)}.job-docs-grid{padding-bottom:6px;overflow:hidden}.job-doc-important-row:not(.dx-selection):not(.dx-row-focused)>td{background:var(--job-doc-important-bg, #dff5df)!important}.job-modal-body{padding:10px 20px;display:flex;flex-direction:column;gap:12px}.job-modal-body--lg{gap:16px}.job-modal-body.mobile{max-height:calc(100vh - 100px);overflow-y:auto}.job-modal-footer{display:flex;justify-content:flex-end;gap:8px}.job-modal-input,.job-modal-input textarea,.job-modal-input select{width:100%;margin-top:4px;padding:6px;font-size:16px}.job-modal-textarea{width:100%;margin-top:4px;padding:6px;font-size:16px;font-family:inherit}.job-upload-progress{width:100%}.job-upload-progress-label{margin-bottom:8px}.job-upload-progress-bar{background:var(--st-surface-2, #eee);border-radius:4px;height:16px;width:100%;overflow:hidden}.job-upload-progress-fill{background:var(--st-accent-border, #1976d2);height:100%;border-radius:4px;transition:width .2s}.job-modal-body--tall{padding:12px 18px;display:flex;flex-direction:column;gap:12px;max-height:70vh;overflow-y:auto}.job-modal-body--tall.mobile{max-height:calc(100vh - 140px)}.job-locate-error{color:var(--st-danger-text, #c62828);white-space:pre-wrap}.job-locate-info{font-size:14px}.job-locate-link{font-size:13px}.job-locate-summary{font-size:14px}.job-locate-status-list{display:flex;flex-direction:column;gap:8px}.job-locate-status-card{border:1px solid var(--st-border-subtle, #e0e0e0);border-radius:6px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.job-locate-status-card.complete{background:var(--st-success-bg, #f1f8e9)}.job-locate-status-card.pending{background:var(--st-warning-bg, #fff3e0)}.job-locate-status-header{font-weight:600;display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}.job-locate-station{font-size:12px;color:var(--st-text-muted, #555)}.job-locate-status-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:13px}.job-locate-note{font-size:13px}.job-locate-contact{font-size:12px;color:var(--st-text-muted, #555)}.job-locate-warning{margin-top:12px;color:var(--st-warning-text, #ff8f00);white-space:pre-wrap}.job-locate-link-block{margin-top:12px}.job-modal-scroll{padding:10px 20px}.job-modal-scroll.mobile{max-height:calc(100vh - 100px);overflow-y:auto}.job-advanced-toggle{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:8px}.job-advanced-controls{display:flex;align-items:center;gap:8px}.job-advanced-coords{display:flex;gap:8px}.job-advanced-field{width:180px}.job-modal-actions{display:flex;gap:8px}.job-dropzone{border:2px dashed var(--st-text-muted, #aaa);border-radius:8px;padding:24px;text-align:center;background:var(--st-surface-1, #fafafa);cursor:pointer}.job-dropzone-list{text-align:left;margin:0;padding:0;list-style:none}.job-open-file-btn{width:100%;text-align:left;border:1px solid var(--st-border-subtle, #d1d5db);background:var(--st-surface-0, #fff);border-radius:6px;padding:6px 8px;margin-bottom:6px;cursor:pointer}.job-open-file-btn.is-active{border-color:var(--st-accent-border, #1976d2);background:var(--st-accent-bg, #e3f2fd)}.job-open-file-btn:disabled{opacity:.6;cursor:not-allowed}.job-open-preview-shell{border:1px solid var(--st-border-subtle, #e5e7eb);border-radius:8px;padding:8px;background:var(--st-surface-0, #fff)}.job-open-preview-title{font-weight:600;margin-bottom:8px}.job-open-preview-body{border:1px solid var(--st-border-subtle, #e5e7eb);border-radius:6px;background:var(--st-surface-1, #f8fafc);min-height:240px;max-height:420px;overflow:auto}.job-open-preview-placeholder{min-height:240px;display:flex;align-items:center;justify-content:center;color:var(--st-text-muted, #64748b);text-align:center;padding:12px}.job-open-preview-frame{width:100%;min-height:380px;border:0;background:var(--st-surface-0, #fff)}.job-open-preview-image{display:block;max-width:100%;height:auto;margin:0 auto}.job-details-scroll{height:100%;overflow:auto}.job-details-stack{display:flex;flex-direction:column;gap:12px;height:100%}.job-details-left{position:relative}.job-details-left>.job-customer-grid,.job-details-left>.job-details-divider,.job-details-left>.job-details-divider--tight,.job-details-left>.job-details-customerlog{flex:0 0 auto}.job-details-title{display:flex;align-items:center;gap:8px;min-width:0;margin-bottom:4px;font-weight:700;font-size:18px}.job-details-title-text{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-details-title-actions{display:flex;gap:8px;margin-left:auto}.job-details-field{padding:0}.job-details-field-inline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.job-details-field-grow{flex:1 1 auto;min-width:0}.job-status-label{margin-left:16px}.job-details-map-link{display:inline-flex;align-items:center;gap:4px;padding:2px 6px}.job-details-map-icon{font-size:16px;display:flex;align-items:center}.job-details-notes-content,.customer-details-notes-content{white-space:pre-wrap;margin-top:4px}.job-customer-card{padding:12px;border-radius:6px;border:1px solid var(--st-border-subtle, #e1e6ef);background:var(--st-surface-0, #fff)}.job-customer-card .customer-details-notes{margin-top:8px}.customer-card-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.customer-details-alt-phone,.customer-details-fax{margin-left:12px}.job-primary-contact-name{font-weight:600;color:var(--st-text-primary, #0f172a)}.job-details-divider{border-top:1px solid var(--st-border-subtle, #d0d6e1);margin:8px 0}.job-details-divider--tight{margin:0}.job-details-customerlog{margin-bottom:0;padding-bottom:0;overflow:hidden}.customer-log-layout{display:flex;align-items:stretch;gap:8px;margin-top:0}.customer-log-buttons{display:flex;flex-direction:column;gap:8px;width:90px}.customer-log-buttons{--customer-log-button-height: 34px}.customer-log-button-wrapper{flex:0 0 var(--customer-log-button-height);min-height:var(--customer-log-button-height);height:var(--customer-log-button-height)}.customer-log-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:100%;font-size:16px;padding:12px}.customer-log-icon{position:relative;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center}.customer-log-icon .dx-icon{font-size:26px;line-height:1;color:inherit}.customer-log-icon-badge{position:absolute;right:-6px;bottom:-6px;font-size:14px;line-height:1;color:inherit}.customer-log-icon-small{font-size:22px;display:flex;align-items:center;color:inherit}.customer-log-table{flex:1;min-width:0}.job-details-section{margin-bottom:12px;padding-bottom:6px;overflow:visible;min-height:120px;display:flex;flex-direction:column;gap:8px}.job-details-section.is-collapsed{min-height:auto;padding-bottom:0;gap:0;margin-bottom:8px}.job-details-section.is-collapsed .section-title-bar{margin-bottom:0}.job-details-section-stack{flex:0 0 auto;min-height:auto;display:flex;flex-direction:column}.job-details-appointments{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:6px;overflow:visible}.job-details-appointments.is-collapsed{min-height:auto;padding-bottom:0;margin-bottom:-2px}.job-details-appointments.is-collapsed .section-title-bar{margin-bottom:0}.resizable-fill{flex:1;min-height:0}.job-details-quotes-grid{min-height:64px;max-height:140px;overflow-y:auto}.job-details-appointments-grid{min-height:64px;max-height:240px;overflow-y:auto}.job-details-appointments-grid .dx-datagrid,.job-details-quotes .dx-datagrid{min-height:0}.job-details-quotes-grid .job-quotes-description-col{min-width:60px!important}.job-section-action{display:inline-flex;align-items:center;gap:6px}.job-section-action.compact{gap:4px}.job-section-action__symbol{font-weight:700;font-size:18px;line-height:1;display:flex;align-items:center}.job-section-action__label{display:flex;align-items:center;height:100%}.job-section-action__icon{font-size:16px;display:flex;align-items:center}.job-docs-action{display:inline-flex;align-items:center;gap:4px}.doc-actions .job-docs-action{width:34px;min-width:34px;justify-content:center;padding-left:0;padding-right:0;position:relative}.job-docs-download-split{display:inline-flex;align-items:stretch;gap:0}.job-docs-download-main{border-top-right-radius:0;border-bottom-right-radius:0}.job-docs-download-arrow{width:28px;min-width:28px;padding:0 6px;border-top-left-radius:0;border-bottom-left-radius:0;display:inline-flex;align-items:center;justify-content:center}.job-docs-download-arrow svg{display:block}.doc-actions .job-docs-download-arrow,.doc-actions .job-docs-more{position:relative}.doc-actions [data-hint]{position:relative;overflow:visible!important}.doc-actions .job-docs-action .btn-label{display:none!important}.doc-actions [data-hint]:after{content:attr(data-hint);position:absolute;left:50%;top:calc(100% + 6px);transform:translate(-50%,-4px);opacity:0;pointer-events:none;z-index:20050;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.2;color:#fff;background:#0f172af2;border-radius:6px;padding:4px 8px;box-shadow:0 4px 12px #02061747;transition:opacity .06s ease,transform .06s ease}.doc-actions [data-hint]:before{content:"";position:absolute;left:50%;top:calc(100% + 2px);transform:translate(-50%);opacity:0;pointer-events:none;z-index:20049;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid rgba(15,23,42,.95);transition:opacity .06s ease}.doc-actions [data-hint]:hover:after,.doc-actions [data-hint]:hover:before,.doc-actions [data-hint]:focus-visible:after,.doc-actions [data-hint]:focus-visible:before{opacity:1}.doc-actions [data-hint]:hover:after,.doc-actions [data-hint]:focus-visible:after{transform:translate(-50%)}.job-docs-icon{font-size:18px;display:flex;align-items:center;color:inherit}.job-docs-scan-icon{display:flex;align-items:center;height:18px;color:inherit}.job-docs-print-icon{color:inherit;margin-right:6px}.job-docs-more{width:28px;height:var(--section-title-action-height, 32px);min-height:var(--section-title-action-height, 32px);display:inline-flex;align-items:center;justify-content:center}.jd-hidden{display:none!important}.doc-more-menu{position:fixed;width:160px;z-index:20000;background:var(--st-surface-0, #fff);border:1px solid var(--st-border-subtle, #e2e8f0);border-radius:8px;box-shadow:0 8px 20px #0000001f;overflow:hidden}.doc-download-menu{width:210px}.doc-more-menu-button{display:block;width:100%;padding:8px 10px;text-align:left;background:transparent;border:none;cursor:pointer}.doc-more-menu-button:disabled{opacity:.6;cursor:default}.doc-more-menu-button.danger{color:var(--st-danger-text, #b91c1c)}.job-status-rect-titlebar{min-width:90px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-weight:700;font-size:15px;padding:0 14px;color:var(--st-surface-0, #fff);margin-left:12px;border:2px solid var(--st-surface-0, #fff);box-shadow:0 1px 2px #00000012;line-height:1.2;white-space:nowrap}.job-price-rect-titlebar{min-width:90px;min-height:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:8px;font-weight:700;font-size:15px;padding:0 14px;color:#fff;border:2px solid var(--st-surface-0, #fff);box-shadow:0 1px 2px #00000012;line-height:1.2;white-space:nowrap;background:#1f7a3a}.job-status-rect-titlebar.sold{background:var(--st-success-border, #2e7d32)}.job-status-rect-titlebar.not-sold{background:var(--st-warning-border, #ff9800)}.job-status-rect-titlebar.completed{background:var(--st-accent-border, #3949ab)}.prep-chip{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;border:1px solid var(--st-border-subtle, #d0d6e1);background:var(--st-surface-1, #eef3fa);font-size:13px;color:var(--st-text-primary, #334155);font-weight:500;white-space:nowrap}.prep-chip-label,.prep-chip-status{font-weight:600}.prep-chip-divider{color:var(--st-text-muted, #94a3b8)}.prep-chip-status--complete{color:var(--st-success-border, #2e7d32)}.prep-chip-status--scheduled{color:var(--st-accent-border, #1976d2)}.prep-chip-status--queued{color:var(--st-warning-text, #b26a00)}.prep-chip-status--default{color:var(--st-text-muted, #5f6b7a)}.prep-summary{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.job-title-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:flex-end}.job-title-bar-left{display:inline-flex;align-items:center;gap:10px;min-width:0}.job-title-bar-label{font-weight:600;white-space:nowrap}.job-title-customer-toggle{min-height:28px;background:var(--dx-component-color-bg, #fff);border-color:var(--dx-color-border, #d1d5db);color:var(--dx-color-text, #374151)}.job-title-customer-toggle .dx-button-content{display:inline-flex;align-items:center;gap:6px}.job-title-customer-toggle__icon{display:inline-flex;align-items:center}.job-title-customer-toggle.is-active{border-color:var(--dx-color-primary, #1976d2);color:var(--dx-color-primary, #1976d2);background:var(--dx-color-main-bg, #f5f6fa)}.pdf-viewer-wrapper.job-pdf-viewer{border:1px solid var(--st-border-subtle, #e1e6ef);border-radius:6px;overflow:hidden;display:flex;flex-direction:column}.job-pdf-viewer--fixed{height:460px}.pdf-viewer-toolbar{flex:0 0 auto;padding:6px 10px;border-bottom:1px solid var(--st-border-subtle, #e5e7eb);display:flex;align-items:center;gap:10px;background:var(--st-surface-1, #f8fafc)}.pdf-toolbar-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:28px;border-radius:6px;transition:background .15s ease}.pdf-toolbar-btn.is-active{background:var(--st-border-subtle, #e2e8f0)}.pdf-toolbar-icon{display:inline-flex;width:18px;height:18px;color:inherit}.pdf-toolbar-zoom{display:flex;align-items:center;gap:8px;min-width:140px;flex:0 0 220px}.pdf-toolbar-zoom.wide{min-width:160px;flex:0 0 260px}.pdf-zoom-input{width:160px}.pdf-zoom-input.wide{width:180px}.pdf-zoom-percent{width:44px;text-align:right;color:var(--st-text-muted, #475569)}.pdf-zoom-percent.wide{width:48px}.pdf-toolbar-pagination{margin-left:auto;display:flex;align-items:center;gap:6px}.pdf-toolbar-nav-btn{width:28px;height:28px;text-align:center}.pdf-toolbar-page{color:var(--st-text-muted, #475569);min-width:72px;text-align:center}.pdf-toolbar-page.wide{min-width:80px}.pdf-viewer-scroll{flex:1;min-height:0;overflow:auto;display:flex;justify-content:center;align-items:flex-start}.pdf-loading{text-align:center;color:var(--st-text-muted, #6b7280);padding:24px;min-height:100px}.pdf-error{text-align:center;color:var(--st-danger-text, #ef4444);padding:16px;min-height:100px}.pdf-page-spacing{margin-bottom:12px}.pdf-viewer-inner{width:100%;padding:12px;min-height:100px}.document-image-preview{max-width:100%;height:auto;align-self:flex-start;margin:12px;border-radius:8px;border:1px solid var(--st-border-subtle, #e5e7eb);box-shadow:0 2px 6px #0f172a0f}.contact-card{border:1px solid var(--st-border-subtle, #e2e8f0);border-radius:10px;padding:10px 12px;background:var(--st-surface-0, #fff);display:flex;flex-direction:column;gap:6px;box-shadow:0 1px #0f172a08;cursor:pointer}.contact-card-header{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap}.contact-card-header-right{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-left:auto;justify-content:flex-end}.contact-card-title{font-weight:600;color:var(--st-text-primary, #0f172a);display:flex;flex-wrap:wrap;gap:6px}.contact-card-name{font-weight:600;font-size:1.05rem}.contact-card-meta{color:var(--st-text-muted, #64748b);font-weight:500}.contact-card-primary{font-weight:600;color:var(--st-link, #2563eb)}.contact-card-value{color:var(--st-text-primary, #111827)}.contact-card-phones{display:inline-flex;flex-wrap:wrap;gap:8px 12px}.contact-card-phones-inline{display:inline-flex;flex-wrap:wrap;gap:6px;color:var(--st-text-primary, #111827)}.contact-card-phone{white-space:nowrap;color:var(--st-text-primary, #111827)}.contact-card-phone-type{font-weight:600;color:var(--st-text-primary, #111827)}.contact-card-phone-sep{margin:0 6px;color:var(--st-text-muted, #64748b)}.contact-card-subline{display:flex;flex-wrap:wrap;gap:8px 12px;color:var(--st-text-primary, #111827)}.contact-card-actions{display:flex;gap:6px;flex-wrap:wrap}@media (max-width: 640px){.contact-card-header-right{width:100%;justify-content:flex-start}.contact-card-phone{white-space:normal}.contact-card-subline{flex-direction:column;align-items:flex-start;gap:4px}}.contact-delete-button .dx-button-text{color:var(--st-danger-text, #dc2626)}.job-quick-menu-floating{position:absolute;top:8px;right:8px;z-index:5}.schedule-menu-item{display:flex;align-items:center;gap:6px;font-size:14px;padding:6px 10px;line-height:1.4;min-height:32px}.schedule-menu-icon{font-size:16px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;color:#3c4043}.schedule-menu-color{border-radius:4px;border:1px solid rgba(0,0,0,.25);background-clip:padding-box}.schedule-menu-text{flex:1}.schedule-context-menu .dx-menu-item .dx-menu-item-content{font-size:14px;padding:6px 10px;line-height:1.4}.schedule-context-menu .dx-menu-item .dx-icon{font-size:16px;width:18px;height:18px}:root{--react-pdf-annotation-layer: 1;--annotation-unfocused-field-background: url("data:image/svg+xml;charset=UTF-8,<svg width='1px' height='1px' xmlns='http://www.w3.org/2000/svg'><rect width='100%' height='100%' style='fill:rgba(0, 54, 255, 0.13);'/></svg>");--input-focus-border-color: Highlight;--input-focus-outline: 1px solid Canvas;--input-unfocused-border-color: transparent;--input-disabled-border-color: transparent;--input-hover-border-color: black;--link-outline: none}@media screen and (forced-colors: active){:root{--input-focus-border-color: CanvasText;--input-unfocused-border-color: ActiveText;--input-disabled-border-color: GrayText;--input-hover-border-color: Highlight;--link-outline: 1.5px solid LinkText}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid selectedItem}.annotationLayer .linkAnnotation:hover{-webkit-backdrop-filter:invert(100%);backdrop-filter:invert(100%)}}.annotationLayer{position:absolute;top:0;left:0;pointer-events:none;transform-origin:0 0;z-index:3}.annotationLayer[data-main-rotation="90"] .norotate{transform:rotate(270deg) translate(-100%)}.annotationLayer[data-main-rotation="180"] .norotate{transform:rotate(180deg) translate(-100%,-100%)}.annotationLayer[data-main-rotation="270"] .norotate{transform:rotate(90deg) translateY(-100%)}.annotationLayer canvas{position:absolute;width:100%;height:100%}.annotationLayer section{position:absolute;text-align:initial;pointer-events:auto;box-sizing:border-box;margin:0;transform-origin:0 0}.annotationLayer .linkAnnotation{outline:var(--link-outline)}.textLayer.selecting~.annotationLayer section{pointer-events:none}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a{position:absolute;font-size:1em;top:0;left:0;width:100%;height:100%}.annotationLayer :is(.linkAnnotation,.buttonWidgetAnnotation.pushButton)>a:hover{opacity:.2;background:#ff0;box-shadow:0 2px 10px #ff0}.annotationLayer .textAnnotation img{position:absolute;cursor:pointer;width:100%;height:100%;top:0;left:0}.annotationLayer .textWidgetAnnotation :is(input,textarea),.annotationLayer .choiceWidgetAnnotation select,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{background-image:var(--annotation-unfocused-field-background);border:2px solid var(--input-unfocused-border-color);box-sizing:border-box;font:calc(9px * var(--total-scale-factor)) sans-serif;height:100%;margin:0;vertical-align:top;width:100%}.annotationLayer .textWidgetAnnotation :is(input,textarea):required,.annotationLayer .choiceWidgetAnnotation select:required,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:required{outline:1.5px solid red}.annotationLayer .choiceWidgetAnnotation select option{padding:0}.annotationLayer .buttonWidgetAnnotation.radioButton input{border-radius:50%}.annotationLayer .textWidgetAnnotation textarea{resize:none}.annotationLayer .textWidgetAnnotation :is(input,textarea)[disabled],.annotationLayer .choiceWidgetAnnotation select[disabled],.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input[disabled]{background:none;border:2px solid var(--input-disabled-border-color);cursor:not-allowed}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input:hover{border:2px solid var(--input-hover-border-color)}.annotationLayer .textWidgetAnnotation :is(input,textarea):hover,.annotationLayer .choiceWidgetAnnotation select:hover,.annotationLayer .buttonWidgetAnnotation.checkBox input:hover{border-radius:2px}.annotationLayer .textWidgetAnnotation :is(input,textarea):focus,.annotationLayer .choiceWidgetAnnotation select:focus{background:none;border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) :focus{background-image:none;background-color:transparent}.annotationLayer .buttonWidgetAnnotation.checkBox :focus{border:2px solid var(--input-focus-border-color);border-radius:2px;outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.radioButton :focus{border:2px solid var(--input-focus-border-color);outline:var(--input-focus-outline)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after,.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{background-color:CanvasText;content:"";display:block;position:absolute}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before,.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{height:80%;left:45%;width:1px}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:before{transform:rotate(45deg)}.annotationLayer .buttonWidgetAnnotation.checkBox input:checked:after{transform:rotate(-45deg)}.annotationLayer .buttonWidgetAnnotation.radioButton input:checked:before{border-radius:50%;height:50%;left:30%;top:20%;width:50%}.annotationLayer .textWidgetAnnotation input.comb{font-family:monospace;padding-left:2px;padding-right:0}.annotationLayer .textWidgetAnnotation input.comb:focus{width:103%}.annotationLayer .buttonWidgetAnnotation:is(.checkBox,.radioButton) input{-webkit-appearance:none;-moz-appearance:none;appearance:none}.annotationLayer .popupTriggerArea{height:100%;width:100%}.annotationLayer .fileAttachmentAnnotation .popupTriggerArea{position:absolute}.annotationLayer .popupWrapper{position:absolute;font-size:calc(9px * var(--total-scale-factor));width:100%;min-width:calc(180px * var(--total-scale-factor));pointer-events:none}.annotationLayer .popup{position:absolute;max-width:calc(180px * var(--total-scale-factor));background-color:#ff9;box-shadow:0 calc(2px * var(--total-scale-factor)) calc(5px * var(--total-scale-factor)) #888;border-radius:calc(2px * var(--total-scale-factor));padding:calc(6px * var(--total-scale-factor));margin-left:calc(5px * var(--total-scale-factor));cursor:pointer;font:message-box;white-space:normal;word-wrap:break-word;pointer-events:auto}.annotationLayer .popup>*{font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .popup h1{display:inline-block}.annotationLayer .popupDate{display:inline-block;margin-left:calc(5px * var(--total-scale-factor))}.annotationLayer .popupContent{border-top:1px solid rgba(51,51,51,1);margin-top:calc(2px * var(--total-scale-factor));padding-top:calc(2px * var(--total-scale-factor))}.annotationLayer .richText>*{white-space:pre-wrap;font-size:calc(9px * var(--total-scale-factor))}.annotationLayer .highlightAnnotation,.annotationLayer .underlineAnnotation,.annotationLayer .squigglyAnnotation,.annotationLayer .strikeoutAnnotation,.annotationLayer .freeTextAnnotation,.annotationLayer .lineAnnotation svg line,.annotationLayer .squareAnnotation svg rect,.annotationLayer .circleAnnotation svg ellipse,.annotationLayer .polylineAnnotation svg polyline,.annotationLayer .polygonAnnotation svg polygon,.annotationLayer .caretAnnotation,.annotationLayer .inkAnnotation svg polyline,.annotationLayer .stampAnnotation,.annotationLayer .fileAttachmentAnnotation{cursor:pointer}.annotationLayer section svg{position:absolute;width:100%;height:100%;top:0;left:0}.annotationLayer .annotationTextContent{position:absolute;width:100%;height:100%;opacity:0;color:transparent;-webkit-user-select:none;user-select:none;pointer-events:none}.annotationLayer .annotationTextContent span{width:100%;display:inline-block}:root{--react-pdf-text-layer: 1;--highlight-bg-color: rgba(180, 0, 170, 1);--highlight-selected-bg-color: rgba(0, 100, 0, 1)}@media screen and (forced-colors: active){:root{--highlight-bg-color: Highlight;--highlight-selected-bg-color: ButtonText}}[data-main-rotation="90"]{transform:rotate(90deg) translateY(-100%)}[data-main-rotation="180"]{transform:rotate(180deg) translate(-100%,-100%)}[data-main-rotation="270"]{transform:rotate(270deg) translate(-100%)}.textLayer{position:absolute;text-align:initial;top:0;right:0;bottom:0;left:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}.textLayer :is(span,br){color:transparent;position:absolute;white-space:pre;cursor:text;margin:0;transform-origin:0 0}.textLayer span.markedContent{top:0;height:0}.textLayer .highlight{margin:-1px;padding:1px;background-color:var(--highlight-bg-color);border-radius:4px}.textLayer .highlight.appended{position:initial}.textLayer .highlight.begin{border-radius:4px 0 0 4px}.textLayer .highlight.end{border-radius:0 4px 4px 0}.textLayer .highlight.middle{border-radius:0}.textLayer .highlight.selected{background-color:var(--highlight-selected-bg-color)}.textLayer br::selection{background:transparent}.textLayer .endOfContent{display:block;position:absolute;top:100%;right:0;bottom:0;left:0;z-index:-1;cursor:default;-webkit-user-select:none;user-select:none}.textLayer.selecting .endOfContent{top:0}.hiddenCanvasElement{position:absolute;top:0;left:0;width:0;height:0;display:none}.job-photo-gallery-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(116px,1fr))}.job-photo-gallery-tile{position:relative;border:1px solid #d4dde7;border-radius:10px;overflow:hidden;min-height:116px;padding:0;background:#d9e3ee;cursor:pointer}.job-photo-gallery-tile.is-active{box-shadow:0 0 0 2px #1c6cb8 inset;border-color:#1c6cb8}.job-photo-gallery-image{width:100%;height:100%;object-fit:cover;display:block}.job-photo-gallery-label{position:absolute;left:0;right:0;bottom:0;padding:14px 6px 6px;font-size:11px;color:#fff;text-align:left;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:linear-gradient(180deg,#09182a00,#09182ad1)}.job-photo-gallery-empty{border:1px solid #d4dde7;border-radius:10px;background:#f2f5f8;color:#4f5f70;font-size:13px;padding:12px;text-align:center}@media (min-width: 900px){.job-photo-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(146px,1fr))}.job-photo-gallery-tile{min-height:146px}}.job-photo-modal-layout{display:grid;grid-template-columns:minmax(360px,1.1fr) minmax(340px,1fr);gap:12px;height:calc(88vh - 92px);min-height:420px}.job-photo-modal-left,.job-photo-modal-right{min-height:0;display:flex;flex-direction:column;gap:10px}.job-photo-panel{border:1px solid var(--st-border-subtle, #d5dde8);border-radius:10px;background:var(--st-surface-1, #f8fafc);padding:10px}.job-photo-panel-grow{flex:1 1 auto;min-height:0;overflow:auto}.job-photo-upload-title{font-size:13px;font-weight:700;color:var(--st-text-primary, #253b52);margin-bottom:8px}.job-photo-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}.job-photo-row-right{justify-content:flex-end}.job-photo-filter-row{align-items:stretch}.job-photo-filter-input{flex:1 1 320px;min-width:220px;width:auto}.job-photo-filter-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:0 0 auto}.job-photo-filter-actions .dx-button{min-width:74px;height:32px}.job-photo-filter-actions .dx-button .dx-button-content{padding:0 10px!important;font-size:12px;font-weight:600;line-height:1.1}.job-photo-filter-actions .dx-button.dx-button-mode-contained.dx-button-normal{background:var(--st-surface-1, #e5edf5)!important;border:1px solid var(--st-border-strong, #97abc0)!important;color:var(--st-text-primary, #133a5b)!important}.job-photo-filter-actions .dx-button.dx-button-mode-contained.dx-button-normal .dx-button-content{color:var(--st-text-primary, #133a5b)!important}.job-photo-filter-actions .dx-button.dx-button-mode-outlined.dx-button-normal{background:var(--st-surface-0, #ffffff)!important;border:1px solid var(--st-border-strong, #97abc0)!important;color:var(--st-text-primary, #133a5b)!important}.job-photo-filter-actions .dx-button.dx-button-mode-outlined.dx-button-normal .dx-button-content{color:var(--st-text-primary, #133a5b)!important}.job-photo-filter-actions .dx-button.dx-button-mode-contained.dx-button-default{background:var(--st-accent-border, #1d73bd)!important;border:1px solid var(--st-accent-border, #1d73bd)!important;color:var(--st-surface-0, #ffffff)!important}.job-photo-filter-actions .dx-button.dx-button-mode-contained.dx-button-default .dx-button-content{color:var(--st-surface-0, #ffffff)!important}.job-photo-thumb-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.job-photo-thumb-title{font-size:13px;font-weight:700;color:var(--st-text-primary, #253b52)}.job-photo-thumb-header .dx-button{height:34px}.job-photo-input,.job-photo-textarea{width:100%;border:1px solid var(--st-border-subtle, #b8c7d8);border-radius:8px;box-sizing:border-box;padding:8px 10px;font-size:14px;background:var(--st-surface-0, #fff)}.job-photo-textarea{min-height:72px;resize:vertical;margin-bottom:8px}.job-photo-hidden-input{display:none}.job-photo-tag-suggestions{display:flex;flex-wrap:wrap;gap:6px;min-height:28px;margin-bottom:8px}.job-photo-chip{border:1px solid var(--st-border-subtle, #c3d4e5);border-radius:999px;padding:4px 10px;font-size:12px;line-height:1;background:var(--st-surface-1, #edf4fb);color:var(--st-text-primary, #1f3f5f);cursor:pointer}.job-photo-chip:hover{background:var(--st-accent-bg, #dbe9f7)}.job-photo-muted{font-size:12px;color:var(--st-text-muted, #5a6d80)}.job-photo-preview{border:1px solid var(--st-border-subtle, #d5dde8);border-radius:10px;overflow:hidden;background:var(--st-surface-2, #0f1821);min-height:240px;display:flex;align-items:center;justify-content:center}.job-photo-preview-button{width:100%;padding:0;cursor:zoom-in}.job-photo-preview-image{width:100%;max-height:54vh;object-fit:contain}.job-photo-preview-meta{border:1px solid var(--st-border-subtle, #d5dde8);border-radius:10px;padding:10px;background:var(--st-surface-1, #f4f8fb);display:grid;gap:4px;font-size:12px}.job-photo-preview-empty{border:1px dashed var(--st-border-subtle, #bfcbd8);border-radius:10px;background:var(--st-surface-1, #f6f8fa);color:var(--st-text-muted, #546476);text-align:center;padding:30px 12px}.job-photo-upload-modal-body{display:flex;flex-direction:column;gap:10px}.job-photo-upload-files{max-height:180px;overflow:auto;border:1px solid var(--st-border-subtle, #d5dde8);border-radius:8px;background:var(--st-surface-0, #fff);padding:6px}.job-photo-upload-file-item{font-size:12px;color:var(--st-text-primary, #324b63);padding:4px 6px;border-bottom:1px solid var(--st-border-subtle, #ecf1f6)}.job-photo-upload-file-item:last-child{border-bottom:none}.job-photo-lightbox-overlay{--job-photo-lightbox-surface: var(--dx-component-color-bg, var(--st-surface-0, #ffffff));--job-photo-lightbox-bg: var(--dx-color-main-bg, var(--st-surface-1, #f5f6fa));--job-photo-lightbox-text: var(--dx-color-text, var(--st-text-primary, #222222));--job-photo-lightbox-border: var(--dx-color-border, var(--st-border-subtle, #d1d5db));--job-photo-lightbox-primary: var(--dx-color-primary, var(--st-accent-border, #1976d2));position:fixed;top:0;right:0;bottom:0;left:0;z-index:32000;background:#0a0e1299;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;padding:14px}.job-photo-lightbox-frame{width:min(96vw,1400px);height:min(94vh,980px);border-radius:12px;border:1px solid var(--job-photo-lightbox-border);background:var(--job-photo-lightbox-surface);box-shadow:0 24px 60px #00000040;display:flex;flex-direction:column;overflow:hidden}.job-photo-lightbox-header{min-height:56px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--job-photo-lightbox-border);background:color-mix(in srgb,var(--job-photo-lightbox-primary) 9%,var(--job-photo-lightbox-surface))}.job-photo-lightbox-title{color:var(--job-photo-lightbox-text);font-size:14px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-photo-lightbox-actions{display:flex;align-items:center;gap:8px}.job-photo-lightbox-btn,.job-photo-lightbox-close,.job-photo-lightbox-arrow{border:1px solid color-mix(in srgb,var(--job-photo-lightbox-primary) 30%,var(--job-photo-lightbox-border));background:color-mix(in srgb,var(--job-photo-lightbox-primary) 12%,var(--job-photo-lightbox-surface));color:var(--job-photo-lightbox-text);border-radius:8px;cursor:pointer}.job-photo-lightbox-btn{height:34px;padding:0 12px;font-size:12px;font-weight:600}.job-photo-lightbox-btn:disabled,.job-photo-lightbox-arrow:disabled{opacity:.4;cursor:not-allowed}.job-photo-lightbox-btn:hover:not(:disabled),.job-photo-lightbox-close:hover,.job-photo-lightbox-arrow:hover:not(:disabled),.job-photo-lightbox-zoom-btn:hover:not(:disabled){background:color-mix(in srgb,var(--job-photo-lightbox-primary) 22%,var(--job-photo-lightbox-surface))}.job-photo-lightbox-close{width:34px;height:34px;font-size:22px;line-height:1}.job-photo-lightbox-zoom-controls{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,var(--job-photo-lightbox-primary) 30%,var(--job-photo-lightbox-border));border-radius:8px;overflow:hidden}.job-photo-lightbox-zoom-btn{height:34px;min-width:34px;padding:0 8px;border:none;border-right:1px solid color-mix(in srgb,var(--job-photo-lightbox-primary) 20%,var(--job-photo-lightbox-border));background:color-mix(in srgb,var(--job-photo-lightbox-primary) 10%,var(--job-photo-lightbox-surface));color:var(--job-photo-lightbox-text);font-size:13px;font-weight:600;cursor:pointer}.job-photo-lightbox-zoom-btn:last-child{border-right:none}.job-photo-lightbox-zoom-btn.is-readout{min-width:62px;cursor:pointer}.job-photo-lightbox-zoom-btn.is-fit{min-width:44px}.job-photo-lightbox-zoom-btn:disabled{opacity:.45;cursor:not-allowed}.job-photo-lightbox-stage{flex:1 1 auto;min-height:0;display:grid;grid-template-columns:52px minmax(0,1fr) 52px;gap:8px;align-items:center;padding:10px 12px}.job-photo-lightbox-arrow{width:46px;height:86px;font-size:28px;line-height:1;justify-self:center}.job-photo-lightbox-media{position:relative;border:1px solid var(--job-photo-lightbox-border);border-radius:10px;background:color-mix(in srgb,var(--job-photo-lightbox-bg) 74%,var(--job-photo-lightbox-surface));overflow:hidden;width:100%;height:100%;min-height:300px;display:flex;align-items:center;justify-content:center;cursor:default;touch-action:none}.job-photo-lightbox-media.is-draggable{cursor:grab}.job-photo-lightbox-media.is-draggable.is-panning{cursor:grabbing}.job-photo-lightbox-image{display:block;max-width:none;max-height:none;object-fit:unset;image-rendering:auto;pointer-events:none;user-select:none;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none}.job-photo-lightbox-loading,.job-photo-lightbox-error{position:absolute;left:12px;right:12px;padding:8px 10px;border-radius:8px;font-size:12px;text-align:center;pointer-events:none}.job-photo-lightbox-loading{top:12px;border:1px solid color-mix(in srgb,var(--job-photo-lightbox-primary) 30%,var(--job-photo-lightbox-border));background:color-mix(in srgb,var(--job-photo-lightbox-primary) 14%,var(--job-photo-lightbox-surface));color:var(--job-photo-lightbox-text)}.job-photo-lightbox-error{bottom:12px;border:1px solid var(--st-danger-border, #8f3434);background:color-mix(in srgb,var(--st-danger-bg, #feeaea) 72%,#2f0d0d);color:var(--st-danger-text, #ffd7d7)}.job-photo-lightbox-footer{min-height:40px;display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px 12px;border-top:1px solid var(--job-photo-lightbox-border);color:var(--job-photo-lightbox-text);font-size:13px}.job-photo-lightbox-caption{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-photo-lightbox-count{font-variant-numeric:tabular-nums}@media (max-width: 920px){.job-photo-modal-layout{grid-template-columns:1fr;height:calc(88vh - 92px)}.job-photo-filter-row{flex-direction:column;align-items:stretch}.job-photo-filter-input{min-width:0}.job-photo-filter-actions{width:100%}.job-photo-filter-actions .dx-button{flex:1 1 calc(50% - 4px);min-width:88px}.job-photo-thumb-header{flex-wrap:wrap;align-items:stretch}.job-photo-thumb-header .dx-button{width:100%}.job-photo-preview-image{max-height:40vh}.job-photo-lightbox-overlay{padding:8px}.job-photo-lightbox-frame{width:100vw;height:100vh;border-radius:0}.job-photo-lightbox-stage{grid-template-columns:40px minmax(0,1fr) 40px;padding:8px}.job-photo-lightbox-arrow{width:36px;height:62px}.job-photo-lightbox-media{min-height:240px}.job-photo-lightbox-btn{padding:0 10px}.job-photo-lightbox-zoom-btn{min-width:30px;height:32px;padding:0 6px}.job-photo-lightbox-zoom-btn.is-readout{min-width:52px}.job-photo-lightbox-zoom-btn.is-fit{min-width:40px}}.billing-dashboard{height:100%;width:100%;display:flex;flex-direction:column;overflow:hidden;background:var(--dx-color-main-bg, #f8fafc)}.billing-widget-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.billing-widget-search{min-width:220px;flex:1 1 260px}.billing-empty,.billing-empty-small{color:#64748b;font-size:13px}.billing-empty{border:1px dashed #cbd5e1;border-radius:8px;padding:12px;background:#f8fafc}.billing-collections-root{display:flex;flex-direction:column;gap:10px;min-height:0}.billing-summary-grid{display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(125px,1fr))}.billing-metric-card{border:1px solid #dbe4f0;border-radius:8px;padding:8px 10px;background:#fff}.billing-metric-card.outstanding{border-color:#e8c4c4;background:#fff8f8}.billing-metric-label{font-size:11px;text-transform:uppercase;letter-spacing:.03em;color:#64748b;margin-bottom:4px}.billing-metric-value{font-size:15px;font-weight:700;color:#0f172a}.billing-inline-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.billing-inline-check{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#334155}.billing-note-line{font-size:12px;color:#475569;line-height:1.35}.billing-section-title{font-size:12px;font-weight:700;color:#334155;text-transform:uppercase;letter-spacing:.04em}.billing-grid-wrap{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.billing-selected-totals{font-size:12px;color:#334155}.billing-work-appts{border:1px solid #e2e8f0;border-radius:8px;max-height:138px;overflow:auto;background:#fff}.billing-work-appt-row{display:grid;grid-template-columns:26px 62px minmax(145px,1fr) minmax(100px,1fr);gap:8px;align-items:center;padding:7px 10px;border-bottom:1px solid #f1f5f9;font-size:12px}.billing-work-appt-row:last-child{border-bottom:none}.billing-log-box{border:1px solid #e2e8f0;border-radius:8px;background:#fff;max-height:170px;overflow:auto}.billing-log-row{padding:8px 10px;border-bottom:1px solid #f1f5f9}.billing-log-row:last-child{border-bottom:none}.billing-log-meta{font-size:11px;color:#64748b;margin-bottom:3px}.billing-log-notes{font-size:12px;white-space:pre-wrap;color:#0f172a}@media (max-width: 1200px){.billing-widget-actions{flex-direction:column;align-items:stretch}.billing-widget-search{min-width:0;width:100%}}
