:root{--bg:#f4f6f9;--surface:#fff;--border:#e2e8f0;--text:#1e293b;--text-muted:#64748b;--primary:#2563eb;--primary-hover:#1d4ed8;--danger:#dc2626;--success:#16a34a;--shadow:0 1px 3px rgba(0,0,0,.08);--radius:10px}*{box-sizing:border-box;margin:0;padding:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}html{touch-action:manipulation}.action-lightbox,.pdf-viewer-page,body.pdf-zoom-enabled,body.photo-zoom-enabled,html.pdf-zoom-enabled,html.photo-zoom-enabled{touch-action:auto}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;touch-action:manipulation;overscroll-behavior:none}a{color:var(--primary);text-decoration:none}button,input,textarea{font:inherit}.container{max-width:960px;margin:0 auto;padding:24px 20px}.dashboard-side-dock{position:fixed;top:72px;bottom:16px;z-index:45;background:#fff;border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.12);overflow:hidden;display:flex;flex-direction:column}.dashboard-side-dock-left{left:12px;width:min(480px,calc((100vw - 1000px) / 2 - 20px));min-width:280px}.dashboard-side-dock-right{right:12px;width:min(960px,calc((100vw - 1000px) / 2 - 20px));min-width:420px}.dashboard-side-dock .notes-panel{height:100%;max-height:none}.dashboard-side-dock .notes-panel-head{padding-right:16px}.dashboard-side-dock .todo-body{flex:1 1;min-height:0;max-height:none;overflow:auto}.parts-list-modal-dock{width:100%!important;max-width:none!important;max-height:none!important;height:100%;border-radius:0;box-shadow:none;border:none}.parts-list-modal-dock .parts-list-body{flex:1 1;min-height:0}.parts-list-modal-dock .parts-list-body .cc-labor-totals-wrap{overflow-x:visible}.parts-list-modal-dock .cc-estimate-parts-table{table-layout:fixed;width:100%;min-width:0}.parts-list-modal-dock .cc-estimate-parts-table td,.parts-list-modal-dock .cc-estimate-parts-table th{vertical-align:top}.parts-list-modal-dock .parts-list-check-col{width:40px}.parts-list-modal-dock .cc-estimate-parts-table td:nth-child(2),.parts-list-modal-dock .cc-estimate-parts-table th:nth-child(2){width:44px}.parts-list-modal-dock .cc-estimate-parts-table td:nth-child(3),.parts-list-modal-dock .cc-estimate-parts-table th:nth-child(3){width:34%}.parts-list-modal-dock .cc-estimate-parts-table td:nth-child(4),.parts-list-modal-dock .cc-estimate-parts-table th:nth-child(4){width:22%}.parts-list-modal-dock .cc-estimate-parts-table td:nth-child(5),.parts-list-modal-dock .cc-estimate-parts-table th:nth-child(5){width:10%}.parts-list-modal-dock .cc-estimate-parts-table td:nth-child(6),.parts-list-modal-dock .cc-estimate-parts-table th:nth-child(6){width:8%}.parts-list-modal-dock .cc-estimate-parts-table td:nth-child(7),.parts-list-modal-dock .cc-estimate-parts-table th:nth-child(7){width:12%}.parts-list-modal-dock .cc-estimate-parts-desc{max-width:none;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.parts-list-modal-dock .cc-estimate-parts-pn{white-space:normal;overflow-wrap:anywhere;word-break:break-all}@media (max-width:1199px){.dashboard-side-dock{display:none!important}}body.parts-list-printing .dashboard-side-dock-left{display:none!important}body.parts-list-printing .dashboard-side-dock-right{position:static!important;inset:auto!important;width:100%!important;max-width:none!important;min-width:0!important;border:none!important;box-shadow:none!important;border-radius:0!important}.notes-panel{display:flex;flex-direction:column}.notes-panel,.notes-panel-modal{min-height:0;flex:1 1}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:none;border-radius:8px;cursor:pointer;font-weight:500;transition:background .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:#cbd5e1;color:#0f172a;border:1px solid #94a3b8}.btn-secondary:hover{background:#94a3b8}.btn-danger{background:#fef2f2;color:var(--danger);border:1px solid #fecaca}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:6px;font-weight:500;font-size:14px}.form-group input,.form-group textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:#fff}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.error{color:var(--danger);font-size:14px;margin-top:8px}.header{background:var(--surface);border-bottom:1px solid var(--border);padding:16px 0}.ptr-root{position:relative}.ptr-indicator{position:absolute;left:0;right:0;top:0;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;pointer-events:none;z-index:2;color:var(--text-muted);font-size:13px;font-weight:600;padding-bottom:10px;background:linear-gradient(180deg,#e2e8f0,transparent);opacity:0;transition:opacity .15s ease}.ptr-indicator.visible{opacity:1}.ptr-content{will-change:transform}.header-inner{max-width:960px;margin:0 auto;padding:0 20px;display:flex;align-items:center;justify-content:space-between}.header h1{font-size:18px;font-weight:600}.header-right{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--text-muted);position:relative;margin-left:auto}.header-inner-compact{justify-content:flex-end}.header-spacer{flex:1 1}.settings-gear-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;border-radius:var(--radius);background:transparent;color:var(--text);cursor:pointer}.settings-gear-btn:hover{background:#f3f4f6}.settings-gear-btn.has-new-quotation{color:#2563eb;background:transparent}.settings-gear-btn.has-new-quotation svg{animation:settings-gear-spin 1.4s linear infinite;transform-origin:50% 50%}@keyframes settings-gear-spin{to{transform:rotate(1turn)}}.settings-menu-item.has-new{font-weight:700;color:#1d4ed8}.settings-new-dot{display:inline-block;width:8px;height:8px;margin-left:8px;border-radius:50%;background:#ef4444;vertical-align:middle}.settings-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 8px 24px rgba(0,0,0,.08);padding:6px;z-index:50}.settings-menu-item{display:block;width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;color:var(--text);font-size:14px;text-decoration:none;border-radius:6px;cursor:pointer}.settings-cal-modal{width:min(520px,100%)}.cal-app-backdrop{align-items:stretch;justify-content:center;padding:12px;z-index:90;overscroll-behavior:none;touch-action:pan-y}.cal-app-modal{width:min(1100px,100%);height:min(92vh,900px);max-height:92vh;display:flex;flex-direction:column;background:var(--bg);border-radius:16px;box-shadow:0 20px 50px rgba(15,23,42,.28);overflow:hidden;touch-action:pan-y;overscroll-behavior:contain}.cal-app-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.cal-app-head .cal-app-month-label{cursor:pointer}.cal-app-head h2{font-size:18px;font-weight:600}.cal-app-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}.cal-app-month-label{margin:0;font-size:18px;font-weight:600;color:var(--text);line-height:1.2;white-space:nowrap;flex-shrink:0;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:manipulation}.cal-app-month-label.is-year{font-size:22px;color:var(--primary);padding-bottom:2px;border-bottom:2px solid var(--primary)}.cal-app-head-search{position:relative;flex:1 1 auto;min-width:0;max-width:none}.cal-app-head-search .cal-search-input{width:100%}.cal-app-title-btn{border:none;background:transparent;padding:0;margin:0;font-size:18px;font-weight:600;color:var(--text);cursor:pointer;line-height:1.2}.cal-app-title-btn:disabled{cursor:default;opacity:.7}.cal-app-title-btn:not(:disabled):hover{color:var(--primary)}.cal-app-copy-hint{font-size:12px;color:#16a34a;white-space:nowrap}.cal-app-head-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.cal-ics-btn{color:#334155}.cal-ics-btn:disabled{opacity:.4;cursor:not-allowed}.cal-ics-btn:hover:not(:disabled){color:var(--primary)}.cal-app-body{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:12px 16px 16px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}.cal-modal-backdrop.cal-app-fullscreen{padding:0!important;align-items:stretch!important;justify-content:stretch!important;background:#fff!important}.cal-app-modal.cal-app-fullscreen,.cal-modal-backdrop.cal-app-fullscreen{margin:0!important;inset:0!important;width:100%!important;height:100%!important}.cal-app-modal.cal-app-fullscreen{position:fixed!important;max-width:none!important;max-height:none!important;min-height:100%!important;border-radius:0!important;border:none!important;box-shadow:none!important}@supports (height:100dvh){.cal-app-modal.cal-app-fullscreen{height:100dvh!important;min-height:100dvh!important;max-height:100dvh!important}}.cal-app-modal.cal-app-fullscreen .cal-app-head{padding-top:calc(12px + env(safe-area-inset-top, 0px));gap:8px}.cal-app-modal.cal-app-fullscreen .cal-app-month-label{font-size:17px;max-width:42%;overflow:hidden;text-overflow:ellipsis}.cal-app-modal.cal-app-fullscreen .cal-app-month-label.is-year{max-width:none;font-size:22px}.cal-app-modal.cal-app-fullscreen .cal-app-body{overflow:hidden;padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px))}@media (max-width:720px){.cal-modal-backdrop.cal-app-backdrop{padding:0;align-items:stretch;justify-content:stretch;background:#fff}.cal-app-modal{width:100%;width:100vw;max-width:100vw;height:100%;height:100dvh;max-height:100dvh;min-height:100dvh;border-radius:0;border:none;box-shadow:none}@supports (height:100dvh){.cal-app-modal{height:100dvh;max-height:100dvh;min-height:100dvh}}.cal-app-head{padding-top:calc(12px + env(safe-area-inset-top, 0px))}.cal-app-body{overflow-y:auto;padding-bottom:calc(16px + env(safe-area-inset-bottom, 0px))}}.settings-menu-item:hover{background:#f3f4f6}.push-enable-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:1400;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:12px;background:#0f172a;color:#fff;box-shadow:0 12px 32px rgba(15,23,42,.28)}.push-enable-banner-text{display:flex;flex-direction:column;gap:4px;flex:1 1;min-width:180px;font-size:13px;line-height:1.4}.push-enable-banner-text strong{font-size:14px}.push-enable-banner-text span{color:#cbd5e1}.push-enable-error{color:#fecaca!important}.push-enable-banner .btn{flex-shrink:0}.notif-label-short{display:none}.doc-list{display:flex;flex-direction:column;gap:12px}.doc-item{display:flex;align-items:stretch;justify-content:space-between;gap:16px;padding:16px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}.doc-item-clickable{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.doc-item-clickable:hover{border-color:#93c5fd;box-shadow:0 0 0 1px #dbeafe}.doc-item-clickable:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.doc-info{min-width:0;flex:1 1 auto}.doc-info h3{font-size:16px;margin-bottom:4px}.doc-meta{font-size:13px;color:var(--text-muted)}.doc-customer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-description{font-size:14px;color:#2563eb;margin-bottom:4px;font-weight:500}.doc-labor-techs{display:flex;flex-direction:row;flex-wrap:wrap;align-items:baseline;justify-content:flex-end;gap:8px 10px;margin:auto 0 0;padding-top:6px;min-width:0}.doc-labor-tech-chip{display:inline-flex;align-items:baseline;gap:3px;padding:0;border:none;border-radius:0;background:transparent;font-size:12px;line-height:1.3;color:#334155;white-space:nowrap}.doc-labor-tech-initials{font-weight:700;letter-spacing:.02em;color:#0f172a}.doc-labor-tech-hours{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#334155}.doc-side{display:flex;flex-direction:column;align-items:flex-end;justify-content:flex-start;gap:2px;flex:0 0 auto;min-width:0;align-self:stretch}.doc-actions{display:flex;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}.empty{text-align:center;padding:48px 20px;color:var(--text-muted)}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:12px;font-weight:500;background:#dbeafe;color:#1d4ed8}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}.login-card{width:100%;max-width:400px}.login-brand{display:flex;justify-content:center;margin-bottom:20px}.login-logo{width:auto;max-width:240px;height:auto}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:4px;gap:4px;margin-bottom:20px;padding:4px;background:var(--bg);border-radius:var(--radius);border:1px solid var(--border)}.auth-tab{border:none;background:transparent;padding:8px 12px;border-radius:calc(var(--radius) - 2px);font-size:14px;font-weight:500;color:var(--text-muted);cursor:pointer}.auth-tab.active{background:#fff;color:var(--text);box-shadow:0 1px 2px rgba(0,0,0,.06)}.success-msg{color:#15803d;margin:8px 0}.account-avatar-block{display:flex;flex-direction:column;align-items:center;gap:12px;margin:8px 0 4px}.account-avatar-preview{width:88px;height:88px;border-radius:8px;background:#94a3b8;color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:28px;font-weight:650;overflow:hidden}.account-avatar-preview img{width:100%;height:100%;object-fit:cover;display:block}.account-avatar-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.account-divider{border:none;border-top:1px solid var(--border);margin:20px 0 16px}.account-section-title{font-size:16px;font-weight:650;margin:0 0 12px;color:var(--text)}.password-field{position:relative}.password-field input{width:100%;padding-right:44px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:6px;background:transparent;color:var(--text-muted);cursor:pointer}.password-toggle:hover{color:var(--text);background:rgba(15,23,42,.06)}.password-toggle:focus-visible{outline:2px solid var(--primary);outline-offset:1px}.upload-area{border:2px dashed var(--border);border-radius:var(--radius);padding:32px;text-align:center;color:var(--text-muted);cursor:pointer;transition:border-color .15s}.upload-area.dragover,.upload-area:hover{border-color:var(--primary);background:#f8fafc}.upload-area input{display:none}.welcome-line{margin:0;font-size:18px;font-weight:600;color:var(--text);line-height:1.2}.employee-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.employee-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--border)}.employee-row:last-child{border-bottom:none}.login-title{font-size:20px;font-weight:600;margin:8px 0 4px;text-align:center}.login-subtitle{font-size:13px;color:var(--text-muted);text-align:center;margin-bottom:16px}.tabs{display:inline-flex;gap:2px;margin-bottom:0;padding:3px;flex-wrap:nowrap;background:#e8edf3;border-radius:10px}.tabs,.tabs-bar{align-items:center}.tabs-bar{display:flex;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.tabs-bar-actions{margin-left:auto;display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.tabs-upload-btn.task-icon-btn{width:44px;height:44px;color:#4b5563}.tabs-upload-btn.task-icon-btn.active,.tabs-upload-btn.task-icon-btn:hover{color:#111827}.schedule-search{margin-left:0;flex-shrink:0}.schedule-search-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--border);border-radius:var(--radius);background:#f3f4f6;color:#4b5563;cursor:pointer}.schedule-search-btn:hover{background:#e5e7eb;color:var(--primary)}.schedule-search-field{display:flex;align-items:center;gap:6px;min-width:min(280px,70vw);padding:6px 10px;border:1px solid #94a3b8;border-radius:8px;background:#e2e8f0}.schedule-search-icon{display:inline-flex;color:#64748b;flex-shrink:0}.schedule-search-input{flex:1 1;min-width:0;border:none;background:transparent;font-size:14px;color:var(--text);outline:none}.schedule-search-clear{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;border:none;border-radius:999px;background:#94a3b8;color:#fff;font-size:16px;line-height:1;cursor:pointer;flex-shrink:0}.tab{min-width:96px;padding:7px 16px;border:none;border-radius:8px;font-size:14px;font-weight:500;line-height:1.25;color:var(--text-muted);background:transparent;cursor:pointer;position:relative;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.tab.active,.tab:hover:not(.active){color:var(--text)}.tab.active{background:#fff;box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(15,23,42,.04)}.tab-badge{display:inline-block;width:7px;height:7px;margin-left:6px;border-radius:50%;background:#ef4444;vertical-align:middle;box-shadow:0 0 0 2px #e8edf3}.tab.active .tab-badge{box-shadow:0 0 0 2px #fff}.schedule-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.schedule-scroll{max-height:calc(100vh - 200px);overflow:auto;-webkit-overflow-scrolling:touch}.schedule-table{width:100%;border-collapse:separate;border-spacing:0;min-width:720px}.schedule-table td,.schedule-table th{border:1px solid var(--border);border-top:none;border-left:none;padding:10px 12px;text-align:left;vertical-align:middle;font-size:14px;background:var(--surface)}.schedule-table td:first-child,.schedule-table th:first-child{border-left:1px solid var(--border)}.schedule-table thead th{position:-webkit-sticky;position:sticky;top:0;z-index:8;background:#f8fafc;font-weight:600;white-space:nowrap;border-top:1px solid var(--border);box-shadow:0 1px 0 var(--border)}.schedule-po{white-space:nowrap;font-weight:500;min-width:88px}.schedule-desc{min-width:180px;max-width:280px}.schedule-desc-title{font-weight:600;margin-bottom:2px}.schedule-desc-text{color:var(--text-muted);font-size:13px;line-height:1.35}.schedule-cell{width:96px;padding:6px!important}.schedule-input{width:100%;border:1px solid transparent;border-radius:6px;padding:8px 6px;text-align:center;font-size:14px;background:transparent}.schedule-input:focus,.schedule-input:hover{border-color:#bfdbfe;background:#fff;outline:none}.schedule-input:disabled{opacity:.6}.cal-page{display:flex;flex-direction:column;gap:14px}.cal-page.cal-page-year{height:100%;min-height:0;gap:0}.cal-year-overview{flex:1 1;min-height:0;overflow:hidden;padding:6px 4px 8px;touch-action:none;display:flex;flex-direction:column}.cal-year-grid{flex:1 1;min-height:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));grid-gap:14px 16px;gap:14px 16px}.cal-year-month{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;border:none;background:transparent;text-align:left;cursor:pointer;color:inherit;min-height:0;overflow:hidden;-webkit-tap-highlight-color:transparent}.cal-year-month:hover .cal-year-month-label{color:var(--primary)}.cal-year-month-label{font-size:14px;font-weight:600;color:var(--text);line-height:1.2;padding-left:2px;flex-shrink:0}.cal-year-month.is-active .cal-year-month-label{color:var(--primary)}.cal-year-mini-grid{flex:1 1;min-height:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));grid-gap:0;gap:0}.cal-year-mini-day{display:flex;align-items:center;justify-content:center;min-height:0;font-size:clamp(9px,1.1vw,12px);line-height:1;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cal-year-mini-day.is-out{color:transparent}.cal-year-mini-day.is-today{color:#fff;background:var(--primary);border-radius:50%;aspect-ratio:1;width:70%;max-width:18px;margin:0 auto}.cal-app-modal.cal-app-year-overview .cal-app-body{overflow:hidden}.cal-feed{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px 14px}.cal-feed-title{font-weight:600;font-size:14px;margin-bottom:4px}.cal-feed-note{margin:0 0 10px;font-size:13px;color:var(--text-muted);line-height:1.4}.cal-feed-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:8px}.cal-feed-actions .btn{text-decoration:none}.cal-feed-hint{font-size:13px;color:#166534}.cal-feed-steps{margin:0 0 10px;padding-left:18px;font-size:13px;color:var(--text-muted);line-height:1.45}.cal-feed-steps li+li{margin-top:4px}.cal-feed-url{width:100%;box-sizing:border-box;border:1px solid var(--border);border-radius:6px;padding:8px 10px;font-size:12px;color:var(--text-muted);background:#f8fafc}.cal-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;justify-content:space-between}.cal-nav{display:flex;gap:8px}.cal-search-wrap{position:relative;flex:1 1 180px;min-width:140px;max-width:280px}.cal-search-input{width:100%;height:36px;padding:0 32px 0 12px;border:1px solid var(--border);border-radius:8px;background:#fff;font-size:14px}.cal-search-input::-webkit-search-cancel-button,.cal-search-input::-webkit-search-decoration{-webkit-appearance:none;appearance:none;display:none}.cal-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:24px;height:24px;border:none;border-radius:999px;background:transparent;color:#64748b;cursor:pointer;font-size:16px;line-height:1}.cal-search-clear:hover{background:#f1f5f9;color:#0f172a}.cal-month-title{font-size:18px;font-weight:600;flex:0 1 auto;text-align:center;min-width:140px;margin-right:0}.cal-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;grid-gap:14px;gap:14px;align-items:start;width:100%}.cal-month{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;min-width:0;width:100%}.cal-grid-viewport{position:relative;overflow:hidden;touch-action:none;overscroll-behavior:none;width:100%}.cal-grid-track{display:flex;flex-direction:column;align-items:stretch;width:100%;will-change:transform;transition:transform .32s cubic-bezier(.32,.72,0,1)}.cal-grid-track.no-transition{transition:none}.cal-grid-panel{width:100%;flex:0 0 auto}.cal-weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:100%;background:#f8fafc;border-bottom:1px solid var(--border)}.cal-weekday{text-align:center;font-size:12px;font-weight:600;color:var(--text-muted);padding:8px 4px;min-width:0}.cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));width:100%}.cal-day{min-height:92px;max-height:132px;min-width:0;border:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:#fff;text-align:left;padding:6px;cursor:pointer;vertical-align:top;display:flex;flex-direction:column;gap:4px;overflow:hidden;contain:layout paint style}.cal-day:nth-child(7n){border-right:none}.cal-day-muted{background:#f8fafc;color:#94a3b8}.cal-day-red{background:#fee2e2}.cal-day-muted.cal-day-red{background:#fef2f2;color:#f87171}.cal-day-today .cal-day-num{background:var(--primary);color:#fff}.cal-day-selected{background:#eff6ff;box-shadow:inset 0 -4px 0 0 var(--primary)}.cal-day-selected.cal-day-red{background:#fecaca;box-shadow:inset 0 -4px 0 0 var(--primary)}.cal-holiday-label{display:block;font-size:10px;line-height:1.2;color:#b91c1c;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-day-num{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;font-size:13px;font-weight:600}.cal-day-events{display:flex;flex-direction:column;gap:2px;min-width:0;min-height:0;flex:1 1;overflow:hidden}.cal-chip{display:block;font-size:11px;line-height:1.25;padding:1px 4px;border-radius:4px;background:#dbeafe;color:#1e40af;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.cal-chip-done{background:#dcfce7;color:#166534}.cal-more{font-size:11px;color:var(--text-muted);padding-left:2px}.cal-sidebar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;min-height:280px}.cal-sidebar-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.cal-sidebar-head h3{font-size:15px;font-weight:600}.cal-empty{color:var(--text-muted);font-size:13px;padding:8px 0}.cal-event-list{list-style:none;display:flex;flex-direction:column;gap:8px}.cal-todo-item{display:flex;align-items:center;gap:8px}.cal-todo-item.done .cal-event-title{color:#64748b}.cal-todo-checkbox{width:18px;height:18px;flex-shrink:0;cursor:pointer;accent-color:#16a34a}.cal-todo-title-btn{flex:1 1;min-width:0}.cal-event-item{width:100%;text-align:left;border:1px solid var(--border);border-radius:8px;background:#f8fafc;padding:8px 10px;cursor:pointer;display:flex;flex-direction:column;gap:2px}.cal-todo-title-btn.cal-event-item{flex-direction:row;align-items:center}.cal-event-item:hover{border-color:#93c5fd;background:#eff6ff}.cal-event-time{font-size:12px;color:var(--primary);font-weight:600}.cal-event-title{font-size:14px;font-weight:600}.cal-event-loc{font-size:12px;color:#b91c1c}.cal-event-phone{font-size:12px;color:var(--primary);font-weight:500}.cal-event-notes{font-size:12px;color:var(--text-muted);white-space:pre-wrap}.cal-event-attach{font-size:12px;color:#475569}.cal-notes-zone{border:1px solid var(--border);border-radius:8px;background:#fff;padding:10px 12px;display:flex;flex-direction:column;gap:10px;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.cal-notes-zone-active{border-color:var(--primary);background:#eff6ff;box-shadow:0 0 0 3px rgba(37,99,235,.12)}.cal-notes-zone textarea{border:none;border-radius:0;padding:0;font-size:15px;line-height:1.45;color:var(--text);background:transparent;resize:vertical;font-family:inherit;min-height:44px;width:100%}.cal-notes-zone textarea:focus{outline:none}.cal-notes-drop-hint{display:none;margin:0;font-size:12px;color:var(--text-muted);text-align:left;padding:0}.cal-attach-mobile{display:none;position:relative;align-self:flex-start}.cal-upload-menu{position:absolute;left:0;top:calc(100% + 6px);z-index:5;min-width:160px;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 24px rgba(15,23,42,.12);overflow:hidden;display:flex;flex-direction:column}.cal-upload-menu button{border:none;background:transparent;text-align:left;padding:10px 12px;font-size:14px;color:var(--text);cursor:pointer}.cal-upload-menu button:hover:not(:disabled){background:#f3f4f6}.cal-upload-menu button:disabled{opacity:.6;cursor:not-allowed}.cal-attach-list{list-style:none;display:flex;flex-direction:column;gap:6px;margin:0;padding:0}.cal-attach-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.cal-attach-list a{color:var(--primary);word-break:break-all;text-decoration:underline}.cal-attach-photos{display:flex;flex-direction:column;gap:8px}.cal-attach-photo{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--border);border-radius:8px;background:#f8fafc}.cal-attach-photo-link{display:flex;align-items:center;gap:10px;min-width:0;color:var(--primary);text-decoration:none;border:none;background:transparent;padding:0;cursor:zoom-in;text-align:left;font:inherit}.cal-attach-photo-link span{font-size:13px;word-break:break-all;text-decoration:underline}.cal-attach-photo img{width:56px;height:56px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#e2e8f0;flex-shrink:0}.cal-attach-photo-pending{align-items:center}.cal-attach-photo-pending .photo-pending-thumb{width:56px;height:56px;flex-shrink:0;border-radius:8px}.cal-attach-photo-name{font-size:13px;color:#64748b;word-break:break-all;flex:1 1;min-width:0}.cal-attach-remove{border:none;background:transparent;color:var(--danger);font-size:12px;cursor:pointer;padding:0;text-align:left;flex-shrink:0}@media (min-width:901px){.cal-notes-drop-hint{display:block}}@media (max-width:900px){.cal-attach-mobile{display:block}.cal-notes-drop-hint{display:none}.cal-notes-zone textarea::placeholder{color:transparent}}.cal-tz-note{margin:-4px 0 0;font-size:12px;color:var(--text-muted)}.cal-tz-note-modal{margin:0 0 6px;padding:0;line-height:1.4}.cal-field textarea{border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-size:15px;color:var(--text);background:#fff;resize:vertical;font-family:inherit}.cal-field .cal-notes-zone textarea{border:none;border-radius:0;padding:0;background:transparent}.cal-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.45);z-index:110;display:flex;align-items:flex-end;justify-content:center;padding:12px}.cal-event-backdrop{z-index:130;cursor:default}.cal-modal{width:min(480px,100%);max-height:min(96vh,900px);overflow-x:hidden;overflow-y:auto;background:var(--surface);border-radius:16px;padding:14px 16px;box-shadow:0 20px 50px rgba(15,23,42,.25)}.cal-modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-modal-head h3{margin:0;font-size:17px;font-weight:600;color:var(--text)}.cal-modal-close{border:none;background:transparent;font-size:28px;line-height:1;color:var(--text-muted);cursor:pointer;padding:0 4px}.cal-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-size:13px;font-weight:500;color:var(--text-muted)}.cal-field-row{display:grid;grid-gap:8px;gap:8px}.cal-address-row{grid-template-columns:1.6fr 1fr}@media (max-width:560px){.cal-address-row{grid-template-columns:1fr}}.cal-field-row>.cal-field{margin-bottom:10px}.cal-field>span{line-height:1.2}.cal-field input:not([type]),.cal-field input[type=email],.cal-field input[type=search],.cal-field input[type=tel],.cal-field input[type=text]{border:1px solid var(--border);border-radius:8px;padding:8px 12px;font-size:15px;line-height:1.3;color:var(--text);background:#fff;outline:none;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;transition:border-color .15s ease,box-shadow .15s ease}.cal-field input:not([type]):focus,.cal-field input[type=email]:focus,.cal-field input[type=search]:focus,.cal-field input[type=tel]:focus,.cal-field input[type=text]:focus,.cal-field textarea:focus,.cal-notes-zone:focus-within:not(.cal-notes-zone-active){border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.12)}.cal-ios-block{border:1px solid var(--border);border-radius:12px;overflow:hidden;background:#f8fafc;margin-bottom:12px}.cal-ios-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 14px;font-size:15px;color:var(--text)}.cal-ios-row+.cal-ios-row{border-top:1px solid var(--border)}.cal-create-task-fields{margin-bottom:4px}.cal-create-task-fields .cal-field:last-child{margin-bottom:10px}.cal-ios-pickers{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}.cal-ios-pickers input[type=date],.cal-ios-pickers input[type=time]{border:none;background:#e2e8f0;border-radius:8px;padding:6px 8px;font-size:14px;color:var(--text);outline:none}.cal-switch{width:50px;height:30px;border-radius:999px;border:none;background:#cbd5e1;position:relative;cursor:pointer;padding:0;flex-shrink:0;transition:background .15s ease}.cal-switch.on{background:#34c759}.cal-switch-knob{position:absolute;top:2px;left:2px;width:26px;height:26px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:transform .15s ease}.cal-switch.on .cal-switch-knob{transform:translateX(20px)}.cal-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:2px;padding-top:12px;border-top:1px solid var(--border)}.cal-modal-actions-right{display:flex;gap:8px;margin-left:auto}@media (min-width:721px){.cal-modal-backdrop{align-items:center}}@media (max-width:900px){.cal-modal-backdrop.cal-app-backdrop,.cal-modal-backdrop.cal-app-fullscreen{padding:0!important;align-items:stretch;justify-content:stretch;background:#fff}.cal-app-modal,.cal-app-modal.cal-app-fullscreen{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;min-height:100dvh;border-radius:0;box-shadow:none}.cal-nav{display:none}.cal-toolbar{justify-content:flex-start;flex-shrink:0}.cal-month-title{margin-left:auto}.cal-tz-note{flex-shrink:0}}@media (max-width:900px){.cal-app-body:has(.cal-page-mobile){overflow:hidden;display:flex;flex-direction:column}.cal-app-modal.cal-app-fullscreen .cal-app-body{padding-left:10px;padding-right:10px}.cal-page-mobile{flex:1 1;min-height:0;overflow:hidden;gap:10px;width:100%}.cal-app-fullscreen .cal-layout,.cal-page-mobile .cal-layout{flex:1 1;min-height:0;width:100%;display:flex!important;flex-direction:column;align-items:stretch;overflow:hidden;grid-template-columns:none;gap:10px}.cal-app-fullscreen .cal-month,.cal-app-fullscreen .cal-sidebar,.cal-page-mobile .cal-month,.cal-page-mobile .cal-sidebar{width:100%;max-width:100%;align-self:stretch;box-sizing:border-box}.cal-page-mobile .cal-month{flex-shrink:0}.cal-page-mobile .cal-sidebar{flex:1 1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.cal-page-mobile .cal-grid,.cal-page-mobile .cal-grid-panel,.cal-page-mobile .cal-grid-track,.cal-page-mobile .cal-grid-viewport,.cal-page-mobile .cal-weekdays{width:100%;max-width:100%}.cal-month{touch-action:none}.cal-layout{grid-template-columns:1fr;width:100%}.cal-day{min-height:72px;max-height:none}.cal-chip,.cal-holiday-label{display:none}.cal-day-events{flex-direction:row;flex-wrap:wrap}.cal-day-events .cal-more,.cal-day.has-dot:after{display:none}.cal-day-has-events:after{content:"";width:6px;height:6px;border-radius:50%;background:var(--primary);margin-top:auto}}.preview-page{min-height:100vh;display:flex;flex-direction:column}.preview-toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-shrink:0}.preview-toolbar h2{font-size:16px;font-weight:600}.preview-toolbar-actions{flex-shrink:0}.preview-frame-wrap{flex:1 1;min-height:0;background:#525659;padding:0}.preview-frame{width:100%;height:calc(100vh - 57px);border:none;display:block;background:#525659}.preview-modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:1000}.preview-modal{width:min(1100px,100%);height:min(85vh,900px);background:var(--surface);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25)}.preview-modal-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-modal-header h3{font-size:15px;font-weight:600}.preview-modal-frame{flex:1 1;border:none;width:100%;background:#525659}.preview-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mobile-pdf-banner{display:none;padding:32px 20px;text-align:center}.mobile-pdf-banner p{margin:0 0 16px;color:var(--muted,#666)}@media (max-width:900px){.header{padding:10px 0}.header-inner{flex-direction:row;align-items:center;gap:10px;padding:0 12px}.header h1{font-size:16px}.header-right{flex-wrap:nowrap;gap:8px;justify-content:flex-end;margin-left:auto}.header-right .btn{padding:8px 12px;font-size:13px}.header-user{width:auto;order:0}.notif-label-full{display:none}.notif-label-short{display:inline}.notification-btn{flex:1 1 auto}.doc-item{flex-direction:column}.doc-item,.doc-side{align-items:stretch}.doc-labor-techs{justify-content:flex-end}.doc-actions{justify-content:stretch}.doc-actions .btn{flex:1 1;min-width:calc(50% - 4px)}.task-detail-toolbar{flex-direction:column;align-items:stretch;padding:12px;gap:10px}.task-detail-toolbar h2{font-size:16px;word-break:break-word}.preview-toolbar-actions{display:flex;flex-wrap:nowrap;align-items:center;gap:4px}.preview-toolbar-actions .btn,.preview-toolbar-actions a{width:auto;justify-content:center}.preview-toolbar-actions .chat-bubble-btn,.preview-toolbar-actions .task-icon-btn{flex:0 0 44px}.preview-toolbar-actions .btn-primary{grid-column:auto}.task-detail-title-mobile-hide{display:none!important}.task-detail-body{display:block;grid-template-columns:none}.task-detail-body.is-mobile{display:block}.task-pdf-frame,.task-pdf-panel{display:none!important}.task-detail-body.is-mobile .mobile-pdf-banner{display:block}.task-side-panel{max-height:none;border-left:none}.private-board{border-top:1px solid var(--border)}.comment-list{flex:1 1;min-height:120px}.comment-form{display:block!important;position:-webkit-sticky;position:sticky;bottom:0;background:var(--surface);padding-bottom:calc(14px + env(safe-area-inset-bottom, 0px))}.notification-panel{right:0;left:12px;width:auto}}.version-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#f1f5f9;color:var(--text-muted);vertical-align:middle}.upload-notice{background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;padding:12px 14px;font-size:14px;margin-bottom:20px;color:#1e40af}.field-hint{margin-top:6px;font-size:13px;color:var(--text-muted)}.field-hint code{background:#f1f5f9;padding:2px 6px;border-radius:4px;font-size:12px}.success-msg{color:var(--success);font-size:14px;margin-bottom:8px}.task-detail{min-height:calc(100vh - 57px);display:flex;flex-direction:column}.task-detail-toolbar{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px}.task-detail-toolbar h2{font-size:18px;font-weight:600}.task-detail-body{flex:1 1;display:grid;grid-template-columns:1fr 380px;grid-gap:0;gap:0;min-height:0}.task-detail-body-full{grid-template-columns:1fr}.task-detail-body-split{grid-template-columns:minmax(0,1fr) minmax(280px,340px)}.task-detail-body-mobile{grid-template-columns:1fr;padding:12px;background:#fff}.task-detail-body-full .task-pdf-frame,.task-detail-body-split .task-pdf-frame{height:calc(100vh - 120px)}.task-photos-panel{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 120px);overflow:hidden;border-left:1px solid var(--border);background:#fff;padding:12px;position:relative;transition:background .15s ease,box-shadow .15s ease}.task-photos-panel-desktop.task-photos-panel-drag{background:#eff6ff;box-shadow:inset 0 0 0 2px var(--primary)}.task-photos-panel-desktop.task-photos-panel-drag:after{content:"Drop photos to upload";position:absolute;inset:12px;z-index:5;display:flex;align-items:center;justify-content:center;pointer-events:none;border:2px dashed var(--primary);border-radius:12px;background:rgba(239,246,255,.92);color:var(--primary);font-size:15px;font-weight:600}.task-photos-drop-hint{font-size:12px;color:var(--text-muted);align-self:center}.task-photos-drop-hint-top{margin:0 0 4px;text-align:center}.task-photos-selected-count{font-size:12px;color:#334155;align-self:center}.task-detail-body-mobile .task-photos-panel{border-left:none;max-height:none;min-height:calc(100vh - 200px);padding:0}.task-detail-mobile-fab .task-photos-scroll{padding-bottom:calc(88px + env(safe-area-inset-bottom, 0px))}.task-detail-mobile-fab .task-photos-panel-selecting .task-photos-scroll{padding-bottom:calc(100px + env(safe-area-inset-bottom, 0px))}.task-photos-scroll{display:flex;flex-direction:column;gap:14px;overflow-y:auto;min-height:0;flex:1 1;padding-bottom:8px}.task-photos-more{display:flex;justify-content:center;padding:8px 0 4px}.task-pdf-placeholder{height:100%;min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#94a3b8;font-size:14px;background:#0f172a;text-align:center;padding:16px}.task-pdf-placeholder-pending{background:#fecaca;border:1px solid #f87171;color:#991b1b}.task-pdf-placeholder-pending .task-pdf-placeholder-hint{color:#b91c1c}.task-pdf-placeholder-hint{margin:0;font-size:13px;color:#fca5a5}.task-photos-section{display:flex;flex-direction:column;gap:8px}.task-photos-section-label{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-size:12px;font-weight:600;letter-spacing:.01em;text-transform:none;color:#64748b}.task-photos-total{flex-shrink:0;font-weight:700;color:#334155}.task-photos-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-gap:6px;gap:6px}.task-photos-controls{margin-bottom:4px}.task-photo-wrap{content-visibility:auto;contain-intrinsic-size:80px}.task-photo-thumb,.task-photo-wrap{position:relative;width:100%;aspect-ratio:1}.task-photo-thumb{height:100%;padding:0;border:none;border-radius:6px;overflow:hidden;background:#e2e8f0;cursor:zoom-in}.task-photo-thumb img{display:block;width:100%;height:100%;object-fit:cover}.task-photo-download-btn{display:inline-flex;position:absolute;right:4px;bottom:4px;width:28px;height:28px;padding:0;border:none;border-radius:50%;background:rgba(37,99,235,.92);color:#fff;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 1px 6px rgba(15,23,42,.25);z-index:2}.task-photo-download-btn:disabled{opacity:.55;cursor:not-allowed}.task-photo-download-btn:hover:not(:disabled){background:#1d4ed8}.task-photo-download-btn svg{width:16px;height:16px;display:block}@media (hover:hover) and (pointer:fine){.task-photo-wrap:hover .task-photo-thumb img{filter:brightness(.92)}}.task-photo-menu{position:fixed;z-index:1200;min-width:120px;padding:6px;border-radius:10px;background:#fff;border:1px solid var(--border);box-shadow:0 10px 30px rgba(15,23,42,.18)}.task-photo-menu button{display:block;width:100%;padding:10px 12px;border:none;border-radius:8px;background:transparent;text-align:left;font-size:14px;color:#0f172a;cursor:pointer}.task-photo-menu button:hover{background:#f1f5f9}.task-photo-add{display:inline-flex;align-items:center;justify-content:center;background:#f8fafc;border:1px dashed #94a3b8;color:#64748b;font-size:28px;font-weight:300;line-height:1;cursor:pointer}.task-photo-add:hover:not(:disabled){background:#eef2f7;color:#0f172a;border-color:#64748b}.task-photo-add:disabled{opacity:.55;cursor:not-allowed}.task-photo-uploading{font-size:11px;font-weight:600;letter-spacing:-.02em;line-height:1.15;padding:4px;text-align:center;white-space:normal}.task-photo-select-mode.active{background:#e0f2fe;border-color:#38bdf8;border-style:solid;color:#0369a1}.task-photo-wrap-select .task-photo-thumb{outline:2px solid transparent;outline-offset:-2px;cursor:pointer}.task-photo-wrap-selected .task-photo-thumb{outline-color:#16a34a;filter:brightness(.82)}.task-photo-select-badge{position:absolute;right:4px;top:4px;width:22px;height:22px;border-radius:999px;border:2px solid hsla(0,0%,100%,.95);background:rgba(15,23,42,.28);color:#fff;font-size:12px;font-weight:700;line-height:18px;text-align:center;pointer-events:none;box-shadow:0 1px 4px rgba(15,23,42,.2)}.task-photo-select-badge.on{background:#16a34a;border-color:#fff}.task-photos-select-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:4px;font-size:13px;font-weight:600;color:#334155}.task-photos-panel-selecting .task-photos-scroll{padding-bottom:calc(100px + env(safe-area-inset-bottom, 0px))}.task-photos-action-bar{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:40;width:calc(100% - 24px);max-width:420px;transform:translateX(-50%);display:grid;grid-template-columns:repeat(4,1fr);grid-gap:2px;gap:2px;padding:10px 8px;border:1px solid rgba(15,23,42,.12);border-radius:999px;background:rgba(24,24,27,.94);color:#f8fafc;box-shadow:0 8px 28px rgba(15,23,42,.28);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.task-photos-action-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:52px;border:none;border-radius:10px;background:transparent;color:inherit;cursor:pointer;font-size:11px;font-weight:500;letter-spacing:.01em}.task-photos-action-btn:hover:not(:disabled){background:hsla(0,0%,100%,.08)}.task-photos-action-btn:disabled{opacity:.4;cursor:not-allowed}.task-photos-action-btn.danger:hover:not(:disabled){background:rgba(239,68,68,.18);color:#fecaca}.task-photos-action-btn svg{display:block}.task-photos-empty,.task-photos-empty-box{color:#94a3b8;font-size:13px;text-align:center}.task-photos-empty-box{flex:1 1;min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}.photo-lightbox-stage{overflow:hidden;width:100%;touch-action:pan-y}.photo-lightbox-stage.is-zoomed{touch-action:none;overflow:visible}.photo-lightbox-slider{position:relative;width:100%;height:min(90vh,860px);display:flex;align-items:center;justify-content:center;will-change:transform}.photo-lightbox-slider.is-animating{transition:transform .22s cubic-bezier(.22,.61,.36,1)}.photo-lightbox-current,.photo-lightbox-side{display:block;max-width:min(960px,100%);max-height:90vh;border-radius:8px;object-fit:contain;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none;pointer-events:none}.photo-lightbox-current{pointer-events:auto;will-change:transform}.photo-lightbox-side{position:absolute;top:50%;transform:translateY(-50%);opacity:.95}.photo-lightbox-side.prev{right:calc(100% + 24px)}.photo-lightbox-side.next{left:calc(100% + 24px)}.desktop-only-nav,.mobile-only-close{display:inline-flex}@media (max-width:900px){.task-photos-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.desktop-only-nav{display:none!important}}.mobile-pdf-only{padding:24px 16px;text-align:center}.pdf-photos-mobile-only,.view-pdf-mobile-only{display:none!important}@media (max-width:900px){.pdf-photos-mobile-only{display:inline-flex!important}}.task-side-panel{display:flex;flex-direction:column;min-height:0;max-height:calc(100vh - 120px);overflow-y:auto;border-left:1px solid var(--border);background:var(--surface)}.chat-bubble-btn,.task-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:none;border-radius:0;background:transparent;color:#4b5563;cursor:pointer}.chat-bubble-btn svg,.task-icon-btn svg{width:24px;height:24px}.task-icon-btn .edit-task-icon{width:24px;height:24px;object-fit:contain;display:block}.chat-bubble-btn:hover,.task-icon-btn:hover{background:transparent;color:#111827}.task-icon-btn-danger{color:#dc2626}.task-icon-btn-danger:hover{color:#b91c1c}.dollar-mark-btn{color:#4b5563}.dollar-mark-btn svg{width:28px;height:28px}.dollar-mark-btn:disabled{cursor:default;opacity:1}.dollar-mark-btn.is-lit{color:#facc15;filter:drop-shadow(0 0 3px #fff8c5) drop-shadow(0 0 8px #facc15) drop-shadow(0 0 16px rgba(250,204,21,.95))}.dollar-mark-btn.is-lit svg circle{fill:#facc15;fill-opacity:1;stroke:#eab308}.dollar-mark-btn.is-lit svg path{stroke:#713f12}.dollar-mark-btn.is-lit:hover{color:#fde047}.chat-bubble-btn.has-unread{background:transparent;border:none;color:#16a34a}.chat-bubble-btn.has-unread:hover{background:transparent;color:#15803d}.modal-card.private-chat-shell,.private-chat-shell.modal-card{width:min(880px,calc(100vw - 32px));max-width:min(880px,calc(100vw - 32px));height:min(78vh,640px);max-height:min(78vh,640px);padding:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid #cbd5e1;border-radius:12px;box-shadow:0 16px 40px rgba(15,23,42,.12);background:#fff}.private-chat-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:#fff;flex-shrink:0}.private-chat-topbar-main{min-width:0;flex:1 1}.private-chat-task-title{margin:0;font-size:16px;font-weight:650;color:#0f172a;line-height:1.35;word-break:break-word}.private-chat-task-desc{margin:4px 0 0;font-size:13px;font-weight:400;color:#64748b;line-height:1.4;word-break:break-word}.private-chat-close{flex-shrink:0;width:32px;height:32px;margin-top:-2px;border:none;border-radius:8px;background:transparent;color:#64748b;font-size:24px;line-height:1;cursor:pointer}.private-chat-close:hover{background:#f1f5f9;color:#0f172a}.private-chat-layout{flex:1 1;min-height:0;min-width:0;display:grid;grid-template-columns:minmax(0,240px) minmax(0,1fr);overflow:hidden}.private-chat-sidebar{display:flex;flex-direction:column;min-width:0;min-height:0;max-width:100%;overflow:hidden;border-right:1px solid #e2e8f0;background:#f8fafc}.private-contact-list{flex:1 1;min-height:0;overflow-y:auto;padding:8px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.private-contact-item{width:100%;max-width:100%;min-width:0;box-sizing:border-box;display:flex;align-items:center;gap:10px;padding:10px;margin-bottom:2px;border:none;border-radius:10px;background:transparent;text-align:left;cursor:pointer;color:inherit}.private-contact-item:hover{background:#eef2f7}.private-contact-item.active{background:#e0edff;color:#0f172a}.private-contact-item.active .private-contact-preview,.private-contact-item.active .private-contact-time{color:#64748b}.private-contact-item.active .private-unread-dot{background:#2563eb;color:#fff}.private-avatar{flex-shrink:0;width:36px;height:36px;border-radius:4px;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:650;background:#94a3b8;color:#fff;overflow:hidden}.private-avatar img{width:100%;height:100%;object-fit:cover;display:block}.private-avatar.sm{width:28px;height:28px;font-size:10px}.private-contact-main{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.private-contact-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.private-contact-name{font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.private-contact-time{flex-shrink:0;font-size:11px;color:#94a3b8}.private-contact-preview{font-size:12px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:1.2em}.private-unread-dot{flex-shrink:0;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.private-chat-pane{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden;background:#fff}.private-chat-empty-pane{flex:1 1;display:flex;align-items:center;justify-content:center;color:#94a3b8;font-size:14px;background:#f8fafc}.private-chat-pane-header{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;grid-gap:8px;gap:8px;padding:10px 14px;border-bottom:1px solid #e2e8f0;background:#fff}.private-chat-pane-side{display:block;width:40px;height:40px}.private-chat-pane-name{margin:0;text-align:center;font-size:14px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.private-chat-pane-title{display:flex;align-items:center;gap:10px;min-width:0}.private-chat-pane-title strong{font-size:14px;font-weight:600;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.private-mark-unread-btn{display:inline-flex;align-items:center;justify-content:center;justify-self:end;width:32px;height:32px;padding:0;border:none;border-radius:8px;background:transparent;color:#64748b;cursor:pointer}.private-mark-unread-btn:hover{background:#f1f5f9;color:#334155}.private-mark-unread-btn svg{display:block}.private-chat-messages{flex:1 1;min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:#f1f5f9;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}.private-message-row{display:flex;align-items:flex-start;gap:8px;max-width:100%;-webkit-tap-highlight-color:transparent}.private-message-row.mine{justify-content:flex-end}.private-message-row.theirs{justify-content:flex-start}.private-bubble-wrap{max-width:min(72%,420px);display:flex;flex-direction:column;gap:4px}.private-message-row.mine .private-bubble-wrap{align-items:flex-end}.private-message-row.theirs .private-bubble-wrap{align-items:flex-start}.private-message-time{font-size:11px;color:#94a3b8;padding:0 4px 2px;align-self:flex-end;flex-shrink:0;white-space:nowrap;line-height:1.2}.private-bubble{padding:9px 12px;border-radius:14px;font-size:14px;line-height:1.45;word-break:break-word;-webkit-user-select:text;-moz-user-select:text;user-select:text}.private-bubble.mine{background:#2563eb;color:#fff;border-bottom-right-radius:4px}.private-bubble.media-only{padding:0;background:transparent!important;border:none!important;box-shadow:none;min-width:0;width:-moz-fit-content;width:fit-content;max-width:100%}.private-bubble.theirs{background:#fff;color:#0f172a;border:1px solid #e2e8f0;border-bottom-left-radius:4px}.private-bubble.theirs.media-only{border:none!important;background:transparent!important}.private-message-content{-webkit-user-select:text;-moz-user-select:text;user-select:text}.private-bubble-images{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:0}.private-bubble-image-wrap{position:relative;display:inline-block;max-width:180px;border-radius:8px;overflow:hidden}.private-bubble-image-btn{display:block;padding:0;border:2px solid transparent;border-radius:8px;background:transparent;cursor:zoom-in;line-height:0;overflow:hidden}.private-bubble-image-btn img{display:block;max-width:180px;max-height:180px;border-radius:6px;object-fit:cover}.private-image-download-btn{display:none}@media (hover:hover) and (pointer:fine){.private-bubble-image-wrap:hover .private-bubble-image-btn{border-color:#2563eb}.private-bubble-image-wrap:hover .private-bubble-image-btn img{filter:brightness(.92)}.private-image-download-btn{display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;padding:0;border:none;border-radius:50%;background:rgba(37,99,235,.92);color:#fff;cursor:pointer;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(15,23,42,.25);z-index:2}.private-bubble-image-wrap:hover .private-image-download-btn{display:inline-flex}.private-image-download-btn:hover{background:#1d4ed8}}.private-chat-compose{border-top:1px solid #e2e8f0;background:#fff;padding:10px 12px 12px}.private-compose-toolbar{display:flex;gap:6px;margin-bottom:6px}.private-compose-box{display:flex;align-items:center;gap:6px;padding:6px 10px 6px 6px;border:1px solid #cbd5e1;border-radius:12px;background:#f8fafc}.private-compose-box:focus-within{border-color:#93c5fd;background:#fff;box-shadow:0 0 0 3px rgba(37,99,235,.1)}.private-tool-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;border:none;border-radius:8px;background:transparent;color:#64748b;cursor:pointer}.private-tool-btn:hover{background:#e2e8f0;color:#0f172a}.private-chat-compose textarea,.private-compose-box textarea{flex:1 1;min-width:0;min-height:34px;max-height:120px;resize:none;border:none;background:transparent;padding:6px 2px;font-size:14px;line-height:22px;outline:none;margin:0;color:#0f172a}.private-compose-actions{display:flex;justify-content:flex-end}.private-compose-actions .btn{min-width:88px}.private-pending-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.private-pending-thumb{position:relative;width:56px;height:56px}.private-pending-thumb img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid #cbd5e1}.private-pending-remove{position:absolute;top:-6px;right:-6px;width:18px;height:18px;border:none;border-radius:50%;background:#334155;color:#fff;font-size:12px;line-height:1;cursor:pointer}.private-quote-block{border-left:3px solid rgba(0,0,0,.2);padding:4px 0 6px 8px;margin-bottom:6px;opacity:.95}.private-bubble.mine .private-quote-block{border-left-color:hsla(0,0%,100%,.65)}.private-quote-from{font-size:12px;font-weight:700;margin-bottom:2px}.private-quote-text{font-size:12px;line-height:1.35;white-space:pre-wrap;word-break:break-word}.private-quote-thumb{display:block;max-width:96px;max-height:72px;border-radius:6px;margin:4px 0;object-fit:cover}.private-compose-quote{display:flex;align-items:flex-start;gap:8px;margin-bottom:8px;padding:8px 10px;border-radius:8px;background:#f1f5f9;border-left:3px solid #2563eb}.private-compose-quote-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}.private-compose-quote-body strong{color:#1e40af}.private-compose-quote-clear{border:none;background:transparent;font-size:18px;line-height:1;cursor:pointer;color:#64748b}.private-msg-menu{position:fixed;z-index:1300;min-width:160px;background:#fff;border:1px solid #cbd5e1;border-radius:10px;box-shadow:0 12px 32px rgba(15,23,42,.14);padding:6px;display:flex;flex-direction:column;-webkit-tap-highlight-color:transparent}.private-msg-menu,.private-msg-menu button{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-touch-callout:none}.private-msg-menu button{border:none;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;font-size:14px;cursor:pointer;color:#111827}.private-msg-menu button:hover{background:#eff6ff;color:#1d4ed8}.private-forward-backdrop{position:fixed;inset:0;z-index:1400;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:16px}.private-forward-card{width:min(360px,100%);max-height:min(70vh,520px);background:#fff;border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:10px}.private-forward-card h4{margin:0;font-size:16px}.private-forward-list{overflow-y:auto;display:flex;flex-direction:column;gap:4px}.private-forward-item{display:flex;align-items:center;gap:10px;border:none;background:#f8fafc;border-radius:8px;padding:10px;text-align:left;cursor:pointer;font-size:14px}.private-forward-item:hover{background:#e0f2fe}.paint-editor-backdrop{position:fixed;inset:0;z-index:1500;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:12px}.paint-editor{width:min(760px,100%);max-height:92vh;background:#fff;border-radius:12px;display:flex;flex-direction:column;overflow:hidden}.paint-editor-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid #e5e7eb}.paint-editor-label{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:#475569}.paint-editor-actions{margin-left:auto;display:flex;gap:8px}.paint-editor-canvas-wrap{overflow:auto;padding:12px;background:#0f172a;touch-action:none}.paint-editor-canvas{display:block;max-width:100%;height:auto;margin:0 auto;background:#fff;cursor:crosshair;touch-action:none}.private-empty{color:#94a3b8;font-size:13px;margin:auto 0;text-align:center;padding:24px 12px}.private-back-btn{flex-shrink:0;justify-self:start;width:28px;height:28px;border:none;border-radius:8px;background:transparent;color:#334155;font-size:26px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.private-back-btn:hover{background:#f1f5f9}@media (max-width:760px){.modal-backdrop{padding:8px;overscroll-behavior:none}.modal-backdrop.private-chat-modal{padding:0;align-items:stretch;justify-content:flex-start}.modal-card.private-chat-shell,.private-chat-shell.modal-card{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;height:100vh;max-height:100vh;border-radius:0;border:none;box-shadow:none}@supports (height:100dvh){.modal-card.private-chat-shell,.private-chat-shell.modal-card{height:100dvh;max-height:100dvh}}.private-chat-layout{grid-template-columns:1fr}.private-chat-layout.show-list .private-chat-sidebar{display:flex;max-height:none;height:100%;border-right:none;border-bottom:none}.private-chat-layout.show-chat .private-chat-sidebar,.private-chat-layout.show-list .private-chat-pane{display:none}.private-chat-layout.show-chat .private-chat-pane{display:flex;height:100%}.private-chat-layout.show-both .private-chat-pane,.private-chat-layout.show-both .private-chat-sidebar{display:flex}.private-chat-task-title{font-size:18px}.private-chat-task-desc{font-size:14px}.private-chat-close{width:40px;height:40px;font-size:28px}.private-contact-list{padding:6px 8px}.private-contact-item{gap:12px;padding:12px;margin-bottom:0;border-radius:0}.private-avatar{width:48px;height:48px;border-radius:6px;font-size:16px}.private-avatar.sm{width:40px;height:40px;font-size:14px}.private-contact-name{font-size:17px}.private-contact-time{font-size:12px}.private-contact-preview{font-size:14px;margin-top:2px}.private-unread-dot{min-width:20px;height:20px;font-size:12px}.private-chat-pane-header{grid-template-columns:40px 1fr 40px;padding:12px 14px}.private-chat-pane-name{font-size:17px}.private-chat-pane-title{gap:12px}.private-chat-pane-title strong{font-size:17px}.private-mark-unread-btn{width:40px;height:40px}.private-mark-unread-btn svg{width:22px;height:22px}.private-back-btn{width:36px;height:36px;font-size:30px}.private-chat-messages{padding:14px 12px;gap:14px}.private-message-row{gap:10px}.private-bubble-wrap{max-width:min(78%,320px)}.private-message-row:has(.private-bubble.media-only) .private-bubble-wrap{max-width:calc(100% - 58px);flex:1 1 auto;min-width:0}.private-message-row.mine:has(.private-bubble.media-only){flex-wrap:wrap}.private-message-row.mine:has(.private-bubble.media-only) .private-message-time{order:3;width:100%;text-align:right;padding-right:58px}.private-message-row.mine:has(.private-bubble.media-only) .private-bubble-wrap{order:1}.private-message-row.mine:has(.private-bubble.media-only) .private-avatar{order:2}.private-message-row.theirs:has(.private-bubble.media-only){flex-wrap:wrap}.private-message-row.theirs:has(.private-bubble.media-only) .private-message-time{order:3;width:100%;text-align:left;padding-left:58px}.private-bubble{padding:10px 14px;border-radius:10px;font-size:16px;line-height:1.45}.private-message-time{font-size:12px}.private-chat-compose{padding:10px 12px calc(12px + env(safe-area-inset-bottom, 0px))}.private-compose-box{padding:6px 10px 6px 6px;border-radius:10px}.private-tool-btn{width:40px;height:40px}.private-tool-btn svg{width:22px;height:22px}.private-chat-compose textarea,.private-compose-box textarea{min-height:40px;font-size:16px;line-height:24px;padding:8px 2px}}.private-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#ede9fe;color:#6d28d9;vertical-align:middle;margin-left:8px}.doc-item.has-private{border-color:#c4b5fd;box-shadow:0 0 0 1px #ede9fe}.private-message-list{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.private-message{border-radius:8px;padding:8px 10px;font-size:13px}.private-message.mine{background:#eff6ff;margin-left:12px}.private-message.theirs{background:#fff;border:1px solid var(--border);margin-right:12px}.private-message-meta{font-size:11px;color:var(--text-muted);margin-bottom:2px}.private-message-content{white-space:pre-wrap;word-break:break-word}.private-reply-row{display:flex;flex-direction:column;gap:6px}.private-compose select,.private-compose textarea,.private-reply-row textarea{width:100%}.private-compose{border-top:1px solid var(--border);padding:12px 14px 16px}.private-to-label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--text-muted)}.private-compose select{margin-bottom:8px;padding:8px 10px;border:1px solid var(--border);border-radius:8px;background:#fff}.task-pdf-panel{background:#525659;min-height:0}.task-pdf-frame{width:100%;height:calc(100vh - 120px);border:none;display:block}.comment-board{border-radius:0;border-top:none;border-right:none;border-bottom:none;display:flex;flex-direction:column;max-height:calc(100vh - 120px);overflow:hidden;padding:0}.comment-board-header{padding:16px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}.comment-board-header h3{font-size:15px}.comment-count{font-size:13px;color:var(--text-muted)}.comment-list{list-style:none;flex:1 1;overflow-y:auto;padding:12px 18px}.comment-item{padding:12px 0;border-bottom:1px solid var(--border)}.comment-item:last-child{border-bottom:none}.comment-meta{display:flex;justify-content:space-between;gap:8px;font-size:13px;margin-bottom:6px}.comment-meta span{color:var(--text-muted);flex-shrink:0}.comment-body{font-size:14px;white-space:pre-wrap;word-break:break-word}.mention-tag{color:var(--primary);font-weight:500;background:#eff6ff;padding:1px 4px;border-radius:4px}.comment-empty,.comment-loading{padding:24px 18px;color:var(--text-muted);font-size:14px}.comment-form{padding:14px 18px;border-top:1px solid var(--border)}.mention-textarea-wrap{position:relative;margin-bottom:10px}.mention-textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;resize:vertical;min-height:80px}.mention-hint{font-size:12px;color:var(--text-muted);margin-top:4px}.mention-suggestions{position:absolute;left:0;right:0;bottom:100%;margin-bottom:4px;background:var(--surface);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow);list-style:none;max-height:160px;overflow-y:auto;z-index:10}.mention-suggestions button{width:100%;text-align:left;padding:10px 12px;border:none;background:transparent;cursor:pointer}.mention-suggestions button:hover{background:#f8fafc}.notification-btn,.notification-wrap{position:relative}.notification-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:600}.notification-panel{position:absolute;right:0;top:calc(100% + 8px);width:320px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 10px 40px rgba(0,0,0,.12);z-index:100}.notification-panel-header{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;border-bottom:1px solid var(--border);font-size:14px}.link-btn{border:none;background:none;color:var(--primary);cursor:pointer;font-size:13px}.notification-list{list-style:none;max-height:320px;overflow-y:auto}.notification-list li{border-bottom:1px solid var(--border)}.notification-list li a{display:block;padding:12px 14px;color:var(--text);font-size:13px}.notification-list li.unread a{background:#eff6ff}.notification-time{display:block;padding:0 14px 10px;font-size:12px;color:var(--text-muted)}.notification-empty{padding:20px 14px;color:var(--text-muted);font-size:13px}.task-toolbar{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.search-input{width:100%;padding:12px 14px;border:1px solid #94a3b8;border-radius:8px;font-size:15px;background:#e2e8f0;color:var(--text)}.search-input-wrap{position:relative;width:100%}.search-clear-btn{display:none}.search-input::placeholder{color:#64748b}.search-input:focus{outline:none;background:#f1f5f9;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}@media (max-width:900px){.search-input{padding-right:40px}.search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.search-clear-btn{display:inline-flex;align-items:center;justify-content:center;position:absolute;right:10px;top:50%;transform:translateY(-50%);width:26px;height:26px;padding:0;border:none;border-radius:999px;background:#94a3b8;color:#fff;font-size:18px;line-height:1;cursor:pointer}}.status-filters-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.status-filters{display:inline-flex;align-items:center;gap:2px;padding:3px;flex-wrap:nowrap;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;background:#e8edf3;border-radius:10px;scrollbar-width:none}.status-filters::-webkit-scrollbar{display:none}.filter-btn{flex:0 0 auto;padding:7px 12px;border:none;border-radius:8px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:14px;font-weight:500;line-height:1.25;white-space:nowrap;transition:background-color .15s ease,color .15s ease,box-shadow .15s ease}.filter-btn:hover:not(.active){color:var(--text)}.filter-btn.active{background:#fff;color:var(--text);font-weight:600;box-shadow:0 1px 2px rgba(15,23,42,.08),0 0 0 1px rgba(15,23,42,.04)}.archive-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.archive-pages{display:flex;gap:8px;flex-wrap:wrap;flex:1 1 auto;min-width:0}.archive-year-select{flex:0 0 auto;min-width:5.5rem;padding:7px 32px 7px 12px;border:1px solid #cbd5e1;border-radius:999px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23475569' d='M3 4.5 6 7.5 9 4.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;color:#475569;font-size:.85rem;font-weight:600;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none}.archive-year-select:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.15)}.archive-page-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#475569;font-size:.85rem;font-weight:600;cursor:pointer}.archive-page-btn.active{background:#1e3a8a;border-color:#1e3a8a;color:#fff}.archive-page-count{min-width:1.25rem;padding:0 5px;border-radius:999px;font-size:.72rem;font-weight:700;background:rgba(148,163,184,.25);text-align:center}.archive-page-btn.active .archive-page-count{background:hsla(0,0%,100%,.22)}.task-list-count{flex-shrink:0;font-size:13px;font-weight:700;color:#334155;white-space:nowrap}.task-list-more{display:flex;justify-content:center;padding:8px 0 20px}.archived-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#fef3c7;color:#92400e;vertical-align:middle}.doc-item.archived{opacity:.92;background:#fafafa}.doc-item.has-new-pdf,.doc-item.has-new-pdf.has-new-task{background:#bbf7d0;border-color:#4ade80}.doc-item.has-new-pdf.archived{background:#bbf7d0}.doc-item.needs-pdf{background:#fecaca;border-color:#f87171}.doc-item.needs-pdf.archived{background:#fecaca}.doc-item.needs-pdf .pending-pdf-badge{background:#fca5a5;color:#991b1b}.doc-item.has-new-photos,.doc-item.has-new-photos.has-new-pdf,.doc-item.has-new-photos.has-new-pdf.has-new-task,.doc-item.has-new-photos.has-new-task,.doc-item.needs-pdf.has-new-photos{background:#fef9c3;border-color:#facc15}.doc-item.has-new-photos.archived,.doc-item.needs-pdf.has-new-photos.archived{background:#fef9c3}.doc-item.has-new-task{background:#bfdbfe;border-color:#60a5fa}.doc-item.has-new-task.archived{background:#bfdbfe}.doc-item.has-new-messages{border-color:#fca5a5;box-shadow:0 0 0 1px #fee2e2}.new-msg-badge{background:#fee2e2;color:#b91c1c}.new-msg-badge,.new-pdf-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;vertical-align:middle}.new-pdf-badge{background:#86efac;color:#14532d}.pending-pdf-badge{background:#fee2e2;color:#991b1b}.new-task-badge,.pending-pdf-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;vertical-align:middle}.new-task-badge{background:#93c5fd;color:#1e3a8a}.new-photo-badge{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:600;background:#fde047;color:#854d0e;vertical-align:middle}.action-list .action-item{padding:12px 0;border-bottom:1px solid var(--border)}.action-list .action-item:last-child{border-bottom:none}.action-check{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.action-check input{margin-top:3px;width:16px;height:16px;flex-shrink:0}.action-content{font-size:14px;white-space:pre-wrap;word-break:break-word;line-height:1.45}.action-item.completed .action-content{color:var(--text-muted);text-decoration:line-through}.action-meta{display:flex;flex-direction:column;gap:2px;margin-top:6px;margin-left:26px;font-size:12px;color:var(--text-muted)}.action-item.open{background:transparent}.action-compose-row{display:flex;gap:8px;align-items:flex-end;margin-bottom:10px}.action-compose-input{flex:1 1;margin:0}.action-photo-btn{flex-shrink:0;width:44px;height:44px;border:none;border-radius:10px;background:#e8f8ef;color:#07c160;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.action-photo-btn:hover:not(:disabled){background:#d4f3e2}.action-photo-btn:disabled{opacity:.5;cursor:not-allowed}.action-pending-thumbs,.action-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.action-pending-thumb,.action-thumb{position:relative;width:64px;height:64px;border-radius:6px;overflow:hidden;border:1px solid var(--border);padding:0;background:#f8fafc;cursor:pointer}.action-pending-thumb img,.action-thumb img{width:100%;height:100%;object-fit:cover;display:block}.action-pending-remove{position:absolute;top:2px;right:2px;width:20px;height:20px;border:none;border-radius:999px;background:rgba(15,23,42,.7);color:#fff;font-size:14px;line-height:1;cursor:pointer}.action-lightbox{position:fixed;inset:0;background:rgba(15,23,42,.88);display:flex;align-items:center;justify-content:center;z-index:2000;padding:24px;cursor:zoom-out}.action-lightbox-inner{width:min(880px,calc(100vw - 32px));cursor:default}.action-lightbox-inner,.action-lightbox-stage{position:relative;max-height:90vh;display:flex;align-items:center;justify-content:center}.action-lightbox-stage{max-width:100%;touch-action:pan-y}.action-lightbox img{display:block;max-width:min(960px,100%);max-height:90vh;border-radius:8px;object-fit:contain;box-shadow:0 8px 32px rgba(0,0,0,.35)}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;padding:0;border:none;border-radius:50%;background:hsla(0,0%,100%,.92);color:#0f172a;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 2px 12px rgba(0,0,0,.2);z-index:1}.lightbox-nav svg{display:block;flex-shrink:0}.lightbox-nav:hover:not(:disabled){background:#fff}.lightbox-nav:disabled{opacity:.35;cursor:not-allowed}.lightbox-nav-prev{left:8px}.lightbox-nav-next{right:8px}.lightbox-close-btn{position:absolute;top:8px;right:8px;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:rgba(15,23,42,.72);color:#fff;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0;z-index:2}.lightbox-close-btn svg{display:block;flex-shrink:0}.lightbox-close-btn:hover{background:rgba(15,23,42,.9)}.lightbox-rotate-btn{position:absolute;top:8px;left:8px;width:36px;height:36px;padding:0;border:none;border-radius:50%;background:hsla(0,0%,100%,.92);color:#0f172a;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;line-height:0;box-shadow:0 2px 12px rgba(0,0,0,.2);z-index:2}.lightbox-rotate-btn svg{display:block;flex-shrink:0}.lightbox-rotate-btn:hover{background:#fff}.lightbox-counter{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);padding:4px 10px;border-radius:999px;background:rgba(15,23,42,.65);color:#fff;font-size:12px;font-weight:600;pointer-events:none}@media (max-width:760px){.action-lightbox{padding:12px}.action-lightbox-inner{width:100%}.lightbox-nav{display:none}.private-bubble-images{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:3px;gap:3px;width:100%;max-width:none}.private-bubble.media-only{width:100%}.private-bubble-image-wrap{position:relative;display:block;width:100%;max-width:none;aspect-ratio:1/1;height:auto;min-height:0;border-radius:4px;overflow:hidden;background:#e2e8f0}.private-bubble-images:has(>.private-bubble-image-wrap:nth-child(2):last-child){grid-template-columns:repeat(2,1fr)}.private-bubble-image-wrap:only-child{width:min(100%,72vw);max-width:280px;aspect-ratio:auto;max-height:320px}.private-bubble-image-btn{position:absolute;inset:0;width:100%;height:100%;padding:0;border:none;border-radius:4px;overflow:hidden;background:transparent}.private-bubble-image-wrap:only-child .private-bubble-image-btn{position:relative;inset:auto}.private-bubble-image-btn img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;border-radius:4px}.private-bubble-image-wrap:only-child .private-bubble-image-btn img{width:100%;height:auto;max-height:320px;object-fit:cover}.private-image-download-btn{display:none!important}}.task-upload-bar{display:none}.modal-backdrop{position:fixed;inset:0;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:24px;z-index:2000;overscroll-behavior:none}.modal-card{width:min(420px,100%);background:var(--surface);border-radius:var(--radius);padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.25)}.modal-card h3{font-size:18px;margin-bottom:16px}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.print-page{min-height:100vh;display:flex;flex-direction:column;background:#525659}.print-page-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:12px 16px;background:#fff;border-bottom:1px solid var(--border)}.print-page-toolbar p{margin:0;flex:1 1;font-size:14px;color:var(--text-muted)}.print-page-frame{flex:1 1;width:100%;min-height:calc(100vh - 70px);border:none;background:#525659}.pdf-viewer-page{min-height:100vh;display:flex;flex-direction:column;background:#525659}.pdf-viewer-toolbar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-start;padding:12px 16px;background:#fff;border-bottom:1px solid var(--border)}.pdf-viewer-fab{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom, 0px));z-index:40;width:auto;max-width:calc(100% - 24px);transform:translateX(-50%);padding:8px 12px;border-radius:999px;background:hsla(0,0%,100%,.96);box-shadow:0 8px 28px rgba(15,23,42,.22);border:1px solid rgba(15,23,42,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.pdf-viewer-toolbar-icons{display:flex;flex-wrap:nowrap;align-items:center;justify-content:center;gap:6px;width:auto}.pdf-viewer-toolbar-icons .chat-bubble-btn,.pdf-viewer-toolbar-icons .task-icon-btn{flex:0 0 44px}.pdf-viewer-toolbar-icons .task-icon-btn:disabled{opacity:.45;cursor:not-allowed}.pdf-viewer-toolbar-left,.pdf-viewer-toolbar-right{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.pdf-viewer-hint{margin:0;padding:10px 16px;background:#eff6ff;color:#1e40af;font-size:13px;border-bottom:1px solid #bfdbfe}.pdf-viewer-frame{flex:1 1;width:100%;min-height:calc(100vh - 70px);border:none;background:#525659}.pdf-print-source{position:fixed;left:-10000px;top:0;width:1px;height:1px;opacity:0;border:0;pointer-events:none}.pdf-js-viewer{flex:1 1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:12px 12px calc(88px + env(safe-area-inset-bottom, 0px));background:#525659}.pdf-js-status{margin:0 0 10px;text-align:center;color:#e5e7eb;font-size:13px}.pdf-js-pages{display:flex;flex-direction:column;align-items:center;gap:12px;padding-bottom:24px}.pdf-page-canvas{display:block;width:100%;max-width:920px;height:auto;background:#fff;box-shadow:0 2px 10px rgba(0,0,0,.3)}@media (max-width:640px){.pdf-viewer-fab{bottom:calc(10px + env(safe-area-inset-bottom, 0px));padding:6px 10px}.pdf-viewer-toolbar-icons{justify-content:center;gap:4px}.pdf-viewer-toolbar-icons .chat-bubble-btn,.pdf-viewer-toolbar-icons .task-icon-btn{flex:0 0 44px}}@media print{@page{size:auto;margin:0}.action-board,.comment-board,.header,.no-print,.pdf-viewer-toolbar,.task-detail-toolbar{display:none!important}.pdf-js-viewer,.pdf-viewer-page{background:#fff!important;overflow:visible!important;height:auto!important;min-height:0!important;padding:0!important}.pdf-js-pages{gap:0;padding:0;align-items:stretch}.pdf-page-canvas{width:100%!important;max-width:100%!important;height:auto!important;box-shadow:none;page-break-after:always;break-after:page;page-break-inside:avoid;break-inside:avoid}.pdf-page-canvas:last-child{page-break-after:auto;break-after:auto}.pdf-viewer-frame,.print-page,.print-page-frame{min-height:100vh;height:100vh;background:#fff}}.agreement-backdrop{position:fixed;inset:0;z-index:90;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:12px}.agreement-modal{width:min(920px,100%);max-height:92vh;display:flex;flex-direction:column;background:#fff;border-radius:16px;box-shadow:0 20px 50px rgba(15,23,42,.28);overflow:hidden}.agreement-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border);background:#f8fafc}.agreement-toolbar h2{margin:0;font-size:18px}.agreement-toolbar-actions{display:flex;gap:8px}.agreement-scroll{overflow:auto;padding:20px 24px 28px;background:#f1f5f9}.agreement-doc{max-width:820px;margin:0 auto;background:#fff;border:1px solid #dbe3ee;border-radius:10px;padding:28px 32px 36px;color:#0f172a;font-size:13px;line-height:1.55}.agreement-brand{text-align:center;border-bottom:2px solid #0f172a;padding-bottom:14px;margin-bottom:22px}.agreement-brand h1{margin:0 0 8px;font-size:22px;letter-spacing:.02em}.agreement-brand p{margin:4px 0;color:#334155}.agreement-section+.agreement-section{margin-top:28px;padding-top:24px;border-top:1px solid #e2e8f0}.agreement-section h2{margin:0 0 16px;font-size:17px;text-transform:uppercase;letter-spacing:.04em}.agreement-section h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;color:#475569}.agreement-field-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:10px 12px;gap:10px 12px;margin-bottom:10px}.agreement-field{display:flex;flex-direction:column;gap:4px;min-width:0}.agreement-field.wide{grid-column:span 2}.agreement-field span:first-child{font-size:11px;font-weight:700;letter-spacing:.04em;color:#475569}.agreement-line{display:block;min-height:28px;border-bottom:1px solid #94a3b8}.agreement-line.short{display:inline-block;min-width:120px;min-height:18px;vertical-align:bottom}.agreement-paragraphs p,.agreement-terms p{margin:0 0 10px}.agreement-inline-sign{display:inline-flex;align-items:flex-end;gap:8px;margin-left:12px;white-space:nowrap}.agreement-check-row{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;margin:14px 0}.agreement-check{display:inline-flex;align-items:center;gap:8px;font-weight:600}.agreement-checkbox{width:14px;height:14px;border:1.5px solid #334155;border-radius:2px;flex-shrink:0}.agreement-dual-sign{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-top:18px}.agreement-sign-grid{display:grid;grid-template-columns:1.2fr .8fr;grid-gap:10px;gap:10px;border:1px solid #cbd5e1;border-radius:8px;padding:12px;background:#f8fafc}.agreement-sign-col{display:flex;flex-direction:column;gap:10px}.agreement-sign-box{min-height:58px;border:1px dashed #94a3b8;border-radius:6px;padding:8px 10px;background:#fff}.agreement-sign-box.compact{min-height:42px}.agreement-sign-caption{display:block;font-size:10px;font-weight:700;letter-spacing:.05em;color:#64748b}.agreement-sign-sub{display:block;margin-top:4px;font-size:11px;color:#475569}.agreement-km-col{display:flex;flex-direction:column;gap:10px}.agreement-km-box{display:flex;flex-direction:column;gap:4px;font-size:11px;font-weight:700;color:#64748b}.agreement-gas{border:1px solid #cbd5e1;border-radius:6px;padding:8px;background:#fff}.agreement-gas-title{margin-bottom:6px}.agreement-gas-label,.agreement-gas-title{font-size:10px;font-weight:700;color:#64748b}.agreement-gas-label{margin-bottom:4px}.agreement-gas-levels{display:flex;flex-wrap:wrap;gap:4px}.agreement-gas-level{min-width:28px;padding:2px 4px;border:1px solid #cbd5e1;border-radius:4px;text-align:center;font-size:10px;font-weight:600}.agreement-party-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:16px;gap:16px;margin-bottom:16px}.agreement-party-note{margin:6px 0 0;font-size:11px;color:#64748b}.agreement-car-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.agreement-car-tag{padding:6px 10px;border:1px solid #cbd5e1;border-radius:6px;background:#f8fafc;font-weight:700;letter-spacing:.04em}.agreement-tsv-title{text-align:center}.agreement-tsv-parties{display:flex;flex-direction:column;gap:14px;margin:8px 0 16px}.agreement-tsv-party-row{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);grid-gap:16px;gap:16px;align-items:start}.agreement-tsv-label{font-weight:700;margin-bottom:6px}.agreement-tsv-courtesy-title{font-weight:700;font-size:12px;letter-spacing:.02em;margin-bottom:4px}.agreement-tsv-plates{font-size:13px;line-height:1.45;word-break:break-word}.agreement-tsv-party-right{text-align:center;font-size:13px;line-height:1.45;padding-top:2px}.agreement-terms ol{margin:0;padding-left:20px}.agreement-terms li{margin-bottom:8px}@media (max-width:760px){.agreement-scroll{padding:12px}.agreement-doc{padding:18px 16px 24px}.agreement-dual-sign,.agreement-field-row,.agreement-party-grid,.agreement-tsv-party-row{grid-template-columns:1fr}.agreement-tsv-party-right{text-align:left}.agreement-field.wide{grid-column:auto}.agreement-sign-grid{grid-template-columns:1fr}}@media print{body:has(.agreement-modal) *{visibility:hidden}body:has(.agreement-modal) .agreement-modal,body:has(.agreement-modal) .agreement-modal *{visibility:visible}body:has(.agreement-modal) .agreement-backdrop{position:static;background:transparent;padding:0}body:has(.agreement-modal) .agreement-modal{width:100%;max-height:none;box-shadow:none;border-radius:0}body:has(.agreement-modal) .agreement-toolbar{display:none}body:has(.agreement-modal) .agreement-scroll{overflow:visible;padding:0;background:#fff}body:has(.agreement-modal) .agreement-doc{border:none;border-radius:0;max-width:none;padding:0}}.cc-backdrop{position:fixed;inset:0;z-index:80;background:rgba(15,23,42,.45);display:flex;align-items:stretch;justify-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.cc-modal{width:min(720px,100%);max-height:100%;background:#f8fafc;display:flex;flex-direction:column;box-shadow:0 8px 40px rgba(0,0,0,.2)}.cc-toolbar{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;grid-gap:8px;gap:8px;padding:12px 14px;background:#fff;border-bottom:1px solid #e2e8f0}.cc-toolbar-side{display:flex;align-items:center;min-height:32px}.cc-toolbar-side-end{justify-content:flex-end}.cc-toolbar-side-spacer{display:block;width:32px;height:32px}.cc-toolbar-icon-btn{flex-shrink:0;width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:8px;background:transparent;color:#64748b;cursor:pointer;padding:0}.cc-toolbar-icon-btn:hover{background:#f1f5f9;color:#0f172a}.cc-toolbar-title{min-width:0;text-align:center}.cc-toolbar-title-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cc-toolbar h2{margin:0;font-size:1.1rem}.cc-toolbar h2,.cc-toolbar-sub{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-toolbar-sub{margin:2px 0 0;font-size:.85rem;color:#64748b}.cc-toolbar-actions{display:flex;gap:8px;flex-shrink:0}.cc-scroll{overflow:auto;-webkit-overflow-scrolling:touch;padding:14px;flex:1 1}.cc-error{background:#fef2f2;color:#991b1b}.cc-error,.cc-ok{margin:0 14px;padding:10px 12px;border-radius:8px;font-size:.9rem}.cc-ok{background:#ecfdf5;color:#047857}.cc-help{color:#64748b;font-size:.9rem;margin:12px 0}.cc-folder .btn-primary{width:100%;margin-bottom:12px}.cc-folder-actions{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-bottom:12px}.cc-folder-actions .btn{width:100%;margin:0}.cc-labor-totals-actions{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.cc-labor-totals-panel{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:12px;margin-bottom:12px}.cc-labor-totals-panel h3{margin:0 0 10px;font-size:.95rem;font-weight:650;color:#0f172a}.cc-labor-totals-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}.cc-labor-totals-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,1.1fr);grid-gap:14px;gap:14px;align-items:start}@media (max-width:720px){.cc-labor-totals-layout{grid-template-columns:1fr}}.cc-labor-totals-table{width:100%;border-collapse:collapse;font-size:.8rem;min-width:520px}.cc-labor-totals-table-compact{min-width:0;max-width:none;width:100%}.cc-labor-totals-table td,.cc-labor-totals-table th{padding:8px 10px;text-align:left;border-bottom:1px solid #e2e8f0;white-space:nowrap}.cc-labor-totals-table th{background:#e8edf2;color:#334155;font-weight:650}.cc-labor-totals-table td:nth-child(n+2){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.cc-labor-totals-table th:nth-child(n+2){text-align:right}.cc-labor-totals-table tr.is-total td{font-weight:700;background:#f8fafc}.cc-estimate-parts-panel{margin-top:0}.parts-list-modal{max-width:min(960px,calc(100vw - 24px));max-height:min(100dvh,100%);overflow:hidden}.parts-list-toolbar-actions{display:inline-flex;align-items:center;gap:4px}.parts-list-toolbar .cc-toolbar-side-end{min-width:72px}.parts-list-print-btn{width:32px;height:32px;color:#64748b}.parts-list-print-btn:hover:not(:disabled){color:#0f172a}.parts-list-print-btn:disabled{opacity:.4;cursor:not-allowed}.parts-list-body{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:12px 16px calc(16px + env(safe-area-inset-bottom, 0px))}.parts-list-body .cc-labor-totals-wrap{overflow-x:visible}.cc-estimate-parts-table .print-only,.parts-list-check-print,.parts-list-print-header{display:none}body.parts-list-printing .cc-estimate-parts-table .print-only,body.parts-list-printing .parts-list-check-print{display:inline}.cc-estimate-parts-table,.cc-estimate-parts-table.cc-labor-totals-table{table-layout:fixed;width:100%;min-width:0}.cc-estimate-parts-table td,.cc-estimate-parts-table th{white-space:normal;vertical-align:top;overflow-wrap:anywhere;word-break:break-word}.cc-estimate-parts-table .parts-list-check-col{width:36px}.cc-estimate-parts-table td:nth-child(2),.cc-estimate-parts-table th:nth-child(2){width:40px}.cc-estimate-parts-table td:nth-child(3),.cc-estimate-parts-table th:nth-child(3){width:32%}.cc-estimate-parts-table td:nth-child(4),.cc-estimate-parts-table th:nth-child(4){width:22%}.cc-estimate-parts-table td:nth-child(5),.cc-estimate-parts-table th:nth-child(5){width:10%}.cc-estimate-parts-table td:nth-child(6),.cc-estimate-parts-table th:nth-child(6){width:8%}.cc-estimate-parts-table td:nth-child(7),.cc-estimate-parts-table th:nth-child(7){width:12%}.cc-estimate-parts-table td:nth-child(n+2),.cc-estimate-parts-table td:nth-child(n+3),.cc-estimate-parts-table th:nth-child(n+2),.cc-estimate-parts-table th:nth-child(n+3){text-align:left}.cc-estimate-parts-table td:nth-child(6),.cc-estimate-parts-table td:nth-child(7),.cc-estimate-parts-table th:nth-child(6),.cc-estimate-parts-table th:nth-child(7){text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.parts-list-check-col{width:36px;text-align:center!important;vertical-align:middle}.parts-list-check{display:inline-flex;align-items:center;justify-content:center;margin:0;cursor:pointer}.parts-list-check input{width:18px;height:18px;margin:0;accent-color:#16a34a;cursor:pointer}.parts-list-check-print{font-size:1rem;line-height:1}.parts-list-row-arrived td{background:#f0fdf4}.parts-list-row-arrived .cc-estimate-parts-desc{color:#166534}.parts-list-inline-error{margin:0 0 8px;font-size:.85rem}.cc-estimate-parts-pn{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600;color:#0f172a;white-space:normal;overflow-wrap:anywhere;word-break:break-all}.cc-estimate-parts-desc{white-space:normal;min-width:0;max-width:none;overflow-wrap:anywhere;word-break:break-word}.parts-list-section-row td{background:#e8edf2;color:#0f172a;font-size:.78rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;white-space:normal;padding-top:10px;padding-bottom:10px}@media (max-width:760px){.parts-list-modal:not(.parts-list-modal-dock){width:100%;max-width:100%;max-height:min(92dvh,100%);border-radius:14px 14px 0 0}.parts-list-modal:not(.parts-list-modal-dock) .parts-list-body{padding:10px 12px calc(12px + env(safe-area-inset-bottom, 0px))}.parts-list-modal:not(.parts-list-modal-dock) .parts-list-body .cc-labor-totals-wrap{overflow:visible}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table,.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody,.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table thead{display:block;width:100%;min-width:0}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table thead{display:none}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody tr:not(.parts-list-section-row){display:grid;grid-template-columns:36px 40px minmax(0,1fr);grid-template-areas:"check num desc" "check num pn" "check num meta";grid-column-gap:8px;column-gap:8px;grid-row-gap:2px;row-gap:2px;padding:10px 2px;border-bottom:1px solid #e2e8f0;align-items:start}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody tr:not(.parts-list-section-row) td{border-bottom:none;padding:0;text-align:left!important;white-space:normal;width:auto;min-width:0}.parts-list-modal:not(.parts-list-modal-dock) .parts-list-check-col{grid-area:check;width:auto;padding-top:2px}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody tr:not(.parts-list-section-row) td:nth-child(2){grid-area:num;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#64748b;padding-top:2px}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-desc{grid-area:desc;font-weight:600;color:#0f172a}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-pn{grid-area:pn;font-size:.8rem}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody tr:not(.parts-list-section-row) td:nth-child(5){grid-area:meta;font-size:.75rem;color:#64748b}.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody tr:not(.parts-list-section-row) td:nth-child(6),.parts-list-modal:not(.parts-list-modal-dock) .cc-estimate-parts-table tbody tr:not(.parts-list-section-row) td:nth-child(7){display:none}.parts-list-modal:not(.parts-list-modal-dock) .parts-list-section-row{display:block;padding:0;border:none}.parts-list-modal:not(.parts-list-modal-dock) .parts-list-section-row td{display:block;width:100%;margin-top:8px;border-radius:8px}}@media print{body.parts-list-printing *{visibility:hidden!important}body.parts-list-printing .parts-list-modal,body.parts-list-printing .parts-list-modal *{visibility:visible!important}body.parts-list-printing .parts-list-backdrop{position:static!important;inset:auto!important;background:#fff!important;display:block!important;padding:0!important;z-index:auto!important}body.parts-list-printing .parts-list-modal{position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;max-height:none!important;overflow:visible!important;box-shadow:none!important;background:#fff!important}body.parts-list-printing .no-print{display:none!important}body.parts-list-printing .parts-list-print-header{display:block!important;padding:0 0 12px;border-bottom:1px solid #cbd5e1;margin-bottom:12px}body.parts-list-printing .parts-list-print-header h2{margin:0 0 4px;font-size:16px}body.parts-list-printing .parts-list-print-header p{margin:0;font-size:12px;color:#475569}body.parts-list-printing .parts-list-body{overflow:visible!important;max-height:none!important;padding:0!important}body.parts-list-printing .cc-estimate-parts-table{min-width:0!important;width:100%!important;font-size:11px}body.parts-list-printing .parts-list-section-row td{background:#e8edf2!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}}.cc-labor-time-panel{min-width:0;border-left:1px solid #e2e8f0;padding-left:14px}@media (max-width:720px){.cc-labor-time-panel{border-left:none;border-top:1px solid #e2e8f0;padding-left:0;padding-top:12px}}.cc-labor-time-title{margin:0 0 8px;font-size:.82rem;font-weight:650;color:#334155}.cc-labor-time-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-bottom:10px}.cc-labor-time-field{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1 1 110px;font-size:.72rem;color:#64748b}.cc-labor-time-hours{flex:0 0 72px}.cc-labor-time-field input,.cc-labor-time-field select{width:100%;min-height:34px;border:1px solid #cbd5e1;border-radius:8px;padding:6px 8px;font-size:.82rem;color:#0f172a;background:#fff}.cc-labor-time-form .btn{flex:0 0 auto;min-height:34px;padding:6px 12px;font-size:.82rem}.cc-labor-time-empty{margin:0;font-size:.78rem}.cc-labor-time-groups{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;max-height:220px;overflow-y:auto}.cc-labor-time-group{border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;overflow:hidden}.cc-labor-time-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:7px 10px 5px;border-bottom:1px solid #e2e8f0;background:#eef2f6}.cc-labor-time-group-head strong{min-width:0;font-size:.82rem;font-weight:650;color:#0f172a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-labor-time-group-head span{flex:0 0 auto;font-size:.82rem;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:#0f172a}.cc-labor-time-group-rows{list-style:none;margin:0;padding:2px 0}.cc-labor-time-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;grid-gap:6px;gap:6px;padding:5px 6px 5px 10px;font-size:.78rem;color:#475569}.cc-labor-time-row+.cc-labor-time-row{border-top:1px solid #eef2f6}.cc-labor-time-row-labor{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cc-labor-time-row-hours{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:inherit;color:inherit}.cc-labor-time-remove{flex:0 0 auto;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:#94a3b8;font-size:1.2rem;line-height:1;cursor:pointer}.cc-labor-time-remove:hover:not(:disabled){background:#fee2e2;color:#b91c1c}.cc-labor-time-remove:disabled{opacity:.5;cursor:default}.cc-cl14-form .cc-help{margin:0 0 14px}.cc-doc-list{list-style:none;margin:0;padding:0}.cc-doc-item{padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:8px}.cc-doc-main{display:flex;flex-direction:column;gap:4px;min-width:0;cursor:pointer;border-radius:8px;outline:none}.cc-doc-main:hover strong{color:var(--primary)}.cc-doc-main:focus-visible{box-shadow:0 0 0 2px rgba(37,99,235,.35)}.cc-doc-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}.cc-doc-item strong{display:block;min-width:0;flex:1 1 auto;word-break:break-all;line-height:1.3}.cc-doc-item span{font-size:.8rem;color:#64748b}.cc-doc-actions{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:2px;flex-shrink:0}.cc-doc-actions .task-icon-btn{width:36px;height:36px}.cc-doc-actions .task-icon-btn:disabled{opacity:.45;cursor:not-allowed}.cc-form-brand{display:grid;grid-template-columns:88px 1fr minmax(100px,140px);align-items:start;grid-gap:.65rem;gap:.65rem;margin-bottom:.35rem}.cc-brand-logo-left{width:88px;height:auto;object-fit:contain;margin-top:2px}.cc-brand-logo-right{width:100%;max-width:140px;height:auto;object-fit:contain;justify-self:end;margin-top:-2px}.cc-form-brand-center{display:flex;flex-direction:column;align-items:center;text-align:center;gap:.15rem;min-width:0}.cc-form-brand-center strong{font-size:.92rem;line-height:1.2}.cc-form-brand-center span{font-size:.7rem;color:#555;line-height:1.25}@media (max-width:560px){.cc-form-brand{grid-template-columns:64px 1fr 96px;gap:.4rem}.cc-brand-logo-left{width:64px}.cc-brand-logo-right{max-width:96px}.cc-form-brand-center strong{font-size:.78rem}.cc-form-brand-center span{font-size:.62rem}}.cc-form h3{margin:8px 0 12px;font-size:1.05rem;text-align:center}.cc-tsv-credit-auth{margin:10px 0 16px;font-size:.82rem;line-height:1.45;color:#334155}.cc-field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:10px;gap:10px;margin-bottom:10px}.cc-field-row-plate{grid-template-columns:minmax(140px,1fr) minmax(280px,3fr)}@media (max-width:640px){.cc-field-row-plate{grid-template-columns:1fr}}.cc-doc-divider{height:0;border:none;border-top:2px solid #000;margin:22px 0 18px}.cc-tsv-party{margin:8px 0 12px;font-size:.9rem;color:#0f172a;font-weight:600}.cc-tsv-legal{margin:8px 0 16px;font-size:.82rem;line-height:1.45;color:#334155}.cc-tsv-legal p{margin:0 0 8px}.cc-courtesy-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}.cc-courtesy-label{font-size:.75rem;color:#475569;white-space:nowrap}.cc-courtesy-select{width:140px;flex:0 0 140px;padding:10px 12px;font-size:1rem}.cc-courtesy-btn,.cc-courtesy-select{border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a}.cc-courtesy-btn{width:36px;height:40px;font-size:1.25rem;line-height:1;cursor:pointer}.cc-courtesy-btn:hover:not(:disabled){background:#f1f5f9}.cc-courtesy-btn.danger:hover:not(:disabled){background:#fef2f2;border-color:#fca5a5;color:#b91c1c}.cc-courtesy-btn:disabled{opacity:.45;cursor:not-allowed}.cc-courtesy-add{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:-4px 0 12px}.cc-courtesy-add input{width:140px;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:1rem;background:#fff;color:#0f172a}.cc-field{display:flex;flex-direction:column;gap:4px;font-size:.75rem;color:#475569;margin-bottom:10px}.cc-field.wide{grid-column:1/-1}.cc-field input,.cc-field select{border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:1rem;background:#fff;color:#0f172a}.cc-check-row{display:flex;flex-wrap:wrap;gap:14px;margin:8px 0 12px}.cc-check{display:flex;align-items:center;gap:8px;font-size:.9rem}.cc-notice{font-size:.9rem;margin:8px 0}.cc-paragraphs{margin:12px 0 16px}.cc-paragraphs p{margin:0 0 10px;font-size:.88rem;line-height:1.45;color:#334155}.cc-insurance-block{margin:10px 0 16px;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:10px}.cc-insurance-label{display:block;font-size:.95rem;font-weight:700;color:#0f172a;margin-bottom:10px}.cc-yesno{display:flex;gap:8px;margin-bottom:8px}.cc-yesno-btn{min-width:72px;padding:8px 14px;border-radius:8px;border:1px solid #cbd5e1;background:#fff;color:#334155;font-weight:600;cursor:pointer}.cc-yesno-btn.selected{background:#1e3a8a;border-color:#1e3a8a;color:#fff}.cc-gas{margin:8px 0 14px}.cc-car-map{margin:12px 0 16px;padding:0;background:transparent;border:none}.cc-car-map-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(140px,.8fr);grid-gap:12px;gap:12px;align-items:stretch}@media (max-width:640px){.cc-car-map-layout{grid-template-columns:1fr}}.cc-car-map-svg{display:block;width:100%;height:auto;max-height:280px;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;user-select:none;justify-self:start;cursor:crosshair;outline:none;border:none}.cc-car-x{stroke:#dc2626;stroke-width:2.5;stroke-linecap:round;pointer-events:none}.cc-car-remark{display:flex;flex-direction:column;gap:6px;font-size:.75rem;color:#475569;min-height:0}.cc-car-remark textarea{flex:1 1;min-height:120px;resize:vertical;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:.95rem;font-family:inherit;background:#fff;color:#0f172a}.cc-gas-label{display:block;font-size:.75rem;color:#475569;margin-bottom:6px}.cc-car-side{font-weight:700}.cc-field input[readonly]{background:#f8fafc;color:#334155}.cc-gas-row{align-items:center;gap:10px}.cc-gas-levels,.cc-gas-row{display:flex;flex-wrap:wrap}.cc-gas-levels{gap:6px}.cc-odo{display:flex;align-items:center;gap:6px;font-size:.75rem;color:#475569;white-space:nowrap}.cc-odo input{width:110px;border:1px solid #cbd5e1;border-radius:8px;padding:8px 10px;font-size:1rem;background:#fff;color:#0f172a}.cc-gas-level{border:1px solid #cbd5e1;background:#fff;border-radius:6px;padding:6px 8px;font-size:.8rem;cursor:pointer}.cc-gas-level.selected{background:#1e3a8a;border-color:#1e3a8a;color:#fff}.cc-form-actions{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0 24px;position:-webkit-sticky;position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,#f8fafc 30%)}.sign-pad{margin:10px 0 14px;background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:10px}.sign-pad-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;gap:8px}.sign-pad-label{font-size:.85rem;font-weight:600;color:#334155}.sign-pad-clear{padding:4px 10px;font-size:.8rem}.sign-pad-canvas{width:100%;touch-action:none;border:1px dashed #94a3b8;border-radius:8px;background:#fff;display:block;cursor:crosshair}.sign-pad-hint{margin:6px 0 0;font-size:.8rem;color:#94a3b8;text-align:center}.sign-pad-open{width:100%;touch-action:manipulation;border:1px dashed #94a3b8;border-radius:8px;background:#fff;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;cursor:pointer;color:#64748b;font-size:.9rem}.sign-pad-open.has-value{border-style:solid;border-color:#cbd5e1}.sign-pad-preview{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;background:#fff}.sign-fs-overlay{position:fixed;inset:0;z-index:400;background:#0f172a;overscroll-behavior:none}.sign-fs-stage{position:absolute;background:#fff;box-sizing:border-box;width:100dvh;height:100dvw;top:50%;left:50%;transform:translate(-50%,-50%) rotate(90deg);transform-origin:center center}@media (orientation:landscape){.sign-fs-stage{inset:0;width:auto;height:auto;top:0;left:0;transform:none}}.sign-fs-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;border:none;background:#fff;display:block;cursor:crosshair}.sign-fs-header{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;background:linear-gradient(#fff,hsla(0,0%,100%,.92) 70%,transparent);pointer-events:none}.sign-fs-label{font-size:.95rem;font-weight:600;color:#0f172a;min-width:0}.sign-fs-actions{display:flex;gap:8px;flex-shrink:0;pointer-events:auto}.sign-fs-hint{position:absolute;left:0;right:0;bottom:18px;z-index:2;margin:0;text-align:center;color:#94a3b8;font-size:.95rem;pointer-events:none}.signed-docs-badge{display:inline-block;margin-left:6px;padding:1px 6px;border-radius:4px;font-size:.7rem;font-weight:600;background:#ecfdf5;color:#047857;border:1px solid #a7f3d0}.todo-backdrop{position:fixed;inset:0;z-index:90;background:rgba(15,23,42,.45);display:flex;align-items:center;justify-content:center;padding:16px}.todo-modal{position:relative;width:min(480px,100%);max-height:min(80dvh,640px);background:#fff;border-radius:14px;box-shadow:0 12px 40px rgba(0,0,0,.2);display:flex;flex-direction:column;overflow:hidden}.todo-modal .notes-panel-modal{flex:1 1;min-height:0}.todo-head{display:flex;align-items:center;gap:8px;padding:14px 48px 14px 16px;border-bottom:1px solid #e2e8f0}.todo-head h2{margin:0;font-size:1.15rem}.todo-pending-count{font-size:1.15rem;font-weight:700;color:#dc2626;line-height:1}.todo-clear-done{margin-left:auto;margin-right:28px;border:1px solid #cbd5e1;background:#f8fafc;color:#334155;border-radius:8px;padding:6px 10px;font-size:.82rem;cursor:pointer;white-space:nowrap}.todo-clear-done:hover:not(:disabled){background:#e2e8f0}.todo-clear-done:disabled{opacity:.55;cursor:not-allowed}.todo-close{position:absolute;top:8px;right:8px;z-index:2;border:none;background:transparent;font-size:1.6rem;line-height:1;color:#64748b;cursor:pointer;padding:4px 8px}.todo-add{display:grid;grid-template-columns:1fr auto;grid-gap:8px;gap:8px;padding:12px 16px;border-bottom:1px solid #f1f5f9}.todo-add .btn{min-width:4.5rem}.todo-add input{flex:1 1;border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:1rem}.todo-error{margin:8px 16px 0;color:#991b1b;font-size:.9rem}.todo-body{overflow:auto;padding:8px 12px 16px;flex:1 1}.todo-help{color:#64748b;font-size:.9rem;padding:8px 4px}.todo-list{list-style:none;margin:0;padding:0}.todo-item{gap:8px;padding:10px 6px;border-bottom:1px solid #f1f5f9}.todo-check-label,.todo-item{display:flex;align-items:center}.todo-check-label{gap:10px;flex:1 1;cursor:pointer;min-width:0}.todo-check-label input[type=checkbox],.todo-checkbox{flex-shrink:0;width:1rem;height:1rem;margin:0;align-self:center}.todo-text{word-break:break-word;cursor:text}.todo-edit-input,.todo-text{flex:1 1;min-width:0;font-size:.95rem;line-height:1.35;color:#0f172a}.todo-edit-input{border:1px solid #93c5fd;border-radius:6px;padding:6px 8px}.todo-item.done .todo-text{color:#94a3b8;text-decoration:line-through}.todo-delete{border:none;background:transparent;color:#94a3b8;font-size:1.25rem;line-height:1;cursor:pointer;padding:0 4px}.todo-delete:hover{color:#dc2626}.photo-pending-thumb{position:relative;overflow:hidden;border-radius:6px;background:#e2e8f0;aspect-ratio:1;width:100%}.photo-pending-thumb img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.92)}.photo-pending-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:6px;background:rgba(15,23,42,.48);color:#fff;font-size:.72rem;font-weight:600;text-align:center;line-height:1.2}.photo-pending-thumb.is-error .photo-pending-overlay{background:rgba(127,29,29,.72)}.photo-pending-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.photo-pending-actions button{border:1px solid hsla(0,0%,100%,.55);background:hsla(0,0%,100%,.14);color:#fff;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:600;cursor:pointer}.photo-pending-spinner{width:16px;height:16px;border:2px solid hsla(0,0%,100%,.35);border-top-color:#fff;border-radius:50%;animation:photo-pending-spin .7s linear infinite}@keyframes photo-pending-spin{to{transform:rotate(1turn)}}.quotation-modal{width:min(560px,100%);max-height:min(88dvh,760px)}.quotation-list{list-style:none;margin:0;padding:0}.quotation-list-item{display:flex;align-items:center;gap:8px;padding:8px 4px;border-bottom:1px solid #f1f5f9}.quotation-list-main{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:none;background:transparent;padding:6px 4px;text-align:left;cursor:pointer;color:inherit}.quotation-list-main strong{font-size:.98rem;color:#0f172a}.quotation-list-main span{font-size:.82rem;color:#64748b;word-break:break-word}.quotation-form{display:flex;flex-direction:column;gap:12px;padding:4px 4px 8px}.quotation-form label{display:flex;flex-direction:column;gap:6px;font-size:.85rem;font-weight:600;color:#334155}.quotation-form input,.quotation-form textarea{border:1px solid #cbd5e1;border-radius:8px;padding:10px 12px;font-size:1rem;font-weight:400;color:#0f172a;font-family:inherit}.quotation-form textarea{resize:vertical;min-height:110px;line-height:1.45}.quotation-row-2{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.quotation-desc-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.quotation-voice-block{border:1px solid #e2e8f0;border-radius:10px;padding:10px;background:#f8fafc;display:flex;flex-direction:column;gap:10px}.quotation-voice-hint{font-size:.75rem;font-weight:500;color:#94a3b8}.quotation-voice-record{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.quotation-hold-mic{flex:1 1;min-height:48px;border:none;border-radius:999px;background:#07c160;color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;-moz-user-select:none;user-select:none;touch-action:none;-webkit-user-select:none}.quotation-hold-mic:disabled{opacity:.55;cursor:not-allowed}.quotation-hold-mic:active,.quotation-voice-record.is-recording{background:#059669}.quotation-voice-record.is-recording{background:#ecfdf5;border:1px solid #a7f3d0;border-radius:12px;padding:8px 10px}.quotation-voice-rec-dot{width:10px;height:10px;border-radius:50%;background:#ef4444;animation:quotation-mic-pulse 1s ease-in-out infinite}.quotation-voice-rec-time{flex:1 1;font-size:.9rem;font-weight:700;color:#065f46}.quotation-voice-cancel,.quotation-voice-send{border:none;border-radius:8px;padding:6px 10px;font-size:.82rem;font-weight:600;cursor:pointer}.quotation-voice-cancel{background:#fee2e2;color:#b91c1c}.quotation-voice-send{background:#07c160;color:#fff}.quotation-voice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.quotation-voice-item{display:flex;align-items:center;gap:8px}.quotation-voice-bubble{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border:none;border-radius:8px;background:#95ec69;color:#0f172a;cursor:pointer;text-align:left}.quotation-voice-bubble.is-playing{background:#7dd956}.quotation-voice-play{font-size:.75rem;width:1.1rem;text-align:center}.quotation-voice-waves{flex:1 1;height:14px;border-radius:2px;background:repeating-linear-gradient(90deg,rgba(15,23,42,.35) 0 2px,transparent 2px 5px);opacity:.7}.quotation-voice-dur{font-size:.78rem;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}@keyframes quotation-mic-pulse{0%,to{opacity:1}50%{opacity:.45}}.quotation-uploads{display:flex;flex-direction:column;gap:14px;margin-top:4px}.quotation-upload-block{border:1px solid #e2e8f0;border-radius:10px;padding:10px;background:#f8fafc}.quotation-upload-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}.quotation-upload-head strong{font-size:.9rem;color:#0f172a}.quotation-upload-hint{margin:0;font-size:.82rem;color:#94a3b8}.quotation-file-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.quotation-file-list li{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:.88rem}.quotation-file-list a{color:#1d4ed8;word-break:break-word}.quotation-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:8px;gap:8px}.quotation-photo-item{display:flex;flex-direction:column;gap:4px}.quotation-photo-item img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid #e2e8f0;background:#fff}.quotation-photo-open{display:block;position:relative;width:100%;padding:0;border:none;background:transparent;cursor:zoom-in;border-radius:8px;overflow:hidden}.quotation-photo-item-select .quotation-photo-open{cursor:pointer}.quotation-photo-item-selected .quotation-photo-open img{filter:brightness(.82);outline:2px solid #16a34a;outline-offset:-2px}.quotation-photo-item-select-btn{justify-content:flex-start}.quotation-photo-select-mode{display:inline-flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;padding:0;border-radius:8px;background:#f8fafc;border:1px dashed #94a3b8;color:#64748b;font-size:28px;font-weight:300;line-height:1;cursor:pointer}.quotation-photo-select-mode:hover:not(:disabled){background:#eef2f7;color:#0f172a;border-color:#64748b}.quotation-photo-select-mode.active{border-style:solid;border-color:#2563eb;color:#2563eb;background:#eff6ff}.quotation-photo-select-mode:disabled{opacity:.55;cursor:not-allowed}.quotation-photo-action-bar{grid-template-columns:repeat(3,1fr);z-index:80}.quotation-remove-btn{border:none;background:transparent;color:#94a3b8;font-size:.78rem;cursor:pointer;padding:0;text-align:left}.quotation-remove-btn:hover:not(:disabled){color:#dc2626}.quotation-form-actions{display:flex;gap:8px;padding-top:4px}@media (max-width:480px){.quotation-row-2{grid-template-columns:1fr}.quotation-photo-grid{grid-template-columns:repeat(2,1fr)}}.remote-sign-page{min-height:100dvh;padding:20px 16px 40px;background:linear-gradient(165deg,#f3f6f9,#e8eef4 45%,#f7f4ef);box-sizing:border-box}.remote-sign-card{max-width:440px;margin:0 auto;background:#fff;border-radius:14px;padding:20px 18px 24px;box-shadow:0 10px 28px rgba(15,23,42,.08)}.remote-sign-brand{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid #e2e8f0}.remote-sign-logo{width:48px;height:48px;object-fit:contain}.remote-sign-brand strong{display:block;font-size:.95rem;color:#0f172a}.remote-sign-brand span{display:block;font-size:.78rem;color:#64748b;margin-top:2px}.remote-sign-done h1,.remote-sign-form h1{margin:0 0 8px;font-size:1.35rem;color:#0f172a}.remote-sign-muted{color:#64748b;font-size:.9rem;line-height:1.45;margin:0 0 16px}.remote-sign-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.remote-sign-field span{font-size:.82rem;font-weight:600;color:#334155}.remote-sign-field input{border:1px solid #cbd5e1;border-radius:8px;padding:12px;font-size:16px;color:#0f172a}.remote-sign-error{color:#dc2626;font-size:.9rem;margin:10px 0}.remote-sign-submit{width:100%;margin-top:16px;min-height:46px;font-size:1rem}.remote-sign-done p{color:#475569;line-height:1.5;margin:0}.cc-remote-sign-box{margin:12px 0 4px;padding:12px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc}.cc-remote-sign-box p{margin:0 0 8px;font-size:.85rem;color:#475569;line-height:1.4}.cc-remote-sign-status{font-weight:600;color:#0f172a}.cc-remote-sign-actions{display:flex;flex-wrap:wrap;gap:8px}.cc-remote-sign-url{margin-top:8px;font-size:.75rem;word-break:break-all;color:#64748b}