:root{--font: "Heebo", "Segoe UI", Arial, sans-serif;--c-bg: #f2f6f8;--c-bg-2: #e9f0f3;--c-surface: #ffffff;--c-ink: #14313f;--c-muted: #5b7482;--c-line: #dde6eb;--c-line-strong: #c9d6dd;--c-brand: #0f7d93;--c-brand-hover: #0b6a7d;--c-brand-ink: #0a5566;--c-brand-soft: #e2f3f6;--c-sidebar: #0f2e3b;--c-on-dark: #cfe5ec;--c-on-dark-muted: #93b7c3;--c-danger: #b3372b;--c-danger-soft: #fdecea;--c-warn: #85540c;--c-warn-soft: #fff5e1;--c-warn-line: #f0d6a3;--c-success: #17784d;--hw-black: #1f2a30;--hw-nickel: #9eabb2;--hw-gold: #b8935a;--hw-white: #f1f4f5;--radius: 14px;--radius-sm: 10px;--shadow: 0 1px 2px rgb(16 47 61 / 5%), 0 4px 16px rgb(16 47 61 / 4%);--drawer-hidden: translateX(-100%);color-scheme:light}[dir=rtl]{--drawer-hidden: translateX(100%)}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;font-family:var(--font);font-size:15px;line-height:1.45;color:var(--c-ink);background:var(--c-bg)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{line-height:1.25}h3{margin:0 0 4px;font-size:15px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.muted{margin:0;color:var(--c-muted);font-size:13px}.disclaimer{margin:0;color:var(--c-muted);font-size:12px}:focus-visible{outline:3px solid rgb(15 125 147 / 45%);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 14px;border:1px solid transparent;border-radius:var(--radius-sm);background:none;font-size:14px;font-weight:600;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s}a.btn{color:inherit;text-decoration:none}.btn:disabled{cursor:not-allowed;opacity:.45}.btn--primary{background:var(--c-brand);color:#fff}.btn--primary:not(:disabled):hover{background:var(--c-brand-hover)}.btn--ghost{border-color:var(--c-line-strong);background:var(--c-surface)}.btn--ghost:not(:disabled):hover{border-color:var(--c-brand);color:var(--c-brand-ink)}.btn--icon{min-width:40px;padding:8px}.btn--small{min-height:34px;padding:6px 10px;font-size:13px}.btn--icon.btn--small{min-width:30px;min-height:30px;padding:4px}.btn--on-dark{border-color:#ffffff24;background:#ffffff0d;color:var(--c-on-dark)}.btn--on-dark:hover{background:#ffffff1f}.btn.is-recording{border-color:var(--c-danger);background:var(--c-danger-soft);color:var(--c-danger);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{box-shadow:0 0 0 6px #b3372b1f}}.button-row{display:flex;flex-wrap:wrap;gap:8px}.only-mobile{display:none}.app{display:flex;min-height:100vh}.main{display:flex;flex:1;flex-direction:column;min-width:0}.overlay{position:fixed;inset:0;z-index:35;background:#08182073}.sidebar{position:sticky;top:0;display:flex;flex:none;flex-direction:column;width:268px;height:100vh;overflow:hidden;background:var(--c-sidebar);color:var(--c-on-dark);transition:width .2s ease}.sidebar.is-collapsed{width:72px}.sidebar.is-collapsed .brand{flex-direction:column;gap:10px;padding:16px 0 12px}.sidebar.is-collapsed .sidebar__heading{justify-content:center;padding:12px 0 8px}.sidebar.is-collapsed .job-list{align-items:center;padding:4px 0}.sidebar.is-collapsed .sidebar__footer{align-items:center;padding:12px 0 16px}.sidebar.is-collapsed .sidebar__backup{flex-direction:column}.sidebar__toggle{margin-inline-start:auto}.sidebar.is-collapsed .sidebar__toggle{margin:0}.job-item--compact{justify-content:center;width:auto;padding:6px}.job-item__initials{font-size:13px;font-weight:700}.job-item--compact.is-selected .job-item__initials{background:#ffffff2e}.brand{display:flex;align-items:center;gap:12px;padding:22px 18px;border-bottom:1px solid rgb(255 255 255 / 8%)}.brand__mark{display:flex;flex:none;align-items:center;justify-content:center;gap:4px;width:40px;height:40px;border-radius:11px;background:linear-gradient(135deg,#34b6c8,#0f7d93)}.brand__mark span{width:9px;height:22px;border-radius:2px;background:#ffffffe0;transform:skew(-8deg)}.brand__text b{display:block;color:#fff;font-size:19px}.brand__text small{color:var(--c-on-dark-muted);font-size:12px}.brand .only-mobile{margin-inline-start:auto}.sidebar__heading{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 8px;color:var(--c-on-dark-muted);font-size:13px;font-weight:700}.sidebar__search{display:flex;align-items:center;gap:8px;margin:0 12px 8px;padding:0 10px;border-radius:9px;background:#ffffff12;color:var(--c-on-dark-muted)}.sidebar__search input{flex:1;min-width:0;padding:9px 0;border:0;background:transparent;color:#fff;font-size:14px;outline:none}.job-list{display:flex;flex:1;flex-direction:column;gap:4px;padding:4px 10px;overflow-y:auto}.job-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--c-on-dark);text-align:start}.job-item:hover{background:#ffffff0f}.job-item.is-selected{background:#1d6577;color:#fff}.job-item__icon{display:grid;flex:none;place-items:center;width:32px;height:32px;border-radius:8px;background:#ffffff14}.job-item__text{display:flex;flex-direction:column;min-width:0}.job-item__text strong,.job-item__text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-item__text strong{font-size:14px}.job-item__text small{color:var(--c-on-dark-muted);font-size:12px}.sidebar__empty{padding:8px;color:var(--c-on-dark-muted);font-size:13px}.sidebar__footer{display:flex;flex-direction:column;gap:10px;padding:14px 16px 18px;border-top:1px solid rgb(255 255 255 / 8%);color:var(--c-on-dark-muted);font-size:12.5px}.sidebar__storage{display:flex;align-items:center;gap:8px;margin:0}.sidebar__backup{display:flex;flex-wrap:wrap;gap:6px}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 24px;border-bottom:1px solid var(--c-line);background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.topbar__title{display:flex;align-items:center;gap:10px;min-width:0}.topbar__title>div{min-width:0}.topbar h1{margin:0;overflow:hidden;font-size:20px;text-overflow:ellipsis;white-space:nowrap}.eyebrow{color:var(--c-muted);font-size:12px}.topbar__actions{display:flex;flex:none;align-items:center;gap:8px}.save-status{display:inline-flex;align-items:center;gap:5px;padding-inline-end:4px;color:var(--c-success);font-size:13px}.save-status--error{color:var(--c-danger)}.content{display:flex;flex-direction:column;gap:16px;width:100%;max-width:1480px;margin-inline:auto;padding:20px 24px 40px}.app-footer{padding-top:8px;color:var(--c-muted);font-size:12px;text-align:center}.mobile-total{display:none}.notice{display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border:1px solid transparent;border-radius:var(--radius-sm);font-size:13.5px}.notice svg{flex:none}.notice--demo{border-color:var(--c-warn-line);background:var(--c-warn-soft);color:var(--c-warn)}.notice--info{justify-content:space-between;border-color:#bfe3ea;background:var(--c-brand-soft);color:var(--c-brand-ink)}.notice--error{border-color:#f3c3bd;background:var(--c-danger-soft);color:var(--c-danger)}.message{margin:0;padding:10px 12px;border-radius:var(--radius-sm);font-size:13.5px}.message p{margin:0}.message .link-button{margin-top:6px}.message ul,.message-list{margin:6px 0 0;padding-inline-start:18px}.message__title{display:flex;align-items:center;gap:6px}.message--error{background:var(--c-danger-soft);color:var(--c-danger)}.message--warn,.message-list--warn{background:var(--c-warn-soft);color:var(--c-warn)}.message-list--warn{padding:8px 12px;padding-inline-start:28px;border-radius:var(--radius-sm);font-size:13px}.message--success{margin-top:10px;background:#e6f5ee;color:var(--c-success)}.badge{padding:2px 8px;border-radius:999px;font-size:11px;font-weight:700}.badge--warn{background:var(--c-warn-soft);color:var(--c-warn)}.toast{position:fixed;bottom:24px;left:50%;z-index:60;max-width:calc(100vw - 32px);padding:10px 16px;border-radius:var(--radius-sm);background:var(--c-ink);color:#fff;font-size:14px;box-shadow:0 8px 24px #0003;transform:translate(-50%);animation:toast 3.2s ease forwards}.toast--action{display:flex;align-items:center;gap:14px;animation-duration:7s}.toast__action{min-height:32px;padding:4px 10px;border:1px solid rgb(255 255 255 / 45%);border-radius:8px;background:none;color:#fff;font-weight:700}.toast__action:hover{background:#ffffff1f}@keyframes toast{0%{opacity:0;translate:0 10px}8%,85%{opacity:1;translate:0 0}to{opacity:0}}.card{padding:18px;border:1px solid var(--c-line);border-radius:var(--radius);background:var(--c-surface);box-shadow:var(--shadow)}.card__header{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.card__header h2{display:flex;align-items:center;gap:6px;margin:0;font-size:17px}.card__subtitle{margin:2px 0 0;color:var(--c-muted);font-size:13px}.workspace{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(340px,1fr);align-items:start;gap:16px}.workspace__primary,.workspace__secondary{display:flex;flex-direction:column;gap:16px;min-width:0}.panel-stack{display:flex;flex-direction:column;gap:18px}.job-details{padding:14px 18px}.job-details__main,.job-details__extra{display:grid;grid-template-columns:1fr 1fr;gap:12px}.job-details__extra{margin-top:10px}.job-details__more summary{display:inline-flex;align-items:center;gap:4px;margin-top:10px;color:var(--c-brand);font-size:13px;font-weight:600;list-style:none;cursor:pointer}.job-details__more summary::-webkit-details-marker{display:none}.text-field{display:flex;flex-direction:column;gap:4px;color:var(--c-muted);font-size:13px;font-weight:600}.text-field input,.text-field textarea{padding:9px 12px;border:1px solid var(--c-line-strong);border-radius:var(--radius-sm);background:var(--c-surface);color:var(--c-ink);font-size:16px;font-weight:400;outline:none}.text-field input:focus,.text-field textarea:focus{border-color:var(--c-brand);box-shadow:0 0 0 3px var(--c-brand-soft)}.text-field--wide{grid-column:1 / -1}.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:10px}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field label{color:var(--c-muted);font-size:13px;font-weight:600}.field__control{display:flex;align-items:center;border:1px solid var(--c-line-strong);border-radius:var(--radius-sm);background:var(--c-surface);transition:border-color .15s,box-shadow .15s}.field__control:focus-within{border-color:var(--c-brand);box-shadow:0 0 0 3px var(--c-brand-soft)}.field__control input{flex:1;min-width:0;padding:9px 12px;border:0;border-radius:var(--radius-sm);background:transparent;font-size:16px;font-variant-numeric:tabular-nums;font-weight:600;text-align:end;outline:none}.field__unit{padding-inline:0 12px;color:var(--c-muted);font-size:13px;white-space:nowrap}.field--invalid .field__control{border-color:var(--c-danger);box-shadow:0 0 0 3px var(--c-danger-soft)}.field__error{color:var(--c-danger);font-size:12.5px}.field__hint{color:var(--c-muted);font-size:12px}.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:var(--radius-sm);background:var(--c-bg-2)}.segmented button{padding:7px 12px;border:0;border-radius:8px;background:transparent;color:var(--c-muted);font-size:14px;font-weight:600}.segmented button.is-active{background:var(--c-surface);color:var(--c-brand-ink);box-shadow:0 1px 3px #102f3d1f}.option-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 12px;padding-block:6px}.option-row__label{color:var(--c-muted);font-size:13px;font-weight:600}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid var(--c-line-strong);border-radius:999px;background:var(--c-surface);font-size:13px;font-weight:600}.chip.is-active{border-color:var(--c-brand);background:var(--c-brand-soft);color:var(--c-brand-ink)}.swatch{width:14px;height:14px;border:1px solid rgb(0 0 0 / 18%);border-radius:50%}.swatch--black{background:var(--hw-black)}.swatch--nickel{background:linear-gradient(135deg,#c9d2d7,var(--hw-nickel))}.swatch--gold{background:linear-gradient(135deg,#d8b57a,var(--hw-gold))}.swatch--white{background:var(--hw-white)}.allowances{padding:12px 14px;border:1px dashed var(--c-line-strong);border-radius:12px}.allowances summary{display:flex;align-items:center;gap:8px;font-weight:700;list-style:none;cursor:pointer}.allowances summary::-webkit-details-marker{display:none}.allowances__chevron{margin-inline-start:auto;transition:transform .2s}.allowances[open] .allowances__chevron{transform:rotate(180deg)}.allowances[open]>.muted{margin-top:8px}.allowances .btn{margin-top:12px}.panel-stack>.btn{align-self:flex-start}.editor{padding-top:10px}.tabs{display:flex;gap:4px;margin:0 -6px 16px;border-bottom:1px solid var(--c-line)}.tabs button{position:relative;display:flex;flex:1;align-items:center;justify-content:center;gap:6px;padding:10px 6px;border:0;border-bottom:2px solid transparent;background:none;color:var(--c-muted);font-size:14px;font-weight:600}.tabs button.is-active{border-bottom-color:var(--c-brand);color:var(--c-brand-ink)}.tabs__alert{width:8px;height:8px;border-radius:50%;background:var(--c-danger)}.designer__frame{position:relative;width:100%;min-height:280px;max-height:68vh;aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--c-line);border-radius:var(--radius-sm);background:#f9fcfd}.designer__overlay{position:absolute;top:12px;inset-inline:12px;display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid var(--c-warn-line);border-radius:var(--radius-sm);background:var(--c-warn-soft);color:var(--c-warn);font-size:13px;font-weight:600}.designer__footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 12px;margin-top:10px;font-size:12.5px}.designer__footer span{display:inline-flex;align-items:center;gap:6px}.drawing{display:block;user-select:none;-webkit-user-select:none;touch-action:pan-y;print-color-adjust:exact;-webkit-print-color-adjust:exact}.drawing__bg{fill:#f9fcfd}.grid-line{stroke:#e2ecf0}.hatch-line{stroke:#a6b7bf}.wall{stroke:#8ea2ac}.floor{stroke:#7b919c}.tray{fill:#8ccdde1f}.glass{fill:#8ccdde59;stroke:#2a8aa3}.glass--door{fill:#afe1ec52}.glass-shine{stroke:#ffffffe5;stroke-linecap:round}.glass-line{stroke:#2a8aa3;stroke-linecap:round}.glass-line--door{stroke:#46abc4}.swing{fill:none;stroke:#8aa2ae}.joint{stroke:#1b6f86}.hw--black{fill:var(--hw-black)}.hw--nickel{fill:var(--hw-nickel)}.hw--gold{fill:var(--hw-gold)}.hw--white{fill:var(--hw-white);stroke:#94a5ad}.panel-label{fill:#1d5568;font-weight:700}.panel-size{fill:#2c6c80;font-variant-numeric:tabular-nums}.dim line{stroke:#6f8b98}.dim text{fill:#2c5466;font-weight:600;font-variant-numeric:tabular-nums}.drag-handle{outline:none;cursor:ew-resize;touch-action:none}.drag-handle--vertical{cursor:ns-resize}.drag-handle__hit{fill:transparent}.drag-handle__ring{fill:#0f7d9329;transition:fill .15s}.drag-handle:hover .drag-handle__ring{fill:#0f7d9342}.drag-handle:focus-visible .drag-handle__ring{fill:#0f7d9361}.drag-handle__knob{fill:var(--c-brand);stroke:#fff}.drag-handle__arrows{fill:none;stroke:#fff;stroke-linecap:round;stroke-linejoin:round}.instruction__form{display:flex;gap:8px}.instruction__form input{flex:1;min-width:0;padding:9px 12px;border:1px solid var(--c-line-strong);border-radius:var(--radius-sm);font-size:16px;outline:none}.instruction__form input:focus{border-color:var(--c-brand);box-shadow:0 0 0 3px var(--c-brand-soft)}.hint{margin:8px 0 0;color:var(--c-muted);font-size:12.5px}.message--error:has(+.preview),.hint+.message{margin-top:10px}.preview{display:flex;flex-direction:column;gap:10px;margin-top:12px;padding:12px 14px;border:1px solid #bfe3ea;border-radius:12px;background:#f5fbfc}.preview h3{margin:0;font-size:14px}.preview__changes{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.preview__changes li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-bottom:6px;border-bottom:1px dashed var(--c-line)}.preview__changes li>span:first-child{flex:1;font-weight:600}.preview__values{font-variant-numeric:tabular-nums}.preview__changes small{flex-basis:100%}.preview__actions{display:flex;flex-wrap:wrap;gap:8px}.cut-list{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}.cut-row{display:flex;gap:12px;padding:12px;border:1px solid var(--c-line);border-radius:12px}.cut-row__index{display:grid;flex:none;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--c-brand-soft);color:var(--c-brand-ink);font-weight:700}.cut-row__body{flex:1;min-width:0}.cut-row__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px}.cut-row__size{font-size:18px;font-variant-numeric:tabular-nums}.cut-row__meta{display:flex;flex-direction:column;gap:2px;margin-top:4px;color:var(--c-muted);font-size:12.5px}.formula{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px;font-variant-numeric:tabular-nums}.formula>span{display:inline-flex;gap:4px}.formula__op{color:var(--c-muted)}.cut-total{display:flex;align-items:baseline;justify-content:space-between;padding-top:12px;border-top:1px solid var(--c-line);font-weight:600}.cut-total strong{color:var(--c-brand-ink);font-size:20px}.breakdown{display:flex;flex-direction:column;margin:0}.breakdown>div{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px dashed var(--c-line)}.breakdown dt small{display:block;color:var(--c-muted);font-size:12px}.breakdown dd{margin:0;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.breakdown__sub dt,.breakdown__sub dd{font-weight:700}.breakdown>.breakdown__total{margin-top:8px;padding:12px;border:0;border-radius:var(--radius-sm);background:var(--c-brand-soft);font-size:17px;font-weight:700}.totals{border:0;background:linear-gradient(140deg,#123c4c,#0f6e82);color:#fff}.totals__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.totals__header h2{margin:0;font-size:16px}.live{display:inline-flex;align-items:center;gap:6px;font-size:12px;opacity:.9}.live__dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#3ddc97;box-shadow:0 0 0 3px #3ddc9733}.live--off .live__dot{background:#f2a33a;box-shadow:0 0 0 3px #f2a33a33}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.stat-grid>div{padding:10px;border-radius:var(--radius-sm);background:#ffffff14}.stat-grid span{font-size:12px;opacity:.8}.stat-grid strong{display:block;font-size:16px;font-variant-numeric:tabular-nums}.grand-total{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px;margin-top:14px}.grand-total strong{font-size:30px;font-variant-numeric:tabular-nums;letter-spacing:-.5px}.totals .disclaimer{margin-top:6px;color:#ffffffb3}.landing{display:flex;flex-direction:column;align-items:center;min-height:100vh;min-height:100dvh;padding:24px 16px;background:linear-gradient(rgb(15 125 147 / 5%) 1px,transparent 1px) 0 0 / 24px 24px,linear-gradient(90deg,rgb(15 125 147 / 5%) 1px,transparent 1px) 0 0 / 24px 24px,var(--c-bg)}.landing--splash{justify-content:center}.landing--splash .brand__mark{animation:pulse-soft 1.2s ease-in-out infinite}@keyframes pulse-soft{50%{opacity:.5}}.landing__main{display:flex;flex:1;flex-direction:column;align-items:center;justify-content:center;gap:18px;width:100%;max-width:560px;text-align:center}.landing__brand{display:flex;align-items:center;gap:12px;color:var(--c-ink);font-size:24px;font-weight:800}.landing__title{margin:8px 0 0;font-size:clamp(30px,6vw,44px);font-weight:800;letter-spacing:-.5px;line-height:1.15}.landing__subtitle{max-width:480px;margin:0;color:var(--c-muted);font-size:17px}.landing__points{display:flex;flex-direction:column;gap:10px;width:100%;margin:10px 0 4px;padding:0;list-style:none;text-align:start}.landing__points li{display:flex;align-items:flex-start;gap:14px;padding:14px 16px;border:1px solid var(--c-line);border-radius:var(--radius);background:#ffffffd9}.landing__points strong{display:block;font-size:15.5px}.landing__points p{margin:2px 0 0;color:var(--c-muted);font-size:14px}.landing__icon{display:grid;flex:none;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--c-brand-soft);color:var(--c-brand-ink)}.landing__cta{width:min(100%,360px);min-height:52px;margin-top:6px;border-radius:12px;font-size:16.5px}.landing__hint{margin:-6px 0 0;color:var(--c-muted);font-size:13px}.landing__footer{padding-top:24px;color:var(--c-muted);font-size:12px;text-align:center}.cloud-panel{display:flex;flex-direction:column;gap:8px}.cloud-panel__line{margin:0;line-height:1.4}.cloud-panel__cta{align-self:flex-start}.sidebar.is-collapsed .cloud-panel__cta{align-self:center}.cloud-panel__account{display:flex;align-items:flex-start;gap:8px;color:var(--c-on-dark)}.cloud-panel__account svg{flex:none;margin-top:3px}.cloud-panel__account div{display:flex;flex-direction:column;min-width:0}.cloud-panel__account strong,.cloud-panel__account small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cloud-panel__account small{color:var(--c-on-dark-muted);text-align:end}.cloud-panel__status{display:flex;align-items:center;gap:6px;margin:0}.cloud-panel__status--synced{color:#7fe0b3}.cloud-panel__status--offline,.cloud-panel__status--syncing{color:#ffd18a}.cloud-panel__status--error{color:#ffb4a8}.cloud-badge{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--c-line);border-radius:50%;background:var(--c-surface);color:var(--c-muted)}.cloud-badge--synced{color:var(--c-success)}.cloud-badge--syncing,.cloud-badge--offline,.cloud-badge--needsOrganization{color:var(--c-warn)}.cloud-badge--error{color:var(--c-danger)}.cloud-badge--rail{align-self:center;border-color:#ffffff24;background:#ffffff0d}.cloud-badge--rail.cloud-badge--synced{color:#7fe0b3}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-backdrop{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:16px;background:#0818207f}.modal{display:flex;flex-direction:column;gap:12px;width:min(420px,100%);max-height:calc(100vh - 32px);overflow-y:auto;padding:20px;border-radius:var(--radius);background:var(--c-surface);box-shadow:0 24px 60px #00000040;outline:none}.modal__header{display:flex;align-items:center;justify-content:space-between;gap:12px}.modal__header h2{margin:0;font-size:18px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-form .btn--primary{min-height:44px}.auth-switch{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.link-button{padding:4px 0;border:0;background:none;color:var(--c-brand);font-size:13.5px;font-weight:600}.link-button:hover{text-decoration:underline}.link-button:disabled{color:var(--c-muted);text-decoration:none;cursor:default}.link-button--danger{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;color:var(--c-danger)}.link-button--on-dark{align-self:flex-start;color:var(--c-on-dark-muted);font-size:12.5px}.cloud-panel__switcher{max-width:100%;padding:2px 4px;border:1px solid rgb(255 255 255 / 18%);border-radius:6px;background:#ffffff0f;color:#fff;font-weight:700}.cloud-panel__switcher option{color:var(--c-ink)}.modal h3{margin:4px 0 8px;font-size:14px}.team-list,.invitation-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none}.team-list li,.invitation-list li{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--c-line);border-radius:var(--radius-sm)}.team-list__address{flex:1;min-width:0;font-weight:600;overflow-wrap:anywhere;text-align:start}.team-list__role{padding:4px 6px;border:1px solid var(--c-line-strong);border-radius:8px;background:var(--c-surface)}.role-chip{padding:2px 10px;border-radius:999px;background:var(--c-bg-2);color:var(--c-muted);font-size:12px;font-weight:700}.role-chip--owner{background:var(--c-brand-soft);color:var(--c-brand-ink)}.role-chip--admin{background:var(--c-warn-soft);color:var(--c-warn)}.invitation-list__text{display:flex;flex:1;flex-direction:column}.invitation-list__text small{color:var(--c-muted)}.team-invite{display:flex;flex-direction:column;gap:8px;padding-top:12px;border-top:1px solid var(--c-line)}.team-invite__row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}.team-invite select{padding:9px 10px;border:1px solid var(--c-line-strong);border-radius:var(--radius-sm);background:var(--c-surface);font-size:15px}.team-invite .btn--primary{align-self:flex-start}.invite-share{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid #bfe3ea;border-radius:var(--radius-sm);background:#f5fbfc;font-size:13.5px}.invite-share p{margin:0}.invite-share__message{padding:8px 10px;border-radius:8px;background:var(--c-surface);color:var(--c-muted)}.send-quote{display:flex;flex-direction:column;gap:10px}.send-quote p{margin:0}.send-quote__status{display:flex;align-items:center;gap:8px;color:var(--c-muted)}.send-quote__file{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid var(--c-line);border-radius:var(--radius-sm);font-weight:600;overflow-wrap:anywhere}.send-quote__file span{display:flex;flex-direction:column}.send-quote__file small{color:var(--c-muted);font-weight:400}.send-quote .btn--primary{min-height:44px}.send-quote__or{display:flex;align-items:center;gap:10px;color:var(--c-muted);font-size:12px}.send-quote__or:before,.send-quote__or:after{flex:1;border-top:1px solid var(--c-line);content:""}.pdf-stage{position:fixed;top:0;left:-10000px;background:#fff;pointer-events:none}.print-root{display:none}.quotation{color:#111;font-size:10.5pt}.quotation h2{margin:14px 0 6px;font-size:12pt}.quotation__header{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:8px;border-bottom:2px solid #0f6e82}.quotation__brand{color:#0f6e82;font-weight:800}.quotation__header h1{margin:2px 0 0;font-size:16pt}.quotation__meta,.quotation__facts{margin:0}.quotation__meta>div,.quotation__facts>div{display:flex;gap:8px}.quotation__meta dt,.quotation__facts dt{min-width:90px;color:#555}.quotation__meta dd,.quotation__facts dd{margin:0;font-weight:600}.quotation__warning{margin:10px 0;padding:8px 10px;border:1.5px solid #b45309;border-radius:6px;background:#fff7ed;font-size:9.5pt;font-weight:600}.quotation__grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.quotation__drawings{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.quotation__drawings figure{min-width:0;margin:0}.quotation__drawing{width:100%;aspect-ratio:11 / 10;border:1px solid #ccc}.quotation__drawings figcaption{margin-top:4px;color:#555;font-size:9pt;text-align:center}.quotation__table{width:100%;border-collapse:collapse}.quotation__table th,.quotation__table td{padding:6px 8px;border:1px solid #ccc;text-align:start;vertical-align:top;overflow-wrap:anywhere}.quotation__table td[dir=ltr]{white-space:nowrap}.quotation__table th{background:#f1f5f7}.quotation__table tfoot td{font-weight:700}.quotation .breakdown__total{background:#eef6f8}.quotation__notes{margin:0;white-space:pre-wrap}.quotation__footer{margin-top:16px;color:#777;font-size:8.5pt;text-align:center}.quotation section,.quotation figure{break-inside:avoid}@media print{@page{margin:12mm}body{background:#fff}.app,.toast,.pdf-stage{display:none!important}.print-root{display:block}}@media print and (max-width:520px){.quotation__grid,.quotation__drawings{grid-template-columns:minmax(0,1fr)}.quotation__header{flex-wrap:wrap;gap:8px}}@media(max-width:1100px){.workspace{grid-template-columns:minmax(0,1fr)}}@media(max-width:900px){.only-mobile{display:inline-flex}.only-desktop{display:none}.sidebar{position:fixed;inset-block:0;inset-inline-start:0;z-index:40;width:min(300px,86vw);height:auto;box-shadow:0 0 40px #0000004d;transform:var(--drawer-hidden);visibility:hidden;transition:transform .25s ease,visibility .25s}.sidebar.is-open{transform:none;visibility:visible}.topbar{padding:10px 14px}.content{padding:14px 12px 92px}.mobile-total{position:fixed;bottom:0;inset-inline:0;z-index:30;display:flex;align-items:baseline;justify-content:space-between;padding:10px 18px calc(10px + env(safe-area-inset-bottom));background:var(--c-sidebar);color:#fff;box-shadow:0 -4px 16px #00000026}.mobile-total strong{font-size:20px;font-variant-numeric:tabular-nums}.toast{bottom:76px}.app-footer{display:none}}@media(max-width:640px){.hide-small{display:none}.topbar h1{font-size:17px}.topbar__actions{gap:6px}.topbar__actions .btn{min-width:40px;padding:8px 10px}.card{padding:14px}.job-details__main,.job-details__extra{grid-template-columns:1fr}.designer__frame{aspect-ratio:1 / 1}.fields{grid-template-columns:repeat(2,minmax(0,1fr))}.stat-grid strong{font-size:14px}.grand-total strong{font-size:26px}.instruction__form{flex-wrap:wrap}.instruction__form input{flex-basis:100%}.instruction__form .btn--primary{flex:1}}
