@import"https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap";:root{--color-floorequa-black: #323232;--color-floorequa-blue: #004762;--color-floorequa-red: #ce0019;--color-floorequa-orange: #e68c00;--color-calstrim-teal: #00b19c;--color-ink: #0f2a37;--color-ink-soft: #3b5563;--color-ink-muted: #587282;--color-placeholder: #6f8592;--color-disabled: #9cb0ba;--color-structure: #004762;--color-structure-hover: #003a51;--color-structure-tint: #e5eef3;--color-action: #e68c00;--color-action-hover: #f29a12;--color-on-action: #002f44;--color-action-text: #9a5a00;--color-action-on-dark: #ffc46b;--color-accent: #00b19c;--color-accent-line: #009d8a;--color-accent-strong: #00796d;--color-accent-text: #005c52;--color-accent-tint: #e3f4f1;--color-accent-tint-soft: #f2faf8;--color-accent-light: #6fe4d7;--color-surface: #ffffff;--color-surface-muted: #f3f6f8;--color-page: #e9eff3;--color-table: #dbe4ea;--color-table-dot: #c1cfd7;--color-line: #d2dde3;--color-line-soft: #e7edf0;--color-line-strong: #c3d1d9;--color-decor: #9fb2bc;--color-overlay: rgba(8, 36, 50, .92);--color-focus: #00796d;--color-focus-glow: rgba(0, 121, 109, .15);--color-zone: #d9822b;--color-zone-edge: rgba(217, 130, 43, .45);--color-warning-tint: #fff6e6;--color-warning-tint-soft: #fffaf2;--color-warning-text: #6b4200;--color-caution-text: #8a5a00;--color-danger: #ce0019;--color-danger-tint: #fdecee;--color-danger-text: #8b2634;--font-size-2xs: 10.5px;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 21px;--font-size-2xl: 28px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--duration-fast: .12s;--duration-base: .18s;--font-sans: Lato, Helvetica Neue, Arial, sans-serif;--ease-out: cubic-bezier(.2, .8, .2, 1)}:root{font-family:var(--font-sans);color:var(--color-ink);background:var(--color-page);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}h1,h2,p{margin-top:0}.eyebrow{display:block;font-size:var(--font-size-xs);letter-spacing:.14em;font-weight:900;color:var(--color-ink-muted);margin-bottom:20px}.muted{color:var(--color-ink-soft);line-height:1.6;font-size:var(--font-size-base)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--color-accent)}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 20px;border-radius:var(--radius-md);border:1px solid transparent;font-weight:700;font-size:var(--font-size-base);line-height:1.2;transition:background-color var(--duration-fast) ease,border-color var(--duration-fast) ease,color var(--duration-fast) ease,transform 60ms ease}.button:active:not(:disabled):not([aria-disabled=true]){transform:translateY(1px)}@media(prefers-reduced-motion:reduce){.button{transition:none}}.primary{color:var(--color-on-action);background:var(--color-action);border-color:var(--color-action);box-shadow:inset 0 -2px #00000014}.primary:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-action-hover);border-color:var(--color-action-hover)}.full-width{width:100%;justify-content:space-between}.secondary{background:var(--color-surface);color:var(--color-ink);border-color:var(--color-line)}.secondary:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-surface-muted);border-color:var(--color-line-strong)}.ghost{background:transparent;color:var(--color-structure);border-color:transparent}.ghost:hover:not(:disabled):not([aria-disabled=true]){background:var(--color-surface-muted)}.button>svg{flex:none;width:16px;height:16px}.small{gap:7px;min-height:34px;padding:7px 13px;font-size:var(--font-size-md)}.room-remove{padding:4px 6px;border:0;background:none;font-size:var(--font-size-sm);font-weight:700;color:var(--color-danger-text);border-radius:var(--radius-sm);transition:background-color var(--duration-fast) ease}.room-remove:hover{background:var(--color-danger-tint)}@media(prefers-reduced-motion:reduce){.room-remove{transition:none}}.field{margin-bottom:22px}.field label{display:block;font-size:var(--font-size-md);font-weight:700;margin-bottom:8px;color:var(--color-ink)}.field input{width:100%;min-height:50px;padding:13px 15px;border-radius:var(--radius-md);border:1px solid var(--color-line-strong);background:var(--color-surface);color:var(--color-ink);font-size:var(--font-size-base);outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.field input::placeholder{color:var(--color-placeholder)}.field input:hover:not(:disabled):not(:focus){border-color:var(--color-ink-muted)}.field input:focus{border-color:var(--color-accent-strong);box-shadow:0 0 0 3px var(--color-focus-glow)}.field input:disabled{background:var(--color-surface-muted)}@media(prefers-reduced-motion:reduce){.field input{transition:none}}.password-field{position:relative}.password-field input{padding-right:70px}.password-toggle{position:absolute;right:12px;top:16px;border:0;padding:0;background:transparent;font-size:var(--font-size-sm);color:var(--color-ink-soft)}.field-error{margin:6px 0 0;font-size:var(--font-size-sm);line-height:1.5;color:var(--color-danger-text)}.info-tip-head{display:flex;align-items:center;gap:6px}.info-tip-head>:first-child{margin:0}.info-tip{margin-bottom:12px}.info-tip-button{display:inline-grid;place-items:center;flex:none;width:22px;height:22px;padding:0;border:0;border-radius:50%;background:none;color:var(--color-ink-muted)}.info-tip-button svg{width:16px;height:16px}.info-tip-button{transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.info-tip-button:hover,.info-tip-button[aria-expanded=true]{color:var(--color-accent-strong);background:var(--color-accent-tint)}@media(prefers-reduced-motion:reduce){.info-tip-button{transition:none}}.info-tip-panel{margin-top:8px;padding:10px 13px;border-radius:var(--radius-md);background:var(--color-surface-muted);font-size:var(--font-size-sm);line-height:1.65;color:var(--color-ink-soft)}.info-tip-panel>:first-child{margin-top:0}.info-tip-panel>:last-child{margin-bottom:0}.info-tip-panel p{margin:0 0 8px}.error-message{border-radius:var(--radius-md);background:var(--color-danger-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-danger) 30%,transparent);color:var(--color-danger-text);padding:11px 14px;font-size:var(--font-size-md);line-height:1.6}.global-error{max-width:1000px;margin:24px auto 0}.plan-note,.plan-notice{margin:12px 0 0;padding:10px 13px;font-size:var(--font-size-sm);line-height:1.6}.plan-note{border-radius:var(--radius-md);background:var(--color-warning-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-zone) 30%,transparent);color:var(--color-warning-text)}.plan-notice{border-radius:var(--radius-md);background:var(--color-accent-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-accent-strong) 30%,transparent);color:var(--color-accent-text)}.shortcuts-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:24px;background:#08243273}.shortcuts-dialog{width:min(780px,100%);max-height:calc(100dvh - 48px);overflow:auto;padding:20px 24px 18px;border-radius:14px;background:var(--color-surface);box-shadow:0 30px 80px -30px #08243299}.shortcuts-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.shortcuts-header h2{margin:0;color:var(--color-ink);font-size:var(--font-size-xl);font-weight:900}.shortcuts-close{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--color-ink-soft)}.shortcuts-close svg{width:14px;height:14px}.shortcuts-close:hover{background:var(--color-surface-muted);color:var(--color-ink)}.shortcuts-groups{columns:2;column-gap:32px}@media(max-width:720px){.shortcuts-groups{columns:1}}.shortcuts-group{break-inside:avoid;margin-bottom:18px}.shortcuts-group h3{margin:0 0 4px;color:var(--color-ink-muted);font-size:var(--font-size-2xs);font-weight:900;letter-spacing:.1em;text-transform:uppercase}.shortcuts-group dl{margin:0}.shortcut{display:grid;grid-template-columns:124px minmax(0,1fr);align-items:center;gap:12px;padding:5px 0;border-bottom:1px solid var(--color-line-soft)}.shortcut dt{display:flex;flex-wrap:wrap;align-items:center;gap:4px}.shortcut dd{margin:0;color:var(--color-ink-soft);font-size:var(--font-size-md)}.shortcut-combo{display:inline-flex;gap:3px}.shortcut-or{color:var(--color-ink-muted);font-size:var(--font-size-xs)}.shortcuts-dialog kbd{min-width:22px;padding:1px 6px;border:1px solid var(--color-line);border-bottom-width:2px;border-radius:5px;background:var(--color-surface-muted);color:var(--color-ink);font-family:inherit;font-size:var(--font-size-xs);font-weight:700;line-height:1.6;text-align:center}.shortcut-new{margin-left:6px;padding:1px 6px;border-radius:999px;background:var(--color-accent-tint);color:var(--color-accent-text);font-size:var(--font-size-2xs);font-weight:900;letter-spacing:.06em;text-transform:uppercase}.shortcuts-footer{margin:14px 0 0;color:var(--color-ink-muted);font-size:var(--font-size-sm)}.state-panel{text-align:center;max-width:630px;margin:100px auto;padding:40px}.state-panel h1{color:var(--color-structure);font-size:28px;line-height:1.3}.state-panel p{line-height:1.7;color:var(--color-ink-soft);margin-bottom:25px}.loading-indicator{display:inline-block;width:28px;height:28px;border:2px solid var(--color-line-strong);border-top-color:var(--color-accent-strong);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:25px}@media(prefers-reduced-motion:reduce){.loading-indicator{animation:none}}.toast-region{position:absolute;left:50%;bottom:62px;z-index:6;width:max-content;max-width:min(560px,100% - 32px);transform:translate(-50%);pointer-events:none}.toast{display:flex;align-items:center;gap:8px;padding:6px 6px 6px 14px;border-radius:var(--radius-lg);background:var(--color-overlay);color:var(--color-surface);font-size:var(--font-size-sm);line-height:1.4;box-shadow:0 12px 30px -14px #0000008c;pointer-events:auto}.toast-text{min-width:0}.toast-action{flex:none;min-height:28px;padding:3px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-action-on-dark);font-family:inherit;font-size:inherit;font-weight:700}.toast-action:hover{background:#ffffff1f}.toast-close{display:grid;flex:none;place-items:center;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:#ffffff1f;color:var(--color-surface)}.toast-close svg{width:12px;height:12px}.toast-close:hover{background:#ffffff38}.toast-enter-active,.toast-leave-active{transition:opacity var(--duration-base) var(--ease-out),transform var(--duration-base) var(--ease-out)}@media(prefers-reduced-motion:reduce){.toast-enter-active,.toast-leave-active{transition:none}}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(8px)}.app-header{position:relative;height:92px;padding:0 5%;display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);border-bottom:1px solid var(--color-line)}.app-header:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:linear-gradient(90deg,var(--color-floorequa-blue) 0 45%,var(--color-floorequa-red) 70%,var(--color-floorequa-orange) 100%)}.brand{display:flex;align-items:center;text-decoration:none}.brand-logo{display:block;width:200px;height:auto}.brand-divider{height:24px;width:1px;background:var(--color-line-strong);margin:0 20px}.app-name{font-size:var(--font-size-lg);font-weight:400;color:var(--color-structure)}.header-caption{color:var(--color-ink-soft);font-size:var(--font-size-md)}@media(max-width:800px){.header-caption,.app-header .brand-divider,.app-name{display:none}}.editor-bar{position:relative;z-index:5;display:flex;align-items:center;gap:16px;padding:3px 12px 0 18px;background:var(--color-surface);border-bottom:1px solid var(--color-line);box-shadow:0 8px 18px -16px #0f2a378c}.editor-bar:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--color-floorequa-blue) 0 45%,var(--color-floorequa-red) 70%,var(--color-floorequa-orange) 100%)}.editor-bar .brand-logo{width:112px}.editor-bar .brand-divider{margin:0;background:var(--color-line)}.editor-bar-brand{display:flex;align-items:center;gap:14px;flex:none;min-width:0}.editor-document{display:grid;min-width:0;max-width:210px;line-height:1.2}.editor-document-title{margin:0;font-size:var(--font-size-2xs);font-weight:900;letter-spacing:.09em;text-transform:uppercase;color:var(--color-ink-muted)}.editor-document-name{overflow:hidden;font-size:var(--font-size-md);font-weight:700;color:var(--color-ink);text-overflow:ellipsis;white-space:nowrap}.editor-bar-account{flex:none}.account-menu{position:relative;display:flex;align-items:center;gap:6px}.account-credits{display:inline-flex;align-items:center;gap:7px;height:30px;padding:0 11px 0 9px;border:1px solid var(--color-line);border-radius:999px;background:var(--color-surface-muted);color:var(--color-ink);font-size:var(--font-size-sm);font-weight:700;white-space:nowrap}.account-credits svg{width:15px;height:15px;color:var(--color-action-text)}.account-credits.is-empty{border-color:color-mix(in srgb,var(--color-zone) 40%,transparent);background:var(--color-warning-tint);color:var(--color-warning-text)}.bar-button,.account-avatar{display:grid;place-items:center;width:32px;height:32px;padding:0;border:0;font-weight:900;cursor:pointer;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}@media(prefers-reduced-motion:reduce){.bar-button,.account-avatar{transition:none}}.bar-button{border-radius:var(--radius-md);background:transparent;color:var(--color-ink-soft);font-size:15px}.bar-button:hover{background:var(--color-surface-muted);color:var(--color-ink)}.account-avatar{border-radius:50%;background:var(--color-structure);color:var(--color-surface);font-size:var(--font-size-sm)}.account-avatar:hover,.account-avatar[aria-expanded=true]{background:var(--color-structure-hover)}.account-dropdown{position:absolute;top:calc(100% + 10px);right:0;z-index:30;display:grid;gap:4px;width:230px;padding:14px;border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 16px 40px -12px #0f2a3773,0 0 0 1px #0f2a370f}.account-dropdown p{margin:0}.account-dropdown .button{margin-top:8px}.account-name{font-size:var(--font-size-base);font-weight:700;color:var(--color-ink)}.account-username{font-size:var(--font-size-sm);color:var(--color-ink-muted)}@media(max-width:1360px){.editor-document{max-width:150px}}.login-layout{min-height:calc(100vh - 92px);display:grid;grid-template-columns:1fr 1fr}@media(max-width:800px){.login-layout{grid-template-columns:1fr}}.introduction{padding:70px 13% 38px 10%;background:var(--color-structure);color:var(--color-surface);display:flex;flex-direction:column;position:relative;overflow:hidden}.introduction .eyebrow{color:#74dcce}.introduction h1{font-size:clamp(32px,3.2vw,52px);line-height:1.16;font-weight:700;letter-spacing:-1.4px;margin-bottom:22px}.introduction>p{font-size:16px;line-height:1.8;max-width:340px;color:#c1d9e3}@media(max-width:800px){.introduction{display:none}}.floorplan{position:relative;display:grid;grid-template-columns:1.5fr 1fr;grid-template-rows:100px 85px;gap:8px;border:2px solid #84bcc6;padding:7px;width:290px;margin:34px 0 44px 14px;transform:rotate(-5deg);background:repeating-linear-gradient(0deg,transparent,transparent 19px,rgba(255,255,255,.031372549) 20px),repeating-linear-gradient(90deg,transparent,transparent 19px,rgba(255,255,255,.031372549) 20px)}.plan-room{border:1px solid #599cad;padding:10px;font-size:10px;color:#90c6cf}.room-a{background:#00c5b31c;border-color:#57d8c4}.room-d{margin-left:-25px}.room-c{margin-right:25px}.plan-dimension{position:absolute;left:0;bottom:-27px;color:#81afb9;font-size:8px;letter-spacing:2px}.intro-footnote{margin-top:auto;font-size:12px;color:#a8c6d0;display:flex;align-items:center;gap:10px}.login-panel{background:var(--color-surface);padding:60px 12% 28px;display:flex;flex-direction:column;justify-content:center}@media(max-width:800px){.login-panel{padding:55px 30px 25px}}.login-card{width:100%;max-width:400px;margin:auto}.login-card .eyebrow{margin-bottom:12px}.login-card h2{font-size:32px;color:var(--color-structure);margin-bottom:12px;font-weight:700;letter-spacing:-.6px}.login-card form{margin-top:32px}.access-note{display:flex;align-items:flex-start;gap:12px;padding-top:28px;margin-top:30px;border-top:1px solid var(--color-line-soft)}.access-note p{margin:0;font-size:12px;line-height:1.8;color:var(--color-ink-soft)}.note-icon{display:inline-grid;place-items:center;flex:0 0 16px;height:16px;border:1px solid #93a9b2;border-radius:50%;font-size:11px;color:#75909d;margin-top:3px}.panel-footer{font-size:11px;color:#96a8b0;text-align:center;margin:52px 0 0}.editor-shell main{height:100vh;height:100dvh;min-height:620px}.workspace{height:100%}.global-error{position:fixed;top:64px;left:50%;z-index:50;width:min(560px,100% - 32px);margin:0;transform:translate(-50%);box-shadow:0 12px 30px -12px #0f2a3766}.editor-workflow{display:grid;grid-template-rows:56px minmax(0,1fr);height:100%}.workflow-navigation{display:flex;flex:1;justify-content:center;min-width:0}.workflow-steps{display:flex;align-items:center;gap:4px;margin:0;padding:3px;border-radius:999px;background:var(--color-structure-tint);list-style:none}.workflow-steps-item{display:flex;align-items:center;gap:4px}.workflow-link{flex:none;width:16px;height:2px;border-radius:1px;background:var(--color-line-strong)}.workflow-link.is-done{background:var(--color-accent-line)}.workflow-step{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 13px 0 6px;border:0;border-radius:999px;background:transparent;color:var(--color-ink-soft);font-size:var(--font-size-md);font-weight:700;white-space:nowrap;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease}.workflow-step:hover:not(:disabled){background:#ffffffbf;color:var(--color-ink)}.workflow-step.is-current,.workflow-step.is-current:hover{background:var(--color-structure);color:var(--color-surface)}.workflow-step.is-locked{opacity:.55;cursor:not-allowed}@media(prefers-reduced-motion:reduce){.workflow-step{transition:none}}.step-number{display:grid;place-items:center;flex:0 0 22px;height:22px;border:1.5px solid var(--color-line-strong);border-radius:50%;color:var(--color-ink-muted);font-size:var(--font-size-xs);font-weight:900}.step-number svg{width:13px;height:13px}.is-done .step-number{border-color:var(--color-accent-strong);background:var(--color-accent-strong);color:var(--color-surface)}.is-current .step-number{border-color:var(--color-action);background:var(--color-action);color:var(--color-on-action)}.is-busy .step-number{border-color:var(--color-line-strong);background:transparent;color:var(--color-accent-strong)}.is-current.is-busy .step-number{border-color:#ffffff59;color:var(--color-action-on-dark)}.step-spinner{width:12px;height:12px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@media(prefers-reduced-motion:reduce){.step-spinner{animation:none}}.workflow-content{display:grid;grid-template-columns:minmax(0,1fr) clamp(400px,31.25vw,480px);min-height:0}.workflow-sidebar{position:relative;z-index:3;display:grid;grid-template-rows:minmax(150px,var(--overview-rows, 55fr)) 14px minmax(150px,var(--step-rows, 45fr)) auto;min-height:0;min-width:0;border-left:1px solid var(--color-line);background:var(--color-page);box-shadow:-8px 0 24px -20px #0f2a3780}.workflow-sidebar.is-overview-folded{grid-template-rows:auto 14px minmax(0,1fr) auto}.workflow-sidebar.is-step-folded{grid-template-rows:minmax(0,1fr) 14px auto auto}.workflow-sidebar.is-step-folded .step-body{display:none}.workflow-sidebar.is-compact{grid-template-rows:auto 12px minmax(0,1fr) auto}.sidebar-splitter{display:grid;place-items:center;cursor:row-resize;touch-action:none}.sidebar-splitter:before{content:"";width:44px;height:5px;border-radius:3px;background:var(--color-decor);transition:width var(--duration-fast) ease,background-color var(--duration-fast) ease}.sidebar-splitter:hover:before,.sidebar-splitter:focus-visible:before{width:60px;background:var(--color-ink-muted)}.sidebar-splitter.is-dragging:before{width:60px;background:var(--color-accent-strong)}.sidebar-splitter:focus-visible{outline:none;box-shadow:inset 0 0 0 2px var(--color-focus)}@media(prefers-reduced-motion:reduce){.sidebar-splitter:before{transition:none}}.panel-fold{display:grid;flex:none;place-items:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-ink-muted)}.panel-fold svg{width:16px;height:16px;transition:transform var(--duration-base) var(--ease-out)}.panel-fold:hover{background:var(--color-surface-muted);color:var(--color-ink)}.panel-fold:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}@media(prefers-reduced-motion:reduce){.panel-fold svg{transition:none}}.overview-heading .panel-fold[aria-expanded=true] svg,.step-heading .panel-fold[aria-expanded=false] svg{transform:rotate(180deg)}.step-card{display:flex;flex-direction:column;min-height:0;background:var(--color-surface);box-shadow:0 -1px 0 var(--color-line)}.step-heading{display:grid;flex:none;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--color-line-soft)}.step-heading .panel-fold{grid-column:2;grid-row:1/span 2;margin-top:4px}.step-heading h2{margin:0;color:var(--color-ink);font-size:var(--font-size-lg);font-weight:900;line-height:1.3;letter-spacing:-.01em}.step-heading h2:focus{outline:none}.step-heading h2:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px}.step-heading .info-tip{grid-column:1;margin-bottom:0}.step-heading .info-tip-panel{max-height:min(40vh,300px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-line-strong) transparent}.step-heading .info-tip-panel::-webkit-scrollbar{width:8px;height:8px}.step-heading .info-tip-panel::-webkit-scrollbar-track{background:transparent}.step-heading .info-tip-panel::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:6px;background:var(--color-line-strong);background-clip:content-box}.step-heading .step-description{font-size:var(--font-size-sm)}.step-position{grid-column:1;margin-bottom:1px;color:var(--color-ink-muted);font-size:var(--font-size-xs);font-weight:700}.step-help{display:grid;gap:6px;margin-top:10px}.step-help p,.step-help ul,.step-help ol{margin:0}.step-help-title{margin:6px 0 0;color:var(--color-ink);font-size:var(--font-size-sm);font-weight:900}.step-help-list{display:grid;gap:4px;padding-left:18px}.step-help-note{color:var(--color-ink-muted);font-size:var(--font-size-xs)}.step-body{flex:1;min-height:0;padding:14px 16px 18px;overflow:auto;overscroll-behavior:contain;background:linear-gradient(var(--color-surface) 30%,rgba(255,255,255,0)) top/100% 28px no-repeat local,linear-gradient(rgba(255,255,255,0),var(--color-surface) 70%) bottom/100% 28px no-repeat local,radial-gradient(farthest-side at 50% 0,rgba(15,42,55,.16),transparent) top/100% 10px no-repeat scroll,radial-gradient(farthest-side at 50% 100%,rgba(15,42,55,.16),transparent) bottom/100% 10px no-repeat scroll;background-color:var(--color-surface);scrollbar-width:thin;scrollbar-color:var(--color-line-strong) transparent}.step-body::-webkit-scrollbar{width:8px;height:8px}.step-body::-webkit-scrollbar-track{background:transparent}.step-body::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:6px;background:var(--color-line-strong);background-clip:content-box}.plan-section-title{margin:0 0 8px;color:var(--color-ink);font-size:var(--font-size-md);font-weight:900}.plan-step,.recognition-step,.rooms-step,.zones-step,.export-step{display:flex;flex-direction:column;gap:14px}.plan-step>p,.plan-step>section,.plan-step>form,.plan-step>label,.plan-step>dl,.plan-step>div,.recognition-step>p,.recognition-step>section,.recognition-step>form,.recognition-step>label,.recognition-step>dl,.recognition-step>div,.rooms-step>p,.rooms-step>section,.rooms-step>form,.rooms-step>label,.rooms-step>dl,.rooms-step>div,.zones-step>p,.zones-step>section,.zones-step>form,.zones-step>label,.zones-step>dl,.zones-step>div,.export-step>p,.export-step>section,.export-step>form,.export-step>label,.export-step>dl,.export-step>div{margin:0}.step-status{display:flex;align-items:center;gap:8px;margin:0;padding:8px 11px;border-radius:var(--radius-md);background:var(--color-accent-tint);color:var(--color-ink);font-size:var(--font-size-md);line-height:1.4}.step-status .legend-swatch{flex:none}.step-status-dot{flex:none;width:8px;height:8px;border-radius:50%;background:var(--color-accent-strong)}.step-lead{margin:0;color:var(--color-ink-soft);font-size:var(--font-size-md);line-height:1.55}.step-hint{margin:8px 0 0;color:var(--color-ink-muted);font-size:var(--font-size-sm);line-height:1.55}.step-body kbd,.step-heading kbd{padding:0 5px;border:1px solid var(--color-line-strong);border-bottom-width:2px;border-radius:4px;background:var(--color-surface);color:var(--color-ink);font-family:inherit;font-size:var(--font-size-xs);font-weight:700;line-height:1.5}.step-empty-state{padding:16px;background:var(--color-surface-muted);border-radius:var(--radius-md)}.step-empty-state p{margin:9px 0 0;color:var(--color-ink-soft);font-size:var(--font-size-sm);line-height:1.6}.development-label{display:inline-flex;align-items:center;gap:7px;font-size:var(--font-size-xs);font-weight:700;color:var(--color-ink-soft)}.development-label .status-dot{background:var(--color-decor);width:5px;height:5px}.workflow-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:62px;padding:0 14px;border-top:1px solid var(--color-line);background:var(--color-surface)}.workflow-footer .button{min-height:38px}.workflow-footer .secondary{border-color:transparent;background:transparent;color:var(--color-ink-soft)}.workflow-footer .secondary:hover:not(:disabled){border-color:transparent;background:var(--color-surface-muted);color:var(--color-ink)}.workflow-footer .button.primary:disabled,.workflow-footer .button.primary[aria-disabled=true]{opacity:.45;cursor:not-allowed}.workflow-footer .is-hidden{visibility:hidden}.workflow-next{position:relative;display:flex}.workflow-blocker{position:absolute;right:0;bottom:calc(100% + 10px);z-index:5;width:max-content;max-width:280px;padding:8px 12px;border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-surface);font-size:var(--font-size-sm);line-height:1.5;box-shadow:0 10px 24px -10px #0f2a3780;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--duration-fast) ease}.workflow-blocker:after{content:"";position:absolute;top:100%;right:24px;border:6px solid transparent;border-top-color:var(--color-ink)}.workflow-next:hover .workflow-blocker,.workflow-next:focus-within .workflow-blocker{opacity:1;visibility:visible}@media(prefers-reduced-motion:reduce){.workflow-blocker{transition:none}}.editor-workflow button:disabled,.editor-workflow button[aria-disabled=true]{cursor:not-allowed}@media(max-width:1050px){.step-short{display:none}.workflow-step{padding:0 6px}}@media(max-width:760px){.editor-shell main{height:auto;min-height:0}.editor-workflow{grid-template-rows:auto auto;height:auto}.editor-bar{flex-wrap:wrap;padding-block:10px}.workflow-content{grid-template-columns:1fr}.drawing-panel{height:480px}.workflow-sidebar,.workflow-sidebar.is-overview-folded,.workflow-sidebar.is-step-folded,.workflow-sidebar.is-compact{grid-template-rows:auto 0 auto auto}.sidebar-splitter,.sidebar-gap{display:none}}.drawing-panel{position:relative;min-width:0;min-height:0;overflow:hidden;background-color:var(--color-table);background-image:radial-gradient(var(--color-table-dot) 1.1px,transparent 1.3px);background-size:18px 18px}.drawing-surface{position:absolute;inset:0;display:grid}.drawing-empty-state{align-self:center;justify-self:center;max-width:420px;padding:32px 28px;border-radius:var(--radius-lg);background:#ffffffeb;text-align:center;box-shadow:0 18px 40px -24px #0f2a3773}.drawing-empty-state h3{font-size:17px;font-weight:900;color:var(--color-ink);margin:0 0 10px}@media(min-width:1440px)and (min-height:900px){.drawing-empty-state h3{font-size:20px}}.drawing-empty-state p{font-size:var(--font-size-md);line-height:1.7;color:var(--color-ink-soft);margin:0 0 18px}.drawing-empty-icon{display:grid;place-items:center;width:72px;height:82px;margin:0 auto 20px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface);box-shadow:0 5px 14px #0f2a370f;color:var(--color-ink-muted);transform:rotate(-5deg)}.drawing-empty-icon svg{width:38px;height:38px}.drawing-format-note{display:inline-block;background:var(--color-surface);border:1px solid var(--color-line);border-radius:var(--radius-sm);padding:6px 10px;font-size:var(--font-size-2xs);letter-spacing:.04em;color:var(--color-ink-soft)}.drawing-legend{position:absolute;left:14px;bottom:14px;z-index:4;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;max-width:calc(100% - 220px);padding:8px 12px;border-radius:10px;background:#fffffff2;box-shadow:0 1px 2px #0f2a3724,0 10px 26px -10px #0f2a375c;font-size:var(--font-size-sm);color:var(--color-ink-soft)}.drawing-legend>span{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}.legend-label{font-size:var(--font-size-2xs);font-weight:900;letter-spacing:.1em;color:var(--color-ink-muted)}.legend-swatch{display:inline-block;width:14px;height:10px;border-radius:3px}.rooms-swatch{background:color-mix(in srgb,var(--color-accent) 30%,transparent);box-shadow:inset 0 0 0 1.5px var(--color-accent-line)}.rooms-off-swatch{background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-decor)}.zones-swatch{background:repeating-linear-gradient(135deg,var(--color-zone) 0 2px,var(--color-warning-tint) 2px 5px);box-shadow:inset 0 0 0 1.5px var(--color-zone)}.plan-canvas{position:absolute;inset:0;display:grid;outline:none}.plan-canvas.is-calibrating,.plan-canvas.is-drawing{cursor:crosshair}.plan-canvas.is-dragover{outline:2px dashed var(--color-accent-strong);outline-offset:-10px;background-color:color-mix(in srgb,var(--color-accent-tint) 70%,transparent)}.plan-canvas.is-pannable,.plan-canvas.is-pan-mode{cursor:grab}.plan-canvas.is-over-zone{cursor:pointer}.plan-canvas.is-panning{cursor:grabbing}.plan-canvas>.drawing-empty-state{position:relative;z-index:1}.plan-dropzone{cursor:pointer}.plan-dropzone:hover:not(.is-loading),.plan-dropzone:focus-within{background:var(--color-surface)}.plan-dropzone:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.plan-dropzone.is-loading .drawing-empty-icon{animation:pulse 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.plan-dropzone.is-loading .drawing-empty-icon{animation:none}}.plan-canvas-scan{position:absolute;z-index:3;overflow:hidden;background:color-mix(in srgb,var(--color-accent) 6%,transparent);pointer-events:none}.plan-canvas-scan:after{content:"";position:absolute;inset:0 0 auto;height:22%;border-bottom:2px solid color-mix(in srgb,var(--color-accent) 80%,transparent);background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--color-accent) 24%,transparent));animation:plan-scan 2.6s cubic-bezier(.45,0,.55,1) infinite}@media(prefers-reduced-motion:reduce){.plan-canvas-scan:after{display:none}}@keyframes plan-scan{0%{transform:translateY(-100%)}to{transform:translateY(455%)}}.plan-canvas-hint{position:absolute;top:14px;left:50%;z-index:4;display:flex;align-items:center;gap:10px;width:max-content;max-width:min(640px,100% - 150px);margin:0;padding:7px 7px 7px 14px;border-radius:16px;background:var(--color-overlay);color:var(--color-surface);font-size:var(--font-size-sm);line-height:1.45;box-shadow:0 10px 26px -12px #00000080;transform:translate(-50%);pointer-events:none}.plan-canvas-hint-close{display:grid;flex:none;place-items:center;width:24px;height:24px;padding:0;border:0;border-radius:50%;background:#ffffff1f;color:var(--color-surface);pointer-events:auto}.plan-canvas-hint-close svg{width:12px;height:12px}.plan-canvas-hint-close:hover{background:#ffffff38}.canvas-toolbar{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 1px 2px #0f2a3724,0 10px 26px -10px #0f2a375c;position:absolute;top:14px;left:14px;z-index:5;display:flex;flex-direction:column;gap:2px;padding:5px}.canvas-toolbar .tool-group{flex-direction:column}.canvas-toolbar .tool-separator{width:auto;height:1px;margin:4px 7px}.canvas-toolbar .tool-button{width:40px;height:40px;padding:0;justify-content:center}.canvas-toolbar .tool-button svg{width:20px;height:20px}.canvas-toolbar .tool-label{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tool-group{display:flex;align-items:center;gap:2px}.tool-slot{position:relative;display:flex}.tool-button{display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:6px 11px;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-ink-soft);font-size:var(--font-size-sm);font-weight:700;transition:background-color var(--duration-fast) ease,color var(--duration-fast) ease,transform 60ms ease}.tool-button svg{width:16px;height:16px}.tool-button:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-ink)}.tool-button:active:not(:disabled){transform:scale(.94)}.tool-button.is-active,.tool-button.is-active:hover{background:var(--color-structure);color:var(--color-surface)}.tool-button:focus-visible{outline-offset:1px}.editor-workflow .tool-button:disabled,.tool-button:disabled{cursor:not-allowed;opacity:.35}.tool-button.is-icon{width:32px;padding:0;justify-content:center}.tool-button.tool-delete:hover:not(:disabled){background:var(--color-danger-tint);color:var(--color-danger)}@media(prefers-reduced-motion:reduce){.tool-button{transition:none}}.tool-tip{position:absolute;top:50%;left:calc(100% + 10px);z-index:6;display:grid;gap:3px;width:max-content;max-width:240px;padding:7px 10px;border-radius:var(--radius-md);background:var(--color-ink);color:var(--color-surface);font-size:var(--font-size-sm);line-height:1.4;opacity:0;pointer-events:none;transform:translate(-4px,-50%);transition:opacity var(--duration-fast) ease,transform var(--duration-fast) ease}.tool-tip small{color:#ffffffbf;font-size:var(--font-size-xs)}.tool-slot:hover .tool-tip,.tool-slot:focus-within .tool-tip{opacity:1;transform:translateY(-50%)}@media(prefers-reduced-motion:reduce){.tool-tip{transition:none}}.tool-tip-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.tool-tip kbd,.plan-canvas-hint kbd{padding:1px 5px;border:1px solid rgba(255,255,255,.28);border-radius:4px;background:#ffffff1f;font-family:inherit;font-size:var(--font-size-xs);font-weight:700;line-height:1.4}.tool-separator{width:1px;height:22px;margin:0 4px;background:var(--color-line)}.canvas-zoom{border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:0 1px 2px #0f2a3724,0 10px 26px -10px #0f2a375c;position:absolute;right:14px;bottom:14px;z-index:4;padding:4px;border-radius:10px}.view-zoom{min-width:46px;text-align:center;font-size:var(--font-size-sm);font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-ink)}.plan-canvas-measure-anchor{position:absolute;z-index:5;transform:translate(-50%,-100%)}.plan-canvas-measure{display:flex;align-items:center;gap:5px;padding:4px 8px 4px 5px;border-radius:9px;background:var(--color-ink);color:var(--color-surface);font-size:var(--font-size-sm);font-weight:700;box-shadow:0 10px 24px -10px #0009}.plan-canvas-measure label{display:contents}.plan-canvas-measure input{width:60px;min-height:28px;padding:2px 7px;border-radius:var(--radius-sm);border:1px solid rgba(255,255,255,.3);background:#ffffff1f;color:var(--color-surface);font:inherit;text-align:right;font-variant-numeric:tabular-nums;outline:none}.plan-canvas-measure input::placeholder{color:#fff9;font-weight:400}.plan-canvas-measure input:focus{border-color:var(--color-action-on-dark);background:#fff3;box-shadow:0 0 0 3px #e68c0066}.measure-unit{color:#ffffffb8;font-weight:400}.overview-card{display:flex;flex-direction:column;min-height:0;overflow:hidden;background:var(--color-surface);box-shadow:0 1px 0 var(--color-line)}.overview-heading{display:flex;flex:none;align-items:center;gap:8px;min-height:48px;padding:10px 12px 8px 16px}.overview-heading h2{margin:0;font-size:var(--font-size-base);font-weight:900;color:var(--color-ink)}.overview-count{padding:4px 7px;border-radius:999px;background:var(--color-structure-tint);color:var(--color-structure);font-size:var(--font-size-xs);font-weight:900;line-height:1}.overview-caption{margin-left:auto;font-size:var(--font-size-xs);color:var(--color-ink-muted);white-space:nowrap}.overview-content{display:flex;flex:1;flex-direction:column;min-height:0}.overview-facts{display:flex;flex:none;flex-wrap:wrap;gap:6px;margin:0;padding:0 16px 10px}.overview-fact{display:flex;min-width:0}.overview-fact dd{display:inline-flex;align-items:center;gap:6px;min-width:0;margin:0;padding:3px 10px 3px 8px;border:1px solid var(--color-line-soft);border-radius:999px;background:var(--color-surface-muted);color:var(--color-ink-soft);font-size:var(--font-size-xs);white-space:nowrap}.overview-fact svg{flex:none;width:14px;height:14px;color:var(--color-ink-muted)}.overview-fact .legend-swatch{width:12px;height:12px}.overview-fact.is-missing dd,.overview-fact.is-warning dd{border-color:var(--color-zone-edge);background:var(--color-warning-tint-soft);color:var(--color-warning-text)}.overview-empty-state{flex:none;margin:0;padding:0 16px 12px;color:var(--color-ink-soft);font-size:var(--font-size-sm);line-height:1.55}.overview-empty-state strong{color:var(--color-ink)}.overview-folded{flex:none;margin:0;padding:9px 16px 10px;border-top:1px solid var(--color-line);background:var(--color-structure-tint);color:var(--color-ink-soft);font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.overview-folded strong{color:var(--color-ink)}.room-table-scroll{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--color-line-strong) transparent}.room-table-scroll::-webkit-scrollbar{width:8px;height:8px}.room-table-scroll::-webkit-scrollbar-track{background:transparent}.room-table-scroll::-webkit-scrollbar-thumb{border:2px solid transparent;border-radius:6px;background:var(--color-line-strong);background-clip:content-box}.room-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:var(--font-size-md);font-variant-numeric:tabular-nums}.room-table th,.room-table td{padding:0 7px;text-align:left;vertical-align:middle}.room-table thead th{position:sticky;top:0;z-index:2;height:32px;border-block:1px solid var(--color-line);background:var(--color-surface-muted);color:var(--color-ink-muted);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.room-table tbody th{font-weight:400}.room-table .room-row>*{height:36px;border-bottom:1px solid var(--color-line-soft);transition:background-color var(--duration-fast) ease}@media(prefers-reduced-motion:reduce){.room-table .room-row>*{transition:none}}.room-table .room-cell-toggle{width:22px;padding:0 0 0 4px}.room-table .room-cell-select{width:26px;padding:0 2px;text-align:center}.room-table .room-cell-select input{appearance:none;flex:none;display:inline-grid;place-content:center;width:17px;height:17px;margin:0;border:1.5px solid var(--color-line-strong);border-radius:5px;background:var(--color-surface) no-repeat center/12px;cursor:pointer;transition:background-color var(--duration-fast) ease,border-color var(--duration-fast) ease}.room-table .room-cell-select input:hover{border-color:var(--color-accent-strong)}.room-table .room-cell-select input:checked{border-color:var(--color-accent-strong);background-color:var(--color-accent-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9'/%3E%3C/svg%3E")}.room-table .room-cell-select input:checked:hover{border-color:var(--color-accent-text);background-color:var(--color-accent-text)}.room-table .room-cell-select input:indeterminate{border-color:var(--color-accent-strong);background-color:var(--color-accent-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 6h6'/%3E%3C/svg%3E")}.room-table .room-cell-select input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.room-table .room-cell-select input:disabled{cursor:default;opacity:.5}@media(prefers-reduced-motion:reduce){.room-table .room-cell-select input{transition:none}}.room-table .room-cell-select input{vertical-align:middle}.room-table .room-cell-name{padding-left:4px}.room-table .room-cell-figure{width:50px;padding:0 6px;text-align:right;white-space:nowrap;color:var(--color-ink-soft)}.room-table .room-cell-net{width:54px}.room-table .room-cell-last{width:64px;padding-right:12px}.room-table tbody .room-cell-net{font-weight:900;color:var(--color-ink)}.room-group{scroll-margin-block:34px 44px}.room-group:hover .room-row>*,.room-group.is-hovered .room-row>*{background:var(--color-accent-tint-soft)}.room-group.is-selected .room-row>*{background:var(--color-structure-tint)}.room-group.is-selected .room-row>:first-child{box-shadow:inset 3px 0 0 var(--color-structure)}.room-group.is-flash .room-row>*{animation:row-flash 1.1s ease}@media(prefers-reduced-motion:reduce){.room-group.is-flash .room-row>*{animation:none}}.room-toggle{display:grid;place-items:center;width:20px;height:20px;padding:0;border:0;border-radius:5px;background:none;color:var(--color-ink-muted)}.room-toggle:hover{background:var(--color-line-soft);color:var(--color-ink)}.room-toggle svg{width:12px;height:12px;transition:transform var(--duration-fast) ease}.room-toggle[aria-expanded=true] svg{transform:rotate(90deg)}@media(prefers-reduced-motion:reduce){.room-toggle svg{transition:none}}.room-name-line{position:relative;display:flex;align-items:center;gap:7px;min-width:0}.room-name-line input{flex:1;min-width:0;height:26px;margin-left:-6px;padding:0 6px;border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;font:inherit;font-weight:700;color:var(--color-ink);text-overflow:ellipsis}.room-name-line input:hover{border-color:var(--color-line);background:var(--color-surface)}.room-name-line input:focus{border-color:var(--color-accent-strong);background:var(--color-surface);box-shadow:0 0 0 3px var(--color-focus-glow);outline:none}.room-name-line .room-remove{position:absolute;top:50%;right:0;display:grid;place-items:center;width:22px;height:22px;padding:0;transform:translateY(-50%);opacity:0}.room-name-line .room-remove svg{width:12px;height:12px}.room-name-line .room-remove:focus-visible{opacity:1}.room-group:hover .room-remove{opacity:1}.room-number{display:grid;flex:none;place-items:center;min-width:21px;height:21px;padding:0 5px;border-radius:999px;background:var(--color-accent-strong);color:var(--color-surface);font-size:var(--font-size-xs);font-weight:900;line-height:1}.is-drawn .room-number{background:var(--color-structure)}.is-manual .room-number{background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-structure);color:var(--color-structure)}.is-deselected .room-number{background:var(--color-surface);box-shadow:inset 0 0 0 1.5px var(--color-decor);color:var(--color-ink-muted)}.room-group.is-deselected .room-cell-figure,.room-group.is-deselected .room-cell-net,.room-group.is-deselected .room-name-line input{color:var(--color-ink-muted);font-weight:400}.room-details>td{padding:8px 12px 12px 4px;border-bottom:1px solid var(--color-line);background:var(--color-accent-tint-soft);white-space:normal}.room-details-grid,.room-details-list{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;font-size:var(--font-size-sm)}.room-details-grid div,.room-details-list div{display:flex;align-items:baseline;gap:6px}.room-details-grid dt,.room-details-list dt{color:var(--color-ink-muted)}.room-details-grid dd,.room-details-list dd{margin:0}.room-details-grid,.room-details-grid div{align-items:center}.room-details-grid dd{font-weight:700;color:var(--color-ink)}.room-height{display:flex;align-items:center;gap:5px}.room-height input{width:54px;height:26px;padding:0 7px;border:1px solid var(--color-line-strong);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-weight:700;color:var(--color-ink);text-align:right}.room-height input:focus{border-color:var(--color-accent-strong);box-shadow:0 0 0 3px var(--color-focus-glow);outline:none}.room-height input[aria-invalid=true]{border-color:var(--color-danger)}.room-height span{font-weight:400;color:var(--color-ink-soft)}.room-height-error{margin:6px 0 0;font-size:var(--font-size-xs);color:var(--color-danger-text)}.room-details-list{margin-top:6px}.room-details-list dd{color:var(--color-ink-soft)}.overview-totals th,.overview-totals td{position:sticky;z-index:2;background:var(--color-structure-tint);color:var(--color-ink)}.overview-totals tr:first-child>*{bottom:26px;height:34px;border-top:1px solid var(--color-line-strong);font-weight:900}.overview-totals .overview-sizes-row>*{bottom:0;height:26px;padding-bottom:6px;vertical-align:top}.overview-totals .room-cell-figure{color:var(--color-ink)}.overview-totals-count{margin-left:4px;font-weight:400;color:var(--color-ink-muted)}.overview-sizes{display:flex;gap:0 14px;margin:0;overflow:hidden;color:var(--color-ink-muted);font-size:var(--font-size-xs);white-space:nowrap}.overview-sizes div{display:flex;gap:5px}.overview-sizes dd{margin:0;font-weight:700;color:var(--color-ink)}@keyframes row-flash{0%,30%{background:var(--color-warning-tint)}}.plan-step .error-message{margin:12px 0 0}.upload-dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:18px 16px;border:2px dashed var(--color-line-strong);border-radius:10px;background:var(--color-surface-muted);text-align:center;cursor:pointer;transition:border-color .15s,background-color .15s}.upload-dropzone:hover,.upload-dropzone.is-dragover,.upload-dropzone:focus-within{border-color:var(--color-accent-strong);background:var(--color-accent-tint)}.upload-dropzone:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.upload-dropzone.is-loading{cursor:progress}.upload-dropzone strong{font-size:14px;color:var(--color-structure)}.upload-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:6px;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-line);color:var(--color-ink-muted)}.upload-icon svg{width:20px;height:20px}.upload-alternative{font-size:13px;color:var(--color-ink-soft)}.upload-link{color:var(--color-accent-strong);text-decoration:underline}.upload-formats{margin-top:6px;font-size:11px;color:var(--color-ink-soft)}.plan-file{display:flex;align-items:center;gap:12px;padding:10px 10px 10px 12px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface)}.plan-file-icon{display:grid;place-items:center;flex:0 0 36px;height:36px;border-radius:var(--radius-md);background:var(--color-structure-tint);color:var(--color-structure)}.plan-file-icon svg{width:20px;height:20px}.plan-file-details{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.plan-file-name{font-size:13px;font-weight:700;color:var(--color-structure);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-file-meta{font-size:11px;color:var(--color-ink-soft)}.scale-mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:3px;margin-bottom:12px;padding:3px;border:1px solid var(--color-line);border-radius:10px;background:var(--color-surface-muted)}.scale-mode{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 12px;border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.scale-mode:hover:not(.is-selected){background:#fff9}.scale-mode.is-selected{background:var(--color-surface);box-shadow:0 1px 2px #0f2a371f,0 0 0 1px var(--color-line)}@media(prefers-reduced-motion:reduce){.scale-mode{transition:none}}.scale-mode:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.scale-mode input{position:absolute;opacity:0;pointer-events:none}.scale-mode-label{font-size:13px;font-weight:700;color:var(--color-structure)}.scale-panel .field{margin-bottom:12px}.scale-panel .field input,.scale-panel .field select{width:100%;min-height:40px;padding:8px 12px;border-radius:var(--radius-md);border:1px solid var(--color-line-strong);background:var(--color-surface);color:var(--color-ink);font-size:var(--font-size-base);outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.scale-panel .field input::placeholder,.scale-panel .field select::placeholder{color:var(--color-placeholder)}.scale-panel .field input:hover:not(:disabled):not(:focus),.scale-panel .field select:hover:not(:disabled):not(:focus){border-color:var(--color-ink-muted)}.scale-panel .field input:focus,.scale-panel .field select:focus{border-color:var(--color-accent-strong);box-shadow:0 0 0 3px var(--color-focus-glow)}.scale-panel .field input:disabled,.scale-panel .field select:disabled{background:var(--color-surface-muted)}@media(prefers-reduced-motion:reduce){.scale-panel .field input,.scale-panel .field select{transition:none}}.scale-panel .field input:disabled{opacity:.6;cursor:not-allowed}.calibration-guide{margin:0 0 12px;padding-left:20px;font-size:12px;line-height:1.7;color:var(--color-ink-soft)}.calibration-guide li+li{margin-top:4px}.calibration-status{margin:0 0 14px;font-size:12px;color:var(--color-ink);font-weight:700}.scale-disclaimer{border-radius:var(--radius-md);background:var(--color-warning-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--color-zone) 30%,transparent);color:var(--color-warning-text);padding:10px 13px;font-size:var(--font-size-sm);line-height:1.6}.plan-result{display:flex;align-items:center;gap:8px;margin:12px 0 0;padding:9px 12px;border-radius:var(--radius-md);background:var(--color-accent-tint);color:var(--color-accent-text);font-size:13px;font-weight:700}.plan-check{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;font-size:11px;background:var(--color-surface-muted);color:var(--color-decor)}.plan-result .plan-check{background:var(--color-accent-strong);color:var(--color-surface)}.recognition-status{margin:0;padding:15px 18px 14px;border:1px solid var(--color-line);border-radius:10px;background:linear-gradient(180deg,var(--color-accent-tint-soft),var(--color-surface));color:var(--color-structure)}.recognition-status-head{display:flex;align-items:center;gap:10px}.recognition-spinner{flex:0 0 auto;width:14px;height:14px;border-radius:50%;border:2px solid var(--color-line);border-top-color:var(--color-accent-strong);animation:spin .9s linear infinite}@media(prefers-reduced-motion:reduce){.recognition-spinner{animation:none}}.recognition-phase{margin:0;font-size:14px;font-weight:700}.recognition-phase-count{margin-left:auto;font-size:11px;font-weight:700;letter-spacing:.1em;color:var(--color-ink-muted)}.recognition-track{display:flex;gap:5px;margin:13px 0 9px}.recognition-segment{position:relative;flex:1;height:5px;border-radius:99px;background:var(--color-line-soft);overflow:hidden}.recognition-segment.is-done{background:var(--color-accent-strong)}.recognition-segment.is-active:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(90deg,rgba(0,197,179,0),var(--color-accent) 45%,var(--color-accent-light) 55%,rgba(0,197,179,0));animation:sweep 1.4s ease-in-out infinite}@media(prefers-reduced-motion:reduce){.recognition-segment.is-active:after{animation:none;transform:none;background:var(--color-accent);opacity:.45}}.recognition-hint{margin:0;font-size:12px;line-height:1.6;color:var(--color-ink-soft)}.recognition-hint.is-slow{color:var(--color-caution-text)}.recognition-cancel{margin-top:12px}.recognition-error{color:var(--color-danger-text)}.recognition-warning{color:var(--color-caution-text)}.recognition-credits{color:var(--color-ink-soft);font-size:13px}.recognition-check{display:grid;flex:none;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--color-accent-strong);color:var(--color-surface);font-size:11px;font-weight:900}.rooms-missed-actions{display:flex;flex-wrap:wrap;gap:8px}.rooms-manual .field{margin-bottom:14px}.rooms-manual .field input{width:100%;min-height:44px;padding:10px 13px;border-radius:var(--radius-md);border:1px solid var(--color-line-strong);background:var(--color-surface);color:var(--color-ink);font-size:var(--font-size-base);outline:none;transition:border-color var(--duration-fast) ease,box-shadow var(--duration-fast) ease}.rooms-manual .field input::placeholder{color:var(--color-placeholder)}.rooms-manual .field input:hover:not(:disabled):not(:focus){border-color:var(--color-ink-muted)}.rooms-manual .field input:focus{border-color:var(--color-accent-strong);box-shadow:0 0 0 3px var(--color-focus-glow)}.rooms-manual .field input:disabled{background:var(--color-surface-muted)}@media(prefers-reduced-motion:reduce){.rooms-manual .field input{transition:none}}.rooms-manual .field input[aria-invalid=true]{border-color:var(--color-danger)}.rooms-manual-measures{display:grid;grid-template-columns:1fr 1fr;gap:12px}.zones-empty{margin:0;padding:14px 16px;border:1px dashed var(--color-line-strong);border-radius:5px;font-size:12px;color:var(--color-ink-soft);text-align:center}.zones-list{list-style:none;margin:0;padding:0;border:1px solid var(--color-line);border-radius:10px;overflow:hidden}.zones-list li{display:flex;align-items:center;gap:4px;padding-right:10px;border-top:1px solid var(--color-line-soft);background:var(--color-surface);transition:background-color .12s ease}.zones-list li:first-child{border-top:0}.zones-list li:hover{background:var(--color-warning-tint-soft);box-shadow:inset 3px 0 0 var(--color-zone-edge)}.zones-list li.is-selected{background:var(--color-warning-tint);box-shadow:inset 3px 0 0 var(--color-zone)}@media(prefers-reduced-motion:reduce){.zones-list li{transition:none}}.zones-list .room-remove{display:inline-flex;flex:none;padding:6px}.zones-list .room-remove svg{width:12px;height:12px}.zone-select{display:grid;grid-template-columns:1fr auto;column-gap:12px;flex:1;min-width:0;padding:10px 14px;border:0;background:none;text-align:left}.zone-select:focus-visible{outline-offset:-3px}.zone-name{grid-column:1;display:flex;align-items:center;gap:8px;font-size:var(--font-size-md);font-weight:700;color:var(--color-ink)}.zone-name:before{content:"";flex:none;width:14px;height:10px;border-radius:3px;background:repeating-linear-gradient(135deg,var(--color-zone) 0 2px,var(--color-warning-tint) 2px 5px);box-shadow:inset 0 0 0 1.5px var(--color-zone)}.zone-area{grid-column:2;grid-row:1/span 2;align-self:center;font-size:13px;font-weight:700;color:var(--color-warning-text);white-space:nowrap}.zone-placement{grid-column:1;padding-left:22px;font-size:var(--font-size-xs);color:var(--color-ink-soft)}.export-summary{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:var(--font-size-sm)}.export-summary div{display:contents}.export-summary dt{color:var(--color-ink-muted)}.export-summary dd{margin:0;font-weight:700;color:var(--color-structure);overflow-wrap:anywhere}.export-summary{padding:12px;border-radius:10px;background:var(--color-surface-muted)}.export-option{display:flex;align-items:flex-start;gap:9px;font-size:12px;line-height:1.6;color:var(--color-ink);cursor:pointer}.export-option input{appearance:none;flex:none;display:inline-grid;place-content:center;width:17px;height:17px;margin:0;border:1.5px solid var(--color-line-strong);border-radius:5px;background:var(--color-surface) no-repeat center/12px;cursor:pointer;transition:background-color var(--duration-fast) ease,border-color var(--duration-fast) ease}.export-option input:hover{border-color:var(--color-accent-strong)}.export-option input:checked{border-color:var(--color-accent-strong);background-color:var(--color-accent-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-4.9'/%3E%3C/svg%3E")}.export-option input:checked:hover{border-color:var(--color-accent-text);background-color:var(--color-accent-text)}.export-option input:indeterminate{border-color:var(--color-accent-strong);background-color:var(--color-accent-strong);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M3 6h6'/%3E%3C/svg%3E")}.export-option input:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.export-option input:disabled{cursor:default;opacity:.5}@media(prefers-reduced-motion:reduce){.export-option input{transition:none}}.export-option input{margin-top:2px}.export-card{display:grid;grid-template-columns:32px minmax(0,1fr);gap:2px 12px;padding:12px 14px;border:1px solid var(--color-line);border-radius:var(--radius-lg)}.export-card h3{margin:0;color:var(--color-ink);font-size:var(--font-size-md);font-weight:900}.export-card p{margin:0;color:var(--color-ink-muted);font-size:var(--font-size-sm);line-height:1.5}.export-card .button,.export-card .export-blocker{grid-column:2}.export-card .button{justify-self:start;margin-top:8px}.export-card-icon{grid-row:span 2;width:32px;height:32px;padding:7px;border-radius:var(--radius-md);background:var(--color-structure-tint);color:var(--color-structure)}.export-blocker{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--color-ink-soft)}
