:root{--bg:#000;--bg-soft:#f7f3f0;--surface:#a2806c14;--surface-soft:#ffffffb8;--surface-strong:#fdfdfd;--text:#000;--text-light:#fdfdfd;--muted:#5f524b;--line:#a2806c38;--accent:#a2806c;--accent-dark:#7f6453;--accent-hover:#8f715f;--hero-title:#3a302a;--hero-soft:#9d9894;--danger:#9b3b2e;--shadow:0 18px 55px #00000014;--sans:"Open Sans", "Segoe UI", sans-serif;--display:Montserrat, "Segoe UI", sans-serif;--hero:Inter, "Segoe UI", sans-serif;--radius:16px;--sidebar:248px;color:var(--text);background:var(--surface-strong);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ui-font-size:14px;--ui-line:1.45;--control-height:36px;font:var(--ui-font-size)/var(--ui-line) var(--sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}@media (width<=900px){:root{--ui-font-size:15px;--control-height:38px}}@media (width<=640px){:root{--ui-font-size:calc(16px / 1.5);--control-height:calc(42px / 1.5);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at top left, #a2806c1f, transparent 40%), var(--surface-strong)}button,input,select,textarea{font:inherit;color:inherit}@media (width>=641px) and (width<=900px){input,select,textarea{font-size:16px}}a{color:inherit;text-decoration:none}h1,h2,h3{font-family:var(--display);letter-spacing:-.02em;margin:0;font-weight:700}h1{font-family:var(--hero);letter-spacing:-.03em;color:var(--hero-title);font-weight:800}p{margin:0}.auth-layout{flex-direction:column;min-height:100svh;display:flex}.auth-layout>.app-shell{flex:1;min-height:0}.app-shell{grid-template-columns:var(--sidebar) 1fr;align-items:stretch;min-height:100svh;display:grid}.sidebar{height:100svh;min-height:100svh;max-height:100svh;color:var(--text-light);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:radial-gradient(circle at 0 0,#a2806c47,#0000 30%),linear-gradient(#1c1714 0%,#000 100%);flex-direction:column;gap:16px;padding:22px 18px 18px;display:flex;position:sticky;top:0;overflow:hidden}.brand{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.brand-logo{width:auto;height:72px;display:block}.brand-product{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);padding-left:4px;font-size:.8125rem;font-weight:700}.nav{flex-direction:column;flex:1;gap:6px;min-height:0;display:flex;overflow-y:auto}.nav-link{color:#fdfdfdeb;border:1px solid #0000;border-radius:14px;align-items:center;padding:11px 13px;font-weight:700;display:flex}.nav-link.active,.nav-link:hover{background:#a2806c29;border-color:#a2806c6b}.sidebar-foot{color:#f8fafc94;overflow-wrap:break-word;flex-direction:column;flex-shrink:0;align-items:flex-start;margin-top:auto;padding:0 10px;font-size:.75rem;line-height:1.5;display:flex}.workspace{flex-direction:column;min-width:0;max-width:100%;display:flex;overflow-x:clip}.topbar{justify-content:space-between;align-items:center;gap:16px;padding:18px 28px 10px;display:flex;position:relative}.topbar-brand{flex-direction:column;gap:6px;min-width:0;display:flex}.crumb{color:var(--muted);font-size:.875rem}.crumb b{color:var(--text);font-weight:700}.sync-ok{color:var(--muted);font-size:.8125rem;font-weight:400;line-height:1.35}.topbar-end{justify-content:flex-end;align-items:center;gap:10px;min-width:0;margin-left:auto;display:flex}.topbar-status{z-index:2;text-align:right;pointer-events:none;flex-direction:column;align-items:flex-end;gap:2px;max-width:min(280px,36vw);display:flex;position:static}.page{flex-direction:column;gap:14px;min-width:0;max-width:100%;padding:6px 22px 28px;display:flex}.prices-page .table-wrap{width:100%;min-width:0;max-width:100%;max-height:none;overflow-x:auto}.prices-page table.data{width:100%;min-width:0}.prices-page table.data th,.prices-page table.data td{padding:10px 6px}.prices-page table.data th:first-child,.prices-page table.data td:first-child{width:46%;min-width:160px;padding-left:10px;padding-right:8px}.prices-page table.data th:not(:first-child),.prices-page table.data td:not(:first-child){white-space:nowrap;width:1%}.prices-page table.data th:last-child,.prices-page table.data td:last-child{padding-right:10px}.prices-page table.data td:first-child .save-action{width:100%;max-width:100%}.prices-page table.data .price-meta{font-size:.72rem;font-weight:600}.prices-page table.data .price-basis{white-space:normal;line-height:1.2}.prices-page table.data .btn,html.is-mobile-ui .prices-page table.data .btn{min-height:26px;padding:0 10px;font-size:.72rem}.prices-page .price-name{white-space:normal;overflow-wrap:anywhere;font-size:.92rem;font-weight:600;line-height:1.3;display:block}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.users-phone-logout{display:none}@media (width<=900px){.users-phone-logout{display:inline-flex}}.page-head p{color:var(--muted);max-width:640px;margin-top:8px;line-height:1.65}.actions{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.export-stack{grid-template-columns:auto auto;place-items:start;gap:10px;display:grid}.draw-unit-field{gap:4px;min-width:148px}.draw-unit-field span{font-size:.75rem}.actions .draw-unit-field .select{min-height:var(--control-height)}.btn{min-height:var(--control-height);cursor:pointer;color:var(--text);box-shadow:none;background:0 0;border:1px solid #a2806c47;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-weight:600;transition:all .2s;display:inline-flex}.btn:hover{background:#a2806c14}.btn-primary,.btn-copper{background:var(--accent);color:var(--surface-strong);border-color:#0000;box-shadow:0 10px 24px #a2806c33}.btn-primary:hover,.btn-copper:hover{background:var(--accent-hover)}.btn-ghost{box-shadow:none;background:0 0;border-color:#0000}.btn-danger{color:var(--danger);border-color:#9b3b2e47}.project-delete-fab{align-self:flex-end;margin-top:auto}.btn:disabled{opacity:.45;cursor:default;box-shadow:none;transform:none}.grid-stats{flex-wrap:wrap;gap:10px;display:flex}.grid-stats>.card{min-width:max-content;box-shadow:none;border-radius:16px;flex:auto;padding:12px 16px}.grid-stats>.card h3{letter-spacing:.03em;margin:0;font-size:.75rem}.grid-stats .stat{letter-spacing:-.02em;margin-top:4px;font-size:1.25rem;font-weight:800}.card{border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);background:#fdfdfdeb;padding:14px 16px}.card h3{letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-size:.82rem;font-family:var(--sans);font-weight:700}.stat{font-family:var(--display);color:var(--text);letter-spacing:-.03em;white-space:nowrap;margin-top:8px;font-size:1.75rem;font-weight:800}.muted{color:var(--muted)}.user-suspended{color:var(--danger);background:#9b3b2e24;border-radius:999px;margin-top:6px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.user-mark{color:var(--accent);margin-top:4px;font-size:.75rem;font-weight:700}table.data tr.user-row-suspended td{background:#9b3b2e0f}.table-wrap{border:1px solid var(--line);border-radius:calc(var(--radius) / 2);min-width:0;max-width:100%;box-shadow:var(--shadow);background:#fdfdfdeb;overflow:auto}#survey-rooms{flex-direction:column;gap:20px;scroll-margin-top:16px;display:flex}#survey-room-list{scroll-margin-top:16px}.survey-plan h3{margin:0 0 4px}.survey-plan .muted{margin:0 0 12px}.survey-plan{overflow-anchor:none}.survey-plan svg{border-radius:calc(var(--radius) / 2);touch-action:none;overflow-anchor:none;-webkit-tap-highlight-color:transparent;background:#fdfdfdb8;width:100%;height:auto;max-height:440px;display:block}.survey-plan.is-dragging,.survey-plan.is-dragging .survey-plan-room{cursor:grabbing}.survey-plan-room{cursor:grab}.survey-plan-room path{fill:#a2806c47;stroke:var(--accent-dark);stroke-width:1.5px;vector-effect:non-scaling-stroke}.survey-plan-room.is-open path{fill:#a2806c1f}.survey-plan-room:focus{outline:none}@media (hover:hover) and (pointer:fine){.survey-plan-room:hover path,.survey-plan-room:focus-visible path{fill:#a2806c7a}}.survey-plan-label{fill:#3c342e;font-family:var(--sans);text-anchor:middle;dominant-baseline:middle;pointer-events:none;font-weight:400}tr[data-space-id],tr[data-line-id]{scroll-margin-top:76px;scroll-margin-bottom:24px}table.data{border-collapse:collapse;width:100%;min-width:560px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:8px 10px}table.data th{font-family:var(--display);letter-spacing:.02em;text-transform:none;text-align:center;color:var(--accent-dark);background:var(--bg-soft);z-index:1;font-size:.82rem;font-weight:700;position:sticky;top:0}table.data tbody tr.clickable{cursor:pointer}table.data tbody tr.clickable:hover td{background:#a2806c1a}.prices-reordering,.prices-reordering *{-webkit-user-select:none;user-select:none}.prices-reordering table.data tbody tr.clickable:hover td{background:0 0}.prices-reordering table.data tbody tr.price-insert-above td{border-bottom:1px solid #a2806cb3}.prices-reordering table.data tbody tr.price-insert-below td{border-top:1px solid #a2806cb3}table.data tbody tr.price-row-drag{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}table.data tbody tr.price-dragging{cursor:grabbing}table.data tbody tr.price-dragging td{color:color-mix(in srgb, var(--text) 5%, transparent);background:#a2806c14}table.data tbody tr.price-dragging td *{color:color-mix(in srgb, var(--text) 5%, transparent);border-color:color-mix(in srgb, var(--text) 5%, transparent)}table.data tbody tr.price-drop-slot td{background:0 0;border:0;height:0;padding:0;font-size:0;line-height:0;transition:height .28s cubic-bezier(.22,.61,.36,1)}.price-drag-ghost{z-index:40;box-sizing:border-box;pointer-events:none;border:1px solid var(--line);box-shadow:var(--shadow);white-space:nowrap;background:#fdfdfdc7;border-radius:0;align-items:center;gap:18px;padding:0 14px;font-size:.9rem;display:none;position:fixed;overflow:hidden}.price-drag-ghost strong,.price-drag-ghost span{color:var(--text);opacity:.05}.price-drag-ghost strong{text-overflow:ellipsis;min-width:0;overflow:hidden}.price-drag-ghost span{font-variant-numeric:tabular-nums}table.data td.num,table.data th.num{text-align:center;font-variant-numeric:tabular-nums}table.data td:not(:first-child):not(:last-child){text-align:center}table.data td.qty{width:108px;min-width:108px}table.data td.qty .input-qty{margin-left:auto;margin-right:auto}table.data td:last-child{white-space:nowrap;width:1%}table.data td:last-child .actions{flex-wrap:nowrap}table.data tr:last-child td{border-bottom:0}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:999px;padding:5px 12px;font-size:.87rem;font-weight:600;transition:all .2s}.chip:hover:not(:disabled){background:#a2806c14}.chip.active:hover:not(:disabled){background:#a2806c2e}.chip.active{color:var(--accent);background:#a2806c1f;border-color:#0000}.chip-danger{color:var(--danger);border-color:#9b3b2e47}.estimate-variants{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.estimate-toolbar{align-items:center}.estimate-variants+*{margin-left:18px}.estimate-footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.estimate-footer-row>p{flex:240px;margin:0}.estimate-footer-row>:last-child:not(:first-child){flex-shrink:0;margin-left:auto}.estimate-caption .save-action{width:100%}.export-variant-n{margin-left:6px;font-size:.82em;font-weight:800}.field{flex-direction:column;gap:6px;display:flex}.field span{color:var(--muted);font-size:.92rem;font-weight:600}.input,.select,.textarea{width:100%;min-height:var(--control-height);background:#fff;border:1px solid #a2806c47;border-radius:12px;padding:7px 12px;transition:border-color .2s,box-shadow .2s}.input-qty{text-align:right;direction:ltr;width:96px;max-width:96px;min-height:40px;margin-left:auto;padding:8px 10px;display:block}.input.is-standard::placeholder{color:#9d9894}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #a2806c29}.textarea{resize:vertical;min-height:90px}.textarea-single{min-height:var(--control-height)}@media (width<=640px){.btn{padding:0 12px}.chip{padding:4.66667px 9.33333px}.field{gap:5.33333px}input,select,textarea,.input,.select,.textarea{font-size:inherit;border-radius:9.33333px;min-height:32px;padding:7.33333px 10.6667px}.textarea{min-height:60px}.textarea-single,.actions .draw-unit-field .select,.survey-editor-bar .input{min-height:28px}.input-qty{width:64px;max-width:64px;min-height:26.6667px;padding:5.33333px 6.66667px}.form-grid{grid-template-columns:1fr}}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid .wide{grid-column:1/-1}.empty{text-align:center;color:var(--muted);padding:36px 20px}.notice{border-radius:var(--radius);color:var(--accent-dark);background:#a2806c1a;border:1px solid #a2806c59;padding:14px 18px}.notice strong{margin-bottom:6px;display:block}.notice ul{margin:0;padding-left:18px}.project-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.project-card{cursor:pointer;flex-direction:column;gap:4px;padding:10px 12px;line-height:1.3;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.project-card:hover{border-color:#a2806c5c;transform:translateY(-2px)}.project-card h2{color:var(--accent-dark);font-size:1.05rem;line-height:1.25}.tabs{border-bottom:1px solid var(--line);gap:4px;display:flex}.tab{cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:700}.tab.active{color:var(--accent-dark);border-bottom-color:var(--accent)}.modal-backdrop{z-index:20;background:#0000006b;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{border-radius:var(--radius);border:1px solid var(--line);width:min(560px,100%);max-height:min(86svh,820px);box-shadow:var(--shadow);background:#fdfdfdfa;flex-direction:column;gap:16px;padding:12px 26px;display:flex;overflow:auto}.modal.wide{width:min(860px,100%)}.conflict-diff{flex-direction:column;gap:14px;display:flex}.conflict-diff>p{margin:0}.conflict-diff-plans{grid-template-columns:1fr 1fr;gap:12px;display:grid}.conflict-diff-plans figure{min-width:0;margin:0}.conflict-diff-plans figcaption{color:var(--accent-dark);margin-bottom:6px;font-size:.8125rem;font-weight:700}.ceiling-preview{border:1px solid var(--line);background:#f7f3f0;border-radius:14px;width:100%;height:168px;display:block}.conflict-diff-list{color:var(--muted);flex-direction:column;gap:4px;margin:0;padding-left:1.15em;display:flex}@media (width<=700px){.conflict-diff-plans{grid-template-columns:1fr}}.modal-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-head h2{color:var(--accent-dark);flex:1;min-width:0}.modal-head-actions{flex-wrap:wrap;flex-shrink:1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.modal-close{width:36px;height:36px;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.modal-close:hover{background:var(--surface)}.picker-search{margin-bottom:12px}.picker-list{flex-direction:column;gap:8px;max-height:420px;display:flex;overflow:auto}.input-qty.is-auto{color:#8a817c}.picker-item{background:#ffffffe0;border:1px solid #a2806c2e;border-radius:18px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:14px 16px;display:grid;position:relative}.picker-check-off{opacity:0;pointer-events:none}.picker-tail{justify-content:flex-end;align-items:center;gap:8px;display:flex}.picker-used{color:#2a7a45}.save-action{flex-direction:column;align-items:stretch;gap:4px;width:max-content;max-width:100%;display:inline-flex}.save-hint{color:var(--accent-dark);pointer-events:none;text-align:center;font-size:.8125rem;font-weight:700;line-height:1.25}.save-hint-fail{color:var(--danger)}.bottom-nav,.mobile-brand{display:none}.topbar-logo{width:auto;height:56px;display:block}@media (width<=900px){.app-shell{grid-template-columns:1fr;padding-bottom:72px}table.data td:last-child{white-space:normal}table.data td:last-child .actions{flex-wrap:wrap}.sidebar{display:none}.mobile-brand{display:block}.topbar{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);z-index:8;background:#fdfdfdc7;border-bottom:1px solid #a2806c1f;padding:10px 16px;position:sticky;top:0}#survey-rooms,#survey-room-list{scroll-margin-top:72px}.topbar-status{max-width:min(150px,34vw)}.page{padding-left:16px;padding-right:16px}.bottom-nav{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#fdfdfdeb;padding:4px 8px calc(4px + env(safe-area-inset-bottom));z-index:10;background:radial-gradient(circle at 0 100%,#a2806c47,#0000 42%),linear-gradient(#1c1714 0%,#000 100%);border-top:1px solid #a2806c47;flex-wrap:wrap;justify-content:space-between;align-items:stretch;gap:2px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -16px 36px #00000047}.bottom-nav .nav-link{text-align:center;border-radius:10px;flex:1 1 0;justify-content:center;min-width:0;min-height:0;padding:3px 6px;font-size:.8125rem;line-height:1.1}.bottom-nav .nav-link.active,.bottom-nav .nav-link:hover{color:var(--text-light);background:#a2806c29;border-color:#a2806c6b}.bottom-nav .bottom-logout{appearance:none;color:inherit;cursor:pointer;background:0 0;margin:0}.app-shell:has(.bottom-tools-row){padding-bottom:104px}.bottom-tools-row{flex:1 0 100%;justify-content:center;display:flex}.bottom-nav .bottom-tools{flex:none;width:auto;min-width:max-content}}.login-screen{place-items:center;min-height:100svh;padding:24px;display:grid}.login-card{flex-direction:column;gap:14px;width:min(420px,100%);display:flex}.login-card>picture{justify-content:center;display:flex}.login-card .brand-logo{margin-inline:auto}.sync-banner{text-align:center;color:var(--accent-dark);background:#a2806c29;flex-shrink:0;padding:8px 16px;font-size:.8125rem;font-weight:700}.sidebar-logout{color:var(--text-light);border-color:#fdfdfd33;margin:10px 0}.menu-toggle,.menu-backdrop,.sidebar-close{display:none}@media (width>=901px){.app-shell.is-menu-drawer{grid-template-columns:1fr}.app-shell.is-menu-drawer .menu-toggle{flex-shrink:0;display:inline-flex}.app-shell.is-menu-drawer .sidebar{z-index:40;width:var(--sidebar);transition:transform .2s;position:fixed;top:0;left:0;transform:translate(-105%)}.app-shell.is-menu-drawer.is-menu-open .sidebar{transform:none}.app-shell.is-menu-drawer .sidebar-close{color:var(--text-light);border-color:#fdfdfd33;align-self:flex-start;display:inline-flex}.app-shell.is-menu-drawer.is-menu-open .menu-backdrop{z-index:30;cursor:pointer;background:#00000059;border:0;padding:0;display:block;position:fixed;inset:0}}.bottom-logout{font:inherit;font-weight:700}.survey-editor{flex-direction:column;min-height:calc(100svh - 88px);display:flex;position:relative}.survey-editor-bar{flex-direction:column;gap:8px;padding:6px 12px 0;display:flex}.survey-editor-bar-row{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.survey-editor-bar .input{max-width:280px;min-height:var(--control-height)}.survey-save-note{color:var(--muted);margin:0;font-size:.92rem}.survey-stage .survey-save-note{margin:0 0 -14px;line-height:1.15}.survey-canvas-caption{display:none}.survey-room-name .survey-save-note,.project-card .survey-save-note{margin-top:4px}.survey-tools{flex-direction:column;gap:6px;padding:8px 12px 6px;display:flex}.survey-tools-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.survey-tools .chip{flex:none}.survey-tools-more{display:none}@media (width<=1200px){table.data{min-width:0}table.data th,table.data td{overflow-wrap:break-word;padding:8px 6px}table.data td.qty{width:auto;min-width:0}table.data td:last-child{white-space:normal;width:auto}table.data td:last-child .actions{flex-wrap:wrap}}@media (width<=640px){table.data th,table.data td{padding:6px 2px}.survey-rooms table.data td.survey-room-name{overflow-wrap:normal;word-break:normal;white-space:normal}.survey-rooms table.data .survey-room-title{white-space:nowrap;display:block}.survey-canvas-caption{color:var(--muted);flex-direction:column;gap:2px;margin:-8px 0 0;font-size:.82rem;line-height:1.25;display:flex}table.data td:last-child .actions{flex-wrap:nowrap;gap:4px}table.data td:last-child .btn{min-height:var(--control-height);white-space:nowrap;padding:0 8px;font-size:1em}table.data .input-qty{width:44px;max-width:44px;padding-left:2px;padding-right:2px}}.is-mobile-ui .survey-tools-more{display:inline-flex}.is-mobile-ui .survey-tools-dims{display:none}.is-mobile-ui .survey-tools.is-dims-open .survey-tools-dims{display:flex}.survey-stage{flex-direction:column;flex:1;gap:16px;min-height:0;padding:0 16px 16px;display:flex}.survey-canvas-wrap{touch-action:none;overscroll-behavior:none;flex:none;width:100%;min-width:0;height:calc(100svh - 200px);min-height:480px;position:relative}.ceiling-canvas{border:1px solid var(--line);border-radius:var(--radius);touch-action:none;cursor:crosshair;width:100%;height:100%;min-height:0;box-shadow:var(--shadow);background:#fdfdfd;display:block}.survey-draw-type{z-index:5;border:1px solid var(--line);box-shadow:var(--shadow);touch-action:manipulation;background:#fdfdfdf7;border-radius:10px;flex-direction:row;align-items:flex-end;gap:8px;padding:6px;display:flex;position:absolute}.survey-draw-type-col{flex-direction:column;align-items:center;gap:2px;display:flex}.survey-draw-type-cap{letter-spacing:.04em;text-transform:uppercase;color:#1e6bb8;font-size:.62rem;font-weight:700;line-height:1.2}.survey-draw-type .input{text-align:center;width:68px;min-height:30px;padding:3px 4px;font-size:.85rem}.survey-draw-type .input.is-active{border-color:#1e6bb8;box-shadow:0 0 0 2px #1e6bb838}.is-mobile-ui .survey-draw-type .input{min-height:34px;font-size:16px}.survey-dir-card{z-index:4;border:1px solid var(--line);width:74px;box-shadow:var(--shadow);touch-action:manipulation;background:#fdfdfdf5;border-radius:8px;flex-direction:column;align-items:stretch;gap:3px;padding:3px 4px;display:flex;position:absolute;overflow:visible}.survey-dir-row{flex-direction:row;align-items:center;gap:3px;min-height:26px;display:flex}.survey-dir-card.reverse .survey-dir-row{flex-direction:row-reverse}.survey-dir-arrow{color:#1e6bb8;width:16px;height:9px;transform:rotate(var(--dir-rot,0deg));flex:none;display:block;overflow:visible}.survey-dir-card .input{text-align:center;flex:1;width:auto;min-width:0;min-height:26px;padding:2px 3px;font-size:.72rem}.survey-dir-angle-hint{color:#1e6bb8;flex:none;align-items:flex-end;gap:1px;display:flex}.survey-dir-angle-sign{flex-direction:column;align-items:center;line-height:1;display:flex}.survey-dir-angle-sign b{color:#1e6bb8;font-size:.62rem;font-weight:700}.survey-dir-card .btn{width:100%;min-height:26px;padding:2px 4px;font-size:.72rem}.is-mobile-ui .survey-dir-card{gap:2px;width:74px;padding:3px}.is-mobile-ui .survey-dir-card .input,.is-mobile-ui .survey-dir-card .btn{min-height:24px;font-size:11px}.is-mobile-ui .survey-dir-angle-sign b{font-size:10px}.survey-editor.is-editing-pop .survey-canvas-wrap{z-index:4}.survey-edit-dismiss{z-index:3;touch-action:none;overscroll-behavior:none;position:absolute;inset:0}.survey-edit-dismiss-canvas{z-index:4}.survey-edit-pop{z-index:5;border:1px solid var(--line);border-radius:var(--radius);width:min(280px,100% - 16px);max-height:calc(100% - 16px);box-shadow:var(--shadow);pointer-events:auto;touch-action:manipulation;background:#fdfdfdf7;flex-direction:column;padding:10px 12px 12px;display:flex;position:absolute;overflow:hidden}.survey-edit-pop.dragging{-webkit-user-select:none;user-select:none;box-shadow:0 22px 50px #00000029}.survey-edit-pop-head{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;flex:none;justify-content:space-between;align-items:center;gap:8px;margin:-2px -4px 8px;padding:6px 4px 8px;display:flex}.survey-edit-pop.dragging .survey-edit-pop-head{cursor:grabbing}.survey-edit-pop-grip{background:radial-gradient(circle, var(--muted) 1.1px, transparent 1.25px) 0 0 / 6px 6px, radial-gradient(circle, var(--muted) 1.1px, transparent 1.25px) 3px 3px / 6px 6px;opacity:.55;flex:none;width:14px;height:12px}.survey-edit-pop-head h3{letter-spacing:.04em;text-transform:uppercase;min-width:0;color:var(--accent);pointer-events:none;flex:auto;margin:0;font-size:.82rem}.survey-edit-pop-body{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;min-height:0;max-height:calc(var(--pop-max-height,70svh) - 56px);flex:auto;padding-bottom:4px;padding-right:4px;overflow:hidden auto}.survey-edit-pop-close{width:32px;height:32px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;flex:none;font-size:1.375rem;line-height:1}.survey-edit-pop-close:hover{background:var(--bg-soft);color:var(--text)}.survey-edit-pop .survey-edge-ends{gap:6px}.survey-edit-pop .survey-edge-ends .chip{font-size:.87rem;line-height:var(--ui-line);padding:5px 12px}.is-mobile-ui .survey-edit-pop .survey-edge-ends .chip{padding:4px 8px;font-size:11px;line-height:1.2}.survey-edit-pop .btn{width:100%}.client-screen{z-index:80;background:#ece7e1;flex-direction:column;gap:10px;padding:12px;display:flex;position:fixed;inset:0}.client-screen-bar,.client-screen-dock,.client-screen-sum,.client-room-switch{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.client-screen-stage{background:#d9d3cb;border-radius:16px;flex:auto;min-height:0;overflow:hidden}.client-stage,.client-plan{touch-action:none;width:100%;height:100%;display:block}.client-plan{background:#f7f3f0}.client-screen-empty{margin:24px}.client-screen-note,.client-total-toggle{color:var(--muted);font-size:.92rem}.client-swatch{vertical-align:-2px;border:1px solid #2b272440;border-radius:50%;width:14px;height:14px;margin-right:6px;display:inline-block}@media (width>=901px){.survey-edit-pop .save-action{align-self:flex-start;align-items:flex-start}.survey-edit-pop .btn{width:auto;min-height:0;font-size:.87rem;line-height:var(--ui-line);align-self:flex-start;padding:5px 12px}}.survey-bind-fields,.survey-bind-actions{flex-direction:column;gap:6px;display:flex}.survey-edit-pop .btn.is-active{background:#a2806c2e}.survey-cutout-build{z-index:5;background:#fff;border-radius:10px;flex-direction:column;gap:6px;max-height:46%;padding:8px;display:flex;position:absolute;bottom:8px;left:8px;right:8px;overflow:auto;box-shadow:0 4px 16px #0000001f}.survey-cutout-build p{margin:0}.survey-cutout-build .save-action,.survey-cutout-build .survey-bind-actions{flex-direction:column;gap:6px;display:flex}.survey-cutout-hint{color:var(--muted,#6d625b)}.survey-bind-hint{z-index:4;pointer-events:none;background:#fff;border-radius:8px;margin:0;padding:6px 8px;font-size:13px;position:absolute;top:12px;left:12px}.survey-edge-len-row{align-items:center;gap:6px;display:flex}.survey-edge-len-unit{color:var(--text);flex:none;font-size:12px;font-weight:700}.survey-edge-len-row .input{flex:auto;width:auto;min-width:0}.survey-edge-len-row .save-action{flex:none;width:auto}.survey-edge-len-row .btn{width:auto;min-width:44px}.survey-inspector{flex-direction:column;gap:12px;padding:4px 0 8px;display:flex;overflow:visible}.survey-inspector .survey-inspector-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.survey-inspector-fields{border:0;flex-direction:column;gap:10px;min-inline-size:0;margin:0;padding:0;display:flex}.survey-metrics{gap:10px}.survey-metrics>div{text-align:center;flex:1 1 0}.survey-metrics h3{font-size:.72rem}.survey-metrics strong{font-family:var(--display);font-size:1.05rem}.is-mobile-ui .grid-stats{border:1px solid var(--line);background:#fdfdfdeb;border-radius:12px;flex-flow:column;gap:0;padding:4px 12px}.is-mobile-ui .grid-stats>.card,.is-mobile-ui .survey-metrics>div{width:100%;min-width:0;box-shadow:none;text-align:left;background:0 0;border:0;border-radius:0;flex-direction:row;flex:none;justify-content:space-between;align-items:baseline;gap:10px;padding:5px 0;display:flex}.is-mobile-ui .grid-stats>.card+.card,.is-mobile-ui .survey-metrics>div+div{border-top:1px solid var(--line)}.is-mobile-ui .grid-stats>.card h3,.is-mobile-ui .survey-metrics h3{letter-spacing:0;text-transform:none;color:var(--muted);font-size:1rem;font-weight:700}.is-mobile-ui .grid-stats .stat,.is-mobile-ui .survey-metrics strong{font-size:1rem;font-weight:700;font-family:var(--sans);margin-top:0}.is-mobile-ui .survey-metrics{border:1px solid var(--line);background:#fdfdfdeb;border-radius:12px;gap:0;padding:4px 12px}.is-mobile-ui .survey-inspector .survey-inspector-fields{grid-template-columns:1fr}.is-mobile-ui .survey-canvas-wrap{height:52svh;min-height:280px}@media (width>=641px) and (width<=900px){.is-mobile-ui .grid-stats{background:0 0;border:0;flex-flow:wrap;gap:8px;padding:0}.is-mobile-ui .grid-stats>.card{border:1px solid var(--line);background:#fdfdfdeb;border-radius:12px;flex:140px;width:auto;padding:10px 12px;display:block}.is-mobile-ui .grid-stats>.card+.card{border-top:1px solid var(--line)}}.survey-bom{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.survey-bom li{justify-content:flex-start;align-items:baseline;gap:12px;font-size:.9rem;display:flex}.survey-bom li b{white-space:nowrap}@media (width<=900px){.survey-editor{min-height:calc(100svh - 140px)}.survey-canvas-wrap{height:52svh;min-height:320px}.survey-inspector .survey-inspector-fields{grid-template-columns:1fr}}.is-mobile-ui .survey-edit-pop{border-radius:16px;width:min(186px,100% - 12px);padding:6px 8px 8px}.is-mobile-ui .survey-edit-pop-head{gap:4px;margin:-2px -2px 4px;padding:2px 2px 4px}.is-mobile-ui .survey-edit-pop-grip{width:10px;height:8px}.is-mobile-ui .survey-edit-pop-head h3{font-size:9px}.is-mobile-ui .survey-edit-pop-close{border-radius:7px;width:22px;height:22px;font-size:15px}.is-mobile-ui .survey-edit-pop-body{max-height:calc(var(--pop-max-height,70svh) - 36px);padding-bottom:2px;padding-right:2px}.is-mobile-ui .survey-edit-pop .survey-inspector-fields{gap:6px}.is-mobile-ui .survey-edit-pop .field{gap:4px}.is-mobile-ui .survey-edit-pop .field span{font-size:10px}.is-mobile-ui .survey-edit-pop .input,.is-mobile-ui .survey-edit-pop .select{border-radius:10px;min-height:32px;padding:4px 8px;font-size:12px}.is-mobile-ui .survey-edit-pop .btn{min-height:28px;padding:0 10px;font-size:11px}.crm-toolbar{flex-direction:column;gap:12px;display:flex}.crm-board{grid-auto-columns:minmax(240px,1fr);grid-auto-flow:column;align-items:start;gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.crm-column{border:1px solid var(--line);border-radius:var(--radius);background:#a2806c0f;flex-direction:column;gap:10px;min-height:280px;padding:12px;display:flex}.crm-column header{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.crm-column h2{color:var(--accent-dark);font-size:.95rem}.crm-column header span{color:var(--muted);font-size:.85rem;font-weight:700}.crm-column-list{flex-direction:column;gap:8px;display:flex}.crm-card{min-height:0;box-shadow:none;gap:4px;padding:14px 16px}.crm-card strong{font-family:var(--display);font-size:1rem}.crm-card-lost{opacity:.72}.crm-stages{flex-wrap:wrap;gap:8px;display:flex}.channel-list{flex-direction:column;gap:16px;display:flex}.channel-card{flex-direction:column;gap:12px;display:flex}.channel-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.channel-head h2{margin:0;font-size:1.15rem}.channel-toggle{align-items:center;gap:8px;font-weight:700;display:flex}.channel-url{margin:0}.channel-help{margin:0;padding-left:18px}.crm-split{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.crm-split .card{flex-direction:column;gap:8px;display:flex}.crm-split .actions{margin-top:6px}.crm-note{flex-direction:column;gap:10px;margin-top:12px;display:flex}.crm-empty-line{margin-top:12px}.crm-timeline{flex-direction:column;gap:14px;margin:16px 0 0;padding:0;list-style:none;display:flex}.crm-timeline li{border-bottom:1px solid var(--line);flex-direction:column;gap:6px;padding-bottom:12px;display:flex}.crm-timeline li:last-child{border-bottom:0;padding-bottom:0}.crm-timeline li>div{flex-wrap:wrap;justify-content:space-between;gap:12px;display:flex}.job-plan{white-space:pre-wrap;margin:10px 0 12px;line-height:1.55}.site-gallery{flex-direction:column;gap:14px;margin-top:12px;display:flex}.site-media-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.site-media-card{border:1px solid var(--line);background:#fff;border-radius:18px;flex-direction:column;gap:8px;margin:0;display:flex;overflow:hidden}.site-media-card img,.site-media-card video,.site-media-wait{object-fit:cover;background:var(--bg-soft);width:100%;height:180px}.site-media-wait{color:var(--muted);place-items:center;font-weight:700;display:grid}.site-media-card figcaption{flex-direction:column;gap:4px;padding:0 12px 12px;display:flex}.site-media-card .btn{align-self:flex-start;margin-top:6px}@media (width<=900px){.crm-split{grid-template-columns:1fr}.crm-board{grid-auto-columns:minmax(220px,78vw)}}html.camera-trace-open,html.camera-trace-open body,html.camera-trace-open #root{height:100dvh;overflow:hidden}.camera-trace{z-index:40;color:#fdfdfd;-webkit-user-select:none;user-select:none;background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.camera-trace-bar{padding:calc(8px + env(safe-area-inset-top)) 12px 8px;flex-shrink:0;align-items:center;gap:10px;display:flex}.camera-trace-title{text-align:center;font-family:var(--display);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:700;overflow:hidden}.camera-trace-bar-actions{gap:8px;display:flex}.camera-trace-ghost{color:#fdfdfd;border-color:#fdfdfd59}.camera-trace-ghost:hover{background:#ffffff1a}.camera-trace-stage{touch-action:none;flex:1;min-height:0;position:relative}.camera-trace-media,.camera-trace-svg{width:100%;height:100%;position:absolute;inset:0}.camera-trace-media{object-fit:contain;pointer-events:none;background:#000}.camera-trace-media[hidden]{display:none!important}.camera-trace-svg{pointer-events:none}.camera-trace-fill{fill:#a2806c47;stroke:#fdfdfd;stroke-width:2px;stroke-linejoin:round}.camera-trace-line{fill:none;stroke:#fdfdfd;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.camera-trace-edge{fill:none;stroke:#0000;stroke-width:10px}.camera-trace-edge.is-on{stroke:#a2806c;stroke-width:6px}.camera-trace-dot{fill:#fdfdfd}.camera-trace-first{fill:#a2806c;stroke:#fdfdfd;stroke-width:2px}.camera-trace-num{fill:#fdfdfd;font:700 .75rem var(--sans);text-anchor:middle}.camera-trace-blocker{text-align:center;background:#00000094;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:24px;display:flex;position:absolute;inset:0}.camera-trace-sheet{background:var(--surface-strong);max-height:46vh;color:var(--text);padding:16px 16px calc(16px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;flex-direction:column;flex-shrink:0;gap:12px;display:flex;overflow:auto}.camera-trace-hint{color:var(--muted)}.camera-trace-actions{flex-wrap:wrap;gap:8px;display:flex}.camera-trace-actions .btn{flex:auto}.camera-trace-edges{max-height:88px;overflow:auto}.sidebar-tools{color:#fdfdfdeb;width:fit-content;margin-top:0;font-size:.875rem;font-weight:700;text-decoration:none;display:inline-flex}.sidebar-tools.active,.sidebar-tools:hover{color:#fff}.watermark-drop-hint{z-index:2;border:2px dashed var(--accent);color:var(--accent-dark);text-align:center;pointer-events:none;background:#fdfdfde6;border-radius:16px;place-items:center;padding:16px;font-weight:700;display:grid;position:absolute;inset:12px}.tools-list{flex-wrap:wrap;gap:16px;display:flex}.tools-card{width:min(360px,100%);color:inherit;cursor:pointer;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:block}.tools-card:hover{border-color:#a2806c5c;transform:translateY(-2px)}.tools-card p{color:var(--muted);margin:8px 0 0;line-height:1.5}.watermark-layout{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.watermark-stage{min-width:0;scroll-margin-top:76px;position:relative}.watermark-zoom{margin-bottom:10px}.watermark-frame{width:100%;overflow:auto}.watermark-canvas{touch-action:none;background:#1c1714;border-radius:12px;width:auto;height:auto;margin-inline:auto;display:block}.page-head.watermark-head{grid-template-columns:minmax(0,1fr) 300px;align-items:start;column-gap:16px;display:grid}.page-head.watermark-head>.btn{justify-self:end}.watermark-head-main{justify-content:space-between;align-items:flex-start;gap:16px;min-width:0;padding-right:17px;display:flex}.watermark-pick{align-self:flex-start;width:fit-content}.watermark-dock{z-index:4;width:220px;box-shadow:var(--shadow);background:#fdfdfdc7;border:1px solid #a2806c47;border-radius:14px;flex-direction:column;gap:8px;padding:10px 12px;display:flex;position:absolute;top:0;left:0}.watermark-dock .field{gap:4px;margin:0}.watermark-tile-line{font-size:.82rem;font-weight:500}.watermark-dock .btn{width:100%;font-size:.92rem}.watermark-add-mark{align-self:center}.watermark-group-switch{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.watermark-quick{background:#fdfdfdf5;border:1px solid #a2806c2e;border-radius:14px;grid-template-columns:1fr 1fr;gap:8px 16px;margin-top:12px;padding:10px 12px;display:grid}.watermark-quick .field{gap:2px;margin:0}.watermark-quick-actions{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:8px;display:flex}.watermark-section{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-dark);margin:4px 0 0;font-size:.8125rem;font-weight:700}.watermark-drop{text-align:center;min-height:320px;color:var(--muted);border:1px dashed #a2806c73;border-radius:16px;place-items:center;padding:24px;display:grid}.watermark-drop p{margin:0}.watermark-drop p+p{margin-top:6px}.watermark-save{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:12px;display:flex}.watermark-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 16px;margin-top:12px;display:flex}.watermark-thumbs{gap:8px;margin-top:12px;display:flex;overflow-x:auto}.watermark-thumb{cursor:pointer;background:0 0;border:2px solid #0000;border-radius:10px;flex:none;padding:0}.watermark-thumb.active{border-color:var(--accent)}.watermark-thumb img{border-radius:8px;width:auto;height:64px;display:block}.watermark-side{flex-direction:column;gap:12px;min-width:0;display:flex}.watermark-side-actions{flex-direction:column;gap:8px;display:flex}.watermark-side-actions .btn{width:100%}.watermark-controls{flex-direction:column;gap:14px;display:flex}.watermark-block{background:#a2806c14;border-radius:14px;flex-direction:column;gap:12px;padding:12px;display:flex}.watermark-block h2{text-align:center;font-size:1.05rem}.watermark-note{color:var(--muted);margin:0;font-size:.92rem}.watermark-color-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.watermark-swatch{cursor:pointer;background:#fff;border:1px solid #a2806c59;border-radius:10px;width:36px;height:36px;padding:3px}.watermark-controls .input-range,.watermark-dock .input-range{min-height:32px;box-shadow:none;background:0 0;border:none;padding:0}.watermark-controls .input-color{width:72px;min-height:42px;padding:4px}.watermark-logo-row{flex-wrap:wrap;gap:8px;display:flex}.watermark-preset{gap:4px;display:inline-flex}.watermark-preset-name{color:var(--text)}.watermark-report{background:#a2806c14;border-radius:14px;flex-direction:column;gap:4px;padding:12px 14px;display:flex}.watermark-report p{margin:0}label.btn{cursor:pointer;position:relative}label.btn.is-disabled{opacity:.45;pointer-events:none}label.btn .watermark-file,label.btn .plan-file{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;padding:0;font-size:16px;position:absolute;inset:0}.chip:disabled{opacity:.45;cursor:default}.check-line{align-items:center;gap:8px;font-weight:600;display:flex}@media (width<=900px){.watermark-layout,.page-head.watermark-head{grid-template-columns:1fr}.watermark-head-main{padding-right:17px}}.plan-layout{flex-direction:column;gap:16px;margin-top:16px;display:flex}.plan-files{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.plan-layout.is-empty .plan-stage{display:none}.plan-stage{position:relative}.plan-draw{flex-direction:column;gap:12px;display:flex}.plan-canvas{overscroll-behavior:none;width:100%;height:calc(100svh - 340px);min-height:420px;position:relative}.field-resize{display:none}@media (width>=901px){.field-resize{z-index:6;height:14px;box-shadow:none;cursor:ns-resize;background:0 0;border:0;border-radius:0;margin:0;padding:0;display:block;position:absolute;bottom:0;left:0;right:0}.field-resize:before{content:"";background:#5f524b80;border-radius:4px;width:56px;height:4px;margin:5px auto 0;display:block}}.plan-zoom,.plan-length{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.plan-length .input{flex:1;min-width:120px}.plan-preview,.plan-overlay{width:100%;height:auto}.plan-opacity{align-items:center;gap:12px;display:flex}.plan-opacity input[type=range]{flex:1}.plan-scale-note{color:#000;background:#a2806c33;border-radius:12px;margin:0;padding:12px 16px;font-size:1.15rem;font-weight:700;line-height:1.35}.plan-scale-note.is-done{color:var(--muted);background:0 0;padding:0;font-size:1rem;font-weight:400}.plan-scale-field{border:2px solid var(--accent);background:#fff;border-radius:12px;max-width:520px;padding:12px 14px}.plan-scale-field>span:first-child{font-size:1.05rem}.plan-scale-field .input{font-size:1.2rem;font-weight:700}.plan-row-active td{background:#a2806c29}.plan-overlay{pointer-events:none;position:absolute;inset:0}.plan-side{flex-direction:column;gap:12px;display:flex}.plan-side table.data{min-width:0}.plan-scale{flex-direction:column;gap:8px;display:flex}.contract-preview{margin-top:20px}.contract-paper{color:#1c1c1c;background:#fff;border-radius:8px;margin:12px 0 20px;padding:28px 36px;font-family:Times New Roman,Times,serif;font-size:15px;line-height:1.45;box-shadow:0 1px 6px #0000002e}.contract-paper h4{text-align:center;margin:18px 0 8px;font-size:15px}.contract-paper p{text-align:justify;margin:0 0 8px}.contract-paper p.is-center{text-align:center}.contract-fill,.contract-blank{font:inherit;color:inherit;background:0 0;border:0;border-bottom:1px solid #1c1c1c;padding:0 2px}.contract-blank:focus{outline:1px solid #a2806c}.contract-table{border-collapse:collapse;width:100%;margin:8px 0 12px;font-size:13px}.contract-table th,.contract-table td{vertical-align:top;border:1px solid #1c1c1c;padding:4px 6px}.contract-table th,.contract-table td:nth-child(n+3){text-align:center}.contract-table td:last-child,.contract-table th:last-child,.contract-table .num{text-align:right}.contract-gap{height:16px}.chat-launch{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;display:grid;position:relative}.chat-badge{color:#fff;text-align:center;background:#9b3b2e;border-radius:999px;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px;position:absolute;top:-2px;right:-2px}.chat-badge.is-row{position:static}.chat-backdrop{z-index:12;background:0 0;border:0;padding:0;position:fixed;inset:0}.chat-panel{z-index:13;background:#fff;border:1px solid #a2806c47;border-radius:16px;flex-direction:column;width:min(400px,100vw - 24px);height:min(640px,100svh - 96px);display:flex;position:fixed;top:72px;right:16px;overflow:hidden;box-shadow:0 16px 40px #28201c29}.chat-head{border-bottom:1px solid #a2806c29;justify-content:space-between;align-items:center;gap:10px;padding:12px;display:flex}.chat-head strong{display:block}.chat-note,.chat-empty{margin:0;padding:12px}.chat-list{flex-direction:column;display:flex;overflow:auto}.chat-row{text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #a2806c1f;justify-content:space-between;gap:12px;width:100%;padding:12px;display:flex}.chat-row strong,.chat-preview{display:block}.chat-preview{color:var(--muted);margin-top:2px}.chat-row-side{flex-direction:column;flex:none;align-items:flex-end;gap:6px;display:flex}.chat-log{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow:auto}.chat-bubble{background:#f3f1ef;border-radius:14px;align-self:flex-start;max-width:85%;padding:8px 10px}.chat-bubble.is-mine{background:#a2806c2e;align-self:flex-end}.chat-bubble p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.chat-author{margin-bottom:2px;font-size:.75rem;font-weight:700}.chat-time{color:var(--muted);margin-top:4px;font-size:.75rem}.chat-photo{border-radius:10px;max-width:220px;max-height:220px;display:block}.chat-compose{border-top:1px solid #a2806c29;flex-direction:column;gap:8px;padding:10px 12px 12px;display:flex}.chat-compose-row{align-items:flex-end;gap:8px;display:flex}.chat-input{resize:none;flex:1;min-width:0}.chat-file{display:none}.chat-pending{align-items:center;gap:8px;display:flex}.chat-pending img{object-fit:cover;border-radius:8px;width:56px;height:56px}.chat-send-error{color:var(--danger);margin:0;font-size:.85rem}
