html{background:#f4f6f9}body{min-width:320px;min-height:100vh}*{box-sizing:border-box}:root{color:#172033;background:#f4f6f9;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body{background:#f4f6f9;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}.center{place-items:center;min-height:100vh;padding:24px;display:grid}.page{min-height:100vh;padding:28px 20px 60px}.shell{width:min(1180px,100%);margin:auto}.card{background:#fff;border:1px solid #e2e6ee;border-radius:22px;padding:28px;box-shadow:0 14px 38px #1720330f}.login-card{width:min(430px,100%)}.badge{background:#e8ecf5;border-radius:999px;padding:8px 12px;font-size:13px;font-weight:800;display:inline-flex}.topbar,.list-head,.card-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.topbar{align-items:end;margin-bottom:16px}h1{margin:12px 0 4px}h2{margin:0}h3{margin:8px 0}.muted{color:#687386}.small{font-size:12px}.stack{gap:16px;margin-top:22px;display:grid}.tabs{gap:8px;margin-bottom:16px;display:flex}.tab{color:#687386;background:0 0;border:0;border-radius:10px;padding:10px 14px;font-weight:750}.tab.active{color:#fff;background:#172033}.primary,.secondary,.ghost,.danger{border:0;border-radius:12px;min-height:44px;padding:0 16px;font-weight:750}.primary{color:#fff;background:#172033}.secondary{color:#273247;background:#eef1f6}.ghost{color:#526079;background:0 0}.danger{color:#a33932;background:#fff1f0;margin-top:12px}.grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding-top:20px;display:grid}.wide{grid-column:1/-1}label{flex-direction:column;gap:7px;display:flex}label span{color:#39465d;font-size:13px;font-weight:750}input,textarea,select{background:#fff;border:1px solid #d9dee8;border-radius:10px;width:100%;padding:11px 12px}input,select{min-height:44px}.actions{justify-content:flex-end;margin-top:18px;display:flex}.message{border-radius:10px;margin:12px 0;padding:11px 13px}.success{color:#246b37;background:#edf8f0}.error{color:#a33932;background:#fff1f0}.table-wrap{border:1px solid #edf0f4;border-radius:12px;margin-top:18px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{text-align:left;border-bottom:1px solid #edf0f4;padding:12px;font-size:14px}th{color:#5c687b;background:#f8f9fb;font-size:12px}tbody tr{cursor:pointer}tbody tr:hover{background:#f8fafc}.title-cell{font-weight:700}.empty-state{text-align:center;color:#687386;padding:30px}.back{color:#526079;background:0 0;border:0;padding:0;font-weight:750}.plan-list{gap:8px;margin-top:18px;display:grid}.plan-list-item{border:1px solid #e2e6ee;border-radius:10px;padding:12px}.plan-picker-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:16px;margin-top:22px;display:grid}.point-editor{background:#fafbfc;border:1px solid #dfe4ec;border-radius:14px;align-self:start;padding:16px;position:sticky;top:10px}.point-chip{color:#991b1b;background:#fee2e2;border-radius:999px;margin-bottom:12px;padding:6px 10px;font-size:12px;font-weight:800;display:inline-block}.pdf-toolbar{justify-content:center;align-items:center;gap:10px;margin-bottom:10px;display:flex}.pdf-scroll{background:#e9edf3;border:1px solid #dfe4ec;border-radius:14px;max-height:72vh;padding:10px;overflow:auto}.canvas-wrap{cursor:crosshair;width:max-content;margin:auto;line-height:0;position:relative}.canvas-wrap canvas{display:block}.plan-marker.numbered{color:#fff;background:#dc2626;border:2px solid #fff;border-radius:50%;place-items:center;width:25px;height:25px;padding:0;font-size:11px;font-weight:900;line-height:1;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #dc2626}.plan-marker.selected{background:#111827;box-shadow:0 0 0 3px #111827}.plan-hint{text-align:center;font-size:12px}.details-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px;display:grid}.info{background:#f8f9fb;border-radius:10px;padding:12px}.info-label{color:#687386;font-size:11px;font-weight:750}.info-value{margin-top:4px;font-weight:650}.description-block{border:1px solid #edf0f4;border-radius:12px;margin-top:14px;padding:14px}.plan-card-section{border-top:1px solid #edf0f4;margin-top:22px;padding-top:18px}.point-cards{gap:16px;margin-top:20px;display:grid}.point-card{border:1px solid #e2e6ee;border-radius:14px;padding:16px}.point-text{white-space:pre-wrap;line-height:1.45}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px;display:grid}.photo-card{background:#fff;border:1px solid #e2e6ee;border-radius:10px;margin:0;overflow:hidden}.photo-card img{object-fit:contain;background:#f7f8fa;width:100%;height:240px;display:block}.photo-card figcaption{color:#687386;padding:8px;font-size:11px}.legacy-section{border-top:1px solid #e2e6ee;margin-top:24px;padding-top:20px}@media (width<=850px){.plan-picker-layout{grid-template-columns:1fr}.point-editor{position:static}.details-grid,.photo-grid{grid-template-columns:1fr 1fr}}@media (width<=650px){.page{padding:12px 8px 32px}.card{padding:16px}.topbar,.list-head,.card-head{flex-direction:column;align-items:stretch}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.tabs{overflow:auto}.details-grid,.photo-grid{grid-template-columns:1fr}}.marker-shell{width:25px;height:25px;position:absolute;transform:translate(-50%,-50%)}.marker-shell .plan-marker.numbered{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.marker-delete{color:#fff;z-index:5;background:#111827;border:2px solid #fff;border-radius:50%;place-items:center;width:24px;height:24px;padding:0;font-size:18px;font-weight:900;line-height:18px;display:grid;position:absolute;top:-18px;right:-18px;box-shadow:0 2px 8px #00000040}.marker-delete:hover{background:#dc2626}.settings-card{padding:22px}.settings-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.settings-grid{grid-template-columns:1.2fr .8fr;gap:18px;display:grid}.settings-box{background:#fafbfc;border:1px solid #dfe4ec;border-radius:14px;padding:16px}.settings-box label{margin:12px 0 6px;font-size:13px;font-weight:700;display:block}.settings-box input{width:100%}.contractor-list{gap:10px;margin-top:16px;display:grid}.contractor-row{background:#fff;border:1px solid #e1e5eb;border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.row-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.row-actions.compact{margin-top:0}.mail-rule-box{background:#fff;border:1px dashed #c9d0da;border-radius:12px;gap:6px;margin-top:16px;padding:12px;display:grid}@media (width<=850px){.settings-grid{grid-template-columns:1fr}}@media (width<=650px){.settings-head,.contractor-row{flex-direction:column;align-items:stretch}}.defect-field-editor{background:#fafbfc;border:1px solid #dfe4ec;border-radius:14px;margin:14px 0 18px;padding:16px}.edit-all-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.edit-all-grid label{flex-direction:column;gap:6px;display:flex}.edit-all-grid label span{font-size:13px;font-weight:700}.edit-all-grid input,.edit-all-grid select,.edit-all-grid textarea{width:100%}.edit-all-grid .full-span{grid-column:1/-1}@media (width<=760px){.edit-all-grid{grid-template-columns:1fr}.edit-all-grid .full-span{grid-column:auto}}.gmail-connect-box{background:#fff;border:1px solid #dfe4ec;border-radius:12px;margin-top:18px;padding:14px}.gmail-state{margin-top:10px;font-size:13px;font-weight:700}.gmail-state.ok{color:#16794b}.mailing-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.mail-preview{background:#fafbfc;border:1px solid #dfe4ec;border-radius:14px;margin:14px 0 18px;padding:14px}.mail-preview-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.mail-group-list{gap:8px;display:grid}.mail-group-row{background:#fff;border:1px solid #e1e5eb;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;display:flex}.mail-group-row.summary-row{border-style:dashed}.mail-file-chip{background:#eef2f7;border-radius:999px;flex:none;padding:5px 9px;font-size:12px;font-weight:800}.mail-file-chip.text-chip{background:#f4f1e8}@media (width<=800px){.list-head{align-items:flex-start}.mailing-actions{justify-content:flex-start}.mail-group-row{align-items:flex-start}}.mail-settings-clear{max-width:1100px;margin:0 auto}.mail-connect-hero{background:#f7f9fc;border:2px solid #1f2b42;border-radius:16px;margin-bottom:18px;padding:18px}.mail-connect-hero h3{margin:6px 0;font-size:24px}.mail-connect-actions{flex-wrap:wrap;align-items:center;gap:14px;margin-top:14px;display:flex}.big-mail-btn{min-height:52px;padding:0 24px;font-size:17px}.mail-step-badge{letter-spacing:.06em;background:#e9edf5;border-radius:999px;padding:4px 8px;font-size:11px;font-weight:900;display:inline-block}.mail-settings-sections{grid-template-columns:1fr 1fr;gap:16px;display:grid}.contractors-full{grid-column:1/-1}.contractor-entry-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.contractor-entry-grid label{flex-direction:column;gap:6px;display:flex}@media (width<=760px){.mail-settings-sections,.contractor-entry-grid{grid-template-columns:1fr}.contractors-full{grid-column:auto}}.history-card{overflow:hidden}.history-table-wrap{border:1px solid #e1e5eb;border-radius:12px;overflow:auto}.history-table{border-collapse:collapse;background:#fff;width:100%;min-width:1050px}.history-table th,.history-table td{text-align:left;vertical-align:top;border-bottom:1px solid #e8ebf0;padding:11px 12px;font-size:14px}.history-table th{z-index:1;text-transform:uppercase;letter-spacing:.03em;background:#f5f7fa;font-size:12px;position:sticky;top:0}.history-table tbody tr:hover{background:#fafbfd}.history-status{background:#e8f5ec;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:800;display:inline-block}.reinspection-section{background:#fafbfc;border:1px solid #dfe4ec;border-radius:14px;margin-top:18px;padding:16px}.reinspection-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.reinspection-head h3{margin:0 0 4px}.reinspection-badge{background:#fff0dc;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:800}.reinspection-badge.closed{background:#e7f5eb}.reinspection-form{grid-template-columns:220px 1fr auto;align-items:end;gap:12px;display:grid}.reinspection-form label{flex-direction:column;gap:6px;display:flex}.reinspection-form textarea{resize:vertical}.reinspection-history{margin-top:18px}.reinspection-history h4{margin:0 0 10px}.reinspection-row{border-top:1px solid #e2e6ec;grid-template-columns:220px 1fr;gap:14px;padding:10px 0;display:grid}.reinspection-row-comment{white-space:pre-wrap}@media (width<=850px){.reinspection-form{grid-template-columns:1fr}.reinspection-row{grid-template-columns:1fr;gap:4px}}.mobile-defects{display:none}.plan-list-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.card-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}@media (width<=700px){html,body,#root{width:100%;max-width:100%;overflow-x:hidden}body{-webkit-text-size-adjust:100%;touch-action:manipulation}.page{padding:10px 8px 96px}.shell{width:100%}.card{border-radius:16px;padding:14px;box-shadow:0 8px 24px #1720330d}.center{padding:14px}.login-card{padding:20px}h1{font-size:25px;line-height:1.15}h2{font-size:21px}h3{font-size:17px}.topbar{margin-bottom:10px}.topbar .muted{margin:4px 0 0}.topbar>.ghost{align-self:flex-start;min-height:40px}.tabs{z-index:30;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-overflow-scrolling:touch;background:#f4f6f9f5;margin:0 -8px 12px;padding:8px;position:sticky;top:0;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;flex:none;min-height:44px;padding:10px 13px}button,.primary,.secondary,.ghost,.danger{touch-action:manipulation;min-height:46px}input,select,textarea{min-height:48px;font-size:16px}textarea{min-height:96px}input[type=file]{height:auto;padding:10px 8px}.list-head{gap:12px}.mailing-actions,.card-actions,.actions,.row-actions{grid-template-columns:1fr;gap:8px;width:100%;display:grid}.mailing-actions button,.card-actions button,.actions button,.row-actions button{width:100%;margin:0}.desktop-defects{display:none}.mobile-defects{gap:10px;margin-top:14px;display:grid}.mobile-defect-card{text-align:left;width:100%;min-height:0;color:inherit;background:#fff;border:1px solid #e1e6ee;border-radius:14px;padding:14px}.mobile-defect-card:active{background:#f8fafc;transform:scale(.995)}.mobile-defect-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.mobile-defect-no{color:#687386;font-size:12px;font-weight:900}.mobile-status{background:#eef1f6;border-radius:999px;padding:5px 8px;font-size:11px;font-weight:850}.mobile-defect-card>strong{font-size:15px;line-height:1.35;display:block}.mobile-defect-meta{color:#687386;flex-wrap:wrap;gap:7px 12px;margin-top:9px;font-size:12px;display:flex}.plan-list-item{flex-direction:column;align-items:stretch;padding:14px}.plan-list-item strong{overflow-wrap:anywhere}.plan-list-item button{width:100%}.grid{gap:12px;padding-top:14px}.plan-picker-layout{flex-direction:column;gap:12px;margin-top:14px;display:flex}.plan-main{width:100%;min-width:0}.point-editor{width:100%;padding:14px}.pdf-toolbar{z-index:12;background:#fff;margin-bottom:6px;padding:7px 0;position:sticky;top:62px}.pdf-toolbar strong{white-space:nowrap;font-size:13px}.pdf-toolbar button{min-width:48px;padding:0 12px}.pdf-scroll{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;border-radius:12px;min-height:260px;max-height:none;padding:6px;overflow:auto}.canvas-wrap{touch-action:pan-x pan-y;cursor:default;margin:0 auto}.plan-marker.numbered{width:31px;height:31px;font-size:12px}.marker-shell{width:31px;height:31px}.marker-delete{width:30px;height:30px;top:-22px;right:-22px}.plan-hint{margin:8px 0 0;line-height:1.4}.details-grid{grid-template-columns:1fr;gap:8px}.info{padding:11px}.description-block{line-height:1.45}.photo-grid{grid-template-columns:1fr;gap:12px}.photo-card img{object-fit:contain;height:auto;max-height:68vh}.mail-preview-head,.mail-group-row,.reinspection-head{flex-direction:column;align-items:stretch}.mail-file-chip{align-self:flex-start}.settings-box,.defect-field-editor,.reinspection-section{padding:13px}.mail-connect-hero{padding:14px}.mail-connect-hero h3{font-size:20px}.big-mail-btn{width:100%}.contractor-row{gap:8px}.history-table-wrap{-webkit-overflow-scrolling:touch;overflow:auto}.history-table{min-width:860px}.reinspection-form{grid-template-columns:1fr}.reinspection-form button{width:100%}.reinspection-row{grid-template-columns:1fr}}@media (width<=380px){.page{padding-left:6px;padding-right:6px}.card{padding:12px}.tab{padding-left:11px;padding-right:11px}}.pdf-zoom-separator{background:#dfe4ec;width:1px;height:28px;margin:0 2px}.pdf-zoom-btn{min-width:44px;padding:0 12px}.pdf-fit-btn{padding:0 12px}@media (width<=700px){.pdf-toolbar{flex-wrap:wrap;gap:6px}.pdf-zoom-separator{display:none}.pdf-fit-btn{font-size:12px}}.marker-shell{transform:translate(-50%,-50%) scale(var(--marker-scale,1));transform-origin:50%}.marker-size-label{color:#687386;white-space:nowrap;font-size:12px;font-weight:800}.marker-size-btn{min-width:44px;padding:0 12px}.marker-size-value{min-width:62px;padding:0 10px;font-size:12px}.canvas-wrap{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.canvas-wrap canvas{pointer-events:none}@media (width<=700px){.canvas-wrap{touch-action:pan-x pan-y}.marker-size-label{text-align:center;width:100%;margin-top:2px}.marker-size-btn,.marker-size-value{min-height:44px}}.canvas-wrap{isolation:isolate}.pdf-hit-layer{z-index:2;touch-action:pan-x pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:0 0;position:absolute;inset:0}.marker-shell{z-index:3}.canvas-wrap canvas{z-index:1;pointer-events:none;position:relative}@media (width<=650px){.pdf-hit-layer{touch-action:pan-x pan-y}}.pdf-mode-btn{white-space:nowrap}.pdf-hit-layer.mark-mode{pointer-events:auto;cursor:crosshair;touch-action:none!important}.pdf-hit-layer.pan-mode{pointer-events:none;cursor:grab;touch-action:pan-x pan-y!important}@media (width<=650px){.pdf-mode-btn{flex:calc(50% - 6px);min-width:140px;font-size:12px}.pdf-hit-layer.mark-mode{touch-action:none!important}.pdf-hit-layer.pan-mode{pointer-events:none}}.file-action-btn{cursor:pointer;text-align:center;border-radius:12px;justify-content:center;align-items:center;min-height:46px;padding:0 14px;font-weight:750;display:flex;position:relative;overflow:hidden}.file-action-btn.primary{color:#fff;background:#172033}.file-action-btn.secondary{color:#273247;background:#eef1f6}.file-action-btn input[type=file]{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}.mobile-photo-actions{gap:8px;display:grid}.mobile-photo-actions button,.mobile-photo-actions .file-action-btn{width:100%;margin:0}.photo-replaced-badge{color:#246b37;overflow-wrap:anywhere;background:#edf8f0;border-radius:8px;padding:7px 8px;font-size:11px;font-weight:750}.mobile-add-photo>span{color:#39465d;margin-bottom:7px;font-size:13px;font-weight:750;display:block}.mobile-photo-pickers{grid-template-columns:1fr 1fr;gap:8px;display:grid}.new-photo-preview{flex-wrap:wrap;gap:6px;margin-top:8px;display:flex}.new-photo-chip{text-overflow:ellipsis;white-space:nowrap;background:#eef1f6;border-radius:999px;max-width:100%;padding:6px 9px;font-size:11px;overflow:hidden}@media (width<=700px){.mobile-photo-pickers{grid-template-columns:1fr}.file-action-btn{min-height:50px}}.ai-voice-panel{background:#eef2ff;border:1px solid #c7d2fe;border-radius:14px;margin:0 0 16px;padding:14px}.ai-voice-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.ai-voice-sub{color:#475569;margin-top:3px;font-size:13px}.ai-voice-main{color:#fff;white-space:nowrap;background:#4338ca;border:0;border-radius:12px;min-height:48px;padding:0 16px;font-weight:700}.ai-voice-main.recording{background:#b91c1c}.ai-voice-main:disabled{opacity:.65}.ai-voice-example{color:#334155;margin-top:10px;font-size:13px;line-height:1.45}.ai-voice-status,.ai-voice-transcript,.ai-voice-filled{background:#fff;border-radius:10px;margin-top:10px;padding:10px 12px;font-size:13px;line-height:1.4}.ai-voice-filled{color:#166534;background:#ecfdf5}@media (width<=700px){.ai-voice-head{flex-direction:column;align-items:stretch}.ai-voice-main{width:100%;min-height:54px;font-size:16px}.ai-voice-panel{padding:12px}.ai-voice-example{font-size:12px}}
