/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--text-xs:.75rem;--text-sm:.875rem;--text-lg:1.125rem;--text-xl:1.25rem;--text-2xl:1.5rem;--text-3xl:1.875rem;--text-4xl:2.25rem;--tracking-tighter:-.05em;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--radius-xs:.125rem;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--ease-out:cubic-bezier(0, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.\!start{inset-inline-start:var(--spacing)!important}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.grid{display:grid}.hidden{display:none}.inline{display:inline}.table{display:table}.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.rounded{border-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.p-5{padding:calc(var(--spacing) * 5)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}:root{--ink-990:#0a0b0b;--ink-950:#101212;--ink-900:#161818;--ink-850:#1c1f1e;--ink-800:#232726;--ink-750:#2b2f2e;--ink-700:#343937;--ink-600:#454b49;--ink-500:#5c6260;--ink-400:#7a817e;--ink-300:#9ba19e;--ink-200:#bfc4c1;--ink-100:#dcdfdb;--ink-50:#eef0ec;--paper-500:#e4e1d7;--paper-400:#ecead2;--paper-300:#f1efe7;--paper-200:#f7f5ef;--paper-100:#fbfaf6;--paper-000:#fff;--signal-700:#3f6420;--signal-600:#527f2a;--signal-500:#6a9f38;--signal-400:#8bbf58;--signal-300:#aad884;--signal-200:#cbe8b4;--signal-100:#e8f3da;--red-500:#c4573f;--red-400:#dd7a63;--red-200:#f0c2b6;--amber-500:#b8862c;--amber-400:#d6a74b;--amber-200:#ecd7a4;--blue-500:#3f7fa8;--blue-400:#6aa5c9;--blue-200:#bcd8e8;--tone-green:#8bbf58;--tone-clay:#d08a6a;--tone-sky:#7aa2c4;--tone-sand:#cbc0a4;--tone-violet:#9b86c9;--font-sans:var(--font-plex-sans), "Segoe UI", system-ui, sans-serif;--font-mono:var(--font-plex-mono), ui-monospace, monospace;--font-display:var(--font-sans);--text-2xs:10px;--text-xs:11px;--text-sm:12px;--text-md:13px;--text-lg:15px;--text-xl:17px;--text-2xl:22px;--text-3xl:28px;--text-4xl:34px;--leading-tight:1.2;--leading-snug:1.35;--leading-normal:1.5;--tracking-wide:.08em;--tracking-wider:.14em;--tracking-tight:-.01em;--tracking-tighter:-.025em;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--space-0:0;--space-1:2px;--space-2:4px;--space-3:6px;--space-4:8px;--space-5:12px;--space-6:16px;--space-7:20px;--space-8:24px;--space-9:32px;--space-10:40px;--space-11:56px;--space-12:72px;--radius-xs:3px;--radius-sm:5px;--radius-md:8px;--radius-lg:12px;--radius-xl:18px;--radius-full:999px;--shadow-inset:inset 0 1px 0 #ffffff0a;--duration-instant:80ms;--duration-fast:.14s;--duration-base:.22s;--ease-out:cubic-bezier(.2, 0, 0, 1);--ease-in-out:cubic-bezier(.5, 0, .2, 1);--select-chevron-space:24px;--control-height-sm:26px;--control-height-md:32px;--control-height-lg:38px;--control-padding:var(--space-5)}:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-base:var(--ink-990);--surface-panel:var(--ink-950);--surface-raised:var(--ink-900);--surface-hover:var(--ink-850);--surface-sunken:var(--ink-990);--surface-overlay:var(--ink-900);--surface-scrim:#0608089e;--surface-veil:#101212e6;--surface-veil-soft:#101212b8;--border-veil:#ffffff1f;--shell-glow:var(--ink-750);--canvas-base:var(--paper-300);--canvas-paper:var(--paper-100);--canvas-grid:#d4d1c6;--text-strong:var(--ink-50);--text-default:var(--ink-100);--text-muted:var(--ink-300);--text-faint:var(--ink-400);--text-disabled:var(--ink-500);--text-on-canvas:var(--ink-900);--text-on-canvas-muted:var(--ink-500);--border-subtle:var(--ink-850);--border-default:var(--ink-750);--border-strong:var(--ink-600);--border-canvas:var(--paper-500);--border-focus:var(--signal-400);--accent:var(--signal-500);--accent-hover:var(--signal-400);--accent-press:var(--signal-600);--accent-text:var(--signal-400);--accent-quiet:#6a9f3824;--accent-line:#8bbf586b;--on-accent:#0f1a08;--danger:var(--red-500);--danger-text:var(--red-400);--danger-quiet:#c4573f24;--warning:var(--amber-500);--warning-text:var(--amber-400);--warning-quiet:#b8862c24;--info:var(--blue-500);--info-text:var(--blue-400);--info-quiet:#3f7fa824;--shadow-1:0 1px 2px #0608083d;--shadow-2:0 1px 2px #06080833, 0 4px 10px #06080838;--shadow-3:0 2px 4px #06080838, 0 10px 24px #0608084d;--shadow-4:0 4px 8px #0608083d, 0 24px 56px #06080866;--focus-ring:0 0 0 2px var(--surface-panel), 0 0 0 4px var(--border-focus)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--surface-base:var(--paper-200);--surface-panel:var(--paper-100);--surface-raised:var(--paper-000);--surface-hover:var(--paper-300);--surface-sunken:var(--paper-200);--surface-overlay:var(--paper-000);--surface-scrim:#1c1f1e66;--surface-veil:#ffffffeb;--surface-veil-soft:#ffffffc7;--border-veil:#1c1f1e24;--shell-glow:var(--signal-100);--canvas-base:var(--paper-400);--canvas-paper:var(--paper-100);--canvas-grid:#cdc9b8;--text-strong:var(--ink-950);--text-default:var(--ink-800);--text-muted:var(--ink-500);--text-faint:var(--ink-400);--text-disabled:var(--ink-300);--text-on-canvas:var(--ink-900);--text-on-canvas-muted:var(--ink-500);--border-subtle:#e2e0d6;--border-default:#cfccc0;--border-strong:#b0aca0;--border-canvas:#c8c4b6;--border-focus:var(--signal-600);--accent:var(--signal-500);--accent-hover:var(--signal-600);--accent-press:var(--signal-700);--accent-text:var(--signal-700);--accent-quiet:#6a9f381f;--accent-line:#527f2a66;--on-accent:#0f1a08;--danger-text:#a8422c;--warning-text:#8a6318;--info-text:#2f6285;--shadow-1:0 1px 1px #282c2a0f;--shadow-2:0 1px 2px #282c2a12, 0 3px 6px #282c2a0d;--shadow-3:0 2px 4px #282c2a12, 0 8px 18px #282c2a14;--shadow-4:0 4px 8px #282c2a14, 0 20px 44px #282c2a1f;--shadow-inset:inset 0 1px 0 #fff9}.ds-eyebrow{color:var(--accent-text);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase}.ds-label{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-medium);letter-spacing:var(--tracking-wide);text-transform:uppercase}.ds-display{font-family:var(--font-display);font-weight:var(--weight-regular);letter-spacing:var(--tracking-tight);line-height:var(--leading-tight)}.ds-numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight)}.ds-button{height:var(--control-height-md);justify-content:center;align-items:center;gap:var(--space-3);padding:0 var(--control-padding);color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-sm);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);display:inline-flex}.ds-button:hover:not(:disabled){color:var(--text-strong);background:var(--surface-hover);border-color:var(--border-strong)}.ds-button:focus-visible{box-shadow:var(--focus-ring);outline:0}.ds-button:disabled{opacity:.4;cursor:not-allowed}.ds-button-primary{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:var(--weight-semibold)}.ds-button-primary:hover:not(:disabled){color:var(--on-accent);background:var(--accent-hover);border-color:var(--accent-hover)}.ds-button-quiet{background:0 0;border-color:#0000}.ds-button-quiet:hover:not(:disabled){background:var(--surface-hover);border-color:var(--border-subtle)}.ds-button-danger{color:var(--danger-text);border-color:var(--border-default)}.ds-button-danger:hover:not(:disabled){color:var(--paper-000);background:var(--danger);border-color:var(--danger)}.ds-button-sm{height:var(--control-height-sm);padding:0 var(--space-4);font-size:var(--text-xs)}.ds-button-lg{height:var(--control-height-lg);padding:0 var(--space-6);font-size:var(--text-md)}.ds-field{height:var(--control-height-md);width:100%;padding:0 var(--space-4);color:var(--text-strong);background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out)}.ds-field::placeholder{color:var(--text-disabled)}.ds-field:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-quiet);outline:0}.ds-select{display:grid;position:relative}.ds-select>select{appearance:none;width:100%;padding-right:var(--select-chevron-space)}.ds-select:after{top:50%;right:var(--space-4);background-color:var(--text-faint);content:"";pointer-events:none;width:10px;height:6px;transition:background-color var(--duration-fast) var(--ease-out);position:absolute;transform:translateY(-50%);-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.ds-select:hover:after{background-color:var(--text-strong)}.ds-field-numeric{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.ds-panel{background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.ds-card{background:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out)}.ds-card:hover{background:var(--surface-hover);border-color:var(--border-default)}.ds-card-selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.ds-segmented{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:2px;display:inline-flex}.ds-segmented>button{height:var(--control-height-sm);padding:0 var(--space-5);color:var(--text-muted);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0}.ds-segmented>button:hover:not(.active){color:var(--text-default)}.ds-segmented>button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1)}.ds-badge{align-items:center;gap:var(--space-2);padding:2px var(--space-3);color:var(--text-muted);background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-full);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);display:inline-flex}.ds-badge-accent{color:var(--accent-text);background:var(--accent-quiet);border-color:var(--accent-line)}.ds-rule{background:var(--border-subtle);border:0;height:1px}.ds-scroll{scrollbar-width:thin;scrollbar-color:var(--ink-700) transparent;overflow:auto}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}html,body{height:100%}body{background:var(--canvas-base);color:var(--text-on-canvas);font-family:var(--font-sans);margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}.auth-shell{min-height:100dvh;color:var(--text-strong);background:radial-gradient(circle at 20% 15%, var(--shell-glow) 0, transparent 34%), linear-gradient(145deg, var(--surface-base), var(--surface-raised) 58%, var(--surface-panel));place-items:center;padding:28px;display:grid;overflow:auto}.auth-card{background:var(--surface-veil);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:min(100%,430px);box-shadow:var(--shadow-4);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:34px}.auth-brand{color:var(--text-strong);font-size:var(--text-lg);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider);align-items:center;gap:11px;display:flex}.auth-brand>span:last-child>span{color:var(--accent-text)}.auth-copy{margin-top:34px}.auth-copy>span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.auth-copy h1{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-4xl);letter-spacing:var(--tracking-tighter);margin:8px 0 0}.auth-copy p{max-width:330px;color:var(--text-default);font-size:var(--text-md);margin:10px 0 0;line-height:1.55}.auth-mode-switch{background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:4px;margin-top:27px;padding:4px;display:grid}.auth-mode-switch button{height:34px;color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0}.auth-mode-switch button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1)}.auth-form{gap:14px;margin-top:19px;display:grid}.auth-form label{gap:6px;display:grid}.auth-form label>span{color:var(--text-default);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.auth-form input{width:100%;height:43px;color:var(--text-strong);background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-md);outline:0;padding:0 12px}.auth-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8bbf581a}.auth-form input:disabled,.auth-locked-input{color:var(--text-muted);background:var(--surface-panel);cursor:not-allowed}.auth-form input::placeholder{color:var(--text-faint)}.auth-submit{height:43px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-md);font-size:var(--text-md);font-weight:var(--weight-bold);cursor:pointer;border:0;margin-top:3px}.auth-submit:disabled{opacity:.58;cursor:wait}.auth-standalone-submit{width:100%;margin-top:24px}.auth-link-button{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0;margin-top:1px;padding:0}.auth-link-button:hover{color:var(--accent-text)}.auth-feedback{border-radius:var(--radius-sm);font-size:var(--text-sm);margin:-2px 0 0;padding:9px 10px;line-height:1.4}.auth-error{color:var(--red-200);background:#dd7a631f;border:1px solid #dd7a6347}.auth-message{color:var(--signal-200);background:#8bbf581a;border:1px solid #8bbf5838}.auth-beta-note{color:var(--text-faint);text-align:center;font-size:var(--text-xs);margin-top:18px;display:block}.auth-loading{color:var(--text-default);font-size:var(--text-md);align-content:center;gap:12px}.auth-spinner{border:3px solid var(--border-strong);border-top-color:var(--accent);border-radius:var(--radius-full);width:24px;height:24px;animation:.8s linear infinite auth-spin}@keyframes auth-spin{to{transform:rotate(360deg)}}.workspace-gate-shell{height:100dvh;color:var(--text-strong);background:radial-gradient(circle at 82% 10%, var(--shell-glow) 0, transparent 32%), var(--surface-base);overflow-y:auto}.workspace-onboarding-card{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-xl);width:min(100% - 36px,520px);box-shadow:var(--shadow-4);margin:max(42px,9vh) auto;padding:38px}.workspace-eyebrow{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider);margin-top:34px;display:block}.workspace-onboarding-card h1{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-4xl);margin:8px 0 0}.workspace-onboarding-card>p{color:var(--text-default);font-size:var(--text-md);margin:11px 0 0;line-height:1.55}.workspace-create-form{gap:14px;margin-top:25px;display:grid}.workspace-create-form label{gap:6px;display:grid}.workspace-create-form label span{color:var(--text-default);font-size:var(--text-sm);font-weight:var(--weight-semibold)}.workspace-create-form input,.workspace-new-project input{height:43px;color:var(--text-strong);background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-md);outline:0;padding:0 12px}.workspace-new-project input{transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out)}.workspace-new-project input:hover{background:var(--surface-hover);border-color:var(--accent-line)}.workspace-create-form input:focus,.workspace-new-project input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8bbf581a}.workspace-create-form>button,.workspace-new-project>button{height:42px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;border:0}.workspace-new-project>button{transition:background var(--duration-fast) var(--ease-out)}.workspace-new-project>button:hover:not(:disabled){background:var(--accent-hover)}.workspace-create-form>button:disabled,.workspace-new-project>button:disabled{opacity:.55;cursor:wait}.workspace-signout{color:var(--text-faint);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;margin:22px auto 0;padding:0;display:block}.workspace-root-wrapper{flex-direction:column;width:min(100% - 50px,1060px);min-height:100%;margin:0 auto;display:flex}.workspace-dashboard{flex:1 0 auto;width:100%;margin:0;padding:28px 0 60px}.workspace-dashboard>header{justify-content:space-between;align-items:center;display:flex}.workspace-dashboard-tabs{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);gap:5px;width:fit-content;margin-top:34px;padding:4px;display:flex}.workspace-dashboard-tabs button{height:32px;color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;padding:0 13px}.workspace-dashboard-tabs button:hover{color:var(--text-strong);background:var(--surface-hover)}.workspace-dashboard-tabs button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1)}.workspace-dashboard-tabs button.active:hover{background:var(--surface-raised)}.workspace-dashboard-tabs button span{min-width:17px;height:17px;color:inherit;border-radius:var(--radius-md);font-size:var(--text-2xs);background:#ffffff1f;place-items:center;margin-left:5px;display:inline-grid}.workspace-account-button{color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);border-radius:22px;align-items:center;gap:9px;padding:5px 8px 5px 5px;display:flex}.workspace-account-button:hover{color:var(--text-strong);background:var(--surface-hover);border-color:var(--border-focus)}.workspace-account-button b{width:29px;height:29px;color:var(--text-strong);background:var(--ink-700);border-radius:var(--radius-full);font-size:var(--text-xs);place-items:center;display:grid}.workspace-account-button span{text-overflow:ellipsis;max-width:180px;font-size:var(--text-sm);white-space:nowrap;overflow:hidden}.workspace-account-button .workspace-account-logo{width:29px;max-width:29px;height:29px;color:var(--text-strong);background:var(--ink-700);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:0 0 29px;place-items:center;display:grid}.workspace-account-logo img{object-fit:contain;background:var(--surface-base);width:100%;height:100%}.workspace-dashboard-title{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:end;margin-top:38px;padding-bottom:19px;display:flex}.workspace-dashboard-title span,.workspace-project-open>span,.workspace-new-project>span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.workspace-dashboard-title h1{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-4xl);margin:6px 0 0}.workspace-dashboard-title>strong{color:var(--text-default);font-size:var(--text-md)}.workspace-dashboard-title select{min-width:210px;height:36px;color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding-left:9px}.workspace-empty-state{max-width:560px;margin-top:28px}.workspace-empty-state>span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.workspace-empty-state h2{color:var(--text-strong);font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-3xl);margin:8px 0 0}.workspace-empty-state p{color:var(--text-muted);font-size:var(--text-md);margin:9px 0 0;line-height:1.55}.workspace-project-filters{gap:7px;margin-top:18px;display:flex}.workspace-project-filters button{min-width:110px;height:36px;color:var(--text-muted);background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);padding:0 13px}.workspace-project-filters button:hover{color:var(--text-strong);background:var(--surface-hover);border-color:var(--accent-line)}.workspace-project-filters button.active{color:var(--text-strong);border-color:var(--accent);background:var(--surface-raised)}.workspace-project-filters button.active:hover{background:var(--surface-raised);border-color:var(--accent)}.workspace-project-filters span{min-width:18px;height:18px;color:inherit;border-radius:var(--radius-full);font-size:var(--text-2xs);background:#ffffff1a;place-items:center;margin-left:6px;display:inline-grid}.workspace-project-scroll{overscroll-behavior:contain;scrollbar-gutter:stable;min-height:260px;max-height:calc(100dvh - 285px);margin-top:8px;padding:0 8px 24px 2px;overflow-y:auto}.workspace-project-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:12px;display:grid}.workspace-project-card{text-align:left;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);min-height:155px;transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.workspace-project-card:hover{background:var(--surface-hover);border-color:var(--accent)}.workspace-project-open{min-height:155px;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:1;align-items:flex-start;padding:20px;display:flex}.workspace-project-open>strong{max-width:calc(100% - 76px);color:var(--text-strong);font-size:var(--text-lg);text-overflow:ellipsis;white-space:nowrap;margin-top:21px;overflow:hidden}.workspace-project-open>small{color:var(--text-faint);font-size:var(--text-xs);margin-top:auto}.workspace-project-actions{z-index:1;gap:5px;display:flex;position:absolute;top:13px;right:13px}.workspace-project-summary,.workspace-project-move,.workspace-project-delete{height:27px;color:var(--text-muted);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-semibold);cursor:pointer;padding:0 8px}.workspace-project-summary{color:var(--text-strong)}.workspace-project-summary:hover,.workspace-project-move:hover{color:var(--text-strong);background:var(--surface-hover);border-color:var(--accent)}.workspace-project-delete{color:var(--danger-text)}.workspace-project-delete:hover{border-color:var(--danger-text)}.workspace-project-move:disabled,.workspace-project-delete:disabled{opacity:.5;cursor:wait}.workspace-new-project{background:var(--surface-veil-soft);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);align-content:center;gap:10px;min-height:155px;padding:20px;display:grid}.invitation-onboarding-card{width:min(100% - 36px,570px)}.pending-invitation-list{gap:10px;margin-top:24px;display:grid}.pending-invitation-list article{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-md);padding:17px}.pending-invitation-list article>div:first-child{justify-content:space-between;align-items:center;gap:12px;display:flex}.pending-invitation-list article strong{color:var(--text-strong);font-size:var(--text-lg)}.pending-invitation-list article span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.pending-invitation-list article small{color:var(--text-faint);font-size:var(--text-xs);margin-top:6px;display:block}.pending-invitation-actions{gap:8px;margin-top:15px;display:flex}.pending-invitation-actions button{border-radius:var(--radius-sm);height:34px;font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;padding:0 12px}.pending-invitation-actions button:first-child{color:var(--on-accent);background:var(--accent);border:0}.pending-invitation-actions button:last-child{color:var(--text-default);border:1px solid var(--border-strong);background:0 0}.workspace-team-view{margin-top:22px}.workspace-team-setup{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:560px;padding:24px}.workspace-team-setup span,.workspace-invite-form>div>span,.workspace-team-heading span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.workspace-team-setup h2,.workspace-invite-form h2,.workspace-team-heading h2{color:var(--text-strong);font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-2xl);margin:7px 0 0}.workspace-team-setup p,.workspace-invite-form p{color:var(--text-muted);font-size:var(--text-sm);margin:8px 0 0;line-height:1.5}.workspace-invite-form{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);grid-template-columns:minmax(250px,1fr) minmax(210px,.8fr) 160px 140px;align-items:end;gap:12px;padding:22px;display:grid}.workspace-invite-form label{gap:6px;display:grid}.workspace-invite-form label>span{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.workspace-invite-form input{height:39px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);outline:0;padding:0 10px}.workspace-invite-form input:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent-line)}.workspace-invite-form select,.workspace-member-list select{height:39px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);outline:0;padding-left:10px}.workspace-invite-form select:hover:not(:disabled),.workspace-member-list select:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent-line)}.workspace-invite-form input:focus,.workspace-invite-form select:focus,.workspace-member-list select:focus{border-color:var(--accent)}.workspace-invite-form>button{height:39px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:0}.workspace-invite-form>button:hover:not(:disabled){background:var(--accent-hover)}.workspace-team-section{margin-top:24px}.workspace-team-heading{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:end;padding-bottom:13px;display:flex}.workspace-team-heading h2{font-size:var(--text-xl)}.workspace-team-heading>strong,.workspace-team-loading{color:var(--text-muted);font-size:var(--text-sm)}.workspace-member-list{border:1px solid var(--border-strong);border-radius:var(--radius-md);margin-top:10px;display:grid;overflow:hidden}.workspace-member-list article{background:var(--surface-panel);border-bottom:1px solid var(--border-default);grid-template-columns:36px minmax(180px,1fr) 160px auto;align-items:center;gap:12px;min-height:62px;padding:10px 14px;display:grid}.workspace-member-list article:last-child{border-bottom:0}.workspace-member-list article>b{width:32px;height:32px;color:var(--text-strong);background:var(--ink-700);border-radius:var(--radius-full);font-size:var(--text-xs);place-items:center;display:grid}.workspace-member-list article>div{gap:4px;min-width:0;display:grid}.workspace-member-list article>div strong{color:var(--text-strong);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-member-list article>div small{color:var(--text-faint);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.workspace-member-list article>span{color:var(--text-default);font-size:var(--text-sm)}.workspace-member-list article>button{color:var(--red-400);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);background:0 0;padding:7px 9px}.workspace-member-list article>button:hover:not(:disabled){color:var(--danger-text);background:var(--danger-quiet);border-color:var(--danger-text)}.pending-team-section{margin-top:32px}.pending-member{opacity:.82}.workspace-company-view{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(100%,760px);margin:24px 0 40px;padding:26px}.workspace-company-heading>span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.workspace-company-heading h2{color:var(--text-strong);font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);margin:7px 0 0}.workspace-company-heading p{color:var(--text-muted);font-size:var(--text-sm);margin:8px 0 0;line-height:1.5}.workspace-company-logo{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);align-items:center;gap:17px;margin-top:23px;padding:16px;display:flex}.workspace-company-logo-preview{width:76px;height:76px;color:var(--text-muted);background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-lg);font-weight:var(--weight-bold);flex:0 0 76px;place-items:center;display:grid;overflow:hidden}.workspace-company-logo-preview img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.workspace-company-logo>div:last-child{min-width:0}.workspace-company-logo strong{color:var(--text-strong);font-size:var(--text-sm)}.workspace-company-logo p{color:var(--text-faint);font-size:var(--text-xs);margin:4px 0 0}.workspace-company-logo-actions{gap:8px;margin-top:10px;display:flex}.workspace-company-logo-upload,.workspace-company-logo-actions button{min-height:32px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);align-items:center;padding:0 11px;display:inline-flex}.workspace-company-logo-upload:hover{color:var(--text-strong);background:var(--surface-hover);border-color:var(--accent-line)}.workspace-company-logo-upload input{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.workspace-company-logo-actions button{color:var(--danger-text)}.workspace-company-logo-actions button:hover:not(:disabled){background:var(--danger-quiet);border-color:var(--danger-text)}.workspace-company-logo-actions button:disabled{opacity:.55;cursor:wait}.workspace-company-logo-upload:has(input:disabled){opacity:.55;cursor:wait}.workspace-company-form{grid-template-columns:1fr 1fr;gap:15px;margin-top:24px;display:grid}.workspace-company-form label{gap:6px;display:grid}.workspace-company-form label>span{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold)}.workspace-company-form input{width:100%;height:41px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);outline:0;padding:0 11px}.workspace-company-form input:hover:not(:disabled){background:var(--surface-hover);border-color:var(--accent-line)}.workspace-company-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8bbf581a}.workspace-company-form input:disabled{color:var(--text-default);opacity:.75;cursor:default}.workspace-company-wide{grid-column:1/-1}.workspace-company-save{min-width:160px;height:40px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-bold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:0;grid-column:1/-1;justify-self:start;margin-top:5px;padding:0 16px}.workspace-company-save:hover:not(:disabled){background:var(--accent-hover)}.workspace-company-save:disabled{opacity:.55;cursor:wait}.workspace-profile-view{width:min(100%,620px)}.workspace-profile-form{grid-template-columns:1fr}.workspace-profile-form .workspace-company-wide,.workspace-profile-form .workspace-company-save{grid-column:1}.workspace-footer{border-top:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:24px;min-height:86px;padding:20px 0 26px;display:flex}.workspace-footer .auth-brand{font-size:var(--text-md)}.workspace-footer-company{color:var(--text-faint);font-size:var(--text-xs);align-items:center;gap:9px;display:flex}.workspace-footer-company strong{color:var(--text-default);font-weight:var(--weight-semibold)}.workspace-footer-company span+span:before{color:var(--border-strong);content:"·";margin-right:9px}@media (width<=980px){.workspace-invite-form{grid-template-columns:1fr 1fr}.workspace-invite-form>div{grid-column:1/-1}}@media (width<=760px){.workspace-root-wrapper{width:calc(100% - 36px)}.workspace-project-grid,.workspace-company-form{grid-template-columns:1fr}.workspace-company-wide,.workspace-company-save{grid-column:1}.workspace-project-scroll{max-height:none;overflow:visible}.workspace-dashboard-title{flex-direction:column;align-items:flex-start;gap:15px}.workspace-footer,.workspace-footer-company{flex-direction:column;align-items:flex-start}.workspace-footer-company span+span:before{content:none}}.project-overview-shell{height:100dvh;color:var(--text-strong);background:radial-gradient(circle at 82% 10%, var(--shell-glow) 0, transparent 32%), var(--surface-base);overflow-y:auto}.project-overview-loading{color:var(--text-muted);place-content:center;justify-items:center;gap:12px;display:grid}.project-overview-page{width:min(100% - 48px,1180px);margin:0 auto;padding:26px 0 60px}.project-overview-header{justify-content:space-between;align-items:center;gap:18px;display:flex}.project-overview-back{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;margin:0 0 15px -10px;padding:8px 10px;display:block}.project-overview-back:hover{color:var(--text-strong);background:var(--surface-hover)}.project-overview-actions{justify-content:flex-end;gap:8px;display:flex}.project-overview-actions button,.project-cost-button{height:36px;color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);padding:0 13px}.project-overview-actions button:hover,.project-cost-button:hover{background:var(--surface-hover);border-color:var(--accent-line)}.project-overview-actions button.primary{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.project-overview-actions button.primary:hover{background:var(--accent-hover)}.project-overview-actions button.active{color:var(--text-strong);background:var(--surface-hover);border-color:var(--accent-line)}.project-overview-actions button:disabled{opacity:.5;cursor:default}.project-cost-button{white-space:nowrap;height:32px}.project-overview-title{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:end;gap:28px;margin-top:54px;padding-bottom:24px;display:flex}.project-overview-title-side{justify-items:end;gap:12px;display:grid}.project-overview-title>div:first-child>span,.quote-sheet-heading>div:first-child>span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.project-overview-title h1{font-family:var(--font-display);font-size:var(--text-4xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-tighter);margin:7px 0 0}.project-overview-title p{color:var(--text-muted);font-size:var(--text-sm);margin:8px 0 0}.project-overview-error,.project-overview-setup{margin-top:18px}.project-overview-setup{color:var(--signal-200);border-radius:var(--radius-sm);font-size:var(--text-sm);background:#8bbf581a;border:1px solid #8bbf583d;padding:12px 14px}.quote-editor-panel{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);margin-top:22px;padding:22px}.quote-editor-heading{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:end;gap:20px;padding-bottom:17px;display:flex}.quote-editor-heading span{color:var(--accent-text);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.quote-editor-heading h2{font-size:var(--text-xl);margin:5px 0 0}.quote-editor-heading small{color:var(--text-faint)}.quote-mode-picker{grid-template-columns:1fr 1fr;gap:10px;margin-top:18px;display:grid}.quote-mode-picker button{color:var(--text-muted);text-align:left;background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);gap:5px;padding:14px 15px;display:grid}.quote-mode-picker button:hover:not(:disabled){color:var(--text-strong);background:var(--surface-hover);border-color:var(--accent-line)}.quote-mode-picker button.active{color:var(--text-strong);border-color:var(--accent);background:#8bbf5814}.quote-mode-picker button:disabled{opacity:.55;cursor:default}.quote-mode-picker strong{font-size:var(--text-sm)}.quote-mode-picker span{color:var(--text-faint);font-size:var(--text-xs);line-height:1.4}.quote-editor-fields{grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;display:grid}.quote-editor-fields label{min-width:0;color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);gap:6px;display:grid}.quote-editor-fields label.wide{grid-column:1/-1}.quote-editor-fields input,.quote-editor-fields select,.quote-editor-fields textarea{width:100%;min-width:0;color:var(--text-strong);background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:0;padding:10px 11px}.quote-editor-fields input,.quote-editor-fields select{height:40px}.quote-editor-fields textarea{resize:vertical;min-height:82px}.quote-editor-fields input:hover:not(:disabled),.quote-editor-fields select:hover:not(:disabled),.quote-editor-fields textarea:hover:not(:disabled){border-color:var(--accent-line)}.quote-editor-fields input:focus,.quote-editor-fields select:focus,.quote-editor-fields textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8bbf581a}.quote-option-section{border-top:1px solid var(--border-default);margin-top:22px;padding-top:18px}.quote-option-section h3{font-size:var(--text-sm);margin:0 0 12px}.quote-option-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.quote-option-toggle{color:var(--text-muted);background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;align-items:center;gap:9px;padding:9px 10px;display:flex}.quote-option-toggle:hover{color:var(--text-strong);border-color:var(--accent-line)}.quote-option-toggle input{accent-color:var(--accent)}.quote-variant-tabs{gap:8px;margin-top:22px;padding-bottom:3px;display:flex;overflow-x:auto}.quote-variant-tabs button{min-width:150px;color:var(--text-muted);text-align:left;background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);gap:4px;padding:11px 14px;display:grid}.quote-variant-tabs button:hover{color:var(--text-strong);background:var(--surface-hover);border-color:var(--accent-line)}.quote-variant-tabs button.active{color:var(--text-strong);background:var(--surface-raised);border-color:var(--accent)}.quote-variant-tabs span{font-size:var(--text-sm);font-weight:var(--weight-semibold)}.quote-variant-tabs small{color:var(--text-faint);font-size:var(--text-xs)}.quote-summary-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px;display:grid}.quote-summary-grid article{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);gap:6px;min-width:0;padding:16px 17px;display:grid}.quote-summary-grid article.total{border-color:var(--accent-line)}.quote-summary-grid span,.quote-summary-grid small{color:var(--text-faint);font-size:var(--text-xs)}.quote-summary-grid strong{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--weight-regular);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.quote-sheet{background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-lg);margin-top:22px;padding:26px}.quote-sheet-heading{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:start;gap:24px;padding-bottom:20px;display:flex}.quote-sheet-heading h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--weight-regular);margin:6px 0 0}.quote-print-company{color:var(--text-muted);font-size:var(--text-xs);text-align:right;justify-items:end;gap:2px;display:grid}.quote-print-company strong{color:var(--text-strong);font-size:var(--text-sm)}.quote-parties{border-bottom:1px solid var(--border-default);grid-template-columns:minmax(220px,1fr) minmax(330px,1fr);gap:40px;padding:22px 0;display:grid}.quote-parties>div{align-content:start;gap:5px;display:grid}.quote-parties>div>span{color:var(--text-faint);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide)}.quote-parties>div>strong{font-size:var(--text-md)}.quote-parties p,.quote-parties small{color:var(--text-muted);font-size:var(--text-xs);white-space:pre-line;margin:0}.quote-parties dl{gap:6px;margin:0;display:grid}.quote-parties dl>div{grid-template-columns:145px 1fr;gap:14px;display:grid}.quote-parties dt{color:var(--text-faint);font-size:var(--text-xs)}.quote-parties dd{color:var(--text-default);font-size:var(--text-xs);white-space:pre-line;margin:0}.quote-category{margin-top:26px}.quote-category-title{justify-content:space-between;align-items:end;margin-bottom:9px;display:flex}.quote-category-title h3{color:var(--text-strong);font-size:var(--text-md);margin:0}.quote-category-title span{color:var(--text-faint);font-size:var(--text-xs)}.quote-table-wrap{border:1px solid var(--border-default);border-radius:var(--radius-md);overflow-x:auto}.quote-table-wrap table{border-collapse:collapse;width:100%;min-width:760px}.quote-table-wrap th{color:var(--text-faint);text-align:left;background:var(--surface-panel);border-bottom:1px solid var(--border-default);font-size:var(--text-2xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:9px 12px}.quote-table-wrap th:first-child{min-width:210px}.quote-table-wrap th:not(:first-child){text-align:right;white-space:nowrap}.quote-table-wrap td{color:var(--text-default);border-bottom:1px solid var(--border-default);font-size:var(--text-sm);vertical-align:middle;padding:12px}.quote-table-wrap tr:last-child td{border-bottom:0}.quote-table-wrap td:first-child{display:table-cell}.quote-table-wrap td:first-child strong,.quote-table-wrap td:last-child strong{color:var(--text-strong)}.quote-table-wrap td:first-child small{color:var(--text-faint);font-size:var(--text-2xs);margin-top:3px;display:block}.quote-table-wrap td:not(:first-child){text-align:right}.quote-cell-input{width:105px;height:32px;color:var(--text-strong);text-align:right;background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:0;padding:0 7px}.quote-cell-input.short{width:68px}.quote-cell-input.price{width:98px}.quote-cell-input.vat{width:55px}.quote-cell-input:hover:not(:disabled),.quote-cell-input:focus{border-color:var(--accent-line)}.quote-category-subtotal td{color:var(--text-strong);background:var(--surface-panel);border-top:1px solid var(--border-strong)}.quote-category-subtotal td:first-child{text-align:right;font-weight:var(--weight-bold);display:table-cell}.quote-manual-section .quote-category-title>div{gap:3px;display:grid}.quote-manual-section .quote-category-title>div>span{color:var(--text-faint);font-size:var(--text-xs)}.quote-add-line{color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;padding:8px 10px}.quote-add-line:hover{background:var(--surface-hover);border-color:var(--accent-line)}.quote-manual-description{gap:5px;padding-right:25px;display:grid;position:relative}.quote-manual-description input{width:100%;height:31px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);outline:0;padding:0 7px}.quote-manual-description input+input{color:var(--text-faint);font-size:var(--text-xs)}.quote-manual-description button{width:24px;height:24px;color:var(--danger-text);cursor:pointer;background:0 0;border:0;border-radius:50%;position:absolute;top:0;right:-3px}.quote-manual-description button:hover{background:#dc50501a}.quote-print-only{display:none}.quote-price-field{justify-content:flex-end;align-items:center;display:flex}.quote-price-field input{width:112px;height:34px;color:var(--text-strong);text-align:right;background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm) 0 0 var(--radius-sm);outline:0;padding:0 9px}.quote-price-field input:hover:not(:disabled){border-color:var(--accent-line)}.quote-price-field input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #8bbf581a}.quote-price-field>span{height:34px;color:var(--text-faint);background:var(--surface-base);border:1px solid var(--border-strong);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-size:var(--text-2xs);border-left:0;align-items:center;padding:0 8px;display:inline-flex}.quote-price-field input:disabled{opacity:.65}.quote-price-status{color:var(--text-faint);font-size:var(--text-2xs);margin-top:3px;display:block}.quote-price-status.saved{color:var(--accent-text)}.quote-price-print{display:none}.quote-totals{gap:10px;width:min(100%,390px);margin:28px 0 0 auto;display:grid}.quote-totals>div{color:var(--text-muted);font-size:var(--text-sm);justify-content:space-between;align-items:center;gap:20px;display:flex}.quote-totals strong{color:var(--text-strong)}.quote-totals .grand-total{color:var(--text-strong);border-top:1px solid var(--border-strong);font-size:var(--text-md);margin-top:3px;padding-top:13px}.quote-totals .grand-total strong{font-size:var(--text-lg)}.quote-disclaimer{color:var(--text-faint);font-size:var(--text-xs);margin:26px 0 0;line-height:1.5}.quote-copy-block{border-top:1px solid var(--border-default);margin-top:22px;padding-top:18px}.quote-copy-block strong{color:var(--text-strong);font-size:var(--text-sm)}.quote-copy-block p{color:var(--text-muted);font-size:var(--text-xs);white-space:pre-line;margin:6px 0 0;line-height:1.55}.quote-empty-state{color:var(--text-muted);text-align:center;padding:44px 20px}.quote-empty-state strong{color:var(--text-strong);font-size:var(--text-lg)}.quote-empty-state p{font-size:var(--text-sm);margin:8px 0 0}@media (width<=850px){.project-overview-title{flex-direction:column;align-items:flex-start}.project-overview-title-side{place-items:start;width:100%}.project-overview-actions{flex-wrap:wrap;justify-content:flex-start}.quote-summary-grid{grid-template-columns:1fr 1fr}.quote-editor-fields,.quote-parties,.quote-mode-picker{grid-template-columns:1fr}.quote-option-grid{grid-template-columns:1fr 1fr}}@media (width<=560px){.project-overview-page{width:calc(100% - 28px)}.project-overview-actions button:first-child{display:none}.quote-summary-grid{grid-template-columns:1fr}.quote-sheet{padding:18px}.quote-print-company{display:none}}@media print{@page{size:A4;margin:14mm}html,body,.project-overview-shell{color:#171a1b;background:#fff;height:auto;overflow:visible}.project-overview-page{width:100%;margin:0;padding:0}.project-overview-header,.project-overview-back,.project-overview-actions,.quote-variant-tabs,.project-overview-error,.project-overview-setup,.quote-summary-grid,.quote-editor-panel,.quote-screen-only{display:none!important}.project-overview-title{border-color:#bbb;margin:0;padding-bottom:14px}.project-overview-title h1,.project-overview-title p,.quote-sheet,.quote-sheet-heading h2,.quote-print-company strong,.quote-category-title h3,.quote-table-wrap td,.quote-table-wrap td strong,.quote-totals strong{color:#171a1b}.project-overview-title>div:first-child>span,.quote-sheet-heading>div:first-child>span{color:#4e7d25}.quote-sheet{background:#fff;border:0;margin:18px 0 0;padding:0}.quote-sheet-heading{border-color:#bbb}.quote-print-company,.quote-category-title span,.quote-disclaimer{color:#555}.quote-category{break-inside:avoid}.quote-table-wrap{border-color:#bbb;overflow:visible}.quote-table-wrap th{color:#555;background:#eee;border-color:#bbb}.quote-table-wrap td{border-color:#ccc}.quote-price-field,.quote-price-status{display:none}.quote-price-print,.quote-print-only{color:#171a1b;display:inline}.quote-totals .grand-total{border-color:#999}}.app-shell{background:var(--canvas-base);min-width:1120px;height:100dvh;overflow:hidden}.project-loading-shell{min-height:100dvh;color:var(--text-default);background:var(--surface-base);font-size:var(--text-md);place-content:center;justify-items:center;gap:12px;display:grid}.project-load-error>div{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(100vw - 40px,460px);padding:30px}.project-load-error span{color:var(--danger-text);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wider)}.project-load-error h1{color:var(--text-strong);font-family:var(--font-display);font-weight:var(--weight-regular);margin:8px 0}.project-load-error p{color:var(--text-default);font-size:var(--text-sm);line-height:1.5}.project-load-error button{height:38px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0;margin-top:12px;padding:0 14px}.save-state.has-error{color:var(--danger-text)}.project-header{height:72px;color:var(--text-strong);background:var(--surface-base);border-bottom:1px solid var(--border-default);grid-template-columns:minmax(280px,1fr) auto minmax(360px,1fr);align-items:center;gap:12px;padding:0 20px;display:grid}.header-context{align-items:center;gap:15px;min-width:0;display:flex}.brand{font-size:var(--text-lg);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);align-items:center;gap:11px;display:flex}.brand>span:last-child>span{color:var(--accent-text)}.brand-mark{border:1px solid var(--border-strong);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:2px;width:32px;height:32px;display:flex;transform:rotate(-5deg)}.brand-mark i{background:var(--accent);border-radius:var(--radius-xs);width:4px;height:15px;display:block}.brand-mark i:nth-child(2){height:21px}.project-identity{border-left:1px solid var(--border-default);align-items:center;gap:9px;min-width:0;padding-left:14px;display:flex}.back-button{margin-right:2px}.project-identity>div{flex-direction:column;min-width:0;display:flex}.project-identity>div span,.panel-heading span,.selection-title small{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.project-identity strong{text-overflow:ellipsis;white-space:nowrap;font-size:var(--text-lg);margin-top:3px;overflow:hidden}.mode-navigation{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);align-items:center;gap:3px;padding:4px;display:flex}.mode-navigation button{height:34px;color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0 13px;transition:color .15s,background .15s,box-shadow .15s}.mode-navigation button:hover{color:var(--text-strong);background:var(--surface-hover)}.mode-navigation button.active{color:var(--on-accent);background:var(--accent);box-shadow:var(--shadow-2)}.mode-navigation button.active:hover{color:var(--on-accent);background:var(--accent)}.header-actions{justify-self:end;align-items:center;gap:9px;display:flex}.save-state{color:var(--text-muted);font-size:var(--text-sm);align-items:center;gap:6px;margin-right:8px;display:flex}.save-state i{background:var(--warning-text);border-radius:var(--radius-full);width:7px;height:7px;box-shadow:0 0 0 3px #9ba19e1a}.save-state.is-saved i{background:var(--accent)}.primary-button,.secondary-button{border-radius:var(--radius-md);height:36px;font-size:var(--text-md);font-weight:var(--weight-semibold);cursor:pointer;padding:0 14px}.primary-button{color:var(--text-on-canvas);background:var(--accent);border:0}.primary-button span{margin-left:9px}.secondary-button{color:var(--text-strong);border:1px solid var(--border-strong);background:0 0}.avatar-button{width:36px;height:36px;color:var(--text-strong);background:var(--ink-700);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0}.icon-button{width:32px;height:32px;color:inherit;border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:0 0;place-items:center;display:grid}.app-shell :is(.project-header,.asset-library,.workflow-rail,.canvas-toolbar) button:not(:disabled){transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out), filter var(--duration-fast) var(--ease-out)}.app-shell :is(.project-header,.asset-library,.workflow-rail,.canvas-toolbar) button:hover:not(:disabled){border-color:var(--accent-line);filter:brightness(1.1)}.app-shell :is(.asset-library,.workflow-rail,.canvas-toolbar) :is(input,select,textarea){transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out)}.app-shell :is(.asset-library,.workflow-rail,.canvas-toolbar) :is(input,select,textarea):hover:not(:disabled){border-color:var(--accent-line)}.workspace{grid-template-columns:326px minmax(520px,1fr) 280px;height:calc(100dvh - 72px);display:grid}.asset-library,.workflow-rail{background:var(--surface-panel);min-height:0;color:var(--text-strong)}.asset-library{border-right:1px solid var(--border-default);flex-direction:column;padding:21px 18px 14px;display:flex}.asset-library>:not(.asset-grid):not(.planning-library-grid){flex:none}.panel-heading{justify-content:space-between;align-items:start;padding:0 2px 16px;display:flex}.panel-heading h1{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-2xl);letter-spacing:var(--tracking-tighter);margin:6px 0 0}.search-field{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);height:38px;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);align-items:center;gap:9px;padding:0 10px;display:flex}.search-field:hover{background:var(--surface-hover);border-color:var(--accent-line)}.search-field>span{color:var(--text-muted);font-size:var(--text-2xl);line-height:1;transform:rotate(-15deg)}.search-field input{min-width:0;color:var(--text-strong);font-size:var(--text-md);background:0 0;border:0;outline:0;flex:1}.search-field input::placeholder{color:var(--text-faint)}.search-field kbd{color:var(--text-faint);background:var(--surface-hover);border:1px solid var(--border-default);border-radius:var(--radius-xs);font-size:var(--text-xs);padding:3px 5px}.category-tabs{border-bottom:1px solid var(--border-default);flex-wrap:wrap;gap:3px;margin:14px 0;padding-bottom:13px;display:flex}.category-tabs button{color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:6px 9px}.category-tabs button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1);font-weight:var(--weight-semibold)}.library-meta{color:var(--text-faint);font-size:var(--text-sm);justify-content:space-between;align-items:center;margin:0 1px 10px;display:flex}.library-meta button{color:var(--text-default);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0}.library-notice{color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);margin:0 1px 10px;padding:9px 10px;line-height:1.45}.library-notice[role=alert]{color:var(--red-200);background:#dd7a631f;border-color:#dd7a6347}.equipment-glyph{place-items:center;display:grid;position:relative;overflow:hidden}.equipment-glyph>b{color:var(--object-color,var(--text-default));font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);line-height:1}.equipment-glyph-tile{background:var(--object-color,var(--ink-600));width:92%;height:92%}@supports (color:color-mix(in lab, red, red)){.equipment-glyph-tile{background:color-mix(in srgb, var(--object-color,var(--ink-600)) 13%, transparent)}}.equipment-glyph-tile{border:1px solid var(--object-color,var(--ink-500))}@supports (color:color-mix(in lab, red, red)){.equipment-glyph-tile{border:1px solid color-mix(in srgb, var(--object-color,var(--ink-500)) 42%, transparent)}}.equipment-glyph-tile{border-radius:var(--radius-md)}.equipment-glyph-tile>b{font-size:var(--text-lg)}.equipment-glyph-plan{background:var(--object-color,var(--ink-600));width:100%;height:100%}@supports (color:color-mix(in lab, red, red)){.equipment-glyph-plan{background:color-mix(in srgb, var(--object-color,var(--ink-600)) 20%, var(--surface-raised))}}.equipment-glyph-plan{border:1px solid var(--object-color,var(--ink-500))}@supports (color:color-mix(in lab, red, red)){.equipment-glyph-plan{border:1px solid color-mix(in srgb, var(--object-color,var(--ink-500)) 62%, transparent)}}.equipment-glyph-plan{border-radius:var(--radius-xs)}.equipment-glyph-plan>i{background:var(--object-color,var(--ink-600));opacity:.85;height:3px;position:absolute;top:0;left:0;right:0}.equipment-glyph-plan>b{font-size:var(--text-xs);opacity:.92}.placed-equipment.selected .equipment-glyph-plan{border-color:var(--info);box-shadow:0 0 0 1px var(--info), 0 0 5px #3f7fa88c}.asset-grid{scrollbar-width:thin;scrollbar-color:var(--text-on-canvas-muted) transparent;flex:auto;grid-template-columns:1fr 1fr;grid-auto-rows:max-content;align-content:start;gap:9px;min-height:0;padding:0 2px 12px;display:grid;overflow:auto}.asset-card{text-align:left;background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;min-width:0;transition:border-color .15s,box-shadow .15s;overflow:hidden}.asset-card:hover{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.asset-visual{background:var(--surface-raised);place-items:center;height:82px;display:grid;position:relative;overflow:hidden}.tone-lime{--object-color:var(--tone-green)}.tone-coral{--object-color:var(--tone-clay)}.tone-blue{--object-color:var(--tone-sky)}.tone-cream{--object-color:var(--tone-sand)}.asset-visual:before{background:radial-gradient(circle at 50% 70%, var(--object-color), transparent 58%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.asset-visual:before{background:radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--object-color) 18%, transparent), transparent 58%)}}.asset-visual:before{content:""}.asset-visual>img{z-index:1;object-fit:contain;filter:drop-shadow(0 8px 7px #00000059);width:92%;height:92%;transition:transform .18s;position:relative}.asset-card:hover .asset-visual>img{transform:none}.add-badge{z-index:2;width:20px;height:20px;color:var(--text-on-canvas);background:var(--accent);border-radius:var(--radius-full);font-size:var(--text-lg);font-weight:var(--weight-semibold);text-align:center;pointer-events:none;justify-content:center;align-items:center;padding:0 0 1px;line-height:1;display:flex;position:absolute;bottom:7px;right:7px}.asset-copy{flex-direction:column;padding:8px 9px 9px;display:flex}.asset-copy small{color:var(--text-faint);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-wide)}.asset-copy strong{min-height:27px;color:var(--text-strong);font-size:var(--text-sm);margin:4px 0 3px;line-height:1.3}.asset-copy em{color:var(--text-faint);font-size:var(--text-xs);font-style:normal}.inventory-list{flex-direction:column;gap:12px;margin-top:10px;padding:0 17px;display:flex}.inventory-list section{flex-direction:column;gap:4px;display:flex}.inventory-category{color:var(--text-faint);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase}.inventory-row{border-bottom:1px solid var(--border-veil);justify-content:space-between;align-items:baseline;gap:8px;padding:3px 0;display:flex}.inventory-row strong{color:var(--text-strong);font-size:var(--text-sm);font-weight:var(--weight-medium)}.inventory-row em{color:var(--accent-text);font-size:var(--text-sm);font-style:normal;font-weight:var(--weight-semibold)}.inventory-footer{margin-top:auto}.library-footer{border-top:1px solid var(--border-default);margin-top:auto;padding:12px 10px 2px}.library-footer span{color:var(--text-faint);font-size:var(--text-sm);display:block}.library-footer button{color:var(--accent-text);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0;padding:5px 0 0}.planning-library-heading{padding-bottom:9px}.planning-library-intro{color:var(--text-muted);font-size:var(--text-sm);margin:0 2px 17px;line-height:1.55}.default-lighting-card{justify-content:space-between;align-items:center;gap:var(--space-5);margin:0 2px var(--space-5);padding:var(--space-4);background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);display:flex}.default-lighting-card>div{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.default-lighting-card strong{color:var(--text-strong);font-size:var(--text-sm)}.default-lighting-card small{color:var(--text-faint);font-size:var(--text-xs);line-height:var(--leading-snug)}.planning-library-grid{scrollbar-width:thin;scrollbar-color:var(--text-on-canvas-muted) transparent;flex:auto;align-content:start;gap:8px;min-height:0;padding:1px 2px 12px;display:grid;overflow:auto}.planning-library-grid button{min-height:57px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);text-align:left;cursor:pointer;grid-template-columns:28px minmax(0,1fr) 24px;align-items:center;gap:10px;padding:8px 9px;display:grid}.planning-library-grid button:hover:not(:disabled){color:var(--accent-text);background:var(--surface-raised);border-color:var(--signal-700)}.planning-library-grid button[draggable=true]{cursor:grab}.planning-library-grid button:disabled{opacity:.38;cursor:not-allowed}.planning-library-grid button>i{justify-self:center;width:23px;height:23px;display:block;position:relative}.planning-library-grid button>span{flex-direction:column;gap:3px;min-width:0;display:flex}.planning-library-grid button strong{color:inherit;font-size:var(--text-sm)}.planning-library-grid button small{color:var(--text-faint);font-size:var(--text-xs);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.planning-library-grid button>b{width:22px;height:22px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-full);font-size:var(--text-lg);place-items:center;line-height:1;display:grid}:is(.planning-library-grid,.palette-drag-cursor-art) .door-icon{border-top:2px solid var(--ink-300);border-right:2px solid var(--ink-300);border-radius:0 100% 0 0}:is(.planning-library-grid,.palette-drag-cursor-art) .window-icon{border:2px solid var(--info-text);height:10px;box-shadow:inset 0 0 0 1px var(--surface-base)}:is(.planning-library-grid,.palette-drag-cursor-art) .mirror-icon{background:linear-gradient(135deg, var(--paper-200) 50%, var(--ink-300) 50%);border:2px solid var(--border-canvas);height:17px}:is(.planning-library-grid,.palette-drag-cursor-art) .opening-icon{border:2px dashed var(--danger-text);height:16px}:is(.planning-library-grid,.palette-drag-cursor-art) .column-icon{background:var(--ink-400);border:2px solid var(--ink-300);border-radius:var(--radius-full);width:17px;height:17px}:is(.planning-library-grid,.palette-drag-cursor-art) .platform-icon{border:2px solid var(--ink-300);border-radius:var(--radius-xs);background:#a8907c;width:19px;height:13px;box-shadow:inset 0 3px #ffffff59}:is(.planning-library-grid,.palette-drag-cursor-art) .wall-icon{background:var(--ink-400);border:2px solid var(--ink-300);height:10px;box-shadow:inset 0 0 0 1px var(--surface-base)}.planning-mode-tabs{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);grid-template-columns:repeat(4,1fr);gap:3px;margin:12px 0 2px;padding:3px;display:grid}.planning-mode-tabs button{color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;padding:7px 4px}.planning-mode-tabs button:hover:not(:disabled){color:var(--text-strong);background:var(--surface-hover)}.planning-mode-tabs button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1);font-weight:var(--weight-semibold)}.planning-mode-tabs button.active:hover{background:var(--surface-raised)}.brush-scopes{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.brush-scopes button{color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:8px 6px}.brush-scopes button:hover{border-color:var(--ink-500)}.brush-scopes button.active{color:var(--text-strong);border-color:var(--accent);box-shadow:inset 0 0 0 1px #8bbf5838}.brush-scopes button:disabled{opacity:.4;cursor:default}.wall-visibility-toggle{color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;margin-top:8px;padding:8px 10px}.wall-visibility-toggle.active{color:var(--text-strong);border-color:var(--accent);box-shadow:inset 0 0 0 1px #8bbf5838}.selected-room-editor{margin-top:10px}.room-panel-readout{color:var(--text-strong);font-style:normal;font-size:var(--text-sm)}.deselect-room-button{color:var(--text-default);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;margin-top:8px;padding:7px 9px}.brush-apply{color:var(--on-accent);background:var(--accent);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0;margin-top:10px;padding:9px 10px}.brush-apply:disabled{opacity:.45;cursor:default}.brush-hint{color:var(--text-default);background:var(--surface-panel);border:1px dashed var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-sm);margin-top:10px;padding:9px 10px;line-height:1.5}.free-room-floor.selectable,.free-room-floor.paint-target{cursor:pointer;pointer-events:auto}.free-room-floor.paint-target:hover{filter:brightness(1.18)}.free-room-floor.selected{filter:brightness(1.1);box-shadow:inset 0 0 0 2px #8bbf588c}.free-room-floor.paint-flash{box-shadow:inset 0 0 0 3px var(--accent);filter:brightness(1.3)}.free-wall-segment.is-hidden-wall{opacity:.35}.free-wall-segment.is-glass-wall{background:linear-gradient(90deg,#bfdde2,#e2f2f4);box-shadow:0 0 0 1px #7fa8af}.planning-library-note{color:var(--text-faint);border-top:1px solid var(--border-default);font-size:var(--text-sm);justify-content:space-between;align-items:center;margin-top:auto;padding:12px 3px 2px;display:flex}.planning-library-note strong{min-width:25px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-full);text-align:center;font-size:var(--text-sm);padding:4px 7px}.canvas-section{background:var(--canvas-base);flex-direction:column;min-width:0;display:flex}.canvas-toolbar{min-height:52px;padding:var(--space-2) 16px;background:var(--canvas-paper);border-bottom:1px solid var(--border-canvas);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;display:grid}.tool-group,.zoom-group{align-items:center;gap:4px;display:flex}.tool-group>span{background:var(--border-canvas);width:1px;height:21px;margin:0 5px}.tool-button,.zoom-group button{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:0;min-width:30px;height:30px}.tool-button.active{color:var(--text-strong);background:var(--surface-raised)}.tool-button:disabled{opacity:.25;cursor:default}.toolbar-centre{justify-content:center;align-items:center;gap:var(--space-4) 8px;flex-wrap:wrap;min-width:0;display:flex}.equipment-visibility-toggle{height:27px;color:var(--text-faint);background:var(--canvas-base);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;border:0;padding:0 10px}.equipment-visibility-toggle.active{color:var(--text-on-canvas)}.floor-picker{background:var(--canvas-base);border-radius:var(--radius-md);align-items:center;gap:3px;min-width:0;padding:3px;display:flex}.floor-picker-track{scroll-behavior:smooth;scrollbar-width:none;flex:0 auto;gap:3px;min-width:0;max-width:18vw;display:flex;position:relative;overflow-x:auto}.floor-picker-track::-webkit-scrollbar{display:none}.floor-picker .floor-picker-scroll{width:26px;height:27px;color:var(--text-on-canvas-muted);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;flex:none;place-items:center;padding:0;display:grid;position:relative}.floor-picker .floor-picker-scroll:hover:not(:disabled){color:var(--text-on-canvas);background:var(--paper-000);box-shadow:0 1px 4px #10121224}.floor-picker .floor-picker-scroll:disabled{color:var(--ink-200);cursor:default}.floor-picker .floor-picker-scroll:focus-visible{box-shadow:inset 0 0 0 1px var(--border-focus);outline:0}.floor-picker .floor-picker-scroll:first-child{margin-right:var(--space-3)}.floor-picker .floor-picker-track+.floor-picker-scroll{margin-left:var(--space-3)}.floor-picker .floor-picker-scroll:after{background:var(--border-canvas);content:"";width:1px;position:absolute;top:5px;bottom:5px}.floor-picker .floor-picker-scroll:first-child:after{right:-3px}.floor-picker .floor-picker-track+.floor-picker-scroll:after{left:-3px}.floor-picker button{height:27px;color:var(--text-faint);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);white-space:nowrap;cursor:pointer;background:0 0;border:0;padding:0 9px}.floor-picker button:hover{color:var(--text-on-canvas)}.floor-picker button.active{color:var(--text-on-canvas);background:var(--paper-000);box-shadow:0 1px 4px #10121224}.floor-picker .floor-picker-add,.floor-picker .floor-picker-remove{place-items:center;width:26px;height:27px;padding:0;display:grid}.floor-picker button>svg{display:block}.view-switch{background:var(--canvas-base);border-radius:var(--radius-md);padding:3px;display:flex}.view-switch button{width:47px;height:27px;color:var(--text-faint);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0}.view-switch button.active{color:var(--text-on-canvas);background:var(--paper-000);box-shadow:0 1px 4px #10121224}.view-switch button:disabled{opacity:.35;cursor:not-allowed}.plan-tool-switch button{width:var(--control-height-sm);place-items:center;padding:0;display:grid}.zoom-group{font-size:var(--text-sm);justify-content:flex-end}.zoom-group span{text-align:center;width:36px;color:var(--text-faint)}.zoom-group button:disabled{opacity:.3;cursor:default}.app-shell .canvas-toolbar button:hover:not(:disabled){color:var(--text-on-canvas);background:var(--paper-500);box-shadow:none;filter:none}.canvas-stage{background-color:var(--paper-200);background-image:radial-gradient(var(--ink-200) 1px, transparent 1px);perspective:1000px;background-size:16px 16px;flex:1;min-height:0;position:relative;overflow:hidden}.canvas-stage.automatic-room-pan,.canvas-stage.automatic-room-pan.is-panning{cursor:default}.room-3d-layer{z-index:12;background:var(--canvas-base);position:absolute;inset:0;overflow:hidden}.room-3d-layer canvas{cursor:default;display:block;width:100%!important;height:100%!important}.room-3d-status{color:var(--text-strong);background:var(--surface-veil);border:1px solid var(--border-veil);border-radius:var(--radius-md);pointer-events:none;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);flex-direction:column;padding:9px 11px;display:flex;position:absolute;top:16px;left:18px}.room-3d-status span{color:var(--accent-text);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.room-3d-status strong{font-size:var(--text-sm);margin-top:3px}.plan-caption{flex-direction:column;display:flex;position:absolute;top:17px;left:21px}.plan-caption span{color:var(--text-faint);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.plan-caption strong{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-lg);margin-top:3px}.plan-wrap{aspect-ratio:20/12;width:min(72%,670px);transform:translate(calc(-50% + var(--pan-x,0px)), calc(-50% + var(--pan-y,0px))) scale(var(--plan-scale,1));transform-style:preserve-3d;position:absolute;top:50%;left:50%}.canvas-stage.is-panning .plan-wrap{will-change:transform}.view-3d .plan-wrap{transform:translate(calc(-50% + var(--pan-x,0px)), calc(-48% + var(--pan-y,0px))) rotateX(56deg) rotateZ(-8deg) scale(calc(var(--plan-scale,1) * .88))}.floor-plan{touch-action:none;position:absolute;inset:0;overflow:visible;container-type:inline-size}.free-room-floor{z-index:4;pointer-events:none;place-items:center;display:grid;position:absolute;overflow:hidden}.free-room-floor.floor-rubber{background:#232627eb url(/textures/gym-rubber-floor.jpg) 50%/110px 110px}.free-room-floor.floor-wood{background:#8b6946e0 url(/textures/gym-wood-floor.jpg) 50%/145px 145px}.free-room-floor.floor-rubber-tiles{background:#5b5b59 url(/textures/rubber-tiles-diffuse.jpg) 50%/150px 150px}.free-room-floor>span{font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);text-shadow:none;opacity:.78;pointer-events:none;background:0 0;border-radius:0;padding:0}.free-room-caption-dark{color:var(--text-on-canvas)}.free-room-caption-light{color:var(--paper-000)}.free-wall-segment{z-index:12;height:var(--wall-draw-thickness,5px);background:var(--ink-750);pointer-events:none;transform-origin:50%;display:block;position:absolute}.free-wall-segment.free-wall-preview{z-index:36;background:var(--accent);opacity:.9;height:4px;box-shadow:0 0 0 1px #1012128c}.free-wall-move-target{--chrome:var(--plan-scale,1);z-index:31;height:calc(24px / var(--chrome));touch-action:none;transform-origin:50%;background:0 0;border:0;padding:0;position:absolute}.free-wall-move-target.wall-horizontal,.free-wall-move-target.wall-vertical{cursor:pointer}.free-wall-endpoint-resize{--chrome:var(--plan-scale,1);z-index:56;background:var(--accent);border:2px solid var(--paper-100);border-radius:var(--radius-full);cursor:grab;touch-action:none;transform-origin:50%;width:14px;height:14px;transform:translate(-50%, -50%) scale(calc(1 / var(--chrome)));padding:0;position:absolute;box-shadow:0 2px 7px #1012125c}.free-wall-endpoint-resize:hover{background:var(--accent-hover)}.free-wall-endpoint-resize:active{cursor:grabbing}.editing-structure .free-wall-element,.editing-structure .free-wall-element:active,.editing-structure .free-wall-element.selected-move-horizontal,.editing-structure .room-element.selected-move-horizontal,.editing-structure .free-wall-element.selected-move-vertical,.editing-structure .room-element.selected-move-vertical,.editing-structure .free-floor-column.selected-move-all,.editing-structure .room-element.selected-move-all,.editing-structure .free-wall-element.selected-move-horizontal:active,.editing-structure .room-element.selected-move-horizontal:active,.editing-structure .free-wall-element.selected-move-vertical:active,.editing-structure .room-element.selected-move-vertical:active,.editing-structure .free-floor-column.selected-move-all:active,.editing-structure .room-element.selected-move-all:active{cursor:pointer}.free-wall-length{z-index:50;font-weight:var(--weight-regular);letter-spacing:var(--tracking-tight);text-align:center;white-space:nowrap;text-shadow:none;opacity:.78;pointer-events:none;transform-origin:50%;background:0 0;line-height:1;display:block;position:absolute}.free-wall-length-dark{color:var(--text-on-canvas)}.free-wall-length-light{color:var(--paper-000)}.free-wall-node{z-index:32;width:var(--wall-node-size,0px);height:var(--wall-node-size,0px);background:var(--paper-000);border-radius:var(--radius-full);box-shadow:0 0 0 calc(var(--wall-node-size,0px) * .1) var(--border-default);pointer-events:none;display:block;position:absolute;transform:translate(-50%,-50%)}.free-wall-element{z-index:40;height:var(--wall-draw-thickness,5px);box-sizing:border-box;color:var(--text-on-canvas-muted);background:var(--paper-200);border-radius:calc(var(--wall-draw-thickness,5px) * .16);cursor:move;touch-action:none;transform-origin:50%;border:0;padding:0;position:absolute;overflow:visible}.free-wall-element-door{background:var(--canvas-paper)}.free-wall-element-window{background:#eef5f8}.free-wall-element-mirror,.free-wall-element-opening{background:0 0}.free-wall-element.selected{background:var(--accent)}.free-wall-element.selected .wall-symbol{stroke:var(--on-accent)}.wall-symbol{fill:none;stroke:var(--text-on-canvas);stroke-width:1.25px;stroke-linecap:round;pointer-events:none;position:absolute;overflow:visible}.wall-symbol-inwall{width:100%;height:100%;inset:0}.wall-symbol-arc{stroke-dasharray:4 4;opacity:.6}.wall-symbol-swing{aspect-ratio:1;transform-origin:50%;width:100%;bottom:100%;left:0}.free-wall-element-door.is-side-back .wall-symbol-swing{top:100%;bottom:auto;transform:scaleY(-1)}.free-wall-element-door.is-hinge-end .wall-symbol-swing{left:auto;right:0;transform:scaleX(-1)}.free-wall-element-door.is-side-back.is-hinge-end .wall-symbol-swing{transform:scale(-1)}.free-wall-element-mirror{--mirror-pane:calc(var(--wall-draw-thickness,5px) * .55)}.wall-mirror-pane{height:var(--mirror-pane);box-shadow:inset 0 0 0 calc(var(--mirror-pane) * .16) #78838b;pointer-events:auto;background:linear-gradient(#f6f8f9 0%,#cdd5da 42%,#8e9aa3 100%);position:absolute;top:100%;left:0;right:0}.free-wall-element-mirror.is-side-back .wall-mirror-pane{top:auto;bottom:100%}.wall-glass-pane{height:46%;box-shadow:0 0 0 var(--glass-edge) #7fa8af;pointer-events:none;background:linear-gradient(#e2f2f4,#bfdde2);position:absolute;top:50%;left:0;right:0;transform:translateY(-50%)}.free-wall-element-window{--glass-edge:max(.5px, calc(var(--wall-draw-thickness,5px) * .045));overflow:hidden}.free-floor-column{z-index:39;box-sizing:border-box;background:var(--ink-500);border:1px solid var(--border-default);border-radius:var(--radius-full);cursor:pointer;padding:0;display:block;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 5px #1012123d}.free-floor-column.shape-square{border-radius:var(--radius-xs)}.free-floor-stairs{z-index:39;box-sizing:border-box;background:repeating-linear-gradient(180deg, #b9c1c6 0, #b9c1c6 2px, #8b949a 2px, var(--ink-400) 6px);border:1px solid var(--border-default);border-radius:var(--radius-xs);cursor:pointer;padding:0;display:block;position:absolute;transform:translate(-50%,-50%)}.free-floor-stairs.stairs-spiral{background:repeating-conic-gradient(#b9c1c6 0 13deg, #8b949a 13deg 26deg);border-radius:var(--radius-full)}.free-floor-platform{z-index:38;box-sizing:border-box;border-radius:var(--radius-xs);cursor:pointer;background:#a8907cd9;border:1px solid #6d5b4c;padding:0;display:block;position:absolute;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 2px #ffffff40}.free-floor-platform.selected{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf584d,inset 0 0 0 2px #ffffff40}.free-floor-platform.finish-rubber{background:#232627 url(/textures/gym-rubber-floor.jpg) 50%/90px 90px}.free-floor-platform.finish-wood{background:#8b6946 url(/textures/gym-wood-floor.jpg) 50%/120px 120px}.free-floor-platform.finish-rubber-tiles{background:#5b5b59 url(/textures/rubber-tiles-diffuse.jpg) 50%/120px 120px}.platform-kind-switch{margin:8px 0 2px}.railing-controls{margin-top:8px}.railing-label{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.railing-chips{flex-wrap:wrap;gap:5px;margin-top:6px;display:flex}.railing-chips button{color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-full);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:5px 9px}.railing-chips button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1);border-color:var(--border-strong)}.free-floor-stairs.selected{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf5840}.stairs-run-note{color:var(--text-muted);font-size:var(--text-xs);margin:0 0 6px}.stairs-rotate{color:var(--text-strong);background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;padding:2px 7px}.stairs-rotate:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.floor-area-drawing-overlay{z-index:45;cursor:crosshair;position:absolute;inset:0}.floor-area-sketch{border-color:var(--accent);background:#8bbf5829}.planning-library-grid button.palette-armed{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf5840}.floor-area{z-index:20;box-sizing:border-box;border:1px solid var(--border-veil);border-radius:var(--radius-xs);cursor:pointer;padding:0;display:block;position:absolute;transform:translate(-50%,-50%)}.floor-area-rubber{background:#3a4145}.floor-area-wood{background:repeating-linear-gradient(90deg,#c9a06b 0 14px,#b98f5c 14px 15px)}.floor-area-rubber-tiles{background:repeating-conic-gradient(#4b5459 0 25%, #414a4f 0 50%) 0 0 / 18px 18px}.edge-handle-overlay{z-index:42;pointer-events:none;position:absolute}.edge-handle{background:var(--accent);border:2px solid var(--paper-100);border-radius:var(--radius-xs);pointer-events:auto;touch-action:none;width:12px;height:12px;padding:0;position:absolute;box-shadow:0 2px 6px #10121259}.edge-handle-left{cursor:ew-resize;top:50%;left:0;transform:translate(-50%,-50%)}.edge-handle-right{cursor:ew-resize;top:50%;right:0;transform:translate(50%,-50%)}.edge-handle-top{cursor:ns-resize;top:0;left:50%;transform:translate(-50%,-50%)}.edge-handle-bottom{cursor:ns-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.floor-area.selected{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf584d}.floor-area-icon{background:repeating-conic-gradient(var(--ink-400) 0 25%, var(--ink-600) 0 50%) 0 0 / 11px 11px;border:1px solid var(--ink-500);border-radius:var(--radius-xs);width:22px;height:22px;display:block}.free-floor-lamp.lamp-strip{border-radius:var(--radius-xs);min-width:14px;min-height:4px;box-shadow:0 0 8px 2px #ffecaa8c}.free-floor-lamp{z-index:39;box-sizing:border-box;border:1px solid var(--amber-500);border-radius:var(--radius-full);cursor:pointer;padding:0;display:block;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 8px 2px #ffecaa8c}.free-floor-lamp.automatic-light{opacity:.9;cursor:default;pointer-events:none;background:#fff4cf;min-width:8px;min-height:8px}.free-floor-lamp.selected{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf584d,0 0 8px 2px #ffecaa8c}.equipment-drop-preview{z-index:41;opacity:.55;border:1.5px dashed var(--accent);border-radius:var(--radius-xs);pointer-events:none;background:#8bbf582e;display:block;position:absolute;overflow:hidden;transform:translate(-50%,-50%)}.equipment-drop-preview img{object-fit:cover;width:100%;height:100%}.lamp-coverage{z-index:38;border-radius:var(--radius-full);pointer-events:none;background:#ffecaa14;border:1.5px dashed #d6a74bcc;position:absolute;transform:translate(-50%,-50%)}.lamp-controls{flex-direction:column;gap:7px;margin:6px 0 8px;display:flex}.lamp-controls label{align-items:center;gap:8px;display:flex}.lamp-controls span{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);flex:auto}.lamp-controls select{height:28px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);padding-left:6px}.lamp-controls input[type=color]{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;width:44px;height:28px;padding:2px}.lamp-heading{align-items:center;gap:7px;display:flex}.lamp-heading>span{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);flex:auto}.lamp-heading em{min-width:30px;color:var(--text-strong);font-size:var(--text-sm);text-align:center;font-style:normal}.lamp-heading button{width:30px;height:28px;color:var(--text-strong);background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);cursor:pointer}.lamp-heading button:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.lamp-tilt{flex-direction:column;gap:4px;display:flex}.lamp-tilt>span{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);justify-content:space-between;display:flex}.lamp-tilt em{color:var(--text-strong);font-size:var(--text-sm);font-style:normal}.tilt-dial{touch-action:none;cursor:pointer;width:100%}.tilt-dial-arc{fill:none;stroke:var(--text-on-canvas-muted);stroke-width:3px;stroke-linecap:round}.tilt-dial-tick{stroke:var(--text-on-canvas-muted);stroke-width:1.5px}.tilt-dial-beam{stroke:#ffecaacc;stroke-width:2px;stroke-dasharray:3 3}.tilt-dial-lamp{fill:#ffe9b0}.tilt-dial-handle{fill:var(--accent-text);stroke:var(--on-accent);stroke-width:1.5px}.lamp-icon{background:radial-gradient(circle at 50% 40%, #ffe9b0 0 30%, var(--ink-400) 32% 100%);border:1px solid var(--ink-500);border-radius:var(--radius-full);width:22px;height:22px;display:block}.stairs-icon{background:repeating-linear-gradient(180deg, var(--ink-400) 0, var(--ink-400) 3px, transparent 3px, transparent 6px);border:1px solid var(--ink-500);border-radius:var(--radius-xs);width:22px;height:22px;display:block}.free-floor-column.shape-triangle{background:var(--ink-750);clip-path:polygon(50% 0,100% 100%,0 100%);border:0;border-radius:0;box-shadow:0 2px 5px #1012123d}.free-floor-column.shape-triangle:before{background:var(--ink-500);clip-path:polygon(50% 3.35px,calc(100% - 2.43px) calc(100% - 1.5px),2.43px calc(100% - 1.5px));content:"";pointer-events:none;position:absolute;inset:0}.free-floor-column.selected{outline:2px solid var(--accent);outline-offset:3px}.free-floor-column.shape-triangle.selected{background:var(--accent);filter:drop-shadow(0 0 3px #8bbf58e6);outline:0}.planning-drop-preview{z-index:60;border-color:var(--accent);opacity:.68;pointer-events:none;box-shadow:0 0 0 2px #8bbf5833}.free-wall-drawing-overlay{z-index:34;cursor:default;touch-action:none;position:absolute;inset:0}.free-wall-drawing-overlay.is-wall-hover{cursor:pointer}.free-wall-drawing-overlay.is-drawing{cursor:crosshair}.plan-reference-layer{z-index:3;background:var(--paper-000);transform-origin:50%;-webkit-user-select:none;user-select:none;position:absolute;overflow:hidden;box-shadow:0 4px 18px #10121229}.plan-reference-layer.is-locked{pointer-events:none}.plan-reference-layer.is-movable{cursor:move;pointer-events:auto;touch-action:none}.plan-reference-layer>img,.plan-reference-layer>object{object-fit:fill;pointer-events:none;-webkit-user-select:none;user-select:none;border:0;width:100%;height:100%;display:block}.plan-calibration-overlay{z-index:30;cursor:crosshair;touch-action:none;position:absolute;inset:-600%}.plan-calibration-overlay:before{content:"";pointer-events:none;background:#8bbf580d;border:1px solid #8bbf58b8;position:absolute;inset:0}.plan-calibration-point{z-index:32;width:20px;height:20px;color:var(--on-accent);background:var(--accent);border:2px solid var(--paper-100);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-bold);pointer-events:none;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 8px #10121259}.plan-calibration-line{z-index:31;background:var(--accent);transform-origin:50%;pointer-events:none;height:2px;display:block;position:absolute;box-shadow:0 0 0 1px #10121247}.room-drawing-overlay{z-index:31;cursor:crosshair;touch-action:none;position:absolute;inset:-600%}.plan-measure-overlay{z-index:70;cursor:crosshair;touch-action:none;position:absolute;inset:-600%}.plan-measure-line{--chrome:var(--plan-scale,1);z-index:71;height:calc(2px / var(--chrome));margin-top:calc(-1px / var(--chrome));background:var(--accent);transform-origin:0;pointer-events:none;display:block;position:absolute}.plan-measure-point{--chrome:var(--plan-scale,1);z-index:72;width:var(--space-5);height:var(--space-5);background:var(--accent);border:2px solid var(--surface-panel);border-radius:var(--radius-full);box-shadow:var(--shadow-1);transform:translate(-50%, -50%) scale(calc(1 / var(--chrome)));pointer-events:none;display:block;position:absolute}.plan-measure-label{--chrome:var(--plan-scale,1);z-index:73;padding:var(--space-1) var(--space-3);color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-style:normal;font-weight:var(--weight-semibold);white-space:nowrap;transform:translate(-50%, -100%) scale(calc(1 / var(--chrome))) translateY(calc(var(--space-3) * -1));transform-origin:50% 100%;pointer-events:none;position:absolute}.scene-measure-label{padding:var(--space-1) var(--space-3);color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);box-shadow:var(--shadow-2);font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-style:normal;font-weight:var(--weight-semibold);white-space:nowrap;transform:translateY(calc(-50% - var(--space-4)));pointer-events:none;display:block}.room-drawing-overlay:before{content:"";pointer-events:none;background:#8bbf5809;border:1px solid #8bbf5880;position:absolute;inset:0}.room-drawing-instruction{z-index:33;color:var(--text-strong);background:var(--surface-veil);border:1px solid var(--border-veil);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);pointer-events:none;padding:6px 9px;position:absolute;top:12px;left:50%;transform:translate(-50%)}.room-drawing-rectangle{z-index:32;border:2px solid var(--accent);pointer-events:none;background:#8bbf5826;display:block;position:absolute;box-shadow:0 0 0 1px #16181840,inset 0 0 18px #8bbf5814}.room-drawing-rectangle small{color:var(--on-accent);background:var(--accent);border-radius:var(--radius-xs);font-size:var(--text-2xs);font-style:normal;font-weight:var(--weight-bold);white-space:nowrap;padding:3px 5px;position:absolute;bottom:5px;right:5px}.room-shape{z-index:1;box-sizing:border-box;border:5px solid var(--border-subtle);cursor:default;background-position:50%;position:absolute;overflow:hidden;box-shadow:0 17px 40px #23272629}.room-shape.selected{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf5833,0 17px 40px #23272629}.room-shape>span{z-index:2;color:#101212b8;border-radius:var(--radius-xs);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);pointer-events:none;background:#ffffffb8;padding:3px 5px;position:absolute;top:8px;left:10px}.room-shape.floor-rubber,.room-connection.floor-rubber{background-color:#4b4d4d;background-image:linear-gradient(#ffffff24 1px,#0000 1px),linear-gradient(90deg,#ffffff24 1px,#0000 1px),linear-gradient(#ffffffad,#ffffffad),url(/textures/gym-rubber-floor.jpg);background-size:5% 8.333%,5% 8.333%,auto,20% 33.333%}.room-shape.floor-wood,.room-connection.floor-wood{background-color:#d6bb8d;background-image:linear-gradient(#2631341f 1px,#0000 1px),linear-gradient(90deg,#2631341f 1px,#0000 1px),linear-gradient(#ffffff7a,#ffffff7a),url(/textures/gym-wood-floor.jpg);background-size:5% 8.333%,5% 8.333%,auto,20% 33.333%}.room-shape.floor-rubber-tiles,.room-connection.floor-rubber-tiles{background-color:#666663;background-image:linear-gradient(#ffffff7a,#ffffff7a),url(/textures/rubber-tiles-diffuse.jpg);background-size:auto,20% 33.333%}.room-connection{z-index:4;pointer-events:none;background-position:50%;position:absolute}.main-room-content{z-index:2;position:absolute}.view-3d .floor-plan{box-shadow:0 42px 55px #16181847}.editing-structure .placed-equipment{opacity:.8;filter:saturate(.65);pointer-events:none}.editing-structure .placed-equipment.selected>img{filter:none}.room-element{z-index:7;pointer-events:none;cursor:move;touch-action:none;background:0 0;border:0;padding:0;display:block;position:absolute}.editing-structure .room-element{pointer-events:auto}.room-element.wall-top{height:30px;top:-5px;transform:translate(-50%)}.room-element.wall-right{width:30px;right:-5px;transform:translateY(-50%)}.room-element.wall-bottom{height:30px;bottom:-5px;transform:translate(-50%)}.room-element.wall-left{width:30px;left:-5px;transform:translateY(-50%)}.room-element.wall-free{transform:translate(-50%,-50%)}.room-element.positioned-globally{bottom:auto;right:auto;transform:translate(-50%,-50%)}.room-element>i{pointer-events:none;display:block;position:absolute}.room-element-door>i{transform-origin:50%;inset:0;overflow:hidden}.room-element-door>i:before{background:var(--ink-750);content:"";width:100%;height:2px;position:absolute;top:0;right:0}.room-element-door>i:after{border:1px dashed var(--ink-400);border-radius:var(--radius-full);content:"";width:200%;height:200%;position:absolute;top:-100%;left:0}.room-element-door.wall-left>i{transform:rotate(180deg)}.room-element-door.wall-top>i{transform:rotate(-90deg)}.room-element-door.wall-bottom>i{transform:rotate(90deg)}.room-element-window>i,.room-element-mirror>i{background:var(--paper-000);border:3px solid}.room-element-window>i{border-color:var(--info-text);box-shadow:inset 0 0 0 1px var(--paper-000), 0 0 0 1px var(--info)}.room-element-mirror>i{border-color:var(--blue-200);background:linear-gradient(135deg, var(--paper-200) 25%, var(--canvas-base) 25%, var(--canvas-base) 50%, var(--paper-200) 50%, var(--paper-200) 75%, var(--canvas-base) 75%);background-size:6px 6px}.room-element-window.wall-top>i,.room-element-mirror.wall-top>i{height:7px;top:3px;left:0;right:0}.room-element-window.wall-bottom>i,.room-element-mirror.wall-bottom>i{height:7px;bottom:3px;left:0;right:0}.room-element-window.wall-left>i,.room-element-mirror.wall-left>i{width:7px;top:0;bottom:0;left:3px}.room-element-window.wall-right>i,.room-element-mirror.wall-right>i{width:7px;top:0;bottom:0;right:3px}.room-element-column{background:var(--ink-500);border:2px solid var(--border-default);border-radius:var(--radius-full);min-width:10px;min-height:10px;box-shadow:inset 0 0 0 2px var(--ink-300)}.room-element-column.shape-square{border-radius:var(--radius-xs)}.room-element-column.shape-triangle{background:var(--ink-750);clip-path:polygon(50% 0,100% 100%,0 100%);border:0;border-radius:0;box-shadow:0 2px 5px #1012123d}.room-element-column>i{background:var(--ink-750);border-radius:var(--radius-full);inset:30%}.room-element-column.shape-square>i{border-radius:1px}.room-element-column.shape-triangle>i{display:none}.room-element-wall{background:var(--ink-600);border:1px solid var(--border-default);min-height:5px;box-shadow:inset 0 0 0 1px var(--ink-300);transform-origin:50%}.room-element-wall>i{background:linear-gradient(90deg,#ffffff1f,#0000);inset:0}.wall-measure{z-index:8;color:var(--text-on-canvas-muted);box-shadow:none;font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);white-space:nowrap;pointer-events:none;background:0 0;border:0;padding:0;line-height:1;display:block;position:absolute;transform:translate(-50%,-50%)}.wall-measure-vertical{transform:translate(-50%,-50%)rotate(-90deg)}.interior-wall-measure{top:-16px;left:50%;transform:translate(-50%,-50%)}.room-wall-resize-hit{z-index:6;touch-action:none;background:0 0;border:0;padding:0;display:block;position:absolute;transform:translate(-50%,-50%)}.room-wall-resize-hit:after{border-radius:var(--radius-xs);content:"";background:0 0;transition:background .12s;position:absolute}.room-wall-resize-horizontal{cursor:ns-resize;height:14px}.room-wall-resize-horizontal:after{height:2px;top:6px;left:0;right:0}.room-wall-resize-vertical{cursor:ew-resize;width:14px}.room-wall-resize-vertical:after{width:2px;top:0;bottom:0;left:6px}.room-wall-resize-hit:hover:after{background:var(--accent)}.wall-resize-handle-2d{z-index:9;width:22px;height:22px;color:var(--on-accent);background:var(--accent);border:2px solid var(--paper-100);border-radius:var(--radius-full);font-size:var(--text-lg);font-style:normal;font-weight:var(--weight-bold);cursor:ew-resize;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;line-height:1;display:grid;position:absolute;top:50%;right:-15px;transform:translate(50%,-50%);box-shadow:0 3px 10px #0a0b0b4d}.wall-resize-handle-2d:hover{background:var(--accent-hover)}.room-element.selected{filter:drop-shadow(0 0 3px var(--info))}.room-element.selected:before{border:1px solid var(--info);border-radius:var(--radius-xs);content:"";position:absolute;inset:-4px}.room-element-column.shape-triangle:before{background:var(--ink-500);clip-path:polygon(50% 3.35px,calc(100% - 2.43px) calc(100% - 1.5px),2.43px calc(100% - 1.5px));content:"";pointer-events:none;border:0;border-radius:0;position:absolute;inset:0}.room-element-column.shape-triangle.selected{background:var(--accent);filter:drop-shadow(0 0 3px #8bbf58e6)}.dimension{color:var(--text-faint);font-size:var(--text-xs);justify-content:space-between;align-items:center;display:flex;position:absolute}.dimension:before{background:var(--ink-300);content:"";position:absolute}.dimension i{background:var(--ink-300);width:1px;height:7px}.dimension-top{top:-20px;left:0;right:0}.dimension-top:before{height:1px;left:0;right:0}.dimension-top{padding:0}.dimension-top i,.dimension-top{z-index:1}.dimension-top:after{background:var(--paper-200);content:var(--dimension-label);padding:0 7px;position:absolute;left:50%;transform:translate(-50%)}.dimension-top{font-size:0}.dimension-side{writing-mode:vertical-rl;top:0;bottom:0;left:-25px}.dimension-side:before{width:1px;top:0;bottom:0}.dimension-side:after{background:var(--paper-200);content:var(--dimension-label);padding:7px 0;position:absolute;top:50%;transform:translateY(-50%)}.dimension-side{font-size:0}.placed-equipment{z-index:40;cursor:pointer;touch-action:none;background:0 0;border:0;border-radius:0;place-items:center;padding:0;display:grid;position:absolute;overflow:visible}.placed-equipment:active{cursor:pointer}.placed-equipment img{object-fit:cover;filter:drop-shadow(0 1px 1px #00000038);pointer-events:none;width:100%;max-width:none;height:100%;display:block}.plan-art-crossed{width:calc(100% / var(--w-over-d,1));height:calc(100% * var(--w-over-d,1));position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-90deg)}.placed-equipment.selected{box-shadow:none;z-index:7;outline:0}.placed-equipment.selected>img{filter:drop-shadow(0 0 2px var(--info)) drop-shadow(0 0 4px #3f7fa88c)}.equipment-rotate-button,.equipment-rotate-button-3d,.wall-resize-button-3d{width:24px;height:24px;color:var(--on-accent);background:var(--accent);border:2px solid var(--paper-100);border-radius:var(--radius-full);font-size:var(--text-lg);font-weight:var(--weight-bold);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;padding:0 0 2px;line-height:1;display:grid;box-shadow:0 3px 10px #0a0b0b4d}.equipment-rotate-button:active,.equipment-rotate-button-3d:active,.wall-resize-button-3d:active{cursor:grabbing}.equipment-rotate-button{--chrome:var(--plan-scale,1);z-index:7;width:calc(18px / var(--chrome));height:calc(18px / var(--chrome));border-width:calc(1.5px / var(--chrome));border-radius:var(--radius-full);box-shadow:0 calc(2px / var(--chrome)) calc(6px / var(--chrome)) #0a0b0b4d;font-size:calc(11px / var(--chrome));margin-left:calc(7px / var(--chrome));padding:0;position:absolute;top:50%;left:100%;right:auto;transform:translateY(-50%)}.equipment-rotate-button:hover,.equipment-rotate-button-3d:hover,.wall-resize-button-3d:hover{background:var(--accent-hover);transform-origin:50%}.equipment-rotate-button-3d,.wall-resize-button-3d{pointer-events:auto;position:relative}.wall-resize-button-3d,.wall-resize-button-3d:active{cursor:ew-resize}.wall-height-button-3d,.equipment-elevation-button-3d{width:24px;height:24px;color:var(--on-accent);background:var(--accent);border:2px solid var(--paper-100);border-radius:var(--radius-full);font-size:var(--text-lg);font-weight:var(--weight-bold);cursor:ns-resize;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none;place-items:center;padding:0 0 1px;line-height:1;display:grid;box-shadow:0 3px 10px #0a0b0b4d}.wall-height-button-3d:hover,.equipment-elevation-button-3d:hover:not(:disabled){background:var(--accent-hover)}.wall-height-button-3d:active{cursor:ns-resize}.equipment-elevation-3d{pointer-events:auto;justify-items:center;gap:4px;display:grid}.equipment-elevation-button-3d{cursor:pointer}.equipment-elevation-button-3d:disabled{cursor:default;opacity:.45}.equipment-elevation-readout-3d{color:var(--text-strong);background:var(--surface-veil);border:1px solid var(--border-veil);border-radius:var(--radius-sm);font-size:var(--text-xs);white-space:nowrap;padding:2px 6px;line-height:1}.workflow-rail{border-left:1px solid var(--border-default);overflow:auto}.room-panel,.step-info-panel{border-bottom:1px solid var(--border-default);padding:16px 17px 18px;position:relative}.selection-close{z-index:2;width:22px;height:22px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);cursor:pointer;place-items:center;padding:0;line-height:1;display:grid;position:absolute;top:10px;right:12px}.selection-close:hover{color:var(--text-strong);border-color:var(--ink-500)}.room-panel.has-free-structure-selection>:not(.free-wall-panel):not(.selection-close),.room-panel.has-room-element-selection>:not(.building-element-editor),.room-panel.has-connected-room-selection>:not(.room-manager),.room-panel.has-free-structure-selection .free-wall-panel>:not(.free-wall-elements-panel):not(.selected-room-editor):not(.multi-select-editor),.room-panel.has-free-structure-selection .free-wall-elements-heading,.room-panel.has-connected-room-selection .room-manager>:not(.connected-room-editor){display:none}.room-panel.has-free-structure-selection .free-wall-panel,.room-panel.has-free-structure-selection .free-wall-elements-panel,.room-panel.has-connected-room-selection .room-manager{border:0;margin:0;padding:0}.step-panel-title{flex-direction:column;display:flex}.step-panel-title small{color:var(--danger-text);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.step-panel-title strong{color:var(--text-strong);font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-xl);margin-top:5px}.step-panel-title p{color:var(--text-faint);font-size:var(--text-xs);margin:5px 0 0;line-height:1.5}.room-inputs{grid-template-columns:1fr 1fr;gap:8px;margin-top:14px;display:grid}.plan-reference-panel{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-top:13px;padding:11px}.plan-reference-heading{justify-content:space-between;align-items:center;display:flex}.plan-reference-heading span{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.plan-reference-heading small{color:var(--text-faint);font-size:var(--text-2xs)}.plan-upload-input{display:none}.plan-upload-button{width:100%;min-height:54px;color:var(--text-default);text-align:left;background:var(--surface-panel);border:1px dashed var(--ink-500);border-radius:var(--radius-sm);cursor:pointer;align-items:center;gap:9px;margin-top:9px;padding:8px;display:flex}.plan-upload-button:hover{color:var(--accent-text);border-color:var(--accent)}.plan-upload-button>i{width:28px;height:28px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-lg);flex:none;place-items:center;font-style:normal;display:grid}.plan-upload-button>span{flex-direction:column;gap:3px;min-width:0;display:flex}.plan-upload-button strong{font-size:var(--text-xs)}.plan-upload-button small{color:var(--text-faint);font-size:var(--text-2xs)}.plan-reference-controls{flex-direction:column;gap:8px;margin-top:9px;display:flex}.plan-file-row{background:var(--surface-panel);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:7px;padding:7px;display:flex}.plan-file-row>span{flex-direction:column;gap:2px;min-width:0;display:flex}.plan-file-row strong{color:var(--text-strong);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-file-row small{color:var(--text-faint);font-size:var(--text-2xs)}.plan-file-row button,.plan-toggle-row button,.plan-calibrate-button,.plan-calibration-controls button,.remove-plan-button{min-height:28px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);cursor:pointer;padding:0 8px}.plan-file-row button{flex:none}.plan-toggle-row{grid-template-columns:1fr 1fr;gap:6px;display:grid}.plan-toggle-row button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1);border-color:var(--border-strong);font-weight:var(--weight-semibold)}.plan-number-grid{grid-template-columns:1fr 1fr;gap:7px;display:grid}.plan-number-grid label,.plan-calibration-controls label{color:var(--text-muted);font-size:var(--text-2xs);flex-direction:column;gap:4px;display:flex}.plan-number-grid label>div,.plan-calibration-controls label>div{position:relative}.plan-number-grid input,.plan-calibration-controls input{width:100%;height:29px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);outline:0;padding:0 22px 0 7px}.plan-number-grid em,.plan-calibration-controls em{color:var(--text-faint);font-size:var(--text-2xs);font-style:normal;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.plan-calibrate-button.active{color:var(--red-200);border-color:var(--red-500)}.plan-calibration-controls{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);grid-template-columns:1fr auto;gap:7px;padding:8px;display:grid}.plan-calibration-controls p{color:var(--text-muted);font-size:var(--text-2xs);grid-column:span 2;margin:0;line-height:1.45}.plan-calibration-controls button{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:var(--weight-semibold);align-self:end}.plan-calibration-controls button:disabled{opacity:.35;cursor:not-allowed}.remove-plan-button{color:var(--danger-text);background:0 0;border-color:#7a817e40}.blank-canvas-actions{margin-top:9px}.start-blank-button,.draw-first-room-button{width:100%;min-height:34px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;padding:7px 9px}.start-blank-button{color:var(--red-200);text-align:left;border-color:#9ba19e40;flex-direction:column;align-items:flex-start;gap:3px;display:flex}.start-blank-button small{color:var(--text-faint);font-size:var(--text-2xs);font-weight:var(--weight-medium)}.draw-first-room-button{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.draw-first-room-button.active{color:var(--red-200);border-color:var(--danger);background:0 0}.blank-canvas-actions>p{color:var(--text-faint);font-size:var(--text-2xs);margin:6px 2px 0;line-height:1.45}.free-wall-panel{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-md);margin-top:9px;padding:10px}.free-wall-panel-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.free-wall-panel-heading span{color:var(--accent-text);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.free-wall-panel-heading small{color:var(--text-faint);font-size:var(--text-2xs)}.free-wall-panel>p{color:var(--text-muted);font-size:var(--text-2xs);margin:7px 0 9px;line-height:1.5}.free-wall-toggle{width:100%;min-height:34px;color:var(--on-accent);background:var(--accent);border:1px solid var(--accent);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;padding:7px 9px}.free-wall-toggle.active{color:var(--red-200);border-color:var(--danger);background:0 0}.free-wall-actions{grid-template-columns:1fr;gap:6px;margin-top:7px;display:grid}.free-wall-actions button{min-height:29px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);cursor:pointer;padding:5px 7px}.free-wall-actions button:last-child{color:var(--red-400);border-color:#9ba19e4d}.room-height-picker>input[type=range]{width:100%;accent-color:var(--accent);cursor:pointer;margin-top:8px}.room-height-picker{border-top:1px solid var(--border-default);margin-top:10px;padding-top:10px}.room-height-switch{background:var(--surface-base);border:1px solid var(--border-default);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:4px;margin-top:8px;padding:4px;display:grid}.room-height-switch button{height:28px;color:var(--text-muted);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0}.room-height-switch button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1)}.room-height-field{align-items:center;gap:7px;margin-top:8px;display:flex}.room-height-field>span{color:var(--text-faint);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide);flex:auto}.room-height-field input{width:74px;height:31px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);outline:0;padding:0 8px}.room-height-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf581a}.room-height-field>div{position:relative}.room-height-field em{color:var(--text-faint);font-size:var(--text-2xs);font-style:normal;position:absolute;top:50%;transform:translateY(-50%)}.room-height-hint{color:var(--text-faint);font-size:var(--text-2xs);margin:6px 0 0;line-height:1.5}.object-actions button:disabled{opacity:.4;cursor:not-allowed}.wall-element-arrow{-webkit-user-select:none;user-select:none;pointer-events:none;padding:10px}.wall-element-arrow button{opacity:0;pointer-events:auto;width:26px;height:26px;color:var(--text-strong);background:var(--surface-veil);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);cursor:pointer;place-items:center;padding:0;line-height:1;transition:opacity .12s,background .12s,color .12s;display:grid;box-shadow:0 3px 10px #00000073}.wall-element-arrow button:hover,.wall-element-arrow button:focus-visible{opacity:1}.wall-element-arrow button:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.wall-element-arrow button:active{background:var(--accent)}.wall-element-arrow-horizontal button{cursor:ew-resize}.wall-element-arrow-vertical button{cursor:ns-resize}.snap-guide{z-index:8;pointer-events:none;filter:drop-shadow(0 0 3px #0000008c);position:absolute}.snap-guide-x{border-left:2px dashed var(--accent);width:0}.snap-guide-y{border-top:2px dashed var(--accent);height:0}.snap-guide-wall{border-color:var(--info-text)}.camera-controls{z-index:14;pointer-events:none;flex-direction:column;align-items:flex-start;gap:8px;display:flex;position:absolute;bottom:12px;left:12px}.camera-controls>*{pointer-events:auto}.camera-mode-switch{background:var(--surface-veil);border:1px solid var(--border-strong);border-radius:var(--radius-md);gap:4px;padding:4px;display:flex}.camera-mode-switch button{height:28px;color:var(--text-default);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;background:0 0;border:0;padding:0 10px}.camera-mode-switch button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1)}.shadow-toggle{height:28px;color:var(--text-default);background:var(--surface-veil);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0 10px}.shadow-toggle.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.camera-shutter{width:44px;height:44px;color:var(--text-strong);background:var(--surface-veil);border:1px solid var(--border-strong);border-radius:var(--radius-full);font-size:var(--text-xl);cursor:pointer;place-items:center;line-height:1;display:grid}.camera-shutter:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.camera-shutter:active{transform:scale(.94)}.camera-roll{flex-wrap:wrap;gap:5px;max-width:320px;display:flex}.camera-roll-shot{background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;width:54px;height:36px;padding:0;overflow:hidden}.camera-roll-shot:hover{border-color:var(--accent)}.camera-roll-shot img{object-fit:cover;width:100%;height:100%;display:block}.confirm-dialog{z-index:50;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.confirm-dialog-backdrop{background:var(--surface-veil-soft);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:default;border:0;padding:0;position:absolute;inset:0}.confirm-dialog-panel{background:var(--surface-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:min(400px,100%);box-shadow:var(--shadow-4);padding:20px 22px;position:relative}.confirm-dialog-panel strong{color:var(--text-strong);font-size:var(--text-md);display:block}.confirm-dialog-panel p{color:var(--text-default);font-size:var(--text-sm);margin:8px 0 0;line-height:1.6}.confirm-dialog-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.confirm-dialog-actions button{border-radius:var(--radius-md);height:34px;font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0 16px}.confirm-dialog-cancel{color:var(--text-strong);background:var(--surface-hover);border:1px solid var(--border-strong)}.confirm-dialog-cancel:hover,.confirm-dialog-cancel:focus-visible{border-color:var(--accent);outline:0}.confirm-dialog-danger{color:var(--text-strong);background:var(--danger);border:1px solid var(--danger)}.confirm-dialog-danger:hover{background:var(--danger)}.confirm-dialog-actions button:disabled{opacity:.55;cursor:wait}.photo-preview{z-index:40;place-items:center;padding:28px;display:grid;position:fixed;inset:0}.photo-preview-backdrop{background:var(--surface-veil);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);position:absolute;inset:0}.photo-preview-panel{background:var(--surface-overlay);border:1px solid var(--border-strong);border-radius:var(--radius-lg);max-width:min(1100px,100%);max-height:100%;box-shadow:var(--shadow-4);flex-direction:column;display:flex;position:relative;overflow:hidden}.photo-preview-panel header{border-bottom:1px solid var(--border-default);justify-content:space-between;align-items:center;gap:20px;padding:18px 22px;display:flex}.photo-preview-panel header>div{flex-direction:column;gap:3px;display:flex}.photo-preview-panel header span{color:var(--accent-text);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.photo-preview-panel header strong{color:var(--text-strong);font-size:var(--text-sm)}.photo-preview-close{width:30px;height:30px;color:var(--text-strong);background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);cursor:pointer;flex:none}.photo-preview-close:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.photo-preview-frame{background:var(--surface-base);min-height:0;padding:20px 22px;overflow:auto}.photo-preview-frame img{border-radius:var(--radius-sm);max-width:100%;max-height:66vh;margin:0 auto;display:block}.photo-preview-panel footer{border-top:1px solid var(--border-default);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:18px 22px 20px;display:flex}.photo-actions{gap:12px;margin-left:auto;display:flex}.photo-quality{align-items:center;gap:10px;display:flex}.photo-quality>span{color:var(--text-faint);font-size:var(--text-2xs);letter-spacing:var(--tracking-wider)}.photo-quality>div{gap:5px;display:flex}.photo-quality button{min-width:40px;height:32px;color:var(--text-default);background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0 12px}.photo-quality button:hover{border-color:var(--accent)}.photo-quality button.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.photo-actions button{height:38px;color:var(--text-strong);background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0 20px}.photo-actions button:hover:not(:disabled){color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.photo-actions .photo-save:disabled{color:var(--accent-text);border-color:var(--border-strong);cursor:default;background:0 0}.camera-eye-height{background:var(--surface-veil);border:1px solid var(--border-strong);border-radius:var(--radius-md);align-items:center;gap:8px;padding:6px 9px;display:flex}.camera-eye-height>span{color:var(--text-faint);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide)}.camera-eye-height input[type=range]{width:96px;accent-color:var(--accent);cursor:pointer}.camera-eye-height small{min-width:34px;color:var(--text-strong);font-size:var(--text-xs);text-align:right}.camera-eye-height select{height:26px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;padding-left:6px}.camera-hint{color:var(--text-default);background:var(--surface-veil);border-radius:var(--radius-sm);font-size:var(--text-xs);letter-spacing:var(--tracking-wide);margin:0;padding:5px 9px}.tour-panel .tour-empty{color:var(--text-faint);font-size:var(--text-xs);margin:12px 0 0;line-height:1.6}.tour-gallery{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.tour-shot{background:var(--surface-base);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:zoom-in;flex-direction:column;gap:3px;padding:0;display:flex;overflow:hidden}.tour-shot:hover{border-color:var(--accent)}.tour-shot img{aspect-ratio:16/10;object-fit:cover;width:100%;display:block}.tour-shot small{color:var(--text-faint);font-size:var(--text-2xs);text-align:left;padding:0 6px 5px}.scene-3d-loading{color:var(--text-muted);background:var(--surface-panel);font-size:var(--text-md);letter-spacing:var(--tracking-wide);place-content:center;display:grid;position:absolute;inset:0}.free-room-name-3d{color:var(--text-strong);background:var(--surface-veil-soft);border:1px solid var(--border-veil);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);white-space:nowrap;pointer-events:none;padding:4px 7px;display:block}.free-wall-elements-panel{border-top:1px solid var(--border-default);margin-top:9px;padding-top:9px}.free-wall-elements-heading{justify-content:space-between;align-items:center;display:flex}.free-wall-elements-heading span{color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.free-wall-elements-heading small{color:var(--text-faint);font-size:var(--text-2xs)}.free-wall-element-buttons{grid-template-columns:1fr 1fr;gap:6px;margin-top:7px;display:grid}.free-wall-element-buttons button{min-height:30px;color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-semibold);cursor:pointer}.free-wall-element-buttons button:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.free-wall-element-editor{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);margin-top:8px;padding:8px}.free-wall-element-editor>strong{color:var(--text-strong);font-size:var(--text-xs);display:block}.free-wall-element-editor>div{grid-template-columns:1fr 1fr;gap:7px;margin-top:7px;display:grid}.free-wall-element-editor label{color:var(--text-muted);font-size:var(--text-2xs);flex-direction:column;gap:4px;display:flex;position:relative}.free-wall-element-editor input{width:100%;height:30px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);outline:0;padding:0 24px 0 7px}.free-wall-element-editor input:focus{border-color:var(--accent)}.door-swing-controls{margin-top:9px}.door-swing-controls>span{color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wide);display:block}.door-swing-controls>div{grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;display:grid}.door-swing-controls button{min-height:28px;color:var(--text-muted);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);font-weight:var(--weight-semibold);cursor:pointer;padding:0 6px}.door-swing-controls button:hover{color:var(--text-strong)}.door-swing-controls button.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.free-wall-element-editor em{color:var(--text-faint);font-size:var(--text-2xs);font-style:normal;position:absolute;bottom:8px;right:7px}.delete-free-wall-element{width:100%;min-height:28px;color:var(--red-400);border-radius:var(--radius-sm);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:1px solid #9ba19e47;margin-top:7px}.column-shape-picker{border-top:1px solid var(--border-default);margin-top:9px;padding-top:9px}.column-shape-picker>span{color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);display:block}.column-shape-picker>div{grid-template-columns:repeat(3,1fr);gap:5px;margin-top:7px;display:grid}.column-shape-picker button{min-width:0;min-height:49px;color:var(--text-muted);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:5px;display:flex}.column-shape-picker button:hover{color:var(--text-strong);border-color:var(--ink-500)}.column-shape-picker button.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.column-shape-picker button small{max-width:100%;font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.column-shape-icon{background:currentColor;width:17px;height:17px;display:block}.column-shape-icon.shape-circle{border-radius:var(--radius-full)}.column-shape-icon.shape-square{border-radius:1px}.column-shape-icon.shape-triangle{clip-path:polygon(50% 0,100% 100%,0 100%)}.room-panel.no-main-room .room-inputs,.room-panel.no-main-room .room-manager,.room-panel.no-main-room .building-elements,.room-panel.no-main-room .building-element-editor,.room-panel.no-main-room .continue-button{display:none}.room-inputs label{flex-direction:column;gap:5px;display:flex}.room-inputs label>span{color:var(--text-muted);font-size:var(--text-xs)}.room-inputs label>div{position:relative}.room-inputs input{width:100%;height:36px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md);font-weight:var(--weight-semibold);outline:0;padding:0 27px 0 9px}.room-inputs input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf581a}.room-inputs em{color:var(--text-faint);font-size:var(--text-sm);font-style:normal;position:absolute;top:50%;right:9px;transform:translateY(-50%)}.area-summary{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin-top:10px;padding:10px;display:flex}.area-summary span{color:var(--text-muted);font-size:var(--text-xs)}.area-summary strong{color:var(--accent-text);font-size:var(--text-md)}.floor-material-picker{border-top:1px solid var(--border-default);margin-top:13px;padding-top:12px}.floor-material-options{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;display:grid}.floor-material-options button{min-width:0;color:var(--text-default);text-align:left;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:30px 1fr;align-items:center;gap:7px;padding:6px;display:grid}.floor-material-options button.active{color:var(--text-strong);border-color:var(--accent);box-shadow:inset 0 0 0 1px #8bbf5838}.floor-material-options button>i{border:1px solid var(--border-veil);border-radius:var(--radius-sm);background-position:50%;background-size:cover;width:30px;height:30px;display:block}.floor-material-options .rubber-floor-swatch{background-image:url(/textures/gym-rubber-floor.jpg)}.floor-material-options .wood-floor-swatch{background-image:url(/textures/gym-wood-floor.jpg)}.floor-material-options .rubber-tiles-floor-swatch{background-image:url(/textures/rubber-tiles-diffuse.jpg)}.floor-material-options button>span{flex-direction:column;gap:3px;min-width:0;display:flex}.floor-material-options button strong{color:inherit;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.floor-material-options button small{color:var(--text-faint);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wall-material-options{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;display:grid}.wall-material-options button{min-width:0;color:var(--text-default);text-align:left;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;grid-template-columns:38px minmax(0,1fr);align-items:center;gap:7px;padding:6px;display:grid}.wall-material-options button:hover{border-color:var(--ink-500)}.wall-material-options button.active{color:var(--text-strong);border-color:var(--accent);box-shadow:inset 0 0 0 1px #8bbf5838}.wall-material-options button>i{border:1px solid var(--border-veil);border-radius:var(--radius-sm);background-position:50%;background-size:cover;width:38px;height:38px;display:block}.wall-material-options .plaster-wall-swatch{background-image:url(/textures/painted-plaster-diffuse.jpg)}.wall-material-options .brick-wall-swatch{background-image:url(/textures/red-brick-diffuse.jpg)}.wall-material-options .glass-wall-swatch{background:linear-gradient(135deg,#e6f4f6 0%,#9fc4cb 55%,#d9edf0 100%)}.wall-material-options button>span{flex-direction:column;gap:3px;min-width:0;display:flex}.wall-material-options button strong{color:inherit;font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.wall-material-options button small{color:var(--text-faint);font-size:var(--text-2xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.room-manager{border-top:1px solid var(--border-default);margin-top:13px;padding-top:12px}.room-list{flex-direction:column;gap:5px;margin-top:9px;display:flex}.room-list button{width:100%;color:var(--text-default);text-align:left;background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;justify-content:space-between;align-items:center;padding:7px 8px;display:flex}.room-list button.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px #8bbf582e}.room-list button>span{flex-direction:column;gap:2px;display:flex}.room-list button strong{color:inherit;font-size:var(--text-xs)}.room-list button small{color:var(--text-faint);font-size:var(--text-2xs)}.room-list button em{color:var(--accent-text);font-size:var(--text-xs);font-style:normal}.room-add-row{grid-template-columns:1fr 1fr;gap:6px;margin-top:7px;display:grid}.room-add-row select,.room-add-row button,.connected-room-editor select,.connected-room-editor input{min-width:0;height:31px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-2xs);outline:0;padding:0 7px}.room-add-row select,.connected-room-editor select{padding-right:var(--select-chevron-space)}.room-add-row button{color:var(--on-accent);background:var(--accent);border-color:var(--accent);font-weight:var(--weight-semibold);cursor:pointer}.room-add-row button:disabled{opacity:.38;cursor:not-allowed}.room-add-row option:disabled,.connected-room-editor option:disabled{color:var(--text-on-canvas-muted)}.connected-room-editor{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);grid-template-columns:1fr 1fr;gap:7px;margin-top:8px;padding:9px;display:grid}.connected-room-editor label{flex-direction:column;gap:4px;min-width:0;display:flex}.connected-room-editor label.wide{grid-column:span 2}.connected-room-editor label>span{color:var(--text-muted);font-size:var(--text-2xs)}.connected-room-editor label>div{position:relative}.connected-room-editor input,.connected-room-editor select{width:100%}.connected-room-editor label>div input{padding-right:22px}.connected-room-editor em{color:var(--text-faint);font-size:var(--text-2xs);font-style:normal;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.connected-room-editor .delete-connected-room{color:var(--danger-text);border-radius:var(--radius-sm);font-size:var(--text-2xs);cursor:pointer;background:0 0;border:1px solid #dd7a6338;grid-column:span 2;padding:6px}.building-elements{border-top:1px solid var(--border-default);margin-top:13px;padding-top:12px}.building-elements-heading{justify-content:space-between;align-items:center;display:flex}.building-elements-heading span{color:var(--text-muted);font-size:var(--text-xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.building-elements-heading small{color:var(--text-faint);font-size:var(--text-xs)}.building-element-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:9px;display:grid}.building-element-grid button{height:38px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;align-items:center;gap:8px;padding:0 9px;display:flex}.building-element-grid button[draggable=true]{cursor:grab}.building-element-grid button[draggable=true]:active{cursor:grabbing}.building-element-grid button:hover{color:var(--accent-text);border-color:var(--signal-700)}.building-element-grid i{flex:none;width:18px;height:18px;display:block;position:relative}.building-element-grid .door-icon{border-top:2px solid var(--ink-300);border-right:2px solid var(--ink-300);border-radius:0 100% 0 0}.building-element-grid .window-icon{border:2px solid var(--info-text);height:8px;box-shadow:inset 0 0 0 1px var(--surface-base)}.building-element-grid .mirror-icon{background:var(--blue-200);border:2px solid var(--border-canvas);height:13px}.building-element-grid .column-icon{background:var(--ink-400);border:2px solid var(--ink-300);border-radius:var(--radius-full);width:14px;height:14px}.building-element-grid .wall-icon{background:var(--ink-400);border:2px solid var(--ink-300);height:9px;box-shadow:inset 0 0 0 1px var(--surface-base)}.building-element-editor{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-top:10px;padding:10px}.building-element-editor>div:first-child{justify-content:space-between;align-items:center;margin-bottom:9px;display:flex}.building-element-editor>div:first-child span{color:var(--text-faint);font-size:var(--text-2xs);letter-spacing:var(--tracking-wider)}.building-element-editor>div:first-child strong{color:var(--text-strong);font-size:var(--text-sm)}.building-element-editor label{flex-direction:column;gap:4px;display:flex}.building-element-editor label>span{color:var(--text-muted);font-size:var(--text-xs)}.building-element-editor select,.building-element-editor input{width:100%;height:30px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);outline:0;padding:0 8px}.building-element-editor select{padding-right:var(--select-chevron-space)}.element-field-grid{grid-template-columns:1fr 1fr;gap:7px;margin-top:8px;display:grid!important}.element-field-grid label.wide{grid-column:span 2}.element-field-grid label>div{position:relative}.element-field-grid input{padding-right:23px}.element-field-grid em{color:var(--text-faint);font-size:var(--text-xs);font-style:normal;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.delete-element-button{width:100%;color:var(--danger-text);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer;background:0 0;border:1px solid #dd7a6338;margin-top:9px;padding:6px}.interval-duplication-tool{border-top:1px solid var(--border-default);margin-top:10px;padding-top:10px}.interval-duplication-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.interval-duplication-heading span{color:var(--text-default);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.interval-duplication-heading small{color:var(--text-faint);font-size:var(--text-2xs);white-space:nowrap}.interval-duplication-controls{grid-template-columns:minmax(78px,1fr) auto;align-items:center;gap:12px;margin-top:8px;display:grid}.interval-duplication-controls>label{flex-direction:column;gap:4px;display:flex}.interval-duplication-controls>label>span{color:var(--text-muted);font-size:var(--text-2xs)}.interval-duplication-controls>label>div{position:relative}.interval-duplication-controls input{width:100%;height:31px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);outline:0;padding:0 24px 0 8px}.interval-duplication-controls input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #8bbf5814}.interval-duplication-controls em{color:var(--text-faint);font-size:var(--text-xs);font-style:normal;position:absolute;top:50%;bottom:auto;right:8px;transform:translateY(-50%)}.interval-direction-buttons{gap:3px;display:grid}.interval-direction-buttons.horizontal-only{grid-template-columns:repeat(2,31px)}.interval-direction-buttons.all-directions{grid-template:".up."27px"left.right"27px".down."27px/27px 27px 27px}.interval-direction-buttons button{width:100%;height:100%;min-height:27px;color:var(--text-strong);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-lg);cursor:pointer;padding:0;line-height:1}.interval-direction-buttons button:hover{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.interval-direction-buttons .direction-up{grid-area:up}.interval-direction-buttons .direction-left{grid-area:left}.interval-direction-buttons .direction-right{grid-area:right}.interval-direction-buttons .direction-down{grid-area:down}.interval-direction-buttons.horizontal-only .direction-left,.interval-direction-buttons.horizontal-only .direction-right{grid-area:auto}.continue-button{width:100%;height:34px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0;justify-content:space-between;align-items:center;margin-top:11px;padding:0 11px;display:flex}.coral-dot{background:var(--danger)}.lime-dot{background:var(--accent)}.blue-dot{background:var(--info)}.violet-dot{background:var(--tone-violet)}.review-score{background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-md);align-items:center;gap:11px;margin-top:14px;padding:11px;display:flex}.review-score>strong{color:var(--accent-text);font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-3xl)}.review-score>span{color:var(--text-strong);font-size:var(--text-sm);font-weight:var(--weight-semibold);flex-direction:column;display:flex}.review-score small{color:var(--text-faint);font-size:var(--text-xs);font-weight:var(--weight-regular);margin-top:3px}.selection-panel{border-bottom:1px solid var(--border-default);padding:14px 17px 16px}.selection-title{align-items:center;gap:9px;display:flex}.selection-title>div{flex-direction:column;min-width:0;display:flex}.selection-title strong{color:var(--text-strong);font-size:var(--text-sm);text-overflow:ellipsis;white-space:nowrap;margin-top:3px;overflow:hidden}.mini-visual{background:var(--surface-hover);border:1px solid var(--border-strong);border-radius:var(--radius-sm);flex:none;place-items:center;width:42px;height:42px;display:grid}.mini-visual img{object-fit:contain;filter:drop-shadow(0 4px 3px #0000004d);width:92%;height:92%}.property-grid{grid-template-columns:1fr 1fr;gap:8px;margin-top:12px;display:grid}.property-grid label{flex-direction:column;gap:4px;display:flex;position:relative}.property-grid label.wide{grid-column:span 2}.property-grid span{color:var(--text-muted);font-size:var(--text-xs)}.property-grid input{width:100%;height:30px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);outline:0;padding:0 23px 0 8px}.property-grid em{color:var(--text-faint);font-size:var(--text-xs);font-style:normal;position:absolute;bottom:8px;right:8px}.clearance-note{border-radius:var(--radius-sm);background:#8bbf5812;border:1px solid #8bbf5830;align-items:center;gap:8px;margin-top:10px;padding:8px;display:flex}.clearance-note i{width:19px;height:19px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-full);font-size:var(--text-xs);place-items:center;font-style:normal;display:grid}.clearance-note span{color:var(--text-faint);font-size:var(--text-2xs);flex-direction:column;display:flex}.clearance-note strong{color:var(--text-default);font-size:var(--text-xs)}.clearance-note{transition:background var(--duration-base) var(--ease-out), border-color var(--duration-base) var(--ease-out)}.clearance-note.is-blocked{background:var(--danger-quiet);border-color:var(--danger)}.clearance-note.is-blocked i{background:var(--danger)}.clearance-note.is-blocked strong{color:var(--danger-text)}.object-actions{grid-template-columns:1fr 1fr;gap:7px;margin-top:10px;display:grid}.object-actions.single-action{grid-template-columns:1fr}.object-actions button{height:30px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-xs);cursor:pointer}.object-actions button:last-child{color:var(--danger-text)}.empty-selection{text-align:center;border-bottom:1px solid var(--border-default);padding:24px 28px}.empty-selection>span{width:36px;height:36px;color:var(--accent-text);background:var(--surface-raised);border-radius:var(--radius-full);place-items:center;margin:auto;display:grid}.empty-selection strong{font-size:var(--text-sm);margin-top:9px;display:block}.empty-selection p{color:var(--text-faint);font-size:var(--text-xs);margin:5px 0 0;line-height:1.5}.project-stats{border-top:1px solid var(--border-default);grid-template-columns:repeat(3,1fr);margin:0 17px 16px;padding-top:12px;display:grid}.project-stats span{flex-direction:column;gap:3px;display:flex}.project-stats small{color:var(--text-faint);font-size:var(--text-2xs);letter-spacing:var(--tracking-wide)}.project-stats strong{color:var(--text-strong);font-size:var(--text-sm)}.modal-backdrop{z-index:20;background:var(--surface-veil-soft);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);place-items:center;display:grid;position:fixed;inset:0}.share-modal{width:min(430px,100vw - 40px);color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:15px;padding:30px;position:relative;box-shadow:0 30px 90px #00000059}.modal-close{color:var(--text-muted);font-size:var(--text-xl);cursor:pointer;background:0 0;border:0;position:absolute;top:12px;right:14px}.modal-icon{width:42px;height:42px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-lg);place-items:center;display:grid}.share-modal h2{font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--text-2xl);margin:17px 0 7px}.share-modal>p{color:var(--text-muted);font-size:var(--text-md);margin:0 0 20px;line-height:1.5}.share-modal label>span{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-bottom:6px;display:block}.share-modal label>div{gap:7px;display:flex}.share-modal input{min-width:0;height:38px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);flex:1;padding:0 11px}.share-modal label button{color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0;padding:0 15px}.share-modal>small{color:var(--text-faint);font-size:var(--text-xs);margin-top:9px;display:block}@media (height<=760px){.asset-visual{height:66px}.asset-copy strong{min-height:23px}}.workflow-rail .room-panel,.workflow-rail .step-info-panel{padding:16px 15px 20px}.workflow-rail .step-panel-title small{font-size:var(--text-sm)}.workflow-rail .step-panel-title strong{font-size:var(--text-xl);margin-top:6px}.workflow-rail .step-panel-title p{color:var(--text-muted);font-size:var(--text-sm);margin-top:6px;line-height:1.55}.workflow-rail .selection-close{border-radius:var(--radius-sm);width:26px;height:26px;font-size:var(--text-md);top:12px;right:13px}.workflow-rail .plan-reference-panel,.workflow-rail .free-wall-panel,.workflow-rail .floor-material-picker,.workflow-rail .room-height-picker,.workflow-rail .area-summary,.workflow-rail .project-stats{background:var(--surface-panel);border:1px solid var(--border-default);border-radius:var(--radius-md);margin-top:12px;padding:12px}.workflow-rail .plan-reference-heading span,.workflow-rail .free-wall-panel-heading span,.workflow-rail .free-wall-elements-heading span,.workflow-rail .building-elements-heading span,.workflow-rail .interval-duplication-heading span{color:var(--text-muted);font-size:var(--text-sm);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.workflow-rail .plan-reference-heading small,.workflow-rail .free-wall-panel-heading small,.workflow-rail .free-wall-elements-heading small,.workflow-rail .building-elements-heading small,.workflow-rail .interval-duplication-heading small{color:var(--text-faint);font-size:var(--text-sm)}.workflow-rail .free-wall-panel-heading span{color:var(--accent-text)}.workflow-rail input[type=number],.workflow-rail input[type=text],.workflow-rail .free-wall-element-editor input,.workflow-rail .plan-number-grid input,.workflow-rail .plan-calibration-controls input,.workflow-rail .interval-duplication-controls input{height:30px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md)}.workflow-rail select,.workflow-rail .lamp-controls select{height:30px;color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm)}.workflow-rail input:focus,.workflow-rail select:focus{border-color:var(--accent);outline:0;box-shadow:0 0 0 2px #8bbf581f}.workflow-rail input[type=range]{height:auto;box-shadow:none;accent-color:var(--accent);background:0 0;border:0}.workflow-rail input[type=color]{background:var(--surface-panel);border:1px solid var(--border-strong);height:30px}.workflow-rail .free-wall-element-editor label,.workflow-rail .plan-number-grid label,.workflow-rail .plan-calibration-controls label,.workflow-rail .interval-duplication-controls>label>span,.workflow-rail .lamp-controls span{color:var(--text-muted);font-size:var(--text-sm);letter-spacing:var(--tracking-wide)}.workflow-rail .free-wall-element-editor em,.workflow-rail .plan-number-grid em,.workflow-rail .plan-calibration-controls em,.workflow-rail .interval-duplication-controls em{color:var(--text-faint);font-size:var(--text-sm)}.workflow-rail .free-wall-element-editor em{bottom:9px}.workflow-rail .free-wall-element-editor>div{gap:8px;margin-top:9px}.workflow-rail .free-wall-element-editor{background:var(--surface-panel);border:1px solid var(--border-strong);border-left:3px solid var(--accent);border-radius:var(--radius-md);margin-top:10px;padding:12px}.workflow-rail .free-wall-element-editor>strong{font-size:var(--text-md);letter-spacing:var(--tracking-wide)}.workflow-rail .room-panel-readout{font-size:var(--text-md)}.workflow-rail .free-wall-panel>p,.workflow-rail .room-height-hint,.workflow-rail .stairs-run-note,.workflow-rail .plan-calibration-controls p,.workflow-rail .tour-empty{color:var(--text-muted);font-size:var(--text-sm);line-height:1.55}.workflow-rail .plan-toggle-row button,.workflow-rail .plan-file-row button,.workflow-rail .plan-calibrate-button,.workflow-rail .wall-visibility-toggle,.workflow-rail .stairs-rotate,.workflow-rail .deselect-room-button{min-height:30px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0 10px}.workflow-rail .plan-toggle-row button:hover,.workflow-rail .wall-visibility-toggle:hover,.workflow-rail .stairs-rotate:hover{border-color:var(--ink-500)}.workflow-rail .plan-toggle-row button.active,.workflow-rail .wall-visibility-toggle.active{color:var(--on-accent);background:var(--accent);border-color:var(--accent);box-shadow:none}.workflow-rail .room-height-switch{margin-top:10px}.workflow-rail .room-height-switch button{height:30px;font-size:var(--text-sm)}.workflow-rail .delete-free-wall-element{min-height:30px;color:var(--red-200);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);background:#5c626014;border:1px solid #5c626066;margin-top:10px}.workflow-rail .free-wall-toggle{min-height:36px;font-size:var(--text-sm)}.workflow-rail .continue-button{min-height:38px;font-size:var(--text-md);margin-top:14px}.workflow-rail .floor-material-options button strong,.workflow-rail .wall-material-options button strong{font-size:var(--text-sm)}.workflow-rail .floor-material-options button small,.workflow-rail .wall-material-options button small{font-size:var(--text-xs)}.workflow-rail .area-summary span{font-size:var(--text-sm)}.workflow-rail .area-summary strong{font-size:var(--text-lg)}.workflow-rail .plan-upload-button strong{font-size:var(--text-sm)}.workflow-rail .plan-upload-button small{font-size:var(--text-xs)}.workflow-rail .plan-file-row strong{font-size:var(--text-sm)}.workflow-rail .plan-file-row small{font-size:var(--text-xs)}.workflow-rail .tour-shot small{font-size:var(--text-sm)}.marquee-rectangle{z-index:60;border:1.5px dashed var(--accent);border-radius:var(--radius-xs);pointer-events:none;background:#8bbf5812;display:block;position:absolute}.workflow-rail .multi-select-counts{color:var(--text-default);font-size:var(--text-sm);margin:4px 0 0}.workflow-rail .multi-select-hint{color:var(--text-muted);font-size:var(--text-sm);margin:6px 0 0;line-height:1.5}.workflow-rail .multi-select-action{width:100%;min-height:30px;color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;border:0;margin-top:10px}.workflow-rail .multi-select-tools{grid-template-columns:1fr 1fr;gap:6px;margin-top:10px;display:grid}.workflow-rail .multi-select-tools button{min-height:30px;color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;padding:0 8px}.workflow-rail .multi-select-tools button:hover{border-color:var(--ink-500)}.workflow-rail .multi-select-tools button:disabled{opacity:.4;cursor:default}.measure-line{--chrome:var(--plan-scale,1);z-index:44;pointer-events:none;position:absolute}.measure-line:before,.measure-line:after{background:var(--accent);content:"";position:absolute}.measure-horizontal{border-top:calc(1px / var(--chrome)) dashed var(--accent);height:0}.measure-horizontal:before,.measure-horizontal:after{top:calc(-4px / var(--chrome));width:calc(1px / var(--chrome));height:calc(8px / var(--chrome))}.measure-horizontal:before{left:0}.measure-horizontal:after{right:0}.measure-vertical{border-left:calc(1px / var(--chrome)) dashed var(--accent);width:0}.measure-vertical:before,.measure-vertical:after{left:calc(-4px / var(--chrome));width:calc(8px / var(--chrome));height:calc(1px / var(--chrome))}.measure-vertical:before{top:0}.measure-vertical:after{bottom:0}.measure-line>em{padding:calc(1px / var(--chrome)) calc(3px / var(--chrome));color:var(--on-accent);background:var(--accent);border-radius:calc(2px / var(--chrome));font-size:calc(9px / var(--chrome));font-style:normal;font-weight:var(--weight-semibold);white-space:nowrap;line-height:1.3;position:absolute}.measure-horizontal>em{left:50%;bottom:calc(3px / var(--chrome));transform:translate(-50%)}.measure-vertical>em{top:50%;left:calc(4px / var(--chrome));transform:translateY(-50%)}.measure-against-wall{opacity:.92}.measure-against-equipment{border-color:var(--blue-200)}.measure-against-equipment:before,.measure-against-equipment:after{background:var(--blue-200)}.measure-against-equipment>em{color:var(--text-on-canvas);background:var(--blue-200)}.free-wall-segment.is-selected-wall{background:var(--accent)}.free-wall-segment.paint-flash{background:var(--accent-hover)}.free-wall-segment.is-selected-wall.is-hidden-wall{opacity:.45}.palette-drag-cursor{z-index:400;pointer-events:none;position:fixed;top:0;left:0}.palette-drag-cursor[hidden]{display:none}.palette-drag-cursor-art{background:var(--surface-veil);border-radius:var(--radius-md);opacity:.92;border:1px solid #8bbf588c;place-items:center;width:74px;height:74px;display:grid;position:relative;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 10px 24px #0a0b0b73}.palette-drag-cursor-art:before{background:radial-gradient(circle at 50% 70%, var(--object-color), transparent 58%);position:absolute;inset:0}@supports (color:color-mix(in lab, red, red)){.palette-drag-cursor-art:before{background:radial-gradient(circle at 50% 70%, color-mix(in srgb, var(--object-color) 20%, transparent), transparent 58%)}}.palette-drag-cursor-art:before{content:""}.palette-drag-cursor-art>img{z-index:1;object-fit:contain;filter:drop-shadow(0 6px 6px #0006);width:88%;height:88%;position:relative}.palette-drag-cursor-art>i{z-index:1;width:23px;height:23px;display:block;position:relative;transform:scale(1.7)}.workflow-rail input[type=number]{appearance:textfield;padding-right:var(--space-8);font-family:var(--font-mono);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-tight);background-image:none}.workflow-rail input[type=number]::-webkit-inner-spin-button{appearance:none;margin:0}.workflow-rail input[type=number]::-webkit-outer-spin-button{appearance:none;margin:0}.workflow-rail label:has(>input[type=number]){position:relative}.workflow-rail label:has(>div>input[type=number])>div{position:relative}.workflow-rail label:has(>input[type=number]):after{right:var(--space-2);background-color:var(--text-faint);content:"";cursor:ns-resize;width:18px;height:28px;transition:background-color var(--duration-fast) var(--ease-out);position:absolute;bottom:1px;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='28' viewBox='0 0 18 28'%3E%3Cpath d='M5.6 11.4 9 8l3.4 3.4M5.6 16.6 9 20l3.4-3.4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='28' viewBox='0 0 18 28'%3E%3Cpath d='M5.6 11.4 9 8l3.4 3.4M5.6 16.6 9 20l3.4-3.4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.workflow-rail label:has(>div>input[type=number])>div:after{right:var(--space-2);background-color:var(--text-faint);content:"";cursor:ns-resize;width:18px;height:28px;transition:background-color var(--duration-fast) var(--ease-out);position:absolute;bottom:1px;-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='28' viewBox='0 0 18 28'%3E%3Cpath d='M5.6 11.4 9 8l3.4 3.4M5.6 16.6 9 20l3.4-3.4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='28' viewBox='0 0 18 28'%3E%3Cpath d='M5.6 11.4 9 8l3.4 3.4M5.6 16.6 9 20l3.4-3.4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");-webkit-mask-position:50%;mask-position:50%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.workflow-rail label:has(>input[type=number]):hover:after{background-color:var(--text-strong)}.workflow-rail label:has(>div>input[type=number])>div:hover:after{background-color:var(--text-strong)}.workflow-rail .plan-number-grid em,.workflow-rail .plan-calibration-controls em,.workflow-rail .interval-duplication-controls em,.workflow-rail .element-field-grid em,.workflow-rail .property-grid em,.workflow-rail .room-height-field em,.workflow-rail .free-wall-element-editor em{right:var(--space-8)}.workflow-rail .interval-duplication-heading,.workflow-rail .free-wall-elements-heading,.workflow-rail .building-elements-heading,.workflow-rail .plan-reference-heading,.workflow-rail .free-wall-panel-heading{row-gap:var(--space-1);flex-wrap:wrap;align-items:baseline}.workflow-rail .interval-duplication-heading small,.workflow-rail .free-wall-elements-heading small,.workflow-rail .building-elements-heading small,.workflow-rail .plan-reference-heading small{white-space:normal}.workflow-rail .interval-duplication-controls{margin-top:var(--space-5);column-gap:var(--space-6)}.workflow-rail .interval-duplication-controls>label{gap:var(--space-3)}.workflow-rail .plan-number-grid{gap:var(--space-5)}.workflow-rail .plan-number-grid label,.workflow-rail .plan-calibration-controls label{gap:var(--space-3)}.account-menu{display:flex;position:relative}.account-menu-trigger{cursor:pointer}.avatar-button.is-open,.workspace-account-button.is-open{border-color:var(--border-focus)}.avatar-button:focus-visible,.workspace-account-button:focus-visible{box-shadow:var(--focus-ring);outline:0}.account-menu-panel{z-index:200;top:calc(100% + var(--space-3));width:264px;padding:var(--space-2);background:var(--surface-overlay);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-3);position:absolute;right:0}.account-menu-identity{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);display:flex}.account-menu-identity>b{width:32px;height:32px;color:var(--text-strong);background:var(--ink-700);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--weight-semibold);flex:none;place-items:center;display:grid}.account-menu-identity>span{flex-direction:column;gap:1px;min-width:0;display:flex}.account-menu-identity strong{color:var(--text-strong);font-size:var(--text-sm);font-weight:var(--weight-medium);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-menu-identity small{color:var(--text-faint);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.account-menu-items{padding-top:var(--space-2);flex-direction:column;display:flex}.account-menu-items button{align-items:flex-start;gap:var(--space-4);padding:var(--space-4);color:var(--text-default);border-radius:var(--radius-sm);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out);background:0 0;border:0;display:flex}.account-menu-items button:hover{color:var(--text-strong);background:var(--surface-hover)}.account-menu-items button:focus-visible{color:var(--text-strong);background:var(--surface-hover);box-shadow:inset 0 0 0 1px var(--border-focus);outline:0}.account-menu-items button>i{width:16px;color:var(--text-faint);font-size:var(--text-md);text-align:center;flex:none;font-style:normal;line-height:1.35}.account-menu-items button>span{flex-direction:column;gap:1px;min-width:0;display:flex}.account-menu-items button small{color:var(--text-faint);font-size:var(--text-xs)}.account-menu-items button.is-leave{margin-top:var(--space-2);border-top:1px solid var(--border-subtle);border-radius:0 0 var(--radius-sm) var(--radius-sm);padding-top:var(--space-5)}.account-menu-items button.is-leave,.account-menu-items button.is-leave>i{color:var(--danger-text)}.account-menu-items button.is-leave:hover{background:var(--danger-quiet)}.settings-host-content,.settings-host-content[inert]{display:contents}.settings-page{z-index:300;background:var(--surface-base);flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.settings-page-header{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-5) var(--space-7);border-bottom:1px solid var(--border-subtle);flex:none;display:flex}.settings-page-back{align-items:center;gap:var(--space-3);height:var(--control-height-md);padding:0 var(--space-5) 0 var(--space-4);color:var(--text-default);background:var(--surface-raised);border:1px solid var(--border-default);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);display:inline-flex}.settings-page-back:hover{color:var(--text-strong);background:var(--surface-hover);border-color:var(--border-strong)}.settings-page-back:focus-visible{box-shadow:var(--focus-ring);outline:0}.settings-page-body{gap:var(--space-9);min-height:0;padding:var(--space-9) var(--space-7) var(--space-12);scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--ink-700) transparent;flex:auto;grid-template-columns:200px minmax(0,1fr);display:grid;overflow:auto}.settings-page-nav{flex-direction:column;place-self:start end;gap:1px;width:100%;max-width:200px;display:flex;position:sticky;top:0}.settings-page-nav>span{padding:0 var(--space-4) var(--space-4)}.settings-page-nav button{text-align:left;cursor:pointer;width:100%;padding:var(--space-3) var(--space-4);color:var(--text-muted);border-radius:0 var(--radius-xs) var(--radius-xs) 0;font-size:var(--text-sm);transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;border-left:2px solid #0000;display:block}.settings-page-nav button:hover{color:var(--text-default);background:var(--surface-hover)}.settings-page-nav button.active{color:var(--text-strong);background:var(--surface-raised);border-left-color:var(--accent)}.settings-page-nav button:focus-visible{box-shadow:inset 0 0 0 1px var(--border-focus);outline:0}.settings-page-content{max-width:620px}.settings-page-title{padding-bottom:var(--space-5);border-bottom:1px solid var(--border-subtle)}.settings-page-title h1{margin:var(--space-3) 0 0;color:var(--text-strong);font-size:var(--text-3xl);font-weight:var(--weight-regular);letter-spacing:var(--tracking-tight)}.settings-page-title p{margin:var(--space-4) 0 0;color:var(--text-faint);font-size:var(--text-sm);line-height:var(--leading-snug)}.settings-page-content section{margin-top:var(--space-9);scroll-margin-top:var(--space-6)}.settings-page-content h2{margin:0 0 var(--space-2);color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider);text-transform:uppercase}.settings-row{justify-content:space-between;align-items:center;gap:var(--space-6);padding:var(--space-5) 0;border-bottom:1px solid var(--border-subtle);display:flex}.settings-row:last-child{border-bottom:0}.settings-row>div:first-child{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-row strong{color:var(--text-default);font-size:var(--text-sm);font-weight:var(--weight-medium)}.settings-row small{color:var(--text-faint);font-size:var(--text-xs);line-height:var(--leading-snug)}.settings-choices{background:var(--surface-sunken);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);flex:none;gap:2px;padding:2px;display:flex}.settings-choices button{min-width:58px;padding:var(--space-3) var(--space-4);color:var(--text-muted);border-radius:var(--radius-xs);font-size:var(--text-xs);font-weight:var(--weight-medium);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;flex-direction:column;align-items:center;gap:1px;display:flex}.settings-choices button small{color:inherit;font-size:var(--text-2xs);opacity:.66}.settings-choices button:hover:not(.active){color:var(--text-default)}.settings-choices button.active{color:var(--text-strong);background:var(--surface-raised);box-shadow:var(--shadow-1)}.settings-choices button:focus-visible{box-shadow:inset 0 0 0 1px var(--border-focus);outline:0}.settings-switch{background:var(--surface-sunken);border:1px solid var(--border-default);border-radius:var(--radius-full);cursor:pointer;width:40px;height:23px;transition:background var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out);flex:none;padding:2px}.settings-switch>i{background:var(--text-faint);border-radius:var(--radius-full);width:17px;height:17px;transition:transform var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);display:block}.settings-switch.is-on{background:var(--accent);border-color:var(--accent)}.settings-switch.is-on>i{background:var(--on-accent);transform:translate(17px)}.settings-switch:focus-visible{box-shadow:var(--focus-ring);outline:0}.settings-slider{align-items:center;gap:var(--space-5);flex:none;display:flex}.settings-slider input[type=range]{width:130px;accent-color:var(--accent)}.settings-slider em{min-width:52px;color:var(--text-default);font-size:var(--text-xs);text-align:right;font-style:normal}.workflow-rail .room-select-hint{margin-top:var(--space-5);padding:var(--space-4) var(--space-5);color:var(--text-muted);background:var(--surface-panel);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:var(--leading-snug)}.floor-picker-name{min-width:90px;max-width:160px;height:27px;color:var(--text-on-canvas);background:var(--paper-000);border:1px solid var(--border-focus);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);outline:0;padding:0 7px}.workflow-rail .variant-name-row{gap:var(--space-3);margin-top:var(--space-6);flex-direction:column;display:flex}.workflow-rail .variant-name-row>span{color:var(--text-muted);font-size:var(--text-2xs);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-wider)}.workflow-rail .variant-name-input{width:100%;height:30px;padding:0 var(--space-4);color:var(--text-strong);background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-md)}.workflow-rail .variant-name-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-quiet);outline:0}.plan-drop-prompt{z-index:46;width:min(340px,72%);padding:var(--space-8) var(--space-7) var(--space-7);color:var(--text-on-canvas);background:var(--canvas-paper);border:1px dashed var(--border-canvas);border-radius:var(--radius-lg);box-shadow:var(--shadow-3);text-align:center;transition:border-color var(--duration-base) var(--ease-out), background var(--duration-base) var(--ease-out);flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.plan-drop-prompt.is-file-over{background:var(--signal-100);border-color:var(--accent);border-style:solid}.plan-drop-prompt-mark{width:52px;height:52px;color:var(--accent);background:var(--accent-quiet);border-radius:var(--radius-full);place-items:center;display:grid}.plan-drop-prompt strong{margin-top:var(--space-5);color:var(--text-on-canvas);font-size:var(--text-lg);font-weight:var(--weight-semibold)}.plan-drop-prompt p{margin:var(--space-3) 0 0;color:var(--text-on-canvas-muted);font-size:var(--text-sm);line-height:var(--leading-snug)}.plan-drop-prompt small{margin-top:var(--space-4);color:var(--text-on-canvas-muted);font-size:var(--text-xs)}.plan-drop-prompt-choose{height:var(--control-height-md);margin-top:var(--space-6);padding:0 var(--space-7);color:var(--on-accent);background:var(--accent);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:var(--weight-semibold);cursor:pointer;transition:background var(--duration-fast) var(--ease-out);border:0}.plan-drop-prompt-choose:hover:not(:disabled){background:var(--accent-hover)}.plan-drop-prompt-choose:disabled{opacity:.45;cursor:not-allowed}.plan-drop-prompt-choose:focus-visible{box-shadow:0 0 0 2px var(--canvas-paper), 0 0 0 4px var(--border-focus);outline:0}.plan-drop-prompt-close{top:var(--space-4);right:var(--space-4);width:24px;height:24px;color:var(--text-on-canvas-muted);border-radius:var(--radius-sm);cursor:pointer;transition:color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);background:0 0;border:0;place-items:center;padding:0;display:grid;position:absolute}.plan-drop-prompt-close:hover{color:var(--text-on-canvas);background:var(--canvas-base)}.plan-drop-prompt-close:focus-visible{box-shadow:inset 0 0 0 1px var(--border-focus);outline:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}
