/*! 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)))){:root,:host{--shimmer-angle:20deg}*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-leading:initial;--tw-font-weight: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;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-content:"";--tw-animation-delay:0s;--tw-animation-direction:normal;--tw-animation-duration:initial;--tw-animation-fill-mode:none;--tw-animation-iteration-count:1;--tw-enter-blur:0;--tw-enter-opacity:1;--tw-enter-rotate:0;--tw-enter-scale:1;--tw-enter-translate-x:0;--tw-enter-translate-y:0;--tw-exit-blur:0;--tw-exit-opacity:1;--tw-exit-rotate:0;--tw-exit-scale:1;--tw-exit-translate-x:0;--tw-exit-translate-y:0;--scroll-fade-t:0px;--scroll-fade-b:0px;--scroll-fade-s:0px;--scroll-fade-e:0px;--scroll-fade-mask:initial;--shimmer-image:initial;--shimmer-text-fill:initial}}}@layer theme{:root,:host{--font-sans:var(--font-geist-sans);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-sm:24rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--font-weight-medium:500;--radius-md:calc(var(--radius) * .8);--animate-spin:spin 1s linear infinite;--blur-xs:4px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-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;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}*{border-color:var(--border);outline-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){*{outline-color:color-mix(in oklab, var(--ring) 50%, transparent)}}body{background-color:var(--background);color:var(--foreground)}html{font-family:var(--font-geist-sans)}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-2{top:calc(var(--spacing) * 2)}.right-2{right:calc(var(--spacing) * 2)}.bottom-0{bottom:calc(var(--spacing) * 0)}.left-1\/2{left:50%}.isolate{isolation:isolate}.z-10{z-index:10}.z-50{z-index:50}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.-mx-1{margin-inline:calc(var(--spacing) * -1)}.-mx-4{margin-inline:calc(var(--spacing) * -4)}.my-1{margin-block:calc(var(--spacing) * 1)}.mt-4{margin-top:calc(var(--spacing) * 4)}.-mb-4{margin-bottom:calc(var(--spacing) * -4)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.field-sizing-content{field-sizing:content}.size-3{width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.size-4{width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.size-6{width:calc(var(--spacing) * 6);height:calc(var(--spacing) * 6)}.size-7{width:calc(var(--spacing) * 7);height:calc(var(--spacing) * 7)}.size-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.h-6{height:calc(var(--spacing) * 6)}.h-7{height:calc(var(--spacing) * 7)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-px{height:1px}.max-h-\(--available-height\){max-height:var(--available-height)}.min-h-16{min-height:calc(var(--spacing) * 16)}.w-\(--anchor-width\){width:var(--anchor-width)}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.min-w-0{min-width:calc(var(--spacing) * 0)}.min-w-36{min-width:calc(var(--spacing) * 36)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.caption-bottom{caption-side:bottom}.origin-\(--transform-origin\){transform-origin:var(--transform-origin)}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.touch-none{touch-action:none}.resize{resize:both}.scroll-my-1{scroll-margin-block:calc(var(--spacing) * 1)}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.place-content-center{place-content:center}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-4{gap:calc(var(--spacing) * 4)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-auto{overflow-y:auto}.rounded-\[4px\]{border-radius:4px}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) * .8)}.rounded-xl{border-radius:calc(var(--radius) * 1.4)}.rounded-b-xl{border-bottom-right-radius:calc(var(--radius) * 1.4);border-bottom-left-radius:calc(var(--radius) * 1.4)}.border{border-style:var(--tw-border-style);border-width:1px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-border{border-color:var(--border)}.border-input{border-color:var(--input)}.border-ring{border-color:var(--ring)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-black\/10{background-color:#0000001a}@supports (color:color-mix(in lab, red, red)){.bg-black\/10{background-color:color-mix(in oklab, var(--color-black) 10%, transparent)}}.bg-border{background-color:var(--border)}.bg-destructive\/10{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.bg-destructive\/10{background-color:color-mix(in oklab, var(--destructive) 10%, transparent)}}.bg-muted,.bg-muted\/50{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.bg-muted\/50{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.bg-clip-padding{background-clip:padding-box}.p-1{padding:calc(var(--spacing) * 1)}.p-2{padding:calc(var(--spacing) * 2)}.p-4{padding:calc(var(--spacing) * 4)}.p-\[3px\]{padding:3px}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-2{padding-block:calc(var(--spacing) * 2)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pl-1\.5{padding-left:calc(var(--spacing) * 1.5)}.pl-2\.5{padding-left:calc(var(--spacing) * 2.5)}.text-left{text-align:left}.align-middle{vertical-align:middle}.font-heading{font-family:var(--font-sans)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-current{color:currentColor}.text-destructive{color:var(--destructive)}.text-foreground,.text-foreground\/60{color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.text-foreground\/60{color:color-mix(in oklab, var(--foreground) 60%, transparent)}}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.italic{font-style:italic}.line-through{text-decoration-line:line-through}.overline{text-decoration-line:overline}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px 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,.ring-1{--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)}.ring-foreground\/10{--tw-ring-color:var(--foreground)}@supports (color:color-mix(in lab, red, red)){.ring-foreground\/10{--tw-ring-color:color-mix(in oklab, var(--foreground) 10%, transparent)}}.ring-ring\/50{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.outline-hidden{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.outline-hidden{outline-offset:2px;outline:2px solid #0000}}.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,)}.filter{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,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.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))}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-none{transition-property:none}.duration-100{--tw-duration:.1s;transition-duration:.1s}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.paused{animation-play-state:paused}.running{animation-play-state:running}.zoom-out{--tw-exit-scale:0}.group-has-disabled\/field\:opacity-50:is(:where(.group\/field):has(:disabled) *){opacity:.5}.group-has-\[\:focus-visible\]\/field-label\:ring-0:is(:where(.group\/field-label):has(:focus-visible) *){--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(0px + 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)}.group-has-\[\:focus-visible\]\/field-label\:not-data-checked\:border-input:is(:where(.group\/field-label):has(:focus-visible) *):not(:where([data-state=checked]),:where([data-checked]:not([data-checked=false]))){border-color:var(--input)}.group-data-\[variant\=line\]\/tabs-list\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *){background-color:#0000}.group-data-horizontal\/tabs\:h-8:is(:where(.group\/tabs):where([data-orientation=horizontal]) *){height:calc(var(--spacing) * 8)}.group-data-vertical\/tabs\:h-fit:is(:where(.group\/tabs):where([data-orientation=vertical]) *){height:fit-content}.group-data-vertical\/tabs\:w-full:is(:where(.group\/tabs):where([data-orientation=vertical]) *){width:100%}.group-data-vertical\/tabs\:flex-col:is(:where(.group\/tabs):where([data-orientation=vertical]) *){flex-direction:column}.group-data-vertical\/tabs\:justify-start:is(:where(.group\/tabs):where([data-orientation=vertical]) *){justify-content:flex-start}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-6::file-selector-button{height:calc(var(--spacing) * 6)}.file\:border-0::file-selector-button{border-style:var(--tw-border-style);border-width:0}.file\:bg-transparent::file-selector-button{background-color:#0000}.file\:text-sm::file-selector-button{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.file\:font-medium::file-selector-button{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.file\:text-foreground::file-selector-button{color:var(--foreground)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted-foreground)}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);inset:calc(var(--spacing) * -2)}.after\:-inset-x-3:after{content:var(--tw-content);inset-inline:calc(var(--spacing) * -3)}.after\:-inset-y-2:after{content:var(--tw-content);inset-block:calc(var(--spacing) * -2)}.after\:bg-foreground:after{content:var(--tw-content);background-color:var(--foreground)}.after\:opacity-0:after{content:var(--tw-content);opacity:0}.after\:transition-opacity:after{content:var(--tw-content);transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-data-horizontal\/tabs\:after\:inset-x-0:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);inset-inline:calc(var(--spacing) * 0)}.group-data-horizontal\/tabs\:after\:bottom-\[-5px\]:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);bottom:-5px}.group-data-horizontal\/tabs\:after\:h-0\.5:is(:where(.group\/tabs):where([data-orientation=horizontal]) *):after{content:var(--tw-content);height:calc(var(--spacing) * .5)}.group-data-vertical\/tabs\:after\:inset-y-0:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);inset-block:calc(var(--spacing) * 0)}.group-data-vertical\/tabs\:after\:-right-1:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);right:calc(var(--spacing) * -1)}.group-data-vertical\/tabs\:after\:w-0\.5:is(:where(.group\/tabs):where([data-orientation=vertical]) *):after{content:var(--tw-content);width:calc(var(--spacing) * .5)}@media (hover:hover){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:var(--secondary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}}.hover\:bg-destructive\/20:hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/20:hover{background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.hover\:bg-muted:hover,.hover\:bg-muted\/50:hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-muted\/50:hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.hover\:bg-primary\/80:hover{background-color:var(--primary)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/80:hover{background-color:color-mix(in oklab, var(--primary) 80%, transparent)}}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:underline:hover{text-decoration-line:underline}.hover\:ring-3:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus,:is(.not-data-\[variant\=destructive\]\:focus\:\*\*\:text-accent-foreground:not([data-variant=destructive]):focus *){color:var(--accent-foreground)}.focus-visible\:border-destructive\/40:focus-visible{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:border-destructive\/40:focus-visible{border-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.focus-visible\:ring-3:focus-visible,.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--ring)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--ring) 50%, transparent)}}.focus-visible\:outline-hidden:focus-visible{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.focus-visible\:outline-hidden:focus-visible{outline-offset:2px;outline:2px solid #0000}}.focus-visible\:outline-1:focus-visible{outline-style:var(--tw-outline-style);outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:var(--ring)}.active\:ring-3:active{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.active\:not-aria-\[haspopup\]\:translate-y-px:active:not([aria-haspopup]){--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:bg-input\/50:disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.disabled\:bg-input\/50:disabled{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.disabled\:opacity-50:disabled{opacity:.5}:where([data-slot=button-group]) .in-data-\[slot\=button-group\]\:rounded-lg{border-radius:var(--radius)}.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.has-aria-expanded\:bg-muted\/50:has([aria-expanded=true]){background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.has-data-\[icon\=inline-end\]\:pr-1:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1)}.has-data-\[icon\=inline-end\]\:pr-1\.5:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-end\]\:pr-2:has([data-icon=inline-end]){padding-right:calc(var(--spacing) * 2)}.has-data-\[icon\=inline-start\]\:pl-1:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1)}.has-data-\[icon\=inline-start\]\:pl-1\.5:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 1.5)}.has-data-\[icon\=inline-start\]\:pl-2:has([data-icon=inline-start]){padding-left:calc(var(--spacing) * 2)}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--destructive)}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + 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)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.aria-invalid\:aria-checked\:border-primary[aria-invalid=true][aria-checked=true]{border-color:var(--primary)}.data-placeholder\:text-muted-foreground[data-placeholder]{color:var(--muted-foreground)}.data-\[align-trigger\=true\]\:animate-none[data-align-trigger=true]{animation:none}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:calc(2*var(--spacing)*-1)}.data-\[side\=inline-end\]\:slide-in-from-left-2[data-side=inline-end]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=inline-start\]\:slide-in-from-right-2[data-side=inline-start],.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:calc(2*var(--spacing))}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:calc(2*var(--spacing)*-1)}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:calc(2*var(--spacing))}.data-\[size\=default\]\:h-8[data-size=default]{height:calc(var(--spacing) * 8)}.data-\[size\=sm\]\:h-7[data-size=sm]{height:calc(var(--spacing) * 7)}.data-\[size\=sm\]\:rounded-\[min\(var\(--radius-md\)\,10px\)\][data-size=sm]{border-radius:min(var(--radius-md), 10px)}:is(.\*\:data-\[slot\=select-value\]\:line-clamp-1>*)[data-slot=select-value]{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.\*\:data-\[slot\=select-value\]\:flex>*)[data-slot=select-value]{display:flex}:is(.\*\:data-\[slot\=select-value\]\:items-center>*)[data-slot=select-value]{align-items:center}:is(.\*\:data-\[slot\=select-value\]\:gap-1\.5>*)[data-slot=select-value]{gap:calc(var(--spacing) * 1.5)}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:var(--muted)}.data-\[variant\=line\]\:rounded-none[data-variant=line]{border-radius:0}@supports ((-webkit-backdrop-filter:var(--tw)) or (backdrop-filter:var(--tw))){.supports-backdrop-filter\:backdrop-blur-xs{--tw-backdrop-blur:blur(var(--blur-xs));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}}@media (min-width:40rem){.sm\:max-w-sm{max-width:var(--container-sm)}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}}@media (min-width:48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}.dark\:border-input:is(.dark *){border-color:var(--input)}.dark\:bg-destructive\/20:is(.dark *){background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/20:is(.dark *){background-color:color-mix(in oklab, var(--destructive) 20%, transparent)}}.dark\:bg-input\/30:is(.dark *){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30:is(.dark *){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:text-muted-foreground:is(.dark *){color:var(--muted-foreground)}@media (hover:hover){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-destructive\/30:is(.dark *):hover{background-color:color-mix(in oklab, var(--destructive) 30%, transparent)}}.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--input) 50%, transparent)}}.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:var(--muted)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-muted\/50:is(.dark *):hover{background-color:color-mix(in oklab, var(--muted) 50%, transparent)}}.dark\:hover\:text-foreground:is(.dark *):hover{color:var(--foreground)}}.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:is(.dark *):focus-visible{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:disabled\:bg-input\/80:is(.dark *):disabled{background-color:color-mix(in oklab, var(--input) 80%, transparent)}}.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:border-destructive\/50:is(.dark *)[aria-invalid=true]{border-color:color-mix(in oklab, var(--destructive) 50%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:var(--destructive)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40:is(.dark *)[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--destructive) 40%, transparent)}}.data-open\:animate-in:where([data-state=open]),.data-open\:animate-in:where([data-open]:not([data-open=false])){animation:enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-open\:fade-in-0:where([data-state=open]),.data-open\:fade-in-0:where([data-open]:not([data-open=false])){--tw-enter-opacity:0}.data-open\:zoom-in-95:where([data-state=open]),.data-open\:zoom-in-95:where([data-open]:not([data-open=false])){--tw-enter-scale:.95}.data-closed\:animate-out:where([data-state=closed]),.data-closed\:animate-out:where([data-closed]:not([data-closed=false])){animation:exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none)}.data-closed\:fade-out-0:where([data-state=closed]),.data-closed\:fade-out-0:where([data-closed]:not([data-closed=false])){--tw-exit-opacity:0}.data-closed\:zoom-out-95:where([data-state=closed]),.data-closed\:zoom-out-95:where([data-closed]:not([data-closed=false])){--tw-exit-scale:.95}.data-checked\:border-primary:where([data-state=checked]),.data-checked\:border-primary:where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.data-checked\:bg-primary:where([data-state=checked]),.data-checked\:bg-primary:where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.data-checked\:text-primary-foreground:where([data-state=checked]),.data-checked\:text-primary-foreground:where([data-checked]:not([data-checked=false])){color:var(--primary-foreground)}.group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-state=checked]),.group-has-\[\:focus-visible\]\/field-label\:data-checked\:border-primary:is(:where(.group\/field-label):has(:focus-visible) *):where([data-checked]:not([data-checked=false])){border-color:var(--primary)}.dark\:data-checked\:bg-primary:is(.dark *):where([data-state=checked]),.dark\:data-checked\:bg-primary:is(.dark *):where([data-checked]:not([data-checked=false])){background-color:var(--primary)}.data-disabled\:pointer-events-none:where([data-disabled=true]),.data-disabled\:pointer-events-none:where([data-disabled]:not([data-disabled=false])){pointer-events:none}.data-disabled\:opacity-50:where([data-disabled=true]),.data-disabled\:opacity-50:where([data-disabled]:not([data-disabled=false])){opacity:.5}.data-active\:bg-background:where([data-state=active]),.data-active\:bg-background:where([data-active]:not([data-active=false])){background-color:var(--background)}.data-active\:text-foreground:where([data-state=active]),.data-active\:text-foreground:where([data-active]:not([data-active=false])){color:var(--foreground)}.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-state=active]),.group-data-\[variant\=default\]\/tabs-list\:data-active\:shadow-sm:is(:where(.group\/tabs-list)[data-variant=default] *):where([data-active]:not([data-active=false])){--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)}.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:shadow-none:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){--tw-shadow:0 0 #0000;box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}:is(.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.group-data-\[variant\=line\]\/tabs-list\:data-active\:after\:opacity-100:is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false]))):after{content:var(--tw-content);opacity:1}.dark\:data-active\:border-input:is(.dark *):where([data-state=active]),.dark\:data-active\:border-input:is(.dark *):where([data-active]:not([data-active=false])){border-color:var(--input)}.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:var(--input)}@supports (color:color-mix(in lab, red, red)){.dark\:data-active\:bg-input\/30:is(.dark *):where([data-state=active]),.dark\:data-active\:bg-input\/30:is(.dark *):where([data-active]:not([data-active=false])){background-color:color-mix(in oklab, var(--input) 30%, transparent)}}.dark\:data-active\:text-foreground:is(.dark *):where([data-state=active]),.dark\:data-active\:text-foreground:is(.dark *):where([data-active]:not([data-active=false])){color:var(--foreground)}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:border-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){border-color:#0000}.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-state=active]),.dark\:group-data-\[variant\=line\]\/tabs-list\:data-active\:bg-transparent:is(.dark *):is(:where(.group\/tabs-list)[data-variant=line] *):where([data-active]:not([data-active=false])){background-color:#0000}.data-horizontal\:h-1:where([data-orientation=horizontal]){height:calc(var(--spacing) * 1)}.data-horizontal\:h-full:where([data-orientation=horizontal]){height:100%}.data-horizontal\:w-full:where([data-orientation=horizontal]){width:100%}.data-horizontal\:flex-col:where([data-orientation=horizontal]){flex-direction:column}.data-vertical\:h-full:where([data-orientation=vertical]){height:100%}.data-vertical\:min-h-40:where([data-orientation=vertical]){min-height:calc(var(--spacing) * 40)}.data-vertical\:w-1:where([data-orientation=vertical]){width:calc(var(--spacing) * 1)}.data-vertical\:w-auto:where([data-orientation=vertical]){width:auto}.data-vertical\:w-full:where([data-orientation=vertical]){width:100%}.data-vertical\:flex-col:where([data-orientation=vertical]){flex-direction:column}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:calc(var(--spacing) * 3);height:calc(var(--spacing) * 3)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}.\[\&_tr\]\:border-b tr{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-style:var(--tw-border-style);border-width:0}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:calc(var(--spacing) * 0)}:is(.\*\:\[a\]\:underline>*):is(a){text-decoration-line:underline}:is(.\*\:\[a\]\:underline-offset-3>*):is(a){text-underline-offset:3px}@media (hover:hover){:is(.\*\:\[a\]\:hover\:text-foreground>*):is(a):hover{color:var(--foreground)}}:is(.\*\:\[span\]\:last\:flex>*):is(span):last-child{display:flex}:is(.\*\:\[span\]\:last\:items-center>*):is(span):last-child{align-items:center}:is(.\*\:\[span\]\:last\:gap-2>*):is(span):last-child{gap:calc(var(--spacing) * 2)}.\[\&\>svg\]\:size-3\.5>svg{width:calc(var(--spacing) * 3.5);height:calc(var(--spacing) * 3.5)}.\[\&\>tr\]\:last\:border-b-0>tr:last-child{border-bottom-style:var(--tw-border-style);border-bottom-width:0}}@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}body{font-family:var(--font-geist-sans), Arial, Helvetica, sans-serif}:root{--background:#f4f6f9;--foreground:#1c2c40;--card:#fff;--card-foreground:#1c2c40;--popover:#fff;--popover-foreground:#1c2c40;--primary:#176b70;--primary-foreground:#fff;--secondary:#eaf0f4;--secondary-foreground:#24364c;--muted:#e6ebf1;--muted-foreground:#647389;--accent:#e2f0ef;--accent-foreground:#12585d;--destructive:#bf4b3d;--border:#dbe2e9;--input:#dbe2e9;--ring:#1c9296;--radius:.5rem;--sidebar:#fff;--sidebar-foreground:#1c2c40;--sidebar-primary:#176b70;--sidebar-primary-foreground:#fff;--sidebar-accent:#e2f0ef;--sidebar-accent-foreground:#12585d;--sidebar-border:#dbe2e9;--sidebar-ring:#1c9296}.dark{--background:#142234;--foreground:#edf3fa;--card:#1c2d43;--card-foreground:#edf3fa;--popover:#1c2d43;--popover-foreground:#edf3fa;--primary:#4dc5be;--primary-foreground:#142234;--secondary:#263b54;--secondary-foreground:#edf3fa;--muted:#263b54;--muted-foreground:#acbdd1;--accent:#235354;--accent-foreground:#e2f7f5;--border:#35495f;--input:#35495f;--ring:#4dc5be}.image-reading-review{color:#243d4c;background:#f0f5f7;border:1px solid #b6cad4;border-radius:16px;padding:16px}.image-reading-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.image-reading-toolbar strong{align-items:center;gap:8px;display:flex}.image-reading-layout{grid-template-columns:minmax(0,1.4fr) minmax(260px,1fr);gap:16px;display:grid}.image-reading-drawing{background:#152635;border-radius:12px;min-width:0;height:540px;position:sticky;top:12px;overflow:hidden}.image-reading-results{flex-direction:column;gap:12px;min-width:0;display:flex}.image-reading-results p{margin:0}.image-reading-results input{color:#243d4c;background:#fff;border:1px solid #a8bfcb;border-radius:8px;width:100%;margin-top:6px;padding:10px;display:block}.image-reading-lines{flex-direction:column;gap:6px;max-height:300px;display:flex;overflow-y:auto}.image-reading-lines button{text-align:left;color:#243d4c;overflow-wrap:anywhere;background:#fff;border:1px solid #c4d3db;border-radius:8px;min-height:44px;padding:10px}.image-reading-lines button.selected{background:#d9edee;border-color:#166f76}.image-reading-lines small{color:#74520f;display:block}.intake-preview[hidden]{display:none}@media (max-width:800px){.image-reading-layout{grid-template-columns:1fr}.image-reading-drawing{height:360px;position:relative;top:auto}}.image-reading-drawing>.pdf-container{width:100%;height:100%}.image-reading-review .intake-reading-note{color:#48606d;font-size:14px}.image-reading-review .intake-reading-note button{color:#243d4c;background:#fff}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value: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-leading{syntax:"*";inherits:false}@property --tw-font-weight{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}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}@keyframes spin{to{transform:rotate(360deg)}}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0));filter:blur(var(--tw-enter-blur,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0));filter:blur(var(--tw-exit-blur,0))}}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
button,
a,
input {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:focus-visible,
a:focus-visible {
  outline: 2px solid #278c90;
  outline-offset: 3px;
}
.cp-app {
  height: 100dvh;
  min-height: 740px;
  display: flex;
  flex-direction: column;
  font-size: 14px;
  color: #23354a;
  background: #f4f6f9;
}
.app-header {
  height: 76px;
  flex: none;
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 0 26px;
  background: #fff;
  border-bottom: 1px solid #dae1e9;
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 24px;
  font-weight: 650;
  letter-spacing: -1px;
  color: #20354a;
  text-decoration: none;
}
.brand-mark {
  height: 34px;
  width: 34px;
  display: grid;
  place-items: center;
  background: #176b70;
  color: white;
  border-radius: 9px;
}
.pilot-tag {
  font-size: 12px;
  letter-spacing: 1px;
  border: 1px solid #d6dfe7;
  border-radius: 4px;
  padding: 3px 5px;
  margin-left: 2px;
}
.project-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  border-left: 1px solid #dce3e9;
  padding-left: 30px;
}
.project-heading strong {
  display: block;
  font-size: 16px;
  font-weight: 650;
}
.project-heading span:not(.project-icon) {
  display: block;
  font-size: 12px;
  color: #718093;
  margin-top: 2px;
}
.project-icon {
  color: #637e93;
}
.header-meta {
  margin-left: auto;
  font-size: 12px;
  color: #718294;
  display: flex;
  align-items: center;
  gap: 7px;
}
.status-dot,
.mini-dot {
  width: 6px;
  height: 6px;
  display: inline-block;
  border-radius: 50%;
  background: #52a5a1;
}
.workspace-layout {
  flex: 1;
  min-height: 0;
  display: grid;
  grid-template-columns: 258px minmax(360px, 1fr) 330px;
}
.layers-panel {
  padding: 25px 18px;
  background: #fff;
  border-right: 1px solid #dbe2e9;
  overflow: auto;
  display: flex;
  flex-direction: column;
}
.panel-title {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 12px;
  font-weight: 650;
  letter-spacing: 1px;
  color: #6e7f92;
}
.small-copy {
  font-size: 12px;
  color: #76889c;
  margin: 8px 0 22px;
}
.layer-stack {
  display: grid;
  gap: 22px;
}
.layer-top {
  display: flex;
  align-items: center;
  gap: 9px;
}
.trade-swatch {
  width: 4px;
  height: 32px;
  border-radius: 2px;
  flex: none;
}
.layer-name {
  flex: 1;
  min-width: 0;
}
.layer-name strong {
  display: block;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.3;
}
.layer-name span {
  display: block;
  font-size: 12px;
  color: #74869a;
  margin-top: 3px;
}
.icon-control {
  border: 0;
  background: none;
  color: #788b9e;
  padding: 5px;
}
.layer-opacity {
  display: flex;
  gap: 12px;
  align-items: center;
  margin: 11px 4px 0 13px;
}
.layer-opacity span {
  min-width: 28px;
  font-size: 12px;
  color: #768b9e;
  text-align: right;
}
.layer-opacity [data-slot='slider'] {
  flex: 1;
}
.parts-title {
  margin: 29px 0 12px;
}
.part-list {
  display: grid;
  gap: 3px;
}
.part-item {
  border: 0;
  background: none;
  display: flex;
  text-align: left;
  gap: 8px;
  align-items: center;
  font-size: 14px;
  padding: 10px 8px;
  border-radius: 6px;
  color: #576b80;
  line-height: 1.4;
}
.part-item svg {
  margin-left: auto;
  flex: none;
}
.part-item.selected {
  background: #eaf4f3;
  color: #176b70;
}
.part-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  flex: none;
}
.coverage-note {
  margin-top: auto;
  padding-top: 28px;
  display: flex;
  gap: 9px;
  color: #657b8c;
  font-size: 12px;
  line-height: 1.6;
}
.coverage-note svg {
  flex: none;
  margin-top: 2px;
}
.coverage-note strong {
  font-size: 12px;
  font-weight: 600;
}
.coverage-note p {
  margin: 4px 0 0;
  color: #72879a;
}
.main-workspace {
  min-width: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.workspace-toolbar {
  height: 58px;
  flex: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 22px;
  border-bottom: 1px solid #dbe2e9;
  background: #fff;
}
.workspace-toolbar [data-slot='tabs-trigger'] {
  font-size: 14px;
  gap: 7px;
  padding: 8px 12px;
}
.workspace-toolbar [data-slot='tabs-list'] {
  gap: 10px;
}
.toolbar-context {
  font-size: 12px;
  color: #758599;
}
.scene-wrap {
  position: relative;
  min-height: 370px;
  flex: 1;
  background: #142234;
  overflow: hidden;
}
.scene-host {
  position: absolute;
  inset: 0;
}
.scene-host canvas {
  width: 100%;
  height: 100%;
  display: block;
}
.scene-error {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: white;
  padding: 40px;
  background: #142234;
}
.scene-label {
  position: absolute;
  left: 26px;
  top: 24px;
  color: #d6e3ee;
  pointer-events: none;
}
.eyebrow {
  font-size: 12px;
  letter-spacing: 1.3px;
  color: #8da7bc;
  font-weight: 600;
}
.scene-label h1 {
  font-size: 26px;
  font-weight: 500;
  letter-spacing: -0.6px;
  margin: 7px 0 5px;
}
.scene-label > span:last-child {
  font-size: 12px;
  color: #93acc1;
}
.scene-controls {
  position: absolute;
  right: 18px;
  top: 22px;
  display: flex;
  gap: 4px;
}
.scene-controls button {
  height: 32px;
  font-size: 14px;
  padding: 0 10px;
  background: #21364c;
  color: #c4d5e4;
  border: 1px solid #3a4d61;
  box-shadow: 0 3px 9px #0c172833;
}
.scene-controls button:hover {
  background: #365066;
}
.scene-adjustments {
  position: absolute;
  bottom: 47px;
  left: 50%;
  transform: translateX(-50%);
  padding: 14px 20px;
  width: min(460px, 88%);
  background: #203348ed;
  border: 1px solid #3a5066;
  border-radius: 9px;
  display: grid;
  gap: 16px;
  box-shadow: 0 8px 35px #0c182966;
}
.scene-adjustments > div {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #acc3d6;
}
.scene-adjustments label {
  font-size: 14px;
  white-space: nowrap;
  width: 116px;
}
.scene-adjustments [data-slot='slider'] {
  flex: 1;
}
.scene-adjustments [data-slot='slider-track'] {
  background: #42576c;
}
.scene-adjustments [data-slot='slider-range'] {
  background: #4eb6b3;
}
.scene-adjustments span {
  font-size: 12px;
  width: 28px;
  text-align: right;
  color: #d7e2eb;
}
.scene-footer {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 13px 22px;
  color: #8da6bb;
  font-size: 12px;
  background: linear-gradient(transparent, #101d2f66);
}
.scene-footer .mini-dot {
  margin-right: 5px;
}
.evidence-tray {
  height: 230px;
  flex: none;
  padding: 20px 23px;
  background: #f4f6f9;
  border-top: 1px solid #e0e6ed;
}
.tray-heading {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
}
.tray-heading h2 {
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}
.tray-heading span {
  font-size: 12px;
  color: #74879a;
}
.drawing-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 13px;
}
.drawing-card {
  border: 1px solid #dbe3ea;
  border-radius: 7px;
  overflow: hidden;
  background: #fff;
  text-align: left;
  padding: 0;
  transition:
    border-color 0.2s,
    transform 0.2s;
}
.drawing-card:hover {
  border-color: #278c90;
  transform: translateY(-2px);
}
.drawing-thumb {
  height: 80px;
  position: relative;
  background: #fff;
  overflow: hidden;
  border-bottom: 1px solid #edf0f5;
}
.drawing-thumb img {
  height: 100%;
  width: 100%;
  object-fit: cover;
  object-position: center;
}
.drawing-thumb svg {
  position: absolute;
  right: 7px;
  top: 7px;
  background: white;
  color: #607b8f;
  padding: 2px;
  border-radius: 3px;
}
.drawing-card > div:last-child {
  padding: 9px 10px 9px 17px;
  position: relative;
}
.trade-line {
  position: absolute;
  left: 8px;
  top: 12px;
  height: 25px;
  width: 3px;
  border-radius: 2px;
}
.drawing-card strong {
  display: block;
  font-size: 14px;
  font-weight: 550;
  line-height: 1.35;
}
.drawing-card small {
  display: block;
  font-size: 12px;
  color: #75879b;
  margin-top: 3px;
}
.inspector {
  background: #fff;
  border-left: 1px solid #dbe2e9;
  overflow: auto;
  padding: 25px 22px;
}
.inspector-body {
  margin-top: 25px;
}
.evidence-tag {
  display: inline-block;
  padding: 5px 8px;
  border-radius: 4px;
  font-size: 12px;
  font-weight: 600;
  color: #416c60;
  background: #eaf3ef;
}
.evidence-tag.derived {
  color: #1b747b;
  background: #e8f3f3;
}
.evidence-tag.provisional,
.evidence-tag.review {
  color: #966b1a;
  background: #fcf3df;
}
.evidence-tag.blocker {
  color: #b64e3e;
  background: #fbece8;
}
.inspector h2 {
  font-size: 23px;
  line-height: 1.3;
  letter-spacing: -0.5px;
  font-weight: 550;
  margin: 13px 0;
}
.inspector-body > p {
  font-size: 14px;
  line-height: 1.75;
  color: #687e92;
}
.property-list {
  margin: 20px 0;
}
.property-list > div {
  padding: 12px 0;
  border-bottom: 1px solid #edf1f5;
}
.property-list dt {
  font-size: 12px;
  color: #72869a;
  margin-bottom: 5px;
}
.property-list dd {
  font-size: 14px;
  margin: 0;
  display: flex;
  gap: 4px;
  align-items: center;
  font-weight: 500;
}
.property-list dd button {
  background: none;
  border: 0;
  color: #568b92;
  padding: 3px;
  margin-left: auto;
}
.source-authority {
  padding: 14px;
  background: #f5f8fa;
  border: 1px solid #e4eaf0;
  border-radius: 6px;
}
.source-authority > strong {
  display: flex;
  gap: 7px;
  align-items: center;
  font-size: 14px;
  color: #587184;
  margin-bottom: 10px;
}
.source-authority > button {
  display: block;
  border: 0;
  background: none;
  text-align: left;
  font-size: 14px;
  color: #375d70;
  padding: 8px 0;
  width: 100%;
}
.source-authority > button span {
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: #6b8498;
  font-size: 12px;
  margin-top: 4px;
}
.issue-list {
  margin-top: 28px;
}
.issue-row {
  display: flex;
  gap: 9px;
  align-items: center;
  text-align: left;
  width: 100%;
  background: none;
  border: 0;
  border-bottom: 1px solid #ecf0f4;
  padding: 13px 0;
}
.issue-indicator {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #dbad53;
  flex: none;
}
.issue-indicator.blocker {
  background: #df7b65;
}
.issue-row > span:nth-child(2) {
  flex: 1;
}
.issue-row small {
  display: block;
  font-size: 12px;
  color: #7e90a3;
  margin-bottom: 4px;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}
.issue-row strong {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  display: block;
}
.issue-row svg {
  color: #a1abb8;
  flex: none;
}
.issue-row.active strong,
.issue-row:hover strong {
  color: #176b70;
}
.next-action {
  background: #f4f7fa;
  padding: 14px;
  border-radius: 6px;
  margin-top: 18px;
}
.next-action strong {
  font-size: 14px;
}
.next-action p {
  font-size: 14px;
  line-height: 1.7;
  color: #6e8294;
  margin: 7px 0 0;
}
.owner-label {
  font-size: 12px !important;
}
.ref-list button {
  display: flex;
  gap: 8px;
  align-items: center;
  text-align: left;
  border: 0;
  background: none;
  border-bottom: 1px solid #edf1f5;
  padding: 12px 0;
  color: #52718a;
  width: 100%;
  font-size: 14px;
}
.ref-list button span {
  flex: 1;
}
.ref-list small {
  font-size: 12px;
  display: block;
  color: #71879c;
  margin-top: 4px;
  line-height: 1.6;
}
.app-footer {
  height: 32px;
  flex: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 22px;
  border-top: 1px solid #dbe2e9;
  background: #fff;
  color: #768b9f;
  font-size: 12px;
  gap: 15px;
}
.app-footer span {
  display: flex;
  align-items: center;
  gap: 6px;
}
.drawings-workspace {
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.source-switcher {
  display: flex;
  gap: 6px;
  padding: 16px 20px 0;
  flex-wrap: wrap;
}
.source-switcher button {
  font-size: 14px;
}
.paper-heading {
  padding: 20px;
  display: flex;
  align-items: center;
  gap: 20px;
  justify-content: space-between;
}
.paper-heading h1 {
  font-size: 21px;
  font-weight: 550;
  margin: 0 0 6px;
}
.paper-heading p {
  font-size: 14px;
  line-height: 1.6;
  color: #72879b;
  max-width: 420px;
  margin: 0;
}
.inline-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 14px;
  flex: none;
}
.paper-scroll {
  overflow: auto;
  flex: 1;
  min-height: 0;
  background: #dfe5ec;
  margin: 0 20px;
  padding: 18px;
  border: 1px solid #d2dce6;
  border-radius: 7px;
}
.source-paper {
  box-shadow: 0 5px 18px #2c415533;
  background: white;
  display: block;
}
.paper-footer {
  display: flex;
  gap: 8px;
  padding: 17px 20px;
  font-size: 12px;
  color: #657e93;
}
@media (min-width: 1700px) {
  .workspace-layout {
    grid-template-columns: 280px minmax(500px, 1fr) 360px;
  }
  .inspector {
    padding: 28px;
  }
  .scene-label h1 {
    font-size: 30px;
  }
  .evidence-tray {
    height: 250px;
  }
  .drawing-thumb {
    height: 105px;
  }
  .inspector-body > p {
    font-size: 16px;
  }
}
@media (max-width: 1250px) {
  .workspace-layout {
    grid-template-columns: 220px minmax(340px, 1fr) 290px;
  }
  .app-header {
    gap: 20px;
    padding: 0 18px;
  }
  .header-meta {
    display: none;
  }
  .brand {
    font-size: 22px;
  }
  .project-heading {
    padding-left: 20px;
  }
  .inspector {
    padding: 22px 15px;
  }
  .layers-panel {
    padding: 22px 12px;
  }
  .scene-controls {
    top: 104px;
  }
  .toolbar-context,
  .tray-heading span,
  .scene-footer span:last-child {
    display: none;
  }
  .scene-label {
    left: 20px;
  }
  .evidence-tray {
    padding: 17px 15px;
    height: 240px;
  }
  .drawing-cards {
    gap: 8px;
  }
  .drawing-thumb {
    height: 70px;
  }
  .source-switcher {
    padding: 12px;
  }
  .paper-heading {
    flex-direction: column;
    align-items: flex-start;
    padding: 15px;
  }
  .app-footer span:nth-child(2) {
    max-width: 45%;
    overflow: hidden;
    white-space: nowrap;
  }
  .coverage-note {
    margin-top: 20px;
  }
}
@media (max-width: 950px) {
  .cp-app {
    height: auto;
    min-height: 100dvh;
  }
  .workspace-layout {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
  }
  .inspector {
    grid-column: 1/-1;
    border-left: 0;
    border-top: 1px solid #dbe2e9;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    overflow: visible;
  }
  .inspector > .panel-title {
    grid-column: 1/-1;
  }
  .inspector-body {
    margin: 0;
  }
  .issue-list {
    margin: 0;
  }
  .main-workspace {
    min-height: 760px;
  }
  .scene-wrap {
    min-height: 440px;
  }
  .app-footer {
    height: auto;
    min-height: 32px;
  }
  .header-meta,
  .pilot-tag {
    display: none;
  }
  .project-heading strong {
    font-size: 14px;
  }
  .app-header {
    height: 68px;
  }
  .drawings-workspace {
    min-height: 600px;
  }
  .paper-scroll {
    max-height: 600px;
  }
  .scene-label h1 {
    font-size: 23px;
  }
}
@media (max-width: 600px) {
  .app-header {
    gap: 12px;
    padding: 0 13px;
  }
  .brand {
    font-size: 18px;
    gap: 7px;
  }
  .brand-mark {
    height: 28px;
    width: 28px;
  }
  .project-heading {
    border: 0;
    padding-left: 0;
    margin-left: auto;
  }
  .project-icon {
    display: none;
  }
  .project-heading strong {
    font-size: 12px;
  }
  .project-heading span:not(.project-icon) {
    font-size: 12px;
    max-width: 130px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .workspace-layout {
    display: flex;
    flex-direction: column;
  }
  .layers-panel {
    order: 1;
    border-right: 0;
    padding: 18px;
  }
  .layer-stack {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 16px;
  }
  .layers-panel > .panel-title,
  .small-copy,
  .parts-title,
  .part-list,
  .coverage-note {
    display: none;
  }
  .layer-name span {
    font-size: 12px;
  }
  .layer-opacity {
    margin-top: 10px;
  }
  .main-workspace {
    order: 0;
    min-height: 720px;
  }
  .inspector {
    order: 2;
    display: block;
    padding: 22px;
  }
  .inspector-body {
    margin-top: 20px;
  }
  .issue-list {
    margin-top: 25px;
  }
  .workspace-toolbar {
    padding: 0 12px;
    height: 52px;
  }
  .scene-wrap {
    min-height: 440px;
  }
  .scene-label {
    top: 18px;
    left: 18px;
  }
  .scene-label h1 {
    font-size: 24px;
  }
  .scene-controls {
    top: 106px;
    right: 14px;
  }
  .scene-adjustments {
    padding: 14px 15px;
    bottom: 40px;
    width: 92%;
  }
  .scene-adjustments label {
    font-size: 12px;
    width: 100px;
  }
  .scene-footer {
    padding: 11px 18px;
  }
  .evidence-tray {
    height: 245px;
    padding: 17px 13px;
  }
  .drawing-thumb {
    height: 70px;
  }
  .app-footer > span:last-child,
  .app-footer > span:nth-child(2) {
    display: none;
  }
  .paper-scroll {
    padding: 8px;
    margin: 0 12px;
  }
}
.mode-drawings .main-workspace {
  grid-column: 2/-1;
}
.mode-drawings .inspector {
  display: none;
}
.error-banner {
  background: #fff0ea;
  color: #994738;
  border-bottom: 1px solid #efcabe;
  padding: 12px 24px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  font-size: 14px;
}
.drawing-browser {
  display: flex;
  flex: 1;
  min-height: 0;
  overflow: hidden;
}
.drawing-library {
  width: 230px;
  flex: none;
  background: #f5f7fa;
  border-right: 1px solid #dbe2e9;
  overflow: auto;
  padding: 18px 14px;
}
.library-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  margin-bottom: 20px;
}
.library-heading span {
  font-size: 12px;
  color: #75889b;
}
.library-import {
  display: grid;
  gap: 8px;
  margin-bottom: 20px;
}
.library-import label {
  font-size: 12px;
  color: #6c8298;
}
.library-import select {
  height: 35px;
  border: 1px solid #d7e0e9;
  border-radius: 5px;
  background: white;
  padding: 0 8px;
  font-size: 14px;
  max-width: 100%;
}
.drawing-search {
  position: relative;
  margin-bottom: 16px;
}
.drawing-search svg {
  position: absolute;
  left: 8px;
  top: 10px;
  color: #899bab;
}
.drawing-search input {
  padding-left: 28px;
  font-size: 13px;
  background: white;
}
.source-list {
  display: grid;
  gap: 5px;
}
.source-list button {
  display: flex;
  gap: 9px;
  padding: 12px 8px;
  align-items: flex-start;
  background: none;
  text-align: left;
  border: 1px solid transparent;
  border-radius: 6px;
  width: 100%;
}
.source-list button.active {
  background: #fff;
  border-color: #d9e2e9;
  box-shadow: 0 2px 5px #13283e06;
}
.source-list svg {
  flex: none;
  margin-top: 2px;
}
.source-list strong {
  font-size: 14px;
  font-weight: 550;
  display: block;
  line-height: 1.4;
  overflow-wrap: anywhere;
}
.source-list small {
  font-size: 12px;
  color: #72889d;
  display: block;
  margin-top: 4px;
}
.drawing-main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  background: #e6ebf1;
  min-height: 0;
}
.drawing-document-header {
  padding: 20px 24px 14px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
}
.drawing-document-header h1 {
  font-size: 21px;
  line-height: 1.3;
  font-weight: 550;
  margin: 0 0 7px;
  overflow-wrap: anywhere;
}
.document-download {
  display: flex;
  align-items: center;
  gap: 7px;
  font-size: 14px;
  color: #317b80;
  text-decoration: none;
  padding: 8px;
}
.page-controls {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  padding: 10px 24px;
  background: #fff;
  border-bottom: 1px solid #dce3ea;
  gap: 14px;
}
.page-controls input {
  width: 48px;
  border: 1px solid #d8e1e9;
  border-radius: 4px;
  padding: 4px;
  font-size: 14px;
  text-align: center;
}
.page-controls label,
.page-controls span {
  font-size: 14px;
  color: #6c8297;
}
.pdf-container {
  flex: 1;
  min-height: 0;
  position: relative;
}
.pdf-scroller {
  position: absolute;
  inset: 0;
  overflow: auto;
  padding: 18px;
  display: block;
}
.pdf-scroller canvas {
  display: block;
  box-shadow: 0 5px 18px #14283f26;
  background: white;
}
.pdf-status {
  position: sticky;
  top: 0;
  background: #fff;
  padding: 12px;
  border: 1px solid #dbe4eb;
  z-index: 2;
  box-shadow: 0 3px 14px #203a5015;
}
.pdf-status.error {
  color: #b4523e;
}
.drawing-footnote {
  padding: 12px 22px;
  background: #f6f8fa;
  border-top: 1px solid #dce3ea;
  display: flex;
  align-items: center;
  gap: 15px;
}
.drawing-footnote p {
  flex: 1;
  font-size: 12px;
  color: #70879a;
  line-height: 1.5;
  margin: 0;
}
.drawing-3d-tools {
  max-width: 100%;
  color: #263c4c;
}
.drawing-3d-tools > summary {
  cursor: pointer;
  border: 1px solid #dce3ea;
  border-radius: 8px;
  padding: 7px 12px;
  background: #f6f8fa;
  font-size: 14px;
  min-height: 36px;
}
.drawing-3d-tools > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 0;
  max-width: 460px;
}
.drawing-3d-tools p {
  flex-basis: 100%;
  margin: 0 0 4px;
  font-size: 14px;
}
.drawing-3d-tools button {
  white-space: normal;
  height: auto;
  min-height: 40px;
  text-align: left;
}
.source-review-details {
  min-width: 0;
  max-width: 100%;
  font-size: 14px;
}
.source-review-details > summary {
  cursor: pointer;
  padding: 5px 0;
}
.source-review-details > summary:focus-visible,
.drawing-3d-tools > summary:focus-visible {
  outline: 2px solid #237f89;
  outline-offset: 3px;
  border-radius: 6px;
}
.drawing-footnote > .source-review-details {
  flex: 1;
}
.source-review-details[open] p {
  max-height: 140px;
  overflow: auto;
  overflow-wrap: anywhere;
}
.work-progress {
  padding: 10px 20px;
  background: #e7f3f1;
  color: #1b7574;
  font-size: 14px;
}
.cad-stage,
.empty-workspace {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 30px;
  color: #6a8296;
}
.cad-stage h2,
.empty-workspace h2 {
  font-size: 24px;
  font-weight: 500;
  color: #294860;
}
.cad-stage p,
.empty-workspace p {
  max-width: 400px;
  line-height: 1.7;
}
.search-results > span {
  font-size: 12px;
  color: #678196;
}
.search-results button {
  padding: 10px 0;
  text-align: left;
  border: 0;
  border-bottom: 1px solid #dce4eb;
  background: none;
  display: block;
  width: 100%;
}
.search-results strong {
  font-size: 12px;
  display: block;
  color: #287178;
}
.search-results small {
  font-size: 12px;
  display: block;
  line-height: 1.5;
  color: #6f879a;
}
.search-results {
  margin-bottom: 20px;
}
@media (max-width: 950px) {
  .mode-drawings .main-workspace {
    grid-column: 2;
  }
  .mode-drawings .layers-panel {
    display: none;
  }
  .mode-drawings .workspace-layout {
    display: flex;
    flex-direction: column;
  }
  .mode-drawings .main-workspace {
    height: calc(100dvh - 100px);
    min-height: 750px;
  }
  .drawing-library {
    width: 225px;
  }
}
@media (max-width: 600px) {
  .drawing-library {
    width: 160px;
    padding: 12px 8px;
  }
  .library-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }
  .library-import select {
    font-size: 12px;
  }
  .source-list button {
    padding: 8px 3px;
    gap: 5px;
  }
  .source-list strong {
    font-size: 12px;
  }
  .source-list svg {
    width: 13px;
  }
  .source-list small {
    font-size: 12px;
  }
  .drawing-document-header {
    padding: 16px 12px;
    flex-direction: column;
    align-items: flex-start;
  }
  .drawing-document-header h1 {
    font-size: 17px;
  }
  .page-controls {
    padding: 10px;
    flex-direction: column;
    align-items: flex-start;
  }
  .drawing-footnote {
    padding: 12px;
    display: block;
  }
  .pdf-scroller {
    padding: 8px;
  }
  .drawing-footnote button {
    margin-top: 8px;
  }
  .drawing-document-header .inline-actions {
    display: none;
  }
  .library-import button {
    font-size: 12px;
  }
  .drawing-search input {
    font-size: 12px;
  }
  .error-banner {
    padding: 12px;
  }
}
/* Native CAD and source profile reconstruction */
.cp-dialog {
  width: min(920px, calc(100vw - 32px));
  max-width: 920px !important;
  max-height: 90vh;
  overflow: auto;
  padding: 28px;
  border-radius: 16px;
}
.cp-dialog h2 {
  font-size: 23px;
  letter-spacing: -0.6px;
}
.cp-dialog [data-slot='dialog-description'] {
  font-size: 14px;
  line-height: 1.6;
  max-width: 720px;
}
.profile-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 24px;
  margin: 8px 0;
}
.profile-preview {
  background: #132435;
  border-radius: 12px;
  padding: 18px;
  min-height: 260px;
  display: flex;
  flex-direction: column;
  gap: 15px;
  color: #eaf4f7;
  align-items: center;
}
.profile-preview > svg {
  width: 100%;
  height: 210px;
}
.profile-preview small {
  font-size: 12px;
  color: #9fb9c7;
  text-align: center;
  line-height: 1.55;
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}
.form-grid label,
.axis-fields label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 12px;
  font-weight: 600;
  color: #506073;
}
.form-grid input {
  font-weight: 400;
  font-size: 14px;
  height: 36px;
}
.form-grid .span-all {
  grid-column: 1/-1;
}
.axis-fields {
  display: flex;
  gap: 8px;
}
.axis-fields label {
  min-width: 0;
  flex: 1;
}
.form-error {
  padding: 12px 15px;
  border: 1px solid #efc1b5;
  background: #fff1ec;
  color: #9b3a22;
  border-radius: 7px;
  font-size: 14px;
  line-height: 1.55;
}
.cad-source {
  min-height: 0;
  display: flex;
  flex-direction: column;
  flex: 1;
  overflow: auto;
}
.cad-refresh {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 5px 20px;
  background: #f5f8fa;
  border-bottom: 1px solid #dce3ea;
  font-size: 12px;
  color: #72859a;
  flex: none;
}
.cad-workspace {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  min-height: 550px;
}
.cad-toolrow {
  display: flex;
  flex: none;
  gap: 7px;
  align-items: center;
  flex-wrap: wrap;
  padding: 12px 20px;
  border-bottom: 1px solid #e1e6ec;
  background: white;
}
.cad-choice {
  width: 145px;
}
.cad-choice.layer-choice {
  width: 220px;
}
.cad-report {
  flex: none;
  padding: 15px 20px;
  background: #fff7e9;
  border-bottom: 1px solid #efd9ae;
  color: #665337;
  font-size: 12px;
  line-height: 1.6;
  max-height: 220px;
  overflow: auto;
}
.cad-report p {
  margin: 5px 0;
}
.cad-canvas-wrap {
  position: relative;
  flex: 1;
  min-height: 320px;
  overflow: hidden;
  background: #122132;
  touch-action: none;
}
.cad-canvas-wrap canvas {
  width: 100%;
  height: 100%;
  position: absolute;
  cursor: crosshair;
  touch-action: none;
}
.cad-search {
  position: absolute;
  left: 15px;
  top: 14px;
  width: 270px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0 10px;
  background: #f8fbffed;
  border-radius: 7px;
  color: #617786;
}
.cad-search input {
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: 13px;
}
.cad-matches {
  position: absolute;
  top: 40px;
  left: 0;
  right: 0;
  background: #fff;
  border-radius: 8px;
  box-shadow: 0 12px 28px #0003;
  max-height: 310px;
  overflow: auto;
  z-index: 5;
}
.cad-matches button,
.cad-matches > span {
  display: block;
  width: 100%;
  padding: 10px 13px;
  text-align: left;
  font-size: 12px;
  border-bottom: 1px solid #e8ebed;
}
.cad-matches button:hover {
  background: #eaf5f3;
}
.cad-hud {
  position: absolute;
  left: 17px;
  right: 17px;
  bottom: 14px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  color: #9bb6c9;
  font-size: 11px;
  pointer-events: none;
}
.cad-selection {
  padding: 17px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border-top: 1px solid #d9e2eb;
  min-height: 82px;
  background: white;
}
.cad-selection > div:first-child {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cad-selection strong {
  font-size: 14px;
}
.cad-selection span {
  font-size: 12px;
  color: #6f7f90;
}
.cad-selection p {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #788799;
}
.cad-stage small {
  display: flex;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  max-width: 480px;
  line-height: 1.6;
}
.work-progress {
  display: flex;
  align-items: center;
  gap: 10px;
}
.work-progress button {
  margin-left: auto;
}
.drawing-library [data-slot='select-trigger'] {
  height: 36px;
}
.cad-source .form-error {
  margin: 14px;
}
.profile-dialog [data-slot='dialog-footer'] {
  margin-top: 12px;
}
@media (max-width: 1050px) {
  .cad-toolrow {
    padding: 10px;
  }
  .cad-choice.layer-choice {
    width: 160px;
  }
  .cad-toolrow > button:last-child {
    font-size: 11px;
  }
  .cad-hud span:last-child {
    display: none;
  }
  .cad-selection {
    flex-direction: column;
    align-items: flex-start;
  }
  .profile-layout {
    grid-template-columns: 200px 1fr;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .form-grid .span-all {
    grid-column: 1;
  }
}
@media (max-width: 620px) {
  .cp-dialog {
    padding: 20px;
  }
  .profile-layout {
    grid-template-columns: 1fr;
  }
  .profile-preview {
    min-height: 160px;
  }
  .profile-preview > svg {
    height: 130px;
  }
  .cad-choice.layer-choice {
    width: 160px;
  }
  .cad-search {
    width: 220px;
  }
  .cad-toolrow > button {
    height: 28px;
  }
  .cad-canvas-wrap {
    min-height: 400px;
  }
}
.project-switch {
  margin-left: auto;
  flex-shrink: 0;
}
.header-meta {
  margin-left: 16px !important;
}
.project-dialog-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 30px;
}
.guide-dialog {
  max-width: 760px !important;
}
.rfi-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-block: 1rem;
}
.review-packet-dialog {
  max-width: 650px !important;
}
.review-packet-dialog p,
.review-packet-dialog .confirmation-row {
  line-height: 1.7;
  font-size: 15px;
  color: #536b7c;
}
.review-packet-dialog .confirmation-row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 18px;
  background: #edf6f5;
  border-radius: 8px;
}
.guide-lead {
  padding: 20px;
  border: 1px solid #c6dede;
  background: #edf6f5;
  border-radius: 10px;
}
.guide-dialog p {
  font-size: 15px;
  line-height: 1.7;
  color: #536b7c;
  margin: 10px 0 16px;
}
.guide-dialog details {
  border-bottom: 1px solid #dce5ea;
  padding: 16px 0;
}
.guide-dialog summary {
  font-size: 16px;
  font-weight: 550;
  cursor: pointer;
}
.guide-notices {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  font-size: 12px;
  color: #477480;
}
.guide-notices a {
  display: inline-flex;
  gap: 4px;
  align-items: center;
}
.saved-projects {
  max-height: 240px;
  overflow: auto;
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 15px 0;
}
.saved-projects button {
  justify-content: flex-start;
  text-align: left;
  height: auto;
  min-height: 48px;
  padding: 12px;
}
.saved-projects button span {
  flex: 1;
  white-space: normal;
  line-height: 1.4;
}
.saved-projects small {
  font-size: 11px;
  color: #4c797a;
}
.portable-tools {
  border-top: 1px solid #e2e6eb;
  padding-top: 18px;
  margin-top: 20px;
}
.portable-tools p {
  font-size: 13px;
  color: #758293;
  line-height: 1.6;
  margin: 9px 0 16px;
}
.new-project {
  display: flex;
  flex-direction: column;
  gap: 15px;
  padding: 20px;
  border: 1px solid #e1e7ee;
  border-radius: 12px;
  background: #f7f9fb;
}
.new-project label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 12px;
  color: #5a6c7e;
  font-weight: 600;
}
.new-project input {
  height: 36px;
  background: white;
  font-weight: 400;
}
.new-project > button {
  margin-top: 5px;
}
.form-success {
  padding: 13px;
  background: #eaf6ef;
  border-radius: 8px;
  color: #346854;
  font-size: 14px;
}
.unplaced-layer {
  font-size: 11px;
  color: #8494a4;
  display: block;
  padding-left: 22px;
  margin-top: 7px;
}
.layer-top .icon-control:disabled {
  opacity: 0.2;
  cursor: default;
}
@media (max-width: 950px) {
  .project-switch {
    margin-left: auto;
  }
  .project-dialog-grid {
    grid-template-columns: 1fr;
  }
  .saved-projects {
    max-height: 170px;
  }
  .project-dialog {
    max-width: 620px !important;
  }
  .header-meta {
    display: none !important;
  }
}
@media (max-width: 600px) {
  .project-switch {
    font-size: 0;
    gap: 0;
    width: 34px;
    padding: 7px;
  }
  .project-switch svg {
    width: 17px;
  }
  .app-header {
    gap: 9px;
  }
}
.mode-field .workspace-layout {
  grid-template-columns: 1fr;
}
.mode-field .layers-panel,
.mode-field .inspector {
  display: none;
}
.mode-field .main-workspace {
  grid-column: 1/-1;
}
.field-workspace {
  padding: 28px;
  min-height: calc(100vh - 160px);
  background: #f5f7fa;
}
.field-header {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-bottom: 23px;
}
.field-header .eyebrow {
  color: #587f82;
  letter-spacing: 1.7px;
  font-size: 11px;
}
.field-header h1 {
  font-size: 29px;
  font-weight: 600;
  letter-spacing: -1px;
  margin: 8px 0;
}
.field-header p {
  font-size: 14px;
  color: #768698;
  line-height: 1.6;
  max-width: 650px;
}
.field-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 13px;
  margin-bottom: 22px;
}
.field-summary button {
  background: white;
  border: 1px solid #dce4eb;
  border-radius: 10px;
  padding: 17px;
  display: grid;
  grid-template-columns: 1fr auto;
  text-align: left;
  gap: 10px;
  color: #75899b;
}
.field-summary button:hover,
.field-summary button.active {
  border-color: #4e999c;
  background: #f3fbf8;
}
.field-summary strong {
  font-size: 30px;
  line-height: 1;
  color: #263d50;
  font-weight: 550;
}
.field-summary span {
  grid-column: 1/-1;
  font-size: 13px;
}
.survey-strip {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-bottom: 20px;
}
.survey-strip > div {
  display: flex;
  align-items: center;
  gap: 13px;
  background: #fff;
  border: 1px solid #e1e8ef;
  border-radius: 9px;
  padding: 15px;
  color: #537f86;
}
.survey-strip > div > div {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.survey-strip strong {
  color: #345063;
  font-size: 14px;
}
.survey-strip span {
  font-size: 12px;
  color: #71889a;
}
.survey-strip small {
  font-size: 11px;
  color: #8c9ba7;
  line-height: 1.5;
}
.field-visual {
  position: relative;
  height: 350px;
  border-radius: 11px;
  overflow: hidden;
  margin-bottom: 20px;
}
.field-visual-label {
  position: absolute;
  left: 20px;
  top: 20px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: white;
  pointer-events: none;
}
.field-visual-label span {
  font-size: 11px;
  color: #a6c1ce;
}
.field-review-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 20px;
  align-items: start;
}
.field-review-grid > div:first-child {
  background: white;
  border: 1px solid #dce4eb;
  border-radius: 10px;
  overflow: hidden;
}
.field-table-tools {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 15px;
  border-bottom: 1px solid #e1e8ef;
}
.field-table-tools .drawing-search {
  margin: 0;
  width: 220px;
}
.field-table-tools > button {
  width: 185px;
}
.field-table-tools > span {
  margin-left: auto;
  font-size: 12px;
  color: #8694a0;
}
.field-table th {
  background: #f9fafc;
  font-size: 11px;
  color: #7c8c9c;
  height: 42px;
  padding: 10px 15px;
}
.field-table td {
  font-size: 12px;
  padding: 13px 15px;
}
.field-table small {
  display: block;
  font-size: 10px;
  color: #8d9aa6;
  margin-top: 3px;
}
.point-link {
  text-align: left;
  color: #275b67;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.status-pill {
  padding: 5px 7px;
  border-radius: 5px;
  font-size: 11px;
  display: inline-block;
}
.status-pill.outside,
.evidence-tag.outside {
  background: #fce9e2;
  color: #9b452b;
}
.status-pill.review,
.evidence-tag.review {
  background: #fff3d5;
  color: #8e6b24;
}
.status-pill.within,
.evidence-tag.within {
  background: #e4f5ee;
  color: #367663;
}
.status-pill.control {
  background: #e8f0fa;
  color: #527297;
}
.status-pill.missing,
.status-pill.unregistered {
  background: #eef1f5;
  color: #6d7d8c;
}
.field-point-editor {
  background: white;
  border: 1px solid #dce4eb;
  border-radius: 10px;
  padding: 21px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.field-point-editor h2 {
  font-size: 22px;
  color: #293d4f;
  letter-spacing: -0.5px;
}
.field-point-editor p {
  font-size: 13px;
  line-height: 1.6;
  color: #7b8d9a;
}
.field-point-editor dl {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: 12px;
  margin-bottom: 8px;
}
.field-point-editor dt {
  color: #8797a5;
  margin-top: 7px;
}
.field-point-editor dd {
  font-weight: 500;
  color: #354b5a;
}
.field-point-editor > label {
  font-size: 12px;
  color: #60788a;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.field-point-editor > .checkbox-label {
  flex-direction: row;
}
.field-point-editor small {
  font-size: 11px;
  color: #8b9eab;
  line-height: 1.6;
}
.field-empty {
  min-height: 410px;
  border: 1px dashed #cbd9e3;
  border-radius: 14px;
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 16px;
  text-align: center;
  padding: 40px;
  color: #789aa4;
}
.field-empty h2 {
  font-size: 25px;
  color: #345263;
  letter-spacing: -0.7px;
}
.field-empty p {
  font-size: 15px;
  line-height: 1.75;
  max-width: 520px;
  color: #80939f;
}
.field-empty a {
  font-size: 13px;
  color: #387780;
  text-decoration: underline;
}
.field-empty small {
  font-size: 11px;
  max-width: 450px;
  line-height: 1.6;
  color: #9aa9b4;
}
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #5a7384;
  line-height: 1.6;
}
.csv-preview {
  margin-top: 8px;
  border: 1px solid #e0e7ef;
  border-radius: 9px;
  overflow: hidden;
}
.csv-preview > strong {
  display: block;
  padding: 12px;
  font-size: 12px;
  background: #f3f7fa;
}
.csv-preview th,
.csv-preview td {
  font-size: 11px;
}
.control-list {
  display: flex;
  flex-direction: column;
  gap: 11px;
  padding: 17px;
  background: #f3f7f9;
  border-radius: 9px;
}
.control-list .checkbox-label {
  font-size: 12px;
}
.control-list span {
  color: #81939f;
  margin-left: auto;
}
.registration-result {
  background: #eaf5f3;
  border-radius: 10px;
  padding: 18px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 15px;
}
.registration-result > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.registration-result span {
  font-size: 12px;
  color: #71918f;
}
.registration-result strong {
  font-size: 24px;
  color: #3c7774;
}
.registration-result p {
  grid-column: 1/-1;
  font-size: 12px;
  line-height: 1.6;
  color: #648c87;
}
@media (max-width: 1250px) {
  .field-header {
    align-items: flex-start;
    flex-direction: column;
  }
  .field-review-grid {
    grid-template-columns: 1fr;
  }
  .field-point-editor {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .field-point-editor .panel-title,
  .field-point-editor h2 {
    grid-column: 1/-1;
  }
  .field-point-editor > small {
    grid-column: 1/-1;
  }
}
@media (max-width: 700px) {
  .field-workspace {
    padding: 18px;
  }
  .field-summary {
    grid-template-columns: 1fr 1fr;
    gap: 10px;
  }
  .field-header h1 {
    font-size: 25px;
  }
  .field-header > .inline-actions {
    width: 100%;
  }
  .field-header > .inline-actions button {
    flex: 1;
  }
  .field-table-tools {
    flex-wrap: wrap;
  }
  .field-visual-label span {
    max-width: 200px;
    line-height: 1.5;
  }
  .field-visual {
    height: 310px;
  }
  .survey-strip > div {
    flex-wrap: wrap;
  }
  .survey-strip > div > div {
    min-width: 190px;
  }
  .control-list .checkbox-label {
    flex-wrap: wrap;
  }
  .control-list span {
    margin-left: 25px;
  }
  .registration-result strong {
    font-size: 19px;
  }
  .field-import-dialog .form-grid {
    grid-template-columns: 1fr 1fr;
  }
}
.cad-profile-picker {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 11px 20px;
  background: #f7fafc;
  border-top: 1px solid #dce6ee;
}
.cad-profile-picker > button {
  max-width: 420px;
}
.cad-profile-picker small {
  font-size: 11px;
  color: #8699a7;
}
.archive-download {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 15px;
  padding: 8px 12px;
  border: 1px solid #7daf98;
  border-radius: 6px;
  color: #285f4c;
  font-weight: 600;
  background: white;
}
.form-success:has(.archive-download) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.overlay-start {
  margin: 4px 0 14px;
  width: 100%;
  font-size: 12px;
}
.saved-overlays {
  margin: 6px 0 18px;
  border-top: 1px solid #dde6ef;
  padding-top: 14px;
}
.saved-overlays > strong {
  font-size: 11px;
  color: #7e929e;
  text-transform: uppercase;
  letter-spacing: 0.6px;
}
.saved-overlays button {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 12px;
  color: #466d79;
  text-align: left;
  padding: 11px 3px;
  border-bottom: 1px solid #e1e7ef;
  width: 100%;
}
.saved-overlays small {
  font-size: 10px;
  color: #99a7b2;
}
.overlay-workspace {
  background: #f5f7fa;
  min-height: calc(100vh - 155px);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.overlay-heading {
  display: flex;
  flex-direction: column;
  gap: 15px;
  align-items: flex-start;
}
.overlay-heading .eyebrow {
  font-size: 11px;
  letter-spacing: 1.5px;
  color: #6b8d98;
}
.overlay-heading h1 {
  font-size: 27px;
  letter-spacing: -0.8px;
  margin: 7px 0;
  color: #2f4558;
  font-weight: 600;
}
.overlay-heading p {
  font-size: 14px;
  color: #7b8f9f;
  line-height: 1.6;
}
.overlay-setup {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.overlay-setup > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 70px;
  gap: 10px;
}
.overlay-setup label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #6c8294;
}
.overlay-setup input {
  height: 34px;
  background: white;
}
.overlay-setup [data-slot='select-trigger'] {
  background: white;
}
.overlay-toolbar {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.overlay-toolbar > button[data-slot='select-trigger'] {
  width: 230px;
}
.overlay-toolbar [data-slot='tabs-list'] {
  background: white;
  border: 1px solid #e0e7ee;
  padding: 4px;
  height: 36px;
}
.overlay-opacity {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 200px;
  max-width: 400px;
  font-size: 12px;
  color: #77909f;
}
.overlay-opacity [data-slot='slider'] {
  width: 130px;
}
.overlay-control-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.overlay-control-grid > div {
  min-width: 0;
}
.control-caption {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  padding: 13px;
  background: #e6eef5;
  border-radius: 8px 8px 0 0;
  font-size: 11px;
  color: #668095;
}
.control-caption strong {
  font-size: 12px;
  color: #345e75;
}
.overlay-control-grid > div:nth-child(2) .control-caption {
  background: #f8eddf;
  color: #a68458;
}
.overlay-control-grid > div:nth-child(2) .control-caption strong {
  color: #9b6e30;
}
.overlay-control-page {
  height: 500px;
  overflow: auto;
  background: #dae3ec;
  padding: 11px;
  min-width: 0;
  border-radius: 0 0 8px 8px;
}
.overlay-control-page canvas {
  display: block;
  background: white;
  cursor: crosshair;
  max-width: none !important;
  box-shadow: 0 3px 12px #14253620;
}
.overlay-composite {
  height: 640px;
  overflow: auto;
  padding: 18px;
  background: #dce5ee;
  border-radius: 9px;
  min-width: 0;
}
.overlay-composite canvas {
  max-width: none !important;
  background: white;
  display: block;
  box-shadow: 0 3px 18px #23364322;
}
.overlay-review {
  display: flex;
  flex-direction: column;
  gap: 17px;
  padding: 23px;
  background: white;
  border: 1px solid #dde6ed;
  border-radius: 11px;
}
.overlay-result {
  display: flex;
  gap: 25px;
  flex-wrap: wrap;
  background: #f4f8fa;
  border-radius: 8px;
  padding: 18px;
}
.overlay-result > div {
  display: flex;
  flex-direction: column;
  gap: 7px;
  flex: 1;
  min-width: 160px;
}
.overlay-result span {
  font-size: 12px;
  color: #7c95a3;
}
.overlay-result strong {
  font-size: 22px;
  color: #476c7b;
}
.overlay-result p {
  width: 100%;
  font-size: 12px;
  color: #8098a6;
  line-height: 1.6;
}
@media (max-width: 800px) {
  .overlay-workspace {
    padding: 16px;
  }
  .overlay-control-grid {
    gap: 9px;
  }
  .control-caption {
    flex-direction: column;
    gap: 4px;
    padding: 10px;
  }
  .overlay-control-page {
    height: 430px;
  }
  .overlay-setup {
    gap: 12px;
  }
  .overlay-setup > div {
    grid-template-columns: minmax(0, 1fr) 55px;
  }
  .overlay-setup [data-slot='select-trigger'] {
    font-size: 11px;
  }
  .overlay-heading h1 {
    font-size: 24px;
  }
  .overlay-review {
    padding: 18px;
  }
}
/* Coordination decisions */
.mode-review .main-workspace {
  grid-column: 2/-1;
}
.mode-review .inspector {
  display: none;
}
.review-workspace {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: #f5f7fa;
}
.review-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
  padding: 28px 30px;
  background: white;
  border-bottom: 1px solid #dce4eb;
}
.review-heading h1 {
  font-size: 28px;
  letter-spacing: -0.7px;
  font-weight: 550;
  margin: 7px 0;
}
.review-heading p {
  color: #6e8396;
  font-size: 14px;
  margin: 0;
}
.review-layout {
  display: grid;
  grid-template-columns: 290px minmax(0, 1fr);
  min-height: 550px;
}
.review-list {
  padding: 22px 18px;
  border-right: 1px solid #dce4eb;
  background: #f6f8fa;
}
.review-filters {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}
.result-count {
  font-size: 12px;
  color: #70849a;
  display: block;
  margin: 15px 0;
}
.review-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  padding: 17px 15px;
  border: 1px solid #dce4eb;
  border-radius: 9px;
  background: white;
  width: 100%;
  text-align: left;
  margin-bottom: 10px;
}
.review-card.selected {
  border-color: #28878a;
  box-shadow: 0 0 0 1px #28878a;
  background: #f4fbfa;
}
.review-card > small {
  font-size: 11px;
  color: #7790a2;
  letter-spacing: 0.7px;
}
.review-card > strong {
  font-size: 15px;
  font-weight: 550;
  line-height: 1.45;
}
.review-card > span:last-child {
  font-size: 12px;
  color: #6f8495;
}
.review-card .evidence-tag {
  font-size: 11px;
}
.issue-detail {
  padding: 30px 34px;
  background: white;
  min-width: 0;
}
.issue-detail-top {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  justify-content: space-between;
}
.issue-detail h2 {
  font-size: 27px;
  line-height: 1.3;
  letter-spacing: -0.6px;
  margin: 8px 0 14px;
  font-weight: 550;
}
.issue-description {
  font-size: 15px;
  line-height: 1.8;
  color: #647b8e;
}
.issue-detail h3 {
  font-size: 16px;
  font-weight: 600;
  margin: 24px 0 9px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.issue-evidence {
  margin: 25px 0;
}
.issue-evidence .ref-list strong {
  font-weight: 550;
}
.evidence-picker {
  border: 1px solid #dce4eb;
  border-radius: 7px;
  background: #f8fafb;
  padding: 13px 15px;
  margin: 15px 0;
}
.evidence-picker summary {
  font-size: 13px;
  font-weight: 550;
  color: #2e777c;
  cursor: pointer;
}
.evidence-picker > .form-grid {
  margin: 18px 0 14px;
}
.decision-form {
  border-top: 1px solid #dde5eb;
}
.muted {
  font-size: 13px;
  line-height: 1.7;
  color: #718699;
}
.decision-form > .form-grid {
  margin: 18px 0;
}
.form-grid textarea {
  font-size: 14px;
  line-height: 1.6;
  font-weight: 400;
  background: white;
}
.decision-history {
  border-top: 1px solid #dce4eb;
  margin-top: 28px;
}
.decision-history > div {
  border-left: 2px solid #a5c3c4;
  padding: 3px 0 14px 18px;
  margin: 18px 0;
}
.decision-history strong,
.decision-history small {
  display: block;
}
.decision-history strong {
  font-size: 13px;
}
.decision-history small {
  font-size: 12px;
  color: #8291a0;
  margin-top: 4px;
}
.decision-history p {
  font-size: 14px;
  line-height: 1.7;
}
.decision-history button {
  font-size: 12px;
  display: flex;
  gap: 6px;
  color: #24747c;
}
.related-components {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 14px 0;
}
.related-components strong {
  width: 100%;
  font-size: 13px;
}
.related-components label {
  display: flex;
  gap: 7px;
  align-items: center;
  font-size: 13px;
}
.export-link {
  display: block;
  padding: 12px 28px;
  background: #e7f3ef;
  font-size: 14px;
  color: #226f64;
  text-decoration: underline;
}
.form-success {
  padding: 12px 15px;
  border: 1px solid #b7d8c8;
  background: #edf7f1;
  color: #32745a;
  border-radius: 7px;
  font-size: 14px;
  line-height: 1.5;
}
@media (max-width: 1250px) {
  .review-heading {
    padding: 24px;
    align-items: flex-start;
    flex-direction: column;
  }
  .review-heading h1 {
    font-size: 25px;
  }
  .review-layout {
    grid-template-columns: 240px minmax(0, 1fr);
  }
  .issue-detail {
    padding: 24px;
  }
  .workspace-toolbar [data-slot='tabs-list'] {
    gap: 2px;
  }
  .workspace-toolbar [data-slot='tabs-trigger'] {
    padding: 8px;
    font-size: 13px;
  }
}
@media (max-width: 950px) {
  .mode-review .main-workspace {
    grid-column: 1/-1;
  }
  .mode-review .layers-panel {
    display: none;
  }
  .review-layout {
    grid-template-columns: 230px minmax(0, 1fr);
  }
}
@media (max-width: 600px) {
  .review-heading {
    padding: 22px 18px;
  }
  .review-heading h1 {
    font-size: 24px;
  }
  .review-layout {
    display: block;
  }
  .review-list {
    border-right: 0;
    border-bottom: 1px solid #dce4eb;
    padding: 16px;
  }
  .review-filters {
    grid-template-columns: 1fr 1fr;
  }
  .review-filters > input {
    grid-column: 1/-1;
  }
  .review-card {
    padding: 12px;
  }
  .issue-detail {
    padding: 22px 18px;
  }
  .issue-detail h2 {
    font-size: 25px;
  }
  .review-heading .inline-actions {
    flex-wrap: wrap;
  }
  .workspace-toolbar {
    padding: 0 6px;
    overflow: auto;
  }
  .workspace-toolbar [data-slot='tabs-trigger'] {
    font-size: 12px;
    padding: 8px 6px;
    gap: 5px;
  }
  .workspace-toolbar [data-slot='tabs-trigger'] svg {
    width: 14px;
  }
  .form-grid {
    grid-template-columns: 1fr;
  }
  .form-grid .span-all {
    grid-column: auto;
  }
  .evidence-picker > .form-grid {
    grid-template-columns: 1fr;
  }
  .review-layout .ref-list button {
    align-items: flex-start;
  }
  .related-components {
    flex-direction: column;
  }
}
/* Calibrated PDF profile tracing */
.marked-pdf {
  position: relative;
  width: max-content;
  height: max-content;
}
.pdf-markers {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.pdf-trace {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: #e5ebf0;
}
.trace-heading {
  display: flex;
  align-items: center;
  gap: 25px;
  padding: 22px;
  background: white;
  border-bottom: 1px solid #dce4eb;
}
.trace-heading h1 {
  font-size: 25px;
  font-weight: 550;
  letter-spacing: -0.6px;
  margin: 5px 0;
}
.trace-heading p {
  font-size: 12px;
  color: #72879a;
  margin: 0;
}
.trace-toolbar {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  padding: 12px 20px;
  background: white;
}
.trace-instruction {
  padding: 12px 22px;
  background: #e7f2f1;
  color: #2c7174;
  font-size: 13px;
  line-height: 1.6;
}
.trace-calibration {
  padding: 14px 22px;
  background: #f7fafb;
  display: flex;
  align-items: center;
  gap: 20px;
}
.trace-calibration label {
  font-size: 12px;
  font-weight: 550;
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
}
.trace-footer {
  display: flex;
  gap: 20px;
  align-items: center;
  padding: 14px 22px;
  background: white;
  border-top: 1px solid #dce4eb;
}
.trace-footer p {
  flex: 1;
  font-size: 12px;
  line-height: 1.6;
  color: #688093;
  max-width: 780px;
  margin: 0;
}
.pdf-trace .pdf-container {
  min-height: 350px;
}
.confirmation-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.6;
  margin: 12px 0;
}
.confirmation-row [data-slot='checkbox'] {
  flex: none;
  margin-top: 4px;
}
@media (max-width: 950px) {
  .trace-heading {
    align-items: flex-start;
    gap: 12px;
    flex-direction: column;
  }
  .trace-calibration {
    flex-wrap: wrap;
  }
  .trace-calibration label {
    min-width: 200px;
  }
  .trace-toolbar {
    padding: 12px;
  }
  .trace-footer {
    flex-wrap: wrap;
  }
  .trace-footer p {
    flex-basis: 100%;
  }
  .drawing-document-header .inline-actions {
    flex-wrap: wrap;
  }
  .drawing-document-header {
    flex-wrap: wrap;
  }
}
@media (max-width: 600px) {
  .trace-heading {
    padding: 15px;
  }
  .trace-heading h1 {
    font-size: 22px;
  }
  .trace-calibration {
    padding: 12px;
    gap: 12px;
  }
  .trace-calibration label {
    min-width: 100%;
  }
  .trace-instruction {
    padding: 12px;
  }
  .trace-toolbar button {
    font-size: 12px;
  }
  .drawing-document-header .inline-actions {
    display: flex;
  }
  .document-download {
    font-size: 12px;
    padding: 4px;
  }
}
.overlay-workspace {
  flex: 1;
  min-height: 0;
  overflow: auto;
}
.overlay-workspace > * {
  flex-shrink: 0;
}
.overlay-composite {
  height: 560px;
  min-height: 360px;
}
.component-actions {
  display: flex;
  gap: 6px;
  align-items: center;
  margin: 14px 0;
}
.placement-summary {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #f5f8fa;
  padding: 13px;
  border: 1px solid #dfe7ed;
  border-radius: 7px;
  font-size: 12px;
  color: #6c8294;
  line-height: 1.55;
}
.placement-summary strong {
  font-size: 13px;
  color: #886d37;
}
.placement-summary p {
  margin: 0;
}
.placement-section h3 {
  font-size: 14px;
  font-weight: 600;
  margin: 15px 0 9px;
}
.placement-section input {
  font-size: 14px;
}
.placement-result {
  display: grid;
  grid-template-columns: 150px 1fr;
  gap: 8px;
  padding: 18px;
  background: #eaf4f2;
  border-radius: 8px;
  font-size: 14px;
  color: #416e6c;
}
.placement-result strong {
  font-weight: 550;
}
.placement-dialog [data-slot='tabs-list'] {
  margin-bottom: 7px;
}
/* Dimensional constraints and bounded corrections */
.mode-checks .main-workspace {
  grid-column: 2/-1;
}
.mode-checks .inspector {
  display: none;
}
.tolerance-workspace {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: #f5f8fa;
}
.study-library {
  padding: 15px 24px;
  background: #f1f5f8;
  border-bottom: 1px solid #dce5eb;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.study-editor {
  display: grid;
  grid-template-columns: minmax(390px, 1.1fr) minmax(340px, 0.9fr);
}
.study-form {
  background: white;
  padding: 26px 28px;
  min-width: 0;
}
.study-results {
  padding: 28px;
  min-width: 0;
  background: #f2f6f8;
  border-left: 1px solid #dce4eb;
}
.study-results h2 {
  font-size: 27px;
  line-height: 1.3;
  font-weight: 550;
  letter-spacing: -0.6px;
  margin: 10px 0;
}
.study-results > p {
  font-size: 14px;
  line-height: 1.8;
  color: #6c8395;
}
.constraint-form {
  border: 1px solid #dce5eb;
  border-radius: 10px;
  padding: 16px;
  margin: 18px 0;
  background: #fafcfd;
}
.constraint-title {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 15px;
}
.constraint-title > span {
  color: #8da1b2;
  font-size: 12px;
}
.constraint-title input {
  background: transparent;
  border: 0;
  box-shadow: none;
  font-size: 15px;
  font-weight: 550;
  padding-left: 0;
}
.constraint-title button {
  flex: none;
}
.constraint-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.constraint-fields label {
  font-size: 12px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #688195;
}
.constraint-fields input {
  background: white;
  font-size: 14px;
}
.effect-label {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: 12px;
  color: #688195;
  margin-top: 15px;
}
.constraint-source {
  margin-top: 16px;
}
.constraint-source summary {
  font-size: 12px;
  color: #3c7b82;
  cursor: pointer;
}
.constraint-source [data-slot='select-trigger'] {
  margin-top: 12px;
}
.constraint-source .form-grid {
  margin-top: 12px;
}
.study-basis {
  display: flex;
  flex-direction: column;
  gap: 9px;
  font-size: 12px;
  color: #56768a;
  margin: 23px 0 18px;
}
.study-basis textarea {
  font-size: 14px;
  line-height: 1.7;
}
.nominal-conflict {
  background: #fff0e8;
  border: 1px solid #efd1bb;
  padding: 13px;
  border-radius: 8px;
  color: #9c6239;
  font-size: 13px;
  line-height: 1.6;
  margin: 15px 0;
}
.adjustment-proposal {
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #e3f1eb;
  padding: 19px;
  border: 1px solid #b8d5c6;
  border-radius: 10px;
  margin: 20px 0;
  color: #367666;
}
.adjustment-proposal > span {
  font-size: 12px;
}
.adjustment-proposal > strong {
  font-size: 21px;
  font-weight: 550;
  margin-bottom: 10px;
}
.adjustment-proposal button {
  background: #f4faf6;
}
.adjustment-slider {
  padding: 15px 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-size: 13px;
}
.adjustment-slider > button {
  align-self: flex-start;
}
.constraint-result {
  border: 1px solid #d8e2e8;
  border-radius: 9px;
  background: white;
  padding: 16px;
  margin: 15px 0;
}
.constraint-result > div {
  display: flex;
  gap: 10px;
  align-items: flex-start;
  justify-content: space-between;
}
.constraint-result strong {
  font-size: 14px;
  font-weight: 550;
}
.constraint-result span {
  font-size: 11px;
  color: #8a7660;
  white-space: nowrap;
}
.constraint-result.within span {
  color: #367b68;
}
.constraint-result > b {
  font-size: 25px;
  font-weight: 500;
  display: block;
  margin-top: 10px;
}
.constraint-result p {
  font-size: 12px;
  line-height: 1.65;
  color: #748c9e;
  margin: 6px 0;
}
.constraint-bar {
  width: 100%;
  height: 65px;
  display: block;
}
.study-limits {
  font-size: 12px !important;
  border-top: 1px solid #dce5eb;
  padding-top: 18px;
}
.source-qualification {
  padding: 14px;
  border: 1px solid #e8cc96;
  border-radius: 10px;
  background: #fff7e8;
  color: #795620;
  font-size: 12px;
}
.source-qualification p {
  margin-top: 7px;
  line-height: 1.5;
}
output.form-success {
  display: block;
}
@media (max-width: 1250px) {
  .study-editor {
    grid-template-columns: minmax(330px, 1fr) minmax(300px, 1fr);
  }
  .study-form,
  .study-results {
    padding: 23px 20px;
  }
  .study-form > .inline-actions {
    flex-wrap: wrap;
  }
  .workspace-toolbar [data-slot='tabs-trigger'] {
    padding: 8px 7px;
  }
  .workspace-toolbar [data-slot='tabs-list'] {
    gap: 0;
  }
}
@media (max-width: 1050px) {
  .mode-checks .layers-panel {
    display: none;
  }
  .mode-checks .main-workspace {
    grid-column: 1/-1;
  }
  .mode-checks .workspace-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 750px) {
  .study-editor {
    display: flex;
    flex-direction: column;
  }
  .study-results {
    border-left: 0;
    border-top: 1px solid #dce4eb;
  }
  .study-form {
    padding: 20px 16px;
  }
  .study-library {
    padding: 12px 15px;
  }
  .study-results {
    padding: 24px 18px;
  }
  .constraint-result span {
    white-space: normal;
  }
  .workspace-toolbar [data-slot='tabs-trigger'] {
    font-size: 11px;
    padding: 8px 5px;
    gap: 4px;
  }
}
.vector-tools {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  padding: 10px 20px;
  background: #f6fafb;
  border-bottom: 1px solid #dce5eb;
  font-size: 12px;
  color: #617f90;
}
.vector-tools label {
  display: flex;
  gap: 7px;
  align-items: center;
}
.vector-tools details {
  max-width: 700px;
}
.vector-tools summary {
  cursor: pointer;
  color: #2b7b83;
}
.vector-tools details p {
  line-height: 1.55;
}
.vector-tools button {
  font-size: 12px;
}
.pdf-trace {
  overflow: auto;
}
.pdf-trace > * {
  flex-shrink: 0;
}
.pdf-trace .pdf-container {
  flex: 1;
  min-height: 150px;
}

.workspace-loading {
  display: grid;
  place-items: center;
  flex: 1;
  min-height: 250px;
  color: #5c7080;
}

.current-fit-summary {
  margin: 14px 0;
  padding: 14px 16px;
  border: 1px solid #cadde5;
  border-radius: 10px;
  background: #f0f7f8;
  font-size: 12px;
  line-height: 1.55;
}
.current-fit-summary p {
  margin-top: 6px;
}

.overlay-composite canvas {
  margin-inline: auto;
}
.overlay-source-status {
  padding: 8px 22px;
  background: #fff5e6;
  color: #795b2d;
  font-size: 12px;
  line-height: 1.5;
  border-bottom: 1px solid #ead7b3;
}

/* Cross-drawing and adjoining-part comparisons */
.manage-trades {
  width: 100%;
  margin: 0 0 18px;
  font-size: 14px;
}
.trade-manager-list {
  display: grid;
  gap: 8px;
  max-height: 440px;
  overflow: auto;
  padding: 2px;
}
.trade-manager-list > button {
  justify-content: flex-start;
  text-align: left;
  min-height: 52px;
  height: auto;
  font-size: 14px;
  padding: 10px 14px;
}
.trade-manager-list small {
  display: block;
  margin-top: 3px;
  font-size: 13px;
  color: #607588;
  font-weight: 400;
}
.trade-manager-list .trade-swatch {
  height: 25px;
  width: 6px;
  flex: none;
  border-radius: 4px;
}
.mode-compare .main-workspace {
  grid-column: 2 / -1;
}
.mode-compare .inspector {
  display: none;
}
.comparison-workspace {
  flex: 1;
  min-height: 0;
  overflow: auto;
  background: #f4f7fa;
}
.comparison-workspace .workspace-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 26px 28px;
  background: white;
  border-bottom: 1px solid #dce5eb;
}
.comparison-workspace h1 {
  font-size: 28px;
  font-weight: 600;
  margin-top: 6px;
  letter-spacing: -0.8px;
}
.comparison-workspace .workspace-heading p {
  font-size: 16px;
  color: #62758a;
  margin-top: 7px;
}
.comparison-library {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 15px 24px;
  border-bottom: 1px solid #dce5eb;
}
.comparison-library > [data-slot='select-trigger'] {
  flex: 1;
  min-width: 220px;
  max-width: 480px;
}
.comparison-editor {
  display: grid;
  grid-template-columns: minmax(340px, 1fr) minmax(320px, 1fr);
}
.comparison-form {
  padding: 25px;
  background: white;
}
.comparison-form label {
  font-size: 14px;
  line-height: 1.5;
}
.comparison-form input,
.comparison-form textarea,
.comparison-form [data-slot='select-trigger'] {
  font-size: 14px;
}
.comparison-help {
  font-size: 14px;
  line-height: 1.6;
  color: #627587;
  margin: 18px 0;
}
.comparison-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 18px 0;
}
.comparison-result {
  padding: 27px;
  border-left: 1px solid #dce5eb;
  min-width: 0;
}
.comparison-result h2 {
  font-size: 23px;
  line-height: 1.3;
  margin: 15px 0 10px;
  font-weight: 550;
  letter-spacing: -0.5px;
}
.comparison-result > p {
  font-size: 16px;
  line-height: 1.6;
  color: #50677d;
}
.comparison-state {
  display: inline-block;
  padding: 6px 9px;
  font-size: 14px;
  border-radius: 5px;
  background: #e5eaf0;
  color: #405973;
}
.comparison-state.within {
  background: #d8efea;
  color: #246359;
}
.comparison-state.outside {
  background: #f6ddd7;
  color: #993f30;
}
.comparison-state.uncertain {
  background: #f8ead0;
  color: #795921;
}
.comparison-measures {
  display: grid;
  gap: 10px;
  padding: 18px 0;
  font-size: 14px;
}
.comparison-measures > div {
  display: flex;
  gap: 15px;
  justify-content: space-between;
  padding-bottom: 10px;
  border-bottom: 1px solid #dce5eb;
}
.comparison-measures strong {
  font-size: 18px;
  font-variant-numeric: tabular-nums;
  font-weight: 550;
  white-space: nowrap;
}
.comparison-qualifications {
  margin-top: 22px;
  background: #fff7e9;
  border: 1px solid #e9dabd;
  border-radius: 8px;
  padding: 18px;
  color: #755724;
}
.comparison-qualifications h3,
.comparison-sources h3 {
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 10px;
}
.comparison-qualifications ul {
  padding-left: 17px;
  font-size: 14px;
  line-height: 1.65;
  list-style: disc;
}
.comparison-qualifications li + li {
  margin-top: 6px;
}
.comparison-extents {
  margin: 20px 0;
  font-size: 14px;
}
.comparison-extents td,
.comparison-extents th {
  font-size: 14px;
  padding: 9px 8px;
}
.comparison-extents p {
  font-size: 14px;
  line-height: 1.55;
  color: #627589;
  margin-top: 10px;
}
.comparison-sources {
  margin-top: 23px;
}
.comparison-sources button {
  display: flex;
  justify-content: space-between;
  width: 100%;
  height: auto;
  white-space: normal;
  text-align: left;
  padding: 12px 6px;
  font-size: 14px;
  line-height: 1.5;
}
.comparison-sources small {
  display: block;
  font-size: 13px;
  color: #667d8f;
}
.comparison-scan {
  border-bottom: 1px solid #dce5eb;
  padding: 20px 24px;
  background: #eaf2f5;
}
.comparison-scan-controls {
  display: flex;
  align-items: flex-end;
  gap: 15px;
  flex-wrap: wrap;
}
.comparison-scan-controls label {
  font-size: 14px;
  width: 175px;
}
.comparison-scan-controls input {
  margin-top: 7px;
}
.comparison-scan-controls p {
  flex: 1;
  min-width: 230px;
  font-size: 14px;
  color: #4f6e80;
  line-height: 1.55;
}
.scan-summary {
  display: block;
  font-size: 14px;
  font-weight: 550;
  margin: 18px 0 10px;
}
.scan-pairs {
  max-height: 260px;
  overflow: auto;
  display: grid;
  gap: 6px;
}
.scan-pairs > button {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto 18px;
  gap: 12px;
  align-items: center;
  padding: 12px 15px;
  background: white;
  border: 1px solid #ccdce5;
  border-radius: 7px;
  text-align: left;
  font-size: 14px;
  cursor: pointer;
}
.scan-pairs > button:hover {
  border-color: #237e84;
  background: #faffff;
}
.scan-pairs > button > span:first-child > span {
  display: block;
  color: #607b8b;
  margin-top: 3px;
}
.scan-pairs strong {
  font-weight: 550;
}
.comparison-stale {
  margin-top: 14px;
  color: #8c581a;
  font-size: 14px;
}
.comparison-empty {
  padding: 35px;
  font-size: 16px;
  line-height: 1.6;
  max-width: 750px;
}
.comparison-empty h2 {
  font-size: 24px;
  margin-bottom: 10px;
}
.comparison-empty button {
  margin-top: 20px;
}
@media (max-width: 1150px) {
  .comparison-editor {
    grid-template-columns: 1fr;
  }
  .comparison-result {
    border-left: 0;
    border-top: 1px solid #dce5eb;
  }
}
@media (max-width: 750px) {
  .mode-compare .layers-panel {
    display: none;
  }
  .mode-compare .main-workspace {
    grid-column: 1/-1;
  }
  .comparison-form,
  .comparison-result,
  .comparison-scan {
    padding: 20px 16px;
  }
  .comparison-library {
    padding: 14px 16px;
  }
  .comparison-workspace .workspace-heading {
    padding: 22px 16px;
  }
  .scan-pairs > button {
    grid-template-columns: 1fr 18px;
  }
  .scan-pairs > button > span:nth-child(2) {
    grid-row: 2;
  }
}

.overlay-coordinate-review {
  margin-bottom: 20px;
  font-size: 14px;
  border: 1px solid #d4e0e8;
  background: #f7fafb;
  border-radius: 8px;
  padding: 15px;
}
.overlay-coordinate-review summary {
  cursor: pointer;
  color: #306c7a;
  font-weight: 550;
}
.overlay-coordinate-review p {
  color: #60788a;
  line-height: 1.6;
  margin: 10px 0;
}
.overlay-coordinate-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
.overlay-point-row {
  display: grid;
  grid-template-columns: 1fr 110px 110px;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
}
.overlay-point-row label {
  display: flex;
  gap: 6px;
  align-items: center;
}
.overlay-point-row input {
  min-width: 0;
  font-size: 14px;
}
.overlay-basis-note {
  margin: 15px 0;
  padding: 14px 16px;
  background: #edf4f7;
  border-radius: 8px;
  color: #4b697d;
  font-size: 14px;
  line-height: 1.6;
}
.overlay-result .overlay-precision-hold {
  color: #855421;
  background: #fff0d8;
  padding: 12px;
  border-radius: 6px;
  font-size: 14px;
}
.overlay-result .overlay-precision-pass {
  color: #306e65;
  font-size: 14px;
}
@media (max-width: 1000px) {
  .overlay-coordinate-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 500px) {
  .overlay-point-row {
    grid-template-columns: 1fr 90px 90px;
    font-size: 12px;
  }
}
.overlay-heading {
  flex-direction: row;
  gap: 22px;
  align-items: flex-start;
}
.overlay-heading > button {
  flex: none;
  margin-top: 3px;
}
.overlay-heading h1 {
  font-size: 23px;
  margin: 0 0 5px;
}
.overlay-workspace {
  gap: 14px;
  padding: 18px 22px;
}
.overlay-setup label {
  font-size: 14px;
}
.overlay-live-status {
  display: flex;
  gap: 15px;
  justify-content: space-between;
  padding: 11px 14px;
  border-radius: 6px;
  font-size: 14px;
  line-height: 1.5;
  flex-wrap: wrap;
}
.overlay-live-status.hold {
  background: #fff0d8;
  color: #805320;
  border: 1px solid #ead4b0;
}
.overlay-live-status.checked {
  background: #dfeee9;
  color: #306c61;
  border: 1px solid #c5ddd5;
}
.overlay-review textarea {
  min-height: 95px;
  font-size: 14px;
  line-height: 1.6;
}
@media (max-width: 750px) {
  .overlay-heading {
    flex-direction: column;
    gap: 8px;
  }
  .overlay-workspace {
    padding: 14px;
  }
  .overlay-heading h1 {
    font-size: 21px;
  }
}

/* Source plans in the shared 3D frame */
.plan-workspace {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
  background: #f2f6f9;
  overflow: auto;
}
.plan-heading {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  padding: 23px 25px;
  background: white;
  border-bottom: 1px solid #d8e2ea;
}
.plan-heading h1 {
  font-size: 26px;
  line-height: 1.3;
  font-weight: 550;
  letter-spacing: -0.5px;
}
.plan-heading p {
  font-size: 16px;
  color: #61798b;
  line-height: 1.6;
  margin-top: 6px;
}
.plan-heading > svg {
  margin-left: auto;
  flex: none;
}
.plan-layout {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) 435px;
  min-height: 650px;
}
.plan-paper {
  min-width: 0;
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  align-self: start;
  max-height: calc(100dvh - 200px);
  min-height: 450px;
}
.plan-tools {
  display: flex;
  gap: 5px;
  align-items: center;
  flex-wrap: wrap;
  padding: 13px;
}
.plan-tools > [data-slot='select-trigger'] {
  flex: 1;
  min-width: 240px;
}
.plan-paper .pdf-container {
  min-height: 300px;
  max-height: 700px;
}
.plan-form {
  padding: 24px;
  background: white;
  border-left: 1px solid #d8e2ea;
}
.plan-form label,
.plan-form input,
.plan-form textarea,
.plan-form button {
  font-size: 14px;
}
.plan-form h2 {
  font-size: 16px;
  font-weight: 550;
  margin-top: 24px;
}
.plan-help {
  font-size: 14px;
  line-height: 1.65;
  color: #667e8f;
  margin: 9px 0 15px;
}
.plan-target-row {
  display: grid;
  grid-template-columns: 1fr 100px 100px;
  gap: 9px;
  align-items: center;
  margin: 12px 0;
}
.plan-target-row strong {
  font-size: 14px;
  font-weight: 550;
}
.plan-target-row small {
  display: block;
  font-size: 12px;
  color: #6e8290;
  font-weight: 400;
  line-height: 1.5;
}
.plan-target-row label {
  display: flex;
  gap: 5px;
  align-items: center;
}
.plan-target-row input {
  min-width: 0;
}
.wall-target-row {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.wall-target-row .plan-control-name {
  grid-column: 1 / -1;
}
.plan-exact-points {
  font-size: 14px;
  padding: 15px 0;
  border-top: 1px solid #d8e2ea;
  border-bottom: 1px solid #d8e2ea;
  margin: 20px 0;
}
.reuse-controls {
  padding: 15px;
  background: #edf6f6;
  border: 1px solid #c9dedf;
  border-radius: 8px;
  margin-bottom: 20px;
}
.reuse-controls label {
  display: grid;
  gap: 9px;
  font-weight: 550;
}
.reuse-controls p {
  font-size: 14px;
  line-height: 1.65;
  color: #526e7d;
  margin-top: 10px;
}
.plan-control-name {
  min-width: 0;
}
.plan-exact-points summary {
  color: #357a84;
  cursor: pointer;
  font-weight: 550;
}
.plan-exact-points p {
  font-size: 13px;
  line-height: 1.6;
  margin: 10px 0;
  color: #5e7586;
}
.plan-calculation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  padding: 16px;
  border: 1px solid #cfdee6;
  background: #edf6f6;
  border-radius: 8px;
  margin: 20px 0;
  font-size: 14px;
  line-height: 1.5;
}
.plan-calculation strong {
  font-weight: 550;
}
.plan-calculation p {
  grid-column: 1/-1;
}
.plan-source-caption {
  padding: 12px 16px;
  font-size: 13px;
  color: #5e778c;
  line-height: 1.6;
}
.plan-form .confirmation-row {
  line-height: 1.65;
  margin: 20px 0;
  font-size: 14px;
}
.plan-layer-label {
  display: block;
  font-size: 12px;
  color: #6a8493;
  margin-top: 4px;
}
@media (max-width: 1100px) {
  .plan-layout {
    grid-template-columns: 1fr;
  }
  .plan-paper {
    position: static;
    max-height: none;
    min-height: 450px;
  }
  .plan-paper .pdf-container {
    max-height: 600px;
  }
  .plan-form {
    border-left: 0;
    border-top: 1px solid #d8e2ea;
  }
}
@media (max-width: 600px) {
  .plan-heading {
    flex-wrap: wrap;
    padding: 20px 16px;
  }
  .plan-heading > svg {
    display: none;
  }
  .plan-form {
    padding: 20px 16px;
  }
  .plan-target-row {
    grid-template-columns: 1fr 85px 85px;
  }
  .wall-target-row {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

/* A drawing map reserves its viewing area so controls never cover the plans. */
.scene-wrap.plan-map {
  min-height: 560px;
}
.plan-map .scene-label {
  top: 18px;
  right: 22px;
}
.plan-map .scene-label h1 {
  font-size: 23px;
  margin-top: 6px;
}
.plan-map .scene-controls {
  top: 104px;
}
.plan-map .scene-host {
  inset: 146px 0 155px;
}
.plan-map .scene-adjustments {
  bottom: 43px;
}
.toolbar-context {
  white-space: nowrap;
}
@media (max-width: 1500px) {
  .toolbar-context {
    display: none;
  }
}
.trade-palette {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.trade-palette button[aria-pressed='true'] {
  outline: 2px solid #247f82;
  outline-offset: 1px;
}
.palette-dot {
  height: 13px;
  width: 13px;
  border-radius: 50%;
  flex: none;
}

/* Keep drawings and geometry clear of controls at every text/viewport size. */
.scene-wrap,
.scene-wrap.plan-map {
  display: grid;
  grid-template-areas: 'title' 'camera' 'model' 'adjustments' 'caption';
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto auto minmax(240px, 1fr) auto auto;
  min-height: min-content;
  flex: 1 0 auto;
}
.scene-wrap .scene-label {
  grid-area: title;
  position: static;
  padding: 18px 22px 6px;
  min-width: 0;
}
.scene-wrap .scene-label h1 {
  font-size: 23px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.scene-wrap .scene-controls {
  grid-area: camera;
  position: static;
  justify-content: flex-end;
  flex-wrap: wrap;
  padding: 5px 18px 7px;
}
.scene-wrap .scene-host {
  grid-area: model;
  position: relative;
  inset: auto;
  min-width: 0;
  min-height: 0;
}
.scene-wrap .scene-adjustments {
  grid-area: adjustments;
  position: static;
  transform: none;
  margin: 10px auto 0;
  width: calc(100% - 36px);
  max-width: 1100px;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px 22px;
}
.scene-wrap .scene-adjustments > div {
  min-width: 0;
}
.scene-wrap .scene-adjustments > div > svg {
  display: none;
}
.scene-wrap .scene-footer {
  grid-area: caption;
  position: static;
  flex-wrap: wrap;
}
.scene-footer > .view-offset-note {
  display: block;
  color: #d5e4ee;
}
.mode-coordinate .main-workspace {
  overflow-y: auto;
}
.workspace-toolbar {
  overflow-x: auto;
}
.workspace-toolbar > [data-slot='tabs'] {
  flex: none;
}
.expanded-view .workspace-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}
.expanded-view .layers-panel,
.expanded-view .inspector,
.expanded-view .evidence-tray {
  display: none;
}
.expanded-view .main-workspace {
  grid-column: 1/-1;
  height: auto;
}
.expanded-view .scene-wrap {
  grid-template-rows: auto auto minmax(360px, 1fr) auto auto;
}
.scene-empty {
  grid-area: model;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 18px;
  padding: 30px;
  text-align: center;
  color: #dae8f2;
}
.scene-empty h2 {
  font-size: 24px;
}
.scene-empty p {
  max-width: 420px;
  font-size: 16px;
  line-height: 1.65;
  color: #a8c0d1;
}
@media (min-width: 951px) and (max-width: 1150px) {
  .mode-coordinate.cp-app {
    height: auto;
    min-height: 100dvh;
  }
  .mode-coordinate .workspace-layout {
    grid-template-columns: 220px minmax(0, 1fr);
  }
  .mode-coordinate .main-workspace {
    min-height: 700px;
  }
  .mode-coordinate .inspector {
    grid-column: 1/-1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
    border-left: 0;
    border-top: 1px solid #dbe2e9;
    overflow: visible;
  }
  .mode-coordinate .inspector > .panel-title {
    grid-column: 1/-1;
  }
}
@media (max-width: 600px) {
  .app-header {
    height: auto;
    min-height: 76px;
    padding-top: 8px;
    padding-bottom: 8px;
  }
  .project-heading strong {
    font-size: 14px;
    line-height: 1.35;
  }
  .scene-wrap .scene-label {
    padding: 18px 18px 6px;
  }
  .scene-wrap .scene-controls {
    padding: 7px 14px;
    gap: 6px;
  }
  .scene-wrap .scene-controls button {
    min-height: 38px;
  }
  .scene-wrap,
  .scene-wrap.plan-map {
    grid-template-rows: auto auto minmax(280px, 1fr) auto auto;
  }
  .scene-adjustments label {
    font-size: 14px;
    width: 112px;
  }
  .scene-adjustments > div > svg {
    display: none;
  }
  .scene-adjustments > div {
    min-height: 30px;
  }
  .workspace-toolbar [data-slot='tabs-trigger'] {
    min-height: 42px;
    font-size: 14px;
  }
  .layers-panel .parts-title {
    display: flex;
  }
  .layers-panel .part-list {
    display: grid;
    grid-template-columns: 1fr;
    max-height: 250px;
    overflow: auto;
  }
  .cp-app input,
  .cp-app textarea {
    font-size: 16px;
  }
}
@media (min-width: 601px) and (max-width: 1150px) {
  .mode-coordinate .main-workspace,
  .mode-coordinate .layers-panel {
    height: calc(100dvh - 76px);
    min-height: 0;
  }
}

.related-workspace {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  background: #f6f8fb;
}
.cp-opening {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 30px;
  background: #f5f8fa;
  text-align: center;
}
.cp-opening > div {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 25px;
  font-weight: 600;
}
.cp-opening h1 {
  font-size: 24px;
  margin: 36px 0 10px;
  font-weight: 500;
}
.cp-opening p {
  max-width: 580px;
  color: #6c8296;
  font-size: 16px;
  line-height: 1.7;
  margin: 0 0 22px;
}
.related-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  padding: 20px 28px;
  background: white;
  border-bottom: 1px solid #dbe2e9;
}
.related-heading h1 {
  font-size: 27px;
  font-weight: 550;
  margin: 12px 0 8px;
}
.related-heading p {
  font-size: 15px;
  color: #718499;
  margin: 0;
  line-height: 1.6;
}
.related-index-status {
  display: grid;
  gap: 7px;
  flex: none;
  font-size: 14px;
}
.related-index-status span {
  color: #72869a;
  font-size: 12px;
}
.related-explanation {
  display: flex;
  gap: 12px;
  padding: 14px 28px;
  align-items: flex-start;
  background: #edf4f5;
  color: #4c6e78;
}
.related-explanation svg {
  flex: none;
  margin-top: 3px;
}
.related-explanation p {
  font-size: 14px;
  line-height: 1.6;
  margin: 0;
}
.related-layout {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  flex: 1;
  min-height: 0;
}
.related-list {
  border-right: 1px solid #dbe2e9;
  padding: 20px 16px;
  overflow: auto;
}
.related-check {
  display: flex;
  align-items: center;
  gap: 9px;
  font-size: 14px;
  margin: 16px 0;
  line-height: 1.5;
}
.related-list > small {
  font-size: 12px;
  color: #72859a;
  display: block;
  margin: 0 0 15px;
}
.related-list > button {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
  width: 100%;
  text-align: left;
  border: 1px solid transparent;
  background: transparent;
  border-radius: 7px;
  padding: 13px 11px;
  margin: 5px 0;
}
.related-list > button.active {
  background: white;
  border-color: #bfced8;
  box-shadow: 0 2px 5px #20394c08;
}
.related-list > button strong {
  font-size: 17px;
  font-weight: 550;
}
.related-list > button > span:not(.related-trade-dots) {
  grid-row: 2;
  font-size: 12px;
  color: #72859a;
}
.related-trade-dots {
  display: flex;
  gap: 4px;
  align-items: center;
}
.related-trade-dots i {
  width: 7px;
  height: 7px;
  border-radius: 50%;
}
.related-detail {
  overflow: auto;
  padding: 25px 30px 50px;
  min-width: 0;
}
.related-detail-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 18px;
  color: #45666f;
}
.related-detail-heading span {
  font-size: 12px;
  letter-spacing: 0.12em;
}
.related-detail-heading h2 {
  font-size: 34px;
  font-weight: 550;
  margin: 5px 0;
}
.related-detail-heading p {
  font-size: 14px;
  color: #718499;
  margin: 0;
}
.related-selection {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 15px;
  border: 1px solid #d7e1e8;
  background: white;
  border-radius: 7px;
  margin-bottom: 25px;
}
.related-selection > span {
  font-size: 14px;
  margin-right: auto;
}
.related-selection > small {
  width: 100%;
  font-size: 12px;
  color: #72869a;
  line-height: 1.5;
}
.related-source {
  background: white;
  border: 1px solid #dbe2e9;
  border-top: 3px solid;
  border-radius: 7px;
  margin-bottom: 20px;
  overflow: hidden;
}
.related-source > header {
  padding: 18px 20px 0;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.related-source > header small {
  font-size: 12px;
  color: #74879a;
}
.related-source h3 {
  font-size: 17px;
  font-weight: 550;
  line-height: 1.5;
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}
.related-revision {
  font-size: 12px;
  color: #72859a;
  padding: 0 20px;
  margin: 6px 0 15px;
}
.related-mention {
  display: flex;
  gap: 12px;
  padding: 14px 20px;
  border-top: 1px solid #e4eaf0;
  align-items: flex-start;
}
.related-mention > [data-slot='checkbox'] {
  margin-top: 9px;
  flex: none;
}
.related-mention > div {
  min-width: 0;
}
.related-mention p {
  font-size: 14px;
  line-height: 1.7;
  overflow-wrap: anywhere;
  margin: 7px 0;
  color: #50697c;
}
.related-mention small {
  color: #7b8b9c;
  font-size: 12px;
}
.related-progress {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 15px;
  background: #e7f3f1;
  padding: 12px 28px;
}
.related-progress output {
  display: flex;
  gap: 10px;
  align-items: center;
  font-size: 14px;
}
.related-review-dialog {
  max-width: 650px !important;
}
.related-review-dialog label {
  display: grid;
  gap: 8px;
  font-size: 14px;
}
.related-workspace > .form-error {
  margin: 10px 20px;
}
.related-index-notice {
  font-size: 13px;
  line-height: 1.6;
  color: #446e72;
  margin: 0;
  padding: 10px 28px;
  background: #f0f8f5;
}
.cad-matches button small {
  display: block;
  color: #7a8b9c;
  font-size: 12px;
  padding-top: 3px;
}
@media (max-width: 1000px) {
  .related-heading {
    align-items: flex-start;
    flex-direction: column;
    padding: 18px;
  }
  .related-index-status {
    grid-template-columns: 1fr auto;
    width: 100%;
    align-items: center;
  }
  .related-index-status span {
    grid-row: 2;
  }
  .related-index-status button {
    grid-column: 2;
    grid-row: 1/3;
  }
  .related-layout {
    grid-template-columns: 175px minmax(0, 1fr);
  }
  .related-detail {
    padding: 20px 16px;
  }
}
@media (max-width: 650px) {
  .related-workspace {
    overflow: visible;
  }
  .related-layout {
    display: block;
  }
  .related-list {
    max-height: 260px;
    border-right: 0;
    border-bottom: 1px solid #dbe2e9;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 5px;
  }
  .related-list > input,
  .related-list > label,
  .related-list > small {
    grid-column: 1/-1;
  }
  .related-list > button {
    margin: 0;
  }
  .related-index-status {
    display: grid;
    grid-template-columns: 1fr;
  }
  .related-index-status button {
    grid-column: 1;
    grid-row: auto;
  }
  .related-explanation,
  .related-progress {
    padding: 14px 18px;
  }
  .related-source > header {
    flex-direction: column;
  }
  .related-source > header,
  .related-mention {
    padding-left: 15px;
    padding-right: 15px;
  }
  .related-detail {
    overflow: visible;
  }
}

.profile-voids {
  width: 100%;
  text-align: left;
  display: grid;
  gap: 9px;
  margin-top: 15px;
  max-height: 230px;
  overflow: auto;
  padding: 12px;
  border: 1px solid var(--border);
  border-radius: 9px;
  background: var(--card);
  color: var(--foreground);
}
.profile-voids > strong {
  font-size: 12px;
  line-height: 1.4;
}
.profile-voids > p {
  font-size: 11px;
  line-height: 1.5;
  color: var(--muted-foreground);
}
.profile-voids > label {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
  font-size: 11px;
  overflow-wrap: anywhere;
}
.profile-voids > label > span:not([data-slot]) {
  flex: 1;
}

.sheet-applicability {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 24px;
  background: #f5f0e4;
  border-bottom: 1px solid #e3d5b6;
  color: #665124;
  font-size: 12px;
}
.sheet-applicability > div {
  flex: 1;
  min-width: min(100%, 240px);
}
.sheet-applicability strong,
.sheet-applicability span {
  display: block;
}
.sheet-applicability strong {
  font-size: 13px;
}
.sheet-applicability p {
  margin: 4px 0 0;
  max-height: 5em;
  overflow: auto;
}
.sheet-applicability button {
  white-space: normal;
  min-width: 0;
  max-width: 100%;
  height: auto;
  min-height: 32px;
  padding-top: 6px;
  padding-bottom: 6px;
  overflow-wrap: anywhere;
}
.sheet-applicability[data-state='current'] {
  background: #eaf2ef;
  border-color: #c5d9d1;
  color: #3b6255;
}
.sheet-set-status {
  display: block;
  margin-top: 5px;
  color: #72808d;
  font-size: 11px;
}
.drawing-mobile-toolbar {
  display: none;
}
@media (max-width: 600px) {
  .drawing-browser {
    flex-direction: column;
  }
  .drawing-mobile-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 12px;
    background: #f5f7fa;
    border-bottom: 1px solid #dbe2e9;
    flex: none;
  }
  .drawing-mobile-toolbar > span {
    color: #72808d;
    font-size: 12px;
  }
  .drawing-library {
    width: 100%;
    max-height: 42dvh;
    border-right: 0;
    border-bottom: 1px solid #dbe2e9;
    padding: 14px;
  }
  .drawing-library[data-mobile-open='false'] {
    display: none;
  }
  .library-heading {
    flex-direction: row;
    align-items: center;
  }
  .sheet-applicability {
    padding: 12px;
  }
}
.archive-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}
.cp-dialog.field-drift-dialog {
  width: min(1200px, calc(100vw - 32px));
  max-width: 1200px !important;
}
.drift-setup {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1fr) minmax(
      0,
      1fr
    );
  gap: 12px;
}
.drift-setup > label {
  min-width: 0;
  display: grid;
  gap: 6px;
  font-size: 12px;
  color: #61758a;
}
.drift-setup > .span-all {
  grid-column: 1 / -1;
}
.drift-run-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  background: #f5f7fa;
  border: 1px solid #dbe2e9;
  border-radius: 9px;
}
.drift-run-bar > div {
  min-width: 0;
}
.drift-run-bar strong {
  display: block;
  font-size: 14px;
  overflow-wrap: anywhere;
}
.drift-run-bar span {
  display: block;
  font-size: 12px;
  color: #6b8093;
  margin-top: 4px;
}
.drift-setup[hidden],
.drift-point-picker[hidden] {
  display: none;
}
.drift-layout[data-settings='false'] {
  grid-template-columns: minmax(0, 1fr);
}
.drift-layout {
  display: grid;
  grid-template-columns: 265px minmax(0, 1fr);
  gap: 20px;
}
.drift-point-picker {
  display: grid;
  align-content: start;
  gap: 10px;
  padding: 15px;
  border: 1px solid #dbe2e9;
  background: #f5f7fa;
  border-radius: 10px;
  min-width: 0;
}
.drift-point-picker h3 {
  margin: 0;
  font-size: 14px;
}
.drift-point-picker p,
.drift-point-picker > small {
  margin: 0;
  font-size: 12px;
  line-height: 1.5;
  color: #63778b;
}
.drift-point-picker .inline-actions {
  flex-wrap: wrap;
  gap: 4px;
}
.drift-point-options {
  max-height: 295px;
  overflow: auto;
  display: grid;
  gap: 3px;
}
.drift-point-options > label {
  display: flex;
  align-items: start;
  gap: 10px;
  padding: 7px 2px;
  cursor: pointer;
  font-size: 13px;
}
.drift-point-options > label > span:not([data-slot]) {
  min-width: 0;
  overflow-wrap: anywhere;
}
.drift-point-options small {
  display: block;
  color: #718092;
  font-size: 11px;
}
.drift-results {
  min-width: 0;
}
.drift-summary {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.drift-summary > div {
  background: #f0f5f4;
  border: 1px solid #dbe5e1;
  padding: 12px;
  border-radius: 8px;
  display: grid;
  align-content: start;
  gap: 5px;
}
.drift-summary small,
.drift-summary span {
  font-size: 11px;
  color: #617b7b;
  line-height: 1.45;
}
.drift-summary strong {
  font-size: 20px;
  color: #274f53;
}
.drift-review-note {
  display: block;
  background: #fcf2db;
  color: #80632d;
  border-radius: 6px;
  padding: 10px 12px;
  font-size: 12px;
}
.drift-interpretation {
  font-size: 12px;
  color: #4a6576;
  line-height: 1.6;
  margin: 12px 0;
}
.drift-chart-wrap {
  overflow-x: auto;
  border: 1px solid #dbe2e9;
  border-radius: 9px;
  background: white;
}
.drift-chart {
  width: 100%;
  display: block;
}
.drift-chart-canvas {
  position: relative;
  min-width: 560px;
}
.drift-chart-points {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.drift-chart text {
  font:
    12px Arial,
    sans-serif;
  fill: #64768a;
}
.drift-grid {
  stroke: #e4e9ee;
  stroke-width: 1;
}
.drift-zero {
  stroke: #91a8b1;
  stroke-width: 1.5;
}
.drift-trend {
  stroke: #516b87;
  stroke-width: 2;
  stroke-dasharray: 6 5;
}
.drift-chart-point {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: auto;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  cursor: pointer;
  background: transparent;
  border: 0;
}
.drift-chart-point span {
  display: block;
  border: 2px solid white;
  border-radius: 50%;
}
.drift-chart-point:focus-visible {
  outline: 2px solid #253e56;
  outline-offset: -2px;
  border-radius: 4px;
}
.drift-legend,
.drift-method {
  color: #63778b;
  font-size: 12px;
  line-height: 1.65;
}
.drift-selected {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: #f5f7fa;
  padding: 12px;
  border-radius: 8px;
}
.drift-selected > div {
  min-width: 0;
}
.drift-selected span,
.drift-selected small {
  display: block;
  margin-top: 4px;
  overflow-wrap: anywhere;
}
.drift-selected span {
  font-size: 12px;
}
.drift-selected small {
  color: #6c7f91;
  font-size: 11px;
}
.drift-data {
  font-size: 12px;
  margin-top: 12px;
}
.drift-data summary {
  cursor: pointer;
  font-weight: 600;
  color: #405a70;
}
.drift-data p {
  padding: 6px 0;
  color: #896628;
}
.drift-table-scroll {
  overflow: auto;
  margin-top: 10px;
}
.drift-data table {
  border-collapse: collapse;
  width: 100%;
  white-space: nowrap;
  font-size: 12px;
}
.drift-data th,
.drift-data td {
  text-align: left;
  border-bottom: 1px solid #e1e6ec;
  padding: 8px;
}
.drift-data td button {
  color: #287b75;
  text-decoration: underline;
}
.drift-empty {
  padding: 60px 24px;
  color: #6c8094;
  text-align: center;
  line-height: 1.6;
  background: #f5f7fa;
  border-radius: 10px;
  margin-top: 15px;
}
@media (max-width: 850px) {
  .drift-setup {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .drift-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .drift-point-options {
    max-height: 160px;
  }
}
@media (max-width: 550px) {
  .drift-run-bar {
    flex-direction: column;
    align-items: stretch;
  }
  .drift-setup > label:nth-child(-n + 2) {
    grid-column: 1 / -1;
  }
  .drift-summary {
    grid-template-columns: 1fr;
  }
  .drift-selected {
    align-items: flex-start;
    flex-direction: column;
  }
  .field-drift-dialog {
    padding: 18px;
  }
}
.note-intake-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0 0 18px;
  padding: 14px 18px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--card);
}
.note-intake-bar p {
  margin: 4px 0 0;
  font-size: 12px;
  color: var(--muted-foreground);
}
.intake-history-event {
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}
.intake-history-event strong,
.intake-history-event small {
  display: block;
}
.intake-history-event small {
  margin-top: 4px;
  color: var(--muted-foreground);
}
.intake-history-event p {
  font-size: 13px;
  line-height: 1.5;
}
.drawing-note-actions {
  flex-wrap: wrap;
}
@media (max-width: 700px) {
  .drawing-note-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  .drawing-note-actions button {
    width: 100%;
    white-space: normal;
  }
}

/* Canonical transparent master on existing light shell surfaces. */
.abutly-logo {
  display: block;
  width: 164px;
  height: auto;
  flex: none;
  object-fit: contain;
}
.brand .abutly-logo {
  width: 164px;
  height: auto;
}
.cp-opening .abutly-logo,
.workspace-recovery .abutly-logo {
  width: 205px;
  height: auto;
}

.adjoining-review {
  inset: 3dvh 1vw;
  width: auto;
  max-width: 1500px;
  height: auto;
  margin-inline: auto;
  translate: none;
  transform: none;
  display: flex;
  flex-direction: column;
  gap: 12px;
  overflow: hidden;
}
.adjoining-fields {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 9px;
}
.adjoining-controls {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  align-items: center;
  font-size: 12px;
}
.adjoining-visual {
  height: 350px;
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: white;
  color: #182b35;
}
.adjoining-visual > .pdf-container {
  height: 100%;
  width: 100%;
}
.adjoining-visual > output {
  display: block;
  padding: 20px;
}
.adjoining-visual > p,
.adjoining-visual > div[role='alert'] {
  padding: 20px;
}
.adjoining-hash {
  overflow-wrap: anywhere;
}
.adjoining-review > footer {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 12px;
}
@media (max-width: 760px) {
  .adjoining-review > footer {
    flex-wrap: wrap;
  }
}

.adjoining-overlay-layout {
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr);
  gap: 16px;
  flex: 1;
  min-height: 0;
}
.adjoining-overlay-inspector {
  overflow: auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-right: 10px;
  font-size: 12px;
}
.adjoining-overlay-inspector > * {
  flex-shrink: 0;
}
.adjoining-overlay-inspector label {
  display: grid;
  gap: 5px;
}
.adjoining-overlay-inspector select,
.adjoining-overlay-inspector textarea {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px;
  background: var(--background);
  color: var(--foreground);
}
.adjoining-overlay-inspector .adjoining-visual {
  height: 300px;
}
.adjoining-overlay-inspector .adjoining-fields {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
}
.adjoining-layer-list {
  display: grid;
  gap: 8px;
}
.adjoining-layer-row {
  border: 1px solid var(--border);
  border-left: 4px solid;
  border-radius: 7px;
  padding: 7px;
  display: grid;
  gap: 6px;
}
.adjoining-layer-row > button {
  justify-content: flex-start;
  height: auto;
  white-space: normal;
  text-align: left;
}
.adjoining-layer-row label {
  display: flex;
  align-items: center;
  gap: 4px;
}
.adjoining-layer-row input[type='range'] {
  flex: 1;
  min-width: 60px;
  width: 100px;
}
.adjoining-overlay-main {
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.adjoining-overlay-canvas {
  flex: 1;
  min-height: 240px;
  position: relative;
  background: white;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}
.adjoining-overlay-canvas > svg {
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  touch-action: none;
  cursor: crosshair;
}
.adjoining-overlay-empty {
  padding: 28px;
  max-width: 560px;
  color: #48606d;
  display: grid;
  gap: 12px;
}
.adjoining-overlay-evidence {
  font-size: 12px;
  line-height: 1.5;
  max-height: 180px;
  overflow: auto;
}
.adjoining-overlay-evidence output {
  display: block;
  margin-top: 6px;
}
@media (max-width: 1100px) {
  .adjoining-overlay-layout {
    grid-template-columns: 300px minmax(0, 1fr);
    gap: 10px;
  }
}
@media (max-width: 760px) {
  .adjoining-overlay-layout {
    display: flex;
    flex-direction: column-reverse;
    overflow: auto;
  }
  .adjoining-overlay-main {
    flex: 0 0 500px;
  }
  .adjoining-overlay-inspector {
    overflow: visible;
  }
}
.adjoining-overlay-main > .adjoining-controls > label {
  display: flex;
  align-items: center;
  gap: 5px;
}
.adjoining-overlay-canvas {
  isolation: isolate;
}
.adjoining-side-by-side {
  height: 100%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  padding: 10px;
  overflow: auto;
}
.adjoining-side-by-side > section {
  min-width: 0;
  min-height: 400px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 12px;
}
.adjoining-side-original {
  flex: 1;
  min-height: 0;
}
.adjoining-side-original > .pdf-container {
  height: 100%;
  width: 100%;
}
@media (max-width: 1100px) {
  .adjoining-side-by-side {
    grid-template-columns: 1fr;
  }
  .adjoining-side-by-side > section {
    min-height: 420px;
  }
}
.adjoining-study-save {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
  font-size: 12px;
}
.adjoining-study-save label {
  display: flex;
  gap: 8px;
  align-items: center;
  min-width: 240px;
}
.adjoining-study-save input {
  width: 240px;
}
.adjoining-study-save output {
  max-width: 500px;
}

.rfi-overlay-preview {
  padding: 1rem;
  overflow: visible;
  width: 100%;
  height: auto;
}
.rfi-overlay-preview img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  max-height: 55dvh;
  object-fit: contain;
}
.review-packet-dialog:has(.rfi-overlay-preview) {
  display: flex;
  flex-direction: column;
  position: fixed;
  inset: 3dvh 2vw;
  width: auto;
  height: auto;
  max-width: min(1100px, 96vw) !important;
  max-height: none;
  margin: auto;
  translate: none;
  transform: none;
  overflow: auto;
}
.review-packet-preview:has(.rfi-overlay-preview) {
  height: auto;
  min-height: 180px;
  flex: 0 0 auto;
  overflow: visible;
  background: #fff;
  display: block;
}

.review-packet-dialog:has(.rfi-overlay-preview) > * {
  flex-shrink: 0;
}

.overlay-callout-editor {
  margin-block: 1rem;
  padding: 1rem;
  border: 1px solid var(--border);
  border-radius: 10px;
}
.overlay-callout-canvas {
  display: block;
  width: 100%;
  aspect-ratio: 22/17;
  height: auto;
  background: white;
  border: 1px solid var(--border);
  touch-action: none;
}
.overlay-callout-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--border);
}
.overlay-callout-row > label:first-child {
  flex: 1;
  min-width: 200px;
}

/* Keep comparison navigation usable in short windows and stacked detail panes. */
.adjoining-review {
  max-height: 94dvh;
}
.adjoining-overlay-main {
  overflow: auto;
  overscroll-behavior: contain;
}
.adjoining-overlay-main > .adjoining-controls {
  flex-shrink: 0;
}
.adjoining-overlay-canvas {
  min-height: 280px;
  flex-shrink: 0;
}
.adjoining-overlay-evidence {
  flex-shrink: 0;
}
.adjoining-side-by-side {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  align-content: start;
}
.adjoining-side-by-side > section {
  height: clamp(320px, 52dvh, 640px);
  min-height: 0;
  overflow: hidden;
}
.adjoining-side-original {
  position: relative;
}
.adjoining-side-original > .pdf-container {
  position: absolute;
  inset: 0;
}
.adjoining-conflict {
  border: 1px solid #a72d39;
  border-left: 4px solid #a72d39;
  border-radius: 7px;
  background: #fff2f3;
  color: #74232b;
  padding: 10px 12px;
  font-size: 13px;
  flex-shrink: 0;
  overflow-wrap: anywhere;
}
.adjoining-conflict p {
  margin: 4px 0;
  white-space: pre-wrap;
}
@media (max-height: 650px) {
  .adjoining-review {
    overflow-y: auto;
  }
  .adjoining-overlay-layout {
    min-height: 420px;
    flex-shrink: 0;
  }
}
@media (max-width: 760px) {
  .adjoining-overlay-main {
    flex: 0 0 auto;
    overflow: visible;
  }
  .adjoining-overlay-canvas {
    height: 440px;
    flex: none;
  }
}
.adjoining-overlay-main > .adjoining-controls {
  position: sticky;
  top: 0;
  z-index: 2;
  background: var(--background);
  padding-block: 4px;
}
.adjoining-side-by-side > section > strong,
.adjoining-side-by-side > section > p,
.adjoining-side-by-side > section > .adjoining-controls {
  flex-shrink: 0;
}
.building-launch {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 24px;
  background: #eaf4f4;
  border-bottom: 1px solid #cbdfe1;
  flex: none;
}
.building-launch strong,
.building-launch span {
  display: block;
}
.building-launch span {
  color: #526779;
  font-size: 12px;
  margin-top: 3px;
}
.workspace-layout.building-mode {
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}
.building-mode > .layers-panel,
.building-mode > .inspector {
  display: none;
}
.building-mode > .main-workspace {
  min-height: 0;
  overflow: hidden;
}
.building-workspace {
  display: grid;
  grid-template-columns: 220px minmax(280px, 1fr) 300px;
  flex: 1;
  min-height: 0;
  background: #f7f9fb;
  color: #23354a;
}
.building-workspace[hidden] {
  display: none !important;
}
.building-navigation,
.building-inspector {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px 16px;
  background: #fff;
}
.building-navigation {
  border-right: 1px solid #dae3eb;
}
.building-inspector {
  border-left: 1px solid #dae3eb;
}
.building-navigation .panel-title,
.building-inspector .panel-title {
  font-size: 10px;
  letter-spacing: 1.3px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.building-area {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  padding: 12px 10px;
  border: 1px solid transparent;
  border-radius: 8px;
  margin-top: 5px;
  min-height: 52px;
}
.building-area > span {
  flex: 1;
}
.building-area strong,
.building-area small {
  display: block;
}
.building-area strong {
  font-size: 12px;
  font-weight: 600;
}
.building-area small {
  font-size: 10px;
  line-height: 1.5;
  color: #748494;
  margin-top: 4px;
}
.building-area.active {
  border-color: #a1c8d3;
  background: #edf6f8;
  box-shadow: 0 0 14px #7fbcd324;
}
.building-area:hover {
  background: #f0f6f8;
}
.building-layer-heading {
  margin: 26px 0 14px;
}
.building-layer {
  margin: 15px 0;
}
.building-layer > button {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 38px;
  text-align: left;
  font-size: 11px;
}
.building-layer > button > span:nth-child(2) {
  flex: 1;
}
.building-layer [data-slot='slider'] {
  margin: 5px 0 8px;
  min-height: 24px;
}
.building-glow-toggle {
  width: 100%;
  font-size: 11px;
  margin-top: 12px;
  min-height: 44px;
}
.building-legend {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 8px;
  margin-top: 16px;
  font-size: 10px;
}
.building-legend > span:before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  background: currentColor;
  box-shadow: 0 0 7px currentColor;
  border-radius: 50%;
  margin-right: 6px;
}
.signal-blocker {
  color: #c74541;
}
.signal-review {
  color: #956512;
}
.signal-verified {
  color: #168452;
}
.signal-focus {
  color: #287ba2;
}
.building-view {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  background: #142234;
  color: #e2eaf2;
}
.building-view-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 22px 24px 10px;
  gap: 10px;
  flex: none;
}
.building-view-heading .eyebrow {
  font-size: 9px;
  letter-spacing: 1.8px;
  color: #8dbfc5;
}
.building-view-heading h1 {
  font-size: 25px;
  letter-spacing: -0.8px;
  margin: 6px 0 5px;
  line-height: 1.25;
  font-weight: 600;
}
.building-view-heading p {
  color: #96a9ba;
  font-size: 11px;
  margin: 0;
  line-height: 1.7;
}
.building-view-heading > button {
  color: #bdd2e3;
  min-width: 44px;
  min-height: 44px;
}
.building-breadcrumb {
  min-height: 38px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 24px 10px;
  flex-wrap: wrap;
  font-size: 11px;
  color: #adc2d2;
  flex: none;
}
.building-coordinate-note {
  color: #8098ad;
  font-size: 10px;
}
.building-breadcrumb button {
  background: #20384c;
  color: #e5f1f8;
  border-color: #40596a;
  min-height: 40px;
  font-size: 11px;
}
.building-canvas {
  position: relative;
  min-height: 280px;
  flex: 1;
  isolation: isolate;
  touch-action: none;
}
.building-canvas .scene-host {
  inset: 0;
  position: absolute;
}
.building-canvas canvas {
  touch-action: none;
}
.building-camera-tools {
  position: absolute;
  top: 8px;
  right: 14px;
  display: flex;
  gap: 5px;
}
.building-camera-tools button {
  background: #21384cdb;
  border: 1px solid #496072;
  color: #dceaf4;
  min-width: 44px;
  min-height: 44px;
  font-size: 11px;
  backdrop-filter: blur(8px);
}
.building-canvas-caption {
  position: absolute;
  bottom: 12px;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 10px;
  color: #8ba5b8;
  pointer-events: none;
}
.building-view-controls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  padding: 12px 24px;
  background: #182a3d;
  flex: none;
  border-top: 1px solid #2d4154;
}
.building-view-controls label > span {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  color: #9fb6c8;
  margin-bottom: 5px;
}
.building-view-controls b {
  font-weight: 400;
  color: #d7e9f5;
}
.building-view-controls [data-slot='slider'] {
  min-height: 30px;
}
.building-view-controls [data-slot='slider-track'] {
  background: #3d5369;
}
.building-view-controls [data-slot='slider-range'] {
  background: #60aeb5;
}
.building-source-select {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 24px;
  background: #182a3d;
  border-top: 1px solid #2d4154;
  flex: none;
}
.building-source-select > [data-slot='select-trigger'] {
  background: #233b50;
  border-color: #38566c;
  color: #dcecf5;
  min-height: 44px;
  font-size: 11px;
  min-width: 0;
}
.building-source-select > svg {
  flex: none;
  color: #8dbfc5;
}
.building-basis {
  padding: 10px 24px;
  background: #203145;
  font-size: 10px;
  color: #b8c8d4;
  flex: none;
}
.building-basis summary {
  display: flex;
  align-items: center;
  gap: 7px;
  cursor: pointer;
  min-height: 24px;
  color: #e5c57b;
}
.building-basis p {
  line-height: 1.6;
  margin: 8px 0;
  max-height: 90px;
  overflow: auto;
}
.building-inspector h2 {
  font-size: 18px;
  line-height: 1.35;
  margin: 14px 0 8px;
  letter-spacing: -0.4px;
}
.building-inspector h3 {
  font-size: 11px;
  font-weight: 650;
  margin: 16px 0 10px;
}
.building-inspector p {
  font-size: 11px;
  line-height: 1.75;
  color: #6b7c8d;
  margin: 12px 0;
}
.building-inspector > .building-location {
  color: #2c7b86;
  margin: 0 0 12px;
}
.building-inspector .property-list {
  margin-top: 12px;
}
.building-inspector .property-list dt,
.building-inspector .property-list dd {
  font-size: 10px;
  line-height: 1.5;
}
.building-inspector > button {
  min-height: 44px;
  font-size: 11px;
}
.building-signal {
  display: inline-block;
  margin-top: 12px;
  border: 1px solid currentColor;
  border-radius: 30px;
  padding: 4px 8px;
  font-size: 10px;
  box-shadow: 0 0 11px #edbd5918;
}
.building-detail-action {
  width: 100%;
  margin: 10px 0 6px;
  background: #206d74;
  color: #fff;
}
.building-source-proof {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px;
  margin-top: 16px;
  border: 1px solid #ccdde3;
  border-radius: 7px;
  background: #f3f8fa;
  font-size: 10px;
  line-height: 1.5;
}
.building-source-proof span {
  color: #567181;
}
.building-source-proof small {
  color: #738595;
  font-size: 9px;
}
.building-ref-list > div {
  padding: 4px 0;
  border-bottom: 1px solid #e5eaf0;
}
.building-ref-list > div > button:first-child {
  display: flex;
  align-items: center;
  gap: 7px;
  width: 100%;
  min-height: 46px;
  text-align: left;
  font-size: 10px;
}
.building-ref-list button > span {
  flex: 1;
}
.building-ref-list strong {
  display: block;
  font-size: 10px;
  color: #6a7d8e;
  font-weight: 500;
  margin-top: 3px;
}
.building-ref-list [data-slot='button'] {
  font-size: 10px;
  min-height: 38px;
}
.building-issues > button {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 7px;
  text-align: left;
  padding: 10px 0;
  border-bottom: 1px solid #e5eaf0;
  min-height: 46px;
  font-size: 11px;
}
.building-issues > button > span:nth-child(2) {
  flex: 1;
}
.building-issues small {
  display: block;
  color: #718597;
  font-size: 10px;
  margin-top: 4px;
}
.building-issue-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 8px currentColor;
  flex: none;
}
.building-search {
  display: block;
  margin: 20px 0 8px;
}
.building-search > span {
  font-size: 10px;
  display: block;
  margin-bottom: 7px;
}
.building-search input {
  font-size: 11px;
  min-height: 44px;
}
.building-part-list {
  max-height: 330px;
  overflow: auto;
}
.building-part-list > button {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 10px 7px;
  width: 100%;
  min-height: 44px;
  text-align: left;
  font-size: 10px;
  border-radius: 5px;
}
.building-part-list > button > svg {
  margin-left: auto;
  flex: none;
}
.building-part-list > button:hover,
.building-part-list > button.active {
  background: #eaf4f7;
}
.building-part-list .part-dot {
  flex: none;
}
.building-expanded {
  position: fixed;
  inset: 0;
  z-index: 60;
  height: 100dvh;
}
@media (min-width: 1700px) {
  .building-workspace {
    grid-template-columns: 245px minmax(0, 1fr) 330px;
  }
}
@media (max-width: 1250px) {
  .building-workspace {
    grid-template-columns: 185px minmax(260px, 1fr) 260px;
  }
  .building-navigation,
  .building-inspector {
    padding: 15px 12px;
  }
  .building-view-heading {
    padding: 18px 18px 8px;
  }
  .building-view-heading h1 {
    font-size: 22px;
  }
  .building-view-controls {
    gap: 14px;
    padding: 10px 16px;
  }
  .building-source-select {
    padding: 10px 16px;
  }
  .building-coordinate-note {
    display: none;
  }
}
@media (max-width: 1000px) {
  .building-workspace {
    grid-template-columns: 170px minmax(0, 1fr);
    overflow: auto;
  }
  .building-inspector {
    grid-column: 1/-1;
    border-top: 1px solid #dae3eb;
    max-height: 340px;
    display: block;
  }
  .building-navigation {
    max-height: 650px;
  }
  .building-view {
    min-height: 620px;
  }
  .building-launch {
    padding: 10px 14px;
  }
  .building-launch span {
    display: none;
  }
  .building-launch strong {
    font-size: 12px;
  }
  .building-part-list {
    max-height: 180px;
  }
  .building-workspace .building-inspector {
    padding: 18px 24px;
  }
  .building-view-heading h1 {
    font-size: 20px;
  }
}
@media (max-width: 600px) {
  .building-workspace {
    display: flex;
    flex-direction: column;
    overflow: auto;
  }
  .building-navigation {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    gap: 4px;
    flex: none;
    padding: 8px;
  }
  .building-navigation > .panel-title,
  .building-navigation > .building-layer,
  .building-navigation > .building-glow-toggle,
  .building-navigation > .building-legend {
    display: none;
  }
  .building-area {
    min-width: 128px;
    margin: 0;
  }
  .building-area small {
    font-size: 9px;
  }
  .building-view {
    min-height: 650px;
    flex: none;
  }
  .building-inspector {
    flex: none;
    max-height: none;
  }
  .building-view-heading {
    padding: 16px;
  }
  .building-view-controls {
    gap: 12px;
  }
  .building-basis {
    padding: 9px 16px;
  }
  .building-launch {
    align-items: flex-start;
  }
  .building-launch > button {
    font-size: 10px;
  }
  .building-view-controls label > span {
    font-size: 9px;
  }
  .building-canvas {
    min-height: 330px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .building-workspace * {
    scroll-behavior: auto;
    transition: none !important;
  }
}
/* Separate, unregistered studies change context without pretending to fly to a surveyed location. */
.building-canvas.local-study {
  animation: enter-local-study 220ms ease-out;
}
.building-canvas.registered-building {
  animation: enter-building-view 220ms ease-out;
}
@keyframes enter-local-study {
  from {
    opacity: 0.2;
  }
  to {
    opacity: 1;
  }
}
@keyframes enter-building-view {
  from {
    opacity: 0.2;
  }
  to {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .building-canvas.local-study,
  .building-canvas.registered-building {
    animation: none;
  }
}
.building-reference-controls {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 18px;
  padding: 14px 20px;
  border-top: 1px solid #344a5c;
  background: #172b3a;
  color: #d2e5ed;
}
.building-reference-controls > label:not(.reference-label-switch) {
  flex: 1;
  min-width: 140px;
  max-width: 240px;
}
.building-reference-controls label > span {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 8px;
  font-size: 12px;
}
.building-reference-controls .reference-label-switch {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  font-size: 13px;
}
.building-reference-controls input[type='checkbox'] {
  accent-color: #90c8ed;
  width: 18px;
  height: 18px;
}
.building-reference-controls small {
  flex-basis: 100%;
  color: #a5becd;
  font-size: 11px;
}
.building-reference-controls button[aria-pressed='true'] {
  background: #2b485c;
  border-color: #86bddc;
  color: #e0f3ff;
}

.building-controls-drawer {
  flex: none;
}
.building-level-controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 10px 20px;
  background: #182a3d;
  border-top: 1px solid #344a5c;
  color: #bed5e3;
  font-size: 12px;
}
.building-level-controls > [data-slot='select-trigger'] {
  width: auto;
  min-width: 170px;
  min-height: 44px;
}
.building-level-controls small {
  color: #93afc1;
}
/* Full-screen is a viewing mode, not a wider copy of the three-column desk. */
.building-workspace.building-expanded {
  display: block;
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100dvh;
  z-index: 40;
  overflow: hidden;
  background: #142234;
}
.building-expanded > .building-view {
  position: absolute;
  inset: 0;
  min-height: 0;
  height: 100%;
  overflow: hidden;
  scrollbar-gutter: auto;
}
.building-expanded .building-canvas {
  position: absolute;
  inset: 0;
  min-height: 0;
}
.building-expanded .building-view-heading {
  position: absolute;
  top: calc(62px + env(safe-area-inset-top));
  left: 14px;
  z-index: 2;
  padding: 8px;
  pointer-events: none;
  max-width: 65%;
}
.building-expanded .building-view-heading .eyebrow,
.building-expanded .building-view-heading p,
.building-expanded .building-view-heading > button,
.building-expanded .building-breadcrumb {
  display: none;
}
.building-expanded .building-view-heading h1 {
  font-size: 17px;
  padding: 5px 10px;
  border-radius: 8px;
  background: #142234c9;
  font-weight: 500;
}
.building-fullscreen-toolbar {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  z-index: 8;
  display: flex;
  gap: 6px;
  align-items: center;
  overflow-x: auto;
  padding: calc(8px + env(safe-area-inset-top))
    max(10px, env(safe-area-inset-right)) 8px
    max(10px, env(safe-area-inset-left));
  background: linear-gradient(#122333f2, #122333ae);
  color: #dceaf4;
}
.building-fullscreen-toolbar button {
  flex: none;
  min-height: 44px;
  border: 1px solid #496072;
  background: #21384ce8;
  color: #dceaf4;
}
.building-fullscreen-toolbar button[aria-pressed='true'] {
  border-color: #9bd8f4;
  box-shadow: 0 0 10px #9bd8f433;
}
.building-fullscreen-toolbar output {
  flex: 1;
  min-width: 190px;
  font-size: 11px;
}
.building-expanded .building-camera-tools {
  top: calc(116px + env(safe-area-inset-top));
}
.building-expanded > .building-navigation,
.building-expanded > .building-inspector,
.building-expanded .building-controls-drawer {
  display: none;
}
.building-expanded[data-view-panel='map'] > .building-navigation,
.building-expanded[data-view-panel='details'] > .building-inspector {
  display: block;
  position: absolute;
  z-index: 7;
  top: calc(66px + env(safe-area-inset-top));
  bottom: calc(12px + env(safe-area-inset-bottom));
  width: min(340px, calc(100% - 28px));
  max-height: none;
  overflow: auto;
  border-radius: 14px;
  box-shadow: 0 12px 40px #0005;
}
.building-expanded[data-view-panel='map'] > .building-navigation {
  left: 12px;
}
.building-expanded[data-view-panel='details'] > .building-inspector {
  right: 12px;
}
.building-expanded .building-navigation > .panel-title,
.building-expanded .building-navigation > .building-layer,
.building-expanded .building-navigation > .building-glow-toggle,
.building-expanded .building-navigation > .building-legend {
  display: flex;
}
.building-expanded .building-navigation > .building-layer {
  display: block;
}
.building-expanded[data-view-panel='controls'] .building-controls-drawer {
  display: block;
  position: absolute;
  z-index: 7;
  right: 12px;
  bottom: calc(12px + env(safe-area-inset-bottom));
  width: min(480px, calc(100% - 24px));
  max-height: calc(100dvh - 150px - env(safe-area-inset-top));
  overflow: auto;
  overscroll-behavior: contain;
  border: 1px solid #527185;
  border-radius: 14px;
  background: #182a3df5;
  box-shadow: 0 12px 40px #0005;
}
.building-expanded .building-view-controls {
  grid-template-columns: 1fr;
  gap: 10px;
}
.building-expanded .building-canvas-caption {
  bottom: calc(16px + env(safe-area-inset-bottom));
}
@media (max-width: 600px) {
  .building-fullscreen-toolbar button {
    font-size: 12px;
    padding-inline: 10px;
  }
  .building-expanded .building-view-heading {
    max-width: 100%;
    top: calc(64px + env(safe-area-inset-top));
  }
  .building-level-controls {
    padding: 10px 14px;
  }
}

.building-reference-controls > button {
  background: #20384c;
  color: #dceaf4;
  border-color: #496072;
}
.view-label-short,
.fullscreen-mobile-note {
  display: none;
}
@media (max-width: 600px) {
  .building-fullscreen-toolbar {
    gap: 4px;
  }
  .building-fullscreen-toolbar .view-label-wide,
  .building-fullscreen-toolbar > output {
    display: none;
  }
  .building-fullscreen-toolbar .view-label-short {
    display: inline;
  }
  .building-fullscreen-toolbar button {
    padding-inline: 8px;
  }
  .building-fullscreen-toolbar [aria-label='Exit full screen'] {
    position: sticky;
    right: 0;
    margin-left: auto;
    background: #21384c;
  }
  .fullscreen-mobile-note {
    display: block;
    padding: 10px 16px;
    font-size: 11px;
    color: #b9d2e2;
  }
}
.guided-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 8px 24px;
  background: #fff;
  border-bottom: 1px solid #dbe3eb;
  flex: none;
  min-height: 62px;
}
.guided-primary-nav,
.guided-secondary-nav {
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.guided-navigation button {
  min-height: 44px;
  font-size: 14px;
  gap: 8px;
  white-space: nowrap;
}
.guided-primary-nav button[aria-current='page'] {
  background: #e8f4f4;
  color: #176b70;
  box-shadow:
    inset 0 -2px #258b91,
    0 0 12px #61adb51a;
}
.guided-secondary-nav .active-tool {
  background: #edf4f8;
  color: #235c76;
}
.guided-count {
  display: inline-grid;
  place-items: center;
  min-width: 22px;
  height: 22px;
  border-radius: 30px;
  background: #ecdfbd;
  color: #765721;
  font-size: 12px;
  padding: 0 5px;
}
.guided-count.has-blockers {
  background: #f7e2df;
  color: #a43435;
  box-shadow: 0 0 9px #d9585224;
}
.next-action-strip {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 10px 26px;
  min-height: 65px;
  flex: none;
  background: #f9f6ee;
  border-bottom: 1px solid #e9dfc7;
  color: #394d60;
}
.next-action-strip.blocker {
  background: #fcf3f1;
  border-bottom-color: #ecd9d4;
}
.guided-signal {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c29435;
  box-shadow: 0 0 9px #d3a24180;
  flex: none;
}
.blocker > .guided-signal,
.blocker .guided-signal {
  background: #cf5654;
  box-shadow: 0 0 10px #dc575480;
}
.next-action-strip > div {
  flex: 1;
  min-width: 0;
}
.next-action-kicker {
  display: block;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: #896b48;
  font-size: 12px;
  margin-bottom: 3px;
}
.next-action-strip.blocker .next-action-kicker {
  color: #a54b44;
}
.next-action-strip strong {
  display: block;
  font-weight: 600;
  font-size: 14px;
  line-height: 1.45;
}
.next-action-strip button {
  min-height: 42px;
  font-size: 13px;
  flex: none;
}
.next-action-strip.quiet {
  background: #edf4f6;
  border-color: #d5e2e6;
}
.workspace-layout.focused-mode {
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  min-height: 0;
}
.focused-mode > .layers-panel,
.focused-mode > .inspector {
  display: none;
}
.focused-mode > .main-workspace {
  grid-column: 1/-1;
  grid-row: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
}
.guided-workspace {
  flex: 1;
  overflow: auto;
  padding: 28px 34px 48px;
  background: #f4f7fa;
  font-size: 16px;
  min-height: 0;
}
.guided-overview-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  max-width: 1390px;
  margin: 0 auto 24px;
}
.guided-overview-heading .eyebrow {
  font-size: 12px;
  letter-spacing: 1.6px;
  color: #367f87;
}
.guided-overview-heading h1 {
  font-size: 30px;
  letter-spacing: -1px;
  line-height: 1.25;
  margin: 7px 0 10px;
  font-weight: 600;
}
.guided-overview-heading p {
  font-size: 16px;
  color: #687b8e;
  line-height: 1.6;
  margin: 0;
  max-width: 700px;
}
.guided-overview-heading button {
  min-height: 44px;
  font-size: 14px;
}
.guided-status-row {
  max-width: 1390px;
  margin: 0 auto 30px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border: 1px solid #dce5eb;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.guided-status-row button {
  text-align: left;
  padding: 19px 24px;
  border-right: 1px solid #e1e8ee;
  min-height: 96px;
}
.guided-status-row button:last-child {
  border: 0;
}
.guided-status-row button:hover {
  background: #f4f8fa;
}
.guided-status-row strong {
  display: block;
  font-size: 27px;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 7px;
}
.guided-status-row span {
  font-size: 14px;
  color: #6b7e90;
}
.guided-status-row .blocker strong {
  color: #b84742;
  text-shadow: 0 0 17px #d95a5425;
}
.guided-status-row .recorded strong {
  color: #21825b;
}
.guided-queue-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 310px;
  gap: 28px;
  max-width: 1390px;
  margin: auto;
}
.guided-queue-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.guided-queue-heading h2 {
  font-size: 18px;
  font-weight: 600;
  margin: 0;
}
.guided-queue-heading > div {
  display: flex;
  gap: 4px;
}
.guided-queue-heading button {
  font-size: 14px;
  min-height: 42px;
}
.guided-task-list {
  display: grid;
  gap: 18px;
}
.guided-task {
  background: #fff;
  padding: 22px 24px;
  border: 1px solid #e0e5eb;
  border-left: 3px solid #d2af66;
  border-radius: 9px;
  box-shadow: 0 4px 14px #32435704;
}
.guided-task.blocker {
  border-left-color: #d76c61;
  box-shadow: -4px 0 17px #db75600b;
}
.guided-task-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-size: 12px;
  color: #8a6c36;
  flex-wrap: wrap;
}
.guided-task-type {
  display: flex;
  align-items: center;
  gap: 8px;
}
.guided-task.blocker .guided-task-type {
  color: #aa4d43;
}
.guided-owner {
  color: #6e8192;
  max-width: 65%;
  overflow-wrap: anywhere;
}
.guided-task h2 {
  font-size: 20px;
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: -0.3px;
  margin: 13px 0 9px;
}
.guided-task > p {
  color: #687b8d;
  font-size: 15px;
  line-height: 1.65;
  margin: 0 0 16px;
}
.guided-task-next {
  background: #f5f8fa;
  border-radius: 5px;
  padding: 13px 15px;
  margin-bottom: 16px;
}
.guided-task-next strong {
  font-size: 13px;
  font-weight: 600;
  color: #38596b;
}
.guided-task-next p {
  font-size: 14px;
  line-height: 1.65;
  color: #536f80;
  margin: 5px 0 0;
}
.guided-task-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.guided-task-actions button {
  font-size: 14px;
  min-height: 44px;
}
.guided-task-actions button:first-child {
  background: #206d74;
  color: #fff;
}
.guided-side-guide {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 58px;
}
.guided-side-guide > div {
  background: #eaf1f5;
  border: 1px solid #dce6ed;
  border-radius: 9px;
  padding: 22px;
}
.guided-side-guide > div > svg {
  color: #5b889c;
  width: 22px;
  height: 22px;
}
.guided-side-guide h2 {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.45;
  margin: 12px 0 15px;
}
.guided-side-guide ol {
  list-style: decimal;
  padding-left: 20px;
  color: #4f8495;
  margin: 0;
}
.guided-side-guide li {
  padding: 0 0 16px 4px;
  font-size: 14px;
}
.guided-side-guide li strong {
  display: block;
  color: #375e70;
  font-weight: 600;
}
.guided-side-guide li span {
  display: block;
  color: #687f90;
  font-size: 14px;
  line-height: 1.6;
  margin-top: 5px;
}
.guided-side-guide p {
  font-size: 14px;
  color: #637b8c;
  line-height: 1.7;
  margin: 0 0 14px;
}
.guided-side-guide .guided-upload-note {
  background: #fff;
}
.guided-side-guide button {
  font-size: 14px;
  min-height: 44px;
  width: 100%;
}
.guided-empty {
  padding: 30px;
  background: #fff;
  border: 1px solid #dfe6ed;
  border-radius: 9px;
  line-height: 1.65;
  color: #607888;
}
.guided-empty h2 {
  font-size: 20px;
  color: #395568;
  margin: 10px 0;
}
.guided-empty > svg {
  color: #6b8c99;
}
.guided-tools-dialog {
  max-width: 560px;
}
.guided-tools-list {
  display: grid;
  gap: 8px;
}
.guided-tools-list > button {
  display: flex;
  align-items: center;
  gap: 16px;
  text-align: left;
  min-height: 88px;
  padding: 18px;
  border: 1px solid #dfe7ed;
  border-radius: 8px;
}
.guided-tools-list > button:hover {
  background: #f0f7f8;
  border-color: #92bdc4;
}
.guided-tools-list > button > svg {
  color: #4b8390;
  flex: none;
}
.guided-tools-list > button > span {
  flex: 1;
}
.guided-tools-list strong {
  display: block;
  font-size: 16px;
  font-weight: 600;
  color: #2b4b60;
}
.guided-tools-list small {
  display: block;
  font-size: 14px;
  color: #708495;
  line-height: 1.5;
  margin-top: 6px;
}
.building-view-switch {
  display: flex;
  gap: 4px;
  align-items: center;
  padding: 3px;
  background: #122337;
  border: 1px solid #395266;
  border-radius: 7px;
}
.building-breadcrumb .building-view-switch button {
  font-size: 13px;
  min-height: 40px;
  background: transparent;
  border: 0;
  border-radius: 4px;
  color: #9bb5c8;
}
.building-breadcrumb .building-view-switch button[aria-pressed='true'] {
  background: #29495d;
  color: #e4f6fb;
  box-shadow: 0 0 10px #6ab4d022;
}
.scene-navigation-help {
  position: absolute;
  bottom: 13px;
  left: 15px;
  z-index: 5;
  font-size: 13px;
  color: #bdd2e0;
}
.scene-navigation-help summary {
  display: flex;
  align-items: center;
  gap: 7px;
  list-style: none;
  cursor: pointer;
  min-height: 38px;
  padding: 7px 11px;
  background: #1c3549e8;
  border: 1px solid #496478;
  border-radius: 6px;
  user-select: none;
}
.scene-navigation-help summary::-webkit-details-marker {
  display: none;
}
.scene-navigation-help > div {
  position: absolute;
  bottom: 46px;
  left: 0;
  max-width: calc(100vw - 70px);
  width: 300px;
  background: #213b4f;
  border: 1px solid #516d80;
  border-radius: 8px;
  padding: 17px;
  box-shadow: 0 12px 30px #0003;
  line-height: 1.6;
}
.scene-navigation-help strong {
  font-size: 14px;
  color: #e5f1f7;
}
.scene-navigation-help p {
  font-size: 14px;
  margin: 5px 0 14px;
  color: #b6cedc;
}
.scene-navigation-help small {
  display: block;
  font-size: 12px;
  color: #8eafc2;
}
.scene-footer > .scene-navigation-help {
  position: relative;
  bottom: auto;
  left: auto;
  flex: none;
}
.scene-footer > span:last-child {
  display: none;
}
.building-canvas-caption {
  left: 140px;
  font-size: 12px;
  right: 12px;
  text-align: right;
}
.expanded-view .guided-navigation,
.expanded-view .next-action-strip,
.expanded-view .building-launch {
  display: none;
}
@media (max-width: 1100px) {
  .guided-navigation {
    padding: 8px 16px;
    gap: 8px;
  }
  .guided-queue-layout {
    grid-template-columns: minmax(0, 1fr) 270px;
    gap: 20px;
  }
  .guided-workspace {
    padding: 24px;
  }
  .next-action-strip {
    padding: 9px 18px;
  }
  .next-action-strip .all-next-steps {
    display: none;
  }
  .guided-status-row button {
    padding: 18px;
  }
  .guided-side-guide > div {
    padding: 18px;
  }
}
@media (max-width: 850px) {
  .guided-queue-layout {
    grid-template-columns: 1fr;
  }
  .guided-side-guide {
    padding-top: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .guided-navigation {
    flex-wrap: wrap;
    gap: 5px;
  }
  .guided-navigation button {
    font-size: 13px;
    padding: 8px 10px;
  }
  .guided-secondary-nav {
    margin-left: auto;
  }
  .guided-overview-heading {
    gap: 14px;
  }
  .guided-overview-heading h1 {
    font-size: 27px;
  }
  .next-action-strip {
    gap: 9px;
  }
  .next-action-strip strong {
    font-size: 13px;
  }
  .next-action-strip button {
    font-size: 12px;
  }
  .guided-status-row span {
    font-size: 13px;
  }
}
@media (max-width: 600px) {
  .guided-navigation {
    padding: 6px 10px;
  }
  .guided-primary-nav {
    gap: 0;
    flex: 1;
  }
  .guided-primary-nav button {
    padding: 8px;
    gap: 5px;
  }
  .guided-primary-nav button > svg {
    display: none;
  }
  .guided-secondary-nav .guided-upload {
    display: none;
  }
  .guided-secondary-nav > button > span {
    max-width: 76px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .guided-secondary-nav button {
    font-size: 12px;
    padding: 7px;
  }
  .guided-navigation .guided-count {
    min-width: 20px;
    height: 20px;
    font-size: 11px;
  }
  .next-action-strip {
    padding: 9px 13px;
    flex-wrap: wrap;
  }
  .next-action-strip > div {
    flex-basis: calc(100% - 30px);
  }
  .next-action-strip button {
    margin-left: 17px;
    min-height: 38px;
  }
  .guided-workspace {
    padding: 22px 16px 40px;
  }
  .guided-overview-heading {
    display: block;
  }
  .guided-overview-heading button {
    margin-top: 15px;
  }
  .guided-status-row {
    grid-template-columns: 1fr 1fr;
    margin-bottom: 22px;
  }
  .guided-status-row button {
    border-bottom: 1px solid #e1e8ee;
    min-height: 87px;
  }
  .guided-status-row button:nth-child(2) {
    border-right: 0;
  }
  .guided-status-row button:nth-child(3) {
    border-bottom: 0;
  }
  .guided-side-guide {
    grid-template-columns: 1fr;
  }
  .guided-task {
    padding: 18px;
  }
  .guided-task h2 {
    font-size: 18px;
  }
  .guided-owner {
    max-width: 100%;
    font-size: 12px;
  }
  .guided-task-heading {
    gap: 7px;
  }
  .guided-task-actions button {
    width: 100%;
  }
  .building-canvas-caption {
    display: none;
  }
  .building-breadcrumb {
    padding: 4px 16px 10px;
  }
  .building-breadcrumb > span {
    display: none;
  }
  .scene-footer > .scene-navigation-help {
    font-size: 12px;
  }
  .scene-footer > span {
    max-width: 60%;
  }
  .focused-mode > .main-workspace {
    overflow: auto;
  }
}
@media (prefers-reduced-motion: reduce) {
  .guided-workspace *,
  .guided-navigation * {
    transition: none !important;
    scroll-behavior: auto;
  }
}
.concern-viewer {
  min-width: 0;
  background: #142234;
  border: 1px solid #31485d;
  border-radius: 14px;
  overflow: hidden;
  color: #dceaf5;
  box-shadow: 0 10px 30px #11213412;
}
.concern-visual-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 18px;
  color: #a4bccf;
  font-size: 11px;
  letter-spacing: 0.1em;
  font-weight: 650;
}
.concern-view-tabs {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 0 12px 10px;
}
.concern-view-tabs button {
  min-height: 42px;
  color: #c6dce9;
}
.concern-view-tabs button[aria-pressed='true'] {
  color: #183342;
}
.concern-canvas {
  height: clamp(300px, 47vh, 560px);
  position: relative;
  background: #142234;
  overflow: auto;
}
.concern-canvas .scene-host {
  position: absolute;
  inset: 0;
  min-height: 0;
}
.concern-canvas > .pdf-container {
  position: absolute;
  inset: 0;
  min-height: 0;
}
.concern-visual-heading .scene-navigation-help {
  position: relative;
  inset: auto;
  letter-spacing: normal;
  flex-shrink: 0;
}
.concern-visual-heading .scene-navigation-help > div {
  top: 46px;
  bottom: auto;
  left: auto;
  right: 0;
}
.concern-actions button {
  background: #21556a;
  color: #fff;
  border: 1px solid #75bbcf;
}
.concern-viewer button:disabled {
  opacity: 0.55;
}
.concern-view-tabs {
  flex-wrap: wrap;
}
.concern-drawing-help {
  margin: 0;
  padding: 0 16px 10px;
  font-size: 0.75rem;
  color: #b3cada;
}
.concern-canvas-caption {
  position: absolute;
  left: 12px;
  bottom: 12px;
  pointer-events: none;
  font-size: 11px;
  color: #bad0de;
  background: #102034dd;
  padding: 5px 9px;
  border-radius: 6px;
  max-width: calc(100% - 24px);
}
.concern-ink {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 18px;
  font-size: 12px;
  background: #1c2e42;
}
.concern-ink > span:first-child {
  min-width: 85px;
}
.concern-ink > [data-slot='slider'] {
  flex: 1;
}
.concern-explanation {
  border-left: 3px solid #efbf65;
  margin: 14px 16px;
  padding: 0 12px;
}
.concern-explanation.blocker {
  border-color: #f28078;
}
.concern-explanation.verified {
  border-color: #57cfa0;
}
.concern-explanation strong {
  font-size: 16px;
  color: #f9cf87;
}
.concern-explanation.blocker strong {
  color: #ffaca5;
}
.concern-explanation.verified strong {
  color: #81e4b9;
}
.concern-explanation p,
.concern-missing {
  color: #bacbd9;
  font-size: 13px;
  line-height: 1.55;
  margin: 5px 0;
}
.concern-missing {
  padding: 12px 18px;
}
.concern-source-strip {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  padding: 0 16px 10px;
}
.concern-source-strip button {
  display: flex;
  gap: 6px;
  align-items: center;
  padding: 8px 10px;
  min-height: 44px;
  border: 1px solid #3a536a;
  border-radius: 7px;
  color: #c2d6e4;
  font-size: 12px;
}
.concern-source-strip button.active {
  background: #21556a;
  border-color: #75bbcf;
  color: #fff;
}
.concern-source-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 16px;
  border-top: 1px solid #31465b;
  font-size: 11px;
  color: #9fb7c9;
}
.concern-source-note button {
  color: #c2e1ee;
}
.concern-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 0 16px 14px;
}
.concern-actions:empty {
  display: none;
}
.concern-actions button {
  min-height: 44px;
}
.concern-region-switch {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 16px 14px;
  font-size: 12px;
}
.concern-region-switch select {
  min-height: 44px;
  background: #213b50;
  color: #e4eff6;
  border: 1px solid #4d7188;
  border-radius: 6px;
  padding: 6px;
  min-width: 0;
  max-width: 70%;
}
.condition-diagram,
.survey-sketch {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 220px;
  background: #142234;
  color: #ffcc77;
}
.concern-pins {
  position: absolute;
  inset: 0;
  pointer-events: none;
  overflow: hidden;
  z-index: 4;
}
.concern-pins:has(.concern-popover:not([hidden])) {
  z-index: 6;
}
.concern-pins[hidden],
.concern-pin[hidden],
.concern-popover[hidden] {
  display: none;
}
.concern-pin {
  position: absolute;
  transform: translate(-50%, -50%);
  color: #ffd183;
}
.concern-pin.blocker {
  color: #ff9289;
}
.concern-pin.verified {
  color: #8ee9b7;
}
.concern-pin-target {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 0;
  padding: 0;
  border-radius: 50%;
  background: transparent;
  pointer-events: auto;
  color: inherit;
}
.concern-pin-dot {
  display: block;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: currentColor;
  box-shadow:
    0 0 0 3px #14223488,
    0 0 10px currentColor;
}
.concern-pin-dot.cluster {
  display: grid;
  place-items: center;
  width: 23px;
  height: 23px;
  background: #14223499;
  border: 1px solid currentColor;
  font-size: 12px;
  box-shadow: 0 0 8px #ffc66b44;
}
.concern-pin[data-hot] .concern-pin-dot {
  outline: 2px solid currentColor;
  outline-offset: 4px;
}
.concern-pin-target:focus-visible {
  outline: 2px solid #a6e4ef;
  outline-offset: -3px;
}
@media (hover: hover) and (pointer: fine) {
  /* A mouse hits the visible dot, not an invisible touch-sized halo. */
  .concern-pin-target {
    width: 12px;
    height: 12px;
    min-width: 0;
    min-height: 0;
  }
  .concern-pin-dot {
    width: 12px;
    height: 12px;
  }
  .concern-pin-target:has(.cluster) {
    width: 23px;
    height: 23px;
  }
}
.concern-popover {
  position: absolute;
  z-index: 20;
  pointer-events: auto;
  overflow: auto;
  overscroll-behavior: contain;
  box-sizing: border-box;
  background: #fff;
  color: #253d4e;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 6px 24px #07152366;
  border: 1px solid #cedde4;
}
.concern-popover strong {
  display: block;
  padding-right: 27px;
  font-size: 1rem;
}
.concern-popover p {
  font-size: 0.875rem;
  line-height: 1.5;
  margin: 8px 0;
}
.concern-popover button {
  color: #176d74;
  font-weight: 650;
  font-size: 0.875rem;
  min-height: 44px;
}
.concern-popover .concern-popover-close {
  position: absolute;
  top: 2px;
  right: 2px;
  width: 40px;
  font-size: 24px;
}
.concern-popover .concern-inspect {
  display: block;
  text-align: left;
  width: 100%;
  padding: 8px 0;
  border-top: 1px solid #e0e9ed;
  white-space: normal;
}
.visual-review-layout {
  display: grid;
  grid-template-columns: minmax(360px, 1.2fr) minmax(280px, 0.8fr);
  gap: 22px;
  align-items: start;
  min-width: 0;
}
.visual-review-layout > .concern-viewer {
  position: sticky;
  top: 12px;
}
.visual-review-layout .issue-detail {
  padding: 0 !important;
  min-width: 0;
}
.review-layout.visual-review {
  grid-template-columns: 230px minmax(0, 1fr);
  gap: 20px;
}
.visual-review .review-filters {
  gap: 8px;
}
.visual-review .issue-detail-top h2 {
  font-size: 23px;
}
.visual-review .issue-description {
  font-size: 14px;
  line-height: 1.5;
}
.visual-review .review-card {
  padding: 14px;
}
.review-extra {
  margin: 18px 0;
  border: 1px solid #dce6ec;
  border-radius: 9px;
  padding: 12px;
}
.review-extra > summary {
  cursor: pointer;
  font-size: 13px;
  color: #426a7c;
  font-weight: 600;
  min-height: 30px;
}
.review-extra .ref-list {
  margin-top: 12px;
}
.review-extra p {
  font-size: 13px;
}
.visual-review .form-grid {
  gap: 12px;
}
.visual-review .decision-form {
  padding-top: 12px;
}
.visual-review .decision-form > p {
  font-size: 12px;
}
.visual-review .decision-form .form-grid {
  grid-template-columns: 1fr;
}
.visual-review .decision-form textarea {
  min-height: 70px;
}
.visual-review .decision-form h3 {
  font-size: 18px;
}
.guided-visual-queue {
  display: grid;
  grid-template-columns: minmax(280px, 0.7fr) minmax(400px, 1.3fr);
  gap: 24px;
  align-items: start;
}
.guided-visual-queue > .concern-viewer {
  position: sticky;
  top: 12px;
}
.visual-task {
  width: 100%;
  display: flex;
  text-align: left;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border: 1px solid #d4e2e9;
  border-radius: 10px;
  background: #fff;
  margin-bottom: 10px;
}
.visual-task.selected {
  border-color: #44969f;
  background: #eaf6f5;
  box-shadow: 0 0 0 2px #2e919315;
}
.visual-task .task-signal {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: none;
  background: #daa958;
  box-shadow: 0 0 8px #e3b35655;
}
.visual-task.blocker .task-signal {
  background: #e4756b;
  box-shadow: 0 0 9px #e4756b55;
}
.visual-task span:nth-child(2) {
  flex: 1;
  min-width: 0;
}
.visual-task strong {
  display: block;
  font-size: 14px;
}
.visual-task small {
  display: block;
  font-size: 12px;
  color: #78909f;
  margin-top: 5px;
}
.visual-task-next {
  font-size: 13px;
  padding: 12px 4px;
  color: #617e8d;
}
.shot-guide {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 0;
  background: #142234;
  color: #e1eef7;
  border-radius: 12px;
  overflow: hidden;
  margin: 14px 28px 24px;
}
.shot-guide .shot-controls {
  padding: 24px;
  min-width: 0;
}
.shot-visual {
  min-width: 0;
}
.shot-selector {
  padding: 20px;
  display: grid;
  gap: 10px;
}
.shot-guide .concern-viewer {
  margin: 0;
  border: 0;
  border-radius: 0;
  min-width: 0;
}
.shot-guide .concern-canvas {
  height: 400px;
}
.shot-guide .shot-selector button {
  white-space: normal;
  height: auto;
  min-height: 44px;
}
.shot-guide h2 {
  font-size: 22px;
  margin: 0 0 12px;
}
.shot-step {
  display: flex;
  align-items: start;
  gap: 12px;
  padding: 12px;
  text-align: left;
  width: 100%;
  border: 1px solid #344c62;
  border-radius: 9px;
  margin: 8px 0;
  min-height: 55px;
}
.shot-step.active {
  border-color: #ddb15f;
  background: #ffffff08;
}
.shot-step > span {
  border: 1px solid #7fabc2;
  border-radius: 50%;
  width: 25px;
  height: 25px;
  text-align: center;
  flex: none;
}
.shot-step strong {
  display: block;
  font-size: 14px;
}
.shot-step small {
  display: block;
  color: #a8c1d2;
  font-size: 12px;
  margin-top: 4px;
}
.shot-guide .inline-actions {
  margin-top: 16px;
  flex-wrap: wrap;
}
.shot-guide .inline-actions button {
  white-space: normal;
  height: auto;
  min-height: 44px;
}
@media (max-width: 1100px) {
  .shot-guide {
    grid-template-columns: minmax(0, 1fr);
  }
}
.shot-guide .shot-footnote {
  font-size: 12px;
  color: #9fb9cc;
  margin-top: 12px;
}
.fit-visual {
  background: #142234;
  border-radius: 12px;
  overflow: hidden;
  margin: 0 0 22px;
  color: #e2ecf3;
}
.fit-visual svg {
  display: block;
  width: 100%;
  height: 260px;
}
.fit-visual label {
  display: block;
  padding: 12px 16px;
  font-size: 13px;
}
.fit-visual select {
  background: #263f53;
  color: #eef5f9;
  border: 1px solid #5d7f94;
  border-radius: 6px;
  min-height: 44px;
  width: 100%;
  padding: 8px;
}
.fit-visual > p {
  padding: 0 16px 12px;
  font-size: 12px;
  color: #a7bfce;
  margin: 0;
}
.study-results {
  position: sticky;
  top: 12px;
}
.study-form {
  order: 2;
}
.study-results {
  order: 1;
}
.study-editor {
  align-items: start;
}
.scene-host {
  position: relative;
}
.review-packet-preview {
  height: min(42dvh, 360px);
  min-height: 240px;
  overflow: hidden;
  border-radius: 10px;
  margin: 12px 0;
}
.review-packet-preview.review-packet-drawing {
  height: min(38dvh, 320px);
  min-height: 220px;
  display: flex;
  flex-direction: column;
  background: #142234;
}
.review-packet-drawing > :first-child {
  flex: 1;
  min-height: 0;
}
.review-packet-dialog .review-preview-source {
  margin: 0;
  padding: 8px 12px;
  color: #d4e3ed;
  font-size: 12px;
}
.missing-condition-visual {
  min-height: 160px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 20px;
  text-align: center;
  background: #142234;
  color: #d4e3ed;
}
.missing-condition-visual p {
  max-width: 380px;
  margin: 0;
  font-size: 13px;
}
.issue-create-dialog {
  max-width: min(1180px, 96vw) !important;
}
.issue-create-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.issue-create-visual,
.issue-create-fields {
  min-width: 0;
}
.issue-create-canvas {
  height: clamp(250px, 45dvh, 500px);
  margin: 12px 0;
  overflow: hidden;
  border-radius: 10px;
  background: #142234;
}
.issue-create-canvas > .pdf-container {
  height: 100%;
  min-height: 0;
}
.issue-create-visual > p {
  font-size: 13px;
  line-height: 1.5;
  color: #536b7c;
}
.issue-create-visual .inline-actions {
  flex-wrap: wrap;
}
@media (max-width: 800px) {
  .issue-create-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .issue-create-canvas {
    height: 38dvh;
  }
}
.review-packet-dialog .dialog-description {
  font-size: 13px;
}
@media (max-width: 1200px) {
  .review-layout.visual-review {
    grid-template-columns: 190px minmax(0, 1fr);
  }
  .visual-review-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .visual-review-layout > .concern-viewer {
    position: relative;
    top: 0;
  }
  .visual-review .decision-form .form-grid {
    grid-template-columns: 1fr 1fr;
  }
  .concern-canvas {
    height: 380px;
  }
  .guided-visual-queue {
    grid-template-columns: minmax(220px, 0.65fr) minmax(360px, 1.35fr);
  }
}
@media (max-width: 800px) {
  .review-layout.visual-review {
    grid-template-columns: 1fr;
  }
  .visual-review .review-list {
    max-height: 230px;
    overflow: auto;
    display: flex;
    gap: 8px;
    align-items: stretch;
    padding-bottom: 8px;
  }
  .visual-review .review-filters {
    min-width: 190px;
  }
  .visual-review .review-card {
    min-width: 200px;
    max-width: 220px;
    flex-shrink: 0;
  }
  .visual-review .result-count {
    display: none;
  }
  .visual-review-layout {
    gap: 16px;
  }
  .guided-visual-queue {
    grid-template-columns: 1fr;
  }
  .guided-visual-queue > .concern-viewer {
    position: relative;
    top: 0;
    grid-row: 1;
  }
  .guided-visual-queue .guided-task-list {
    max-height: 320px;
    overflow: auto;
  }
  .shot-guide {
    grid-template-columns: 1fr;
    margin: 12px;
  }
  .shot-guide > .survey-sketch {
    height: 250px;
  }
  .concern-canvas {
    height: 350px;
  }
  .study-results {
    position: relative;
    top: 0;
  }
  .study-editor {
    display: flex;
    flex-direction: column;
  }
  .study-editor > .study-results,
  .study-editor > .study-form {
    width: 100%;
  }
  .visual-review .decision-form .form-grid {
    grid-template-columns: 1fr;
  }
}

/* Keep the condition itself readable at field viewing distance. */
.concern-explanation p {
  font-size: 1rem;
}
.concern-view-tabs button,
.concern-source-strip button,
.concern-region-switch,
.concern-ink {
  font-size: 0.875rem;
}
.concern-pin-target,
.concern-popover p,
.concern-popover button {
  font-size: 0.875rem;
}
.concern-popover strong {
  font-size: 1rem;
}
.concern-visual-heading,
.concern-canvas-caption,
.concern-source-note {
  font-size: 0.75rem;
}

@media (min-width: 801px) and (max-width: 1200px) {
  .visual-review-layout {
    grid-template-columns: minmax(280px, 1.1fr) minmax(250px, 0.9fr);
  }
  .visual-review-layout > .concern-viewer {
    position: sticky;
    top: 12px;
  }
  .visual-review .decision-form .form-grid {
    grid-template-columns: 1fr;
  }
  .visual-review-layout .concern-canvas {
    height: 310px;
  }
}

.concern-view-tabs button:hover,
.concern-view-tabs button:focus-visible {
  color: #183342;
  background: #dfedf4;
}

.review-packet-preview > .scene-host {
  height: 100%;
}

.issue-notes { margin-block: 24px; padding: 18px; border: 1px solid #d9e2e9; border-radius: 8px; background: #fff; color: #263443; }
.issue-notes h3 { margin: 0 0 8px; }
.issue-notes-help { color: #526777; }
.issue-note-list { list-style: none; margin: 16px 0; padding: 0; }
.issue-note-list li { padding-block: 14px; border-bottom: 1px solid #d9e2e9; overflow-wrap: anywhere; }
.issue-note-list time { display: block; margin-top: 4px; font-size: 13px; color: #526777; }
.issue-note-list p { white-space: pre-wrap; }
.issue-note-form { display: grid; gap: 10px; margin-top: 16px; }
.issue-note-form > div { display: flex; flex-wrap: wrap; gap: 8px; }
.issue-notes [role="alert"] { color: #a43131; }
.intake-workspace,
.revision-workspace {
  padding: 28px;
  min-height: 100%;
  background: #f7fafb;
  color: #253c4d;
}
.intake-heading {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 20px;
  margin-bottom: 22px;
}
.intake-heading h1 {
  font-size: 28px;
  font-weight: 650;
  letter-spacing: -0.04em;
  margin: 4px 0;
}
.intake-heading p {
  font-size: 15px;
  color: #6d8696;
  margin: 6px 0;
}
.intake-drop {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 22px;
  border: 1px dashed #92b9c2;
  border-radius: 12px;
  background: #edf7f7;
  margin-bottom: 24px;
  transition: box-shadow 0.15s;
}
.intake-drop.dragging {
  background: #d6eeec;
  box-shadow: 0 0 0 4px #529da329;
}
.intake-drop > svg {
  width: 30px;
  height: 30px;
  color: #39878c;
  flex-shrink: 0;
}
.intake-drop > div {
  flex: 1;
}
.intake-drop strong,
.intake-drop span {
  display: block;
}
.intake-drop span {
  font-size: 13px;
  color: #6b8794;
  margin-top: 4px;
}
.intake-body {
  display: grid;
  grid-template-columns: 255px minmax(0, 1fr);
  gap: 25px;
  align-items: start;
}
.intake-sets {
  display: flex;
  flex-direction: column;
  gap: 8px;
  position: sticky;
  top: 12px;
}
.intake-sets > button {
  display: flex;
  gap: 10px;
  align-items: start;
  padding: 13px;
  text-align: left;
  border: 1px solid #dde7eb;
  background: #fff;
  border-radius: 9px;
  white-space: normal;
  min-height: 46px;
  height: auto;
}
.intake-sets > button > svg {
  width: 17px;
  flex-shrink: 0;
  margin-top: 3px;
}
.intake-sets > button.active {
  border-color: #5ea2a7;
  background: #eaf4f3;
  box-shadow: 0 0 0 2px #6ab1b415;
}
.intake-sets strong {
  font-size: 14px;
  font-weight: 600;
  display: block;
  overflow-wrap: anywhere;
}
.intake-sets small {
  font-size: 12px;
  color: #758d9b;
  display: block;
  margin-top: 6px;
}
.intake-path {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 24px 6px;
  color: #5d7c8d;
  font-size: 14px;
  list-style: none;
}
.intake-path li {
  display: flex;
  align-items: center;
  gap: 12px;
}
.intake-path li > span {
  display: grid;
  place-items: center;
  border: 1px solid #8eb2bd;
  border-radius: 50%;
  width: 26px;
  height: 26px;
  color: #317d88;
}
.intake-content {
  min-width: 0;
}
.intake-page-heading {
  display: flex;
  gap: 24px;
  align-items: start;
  justify-content: space-between;
  margin-bottom: 16px;
}
.intake-page-heading h2 {
  font-size: 20px;
  line-height: 1.35;
  margin: 0;
  font-weight: 650;
  overflow-wrap: anywhere;
}
.intake-page-heading p {
  font-size: 15px;
  color: #698391;
  max-width: 630px;
  margin-top: 8px;
}
.intake-page-heading label {
  font-size: 13px;
  min-width: 180px;
  color: #668190;
}
.intake-page-heading label > button {
  margin-top: 6px;
}
.intake-preview {
  height: 460px;
  overflow: auto;
  border: 1px solid #cfdee6;
  border-radius: 12px;
  background: #e4edf1;
}
.intake-preview .pdf-container {
  height: 100%;
}
.intake-preview.intake-native-preview {
  height: auto;
  overflow: visible;
}
.intake-native-preview .cad-stage {
  border-radius: 12px;
}
.intake-page-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 14px 0;
}
.intake-page-actions button {
  min-height: 44px;
}
.intake-reading-note {
  font-size: 13px;
  color: #78909f;
  margin: 12px 0 25px;
}
.intake-page-filter {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: center;
  margin-bottom: 15px;
}
.intake-page-filter h3 {
  font-size: 16px;
  font-weight: 600;
}
.intake-page-filter > button {
  width: 220px;
}
.intake-sheet-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0 0 15px;
}
.intake-sheet-grid > button {
  padding: 9px;
  background: #fff;
  border: 1px solid #d7e2e9;
  border-radius: 10px;
  text-align: left;
  overflow: hidden;
}
.intake-sheet-grid > button.selected {
  border-color: #268a92;
  box-shadow: 0 0 0 2px #50a1a52b;
}
.intake-sheet-grid strong {
  display: block;
  font-size: 14px;
  margin: 8px 3px 2px;
}
.intake-sheet-grid small {
  display: block;
  font-size: 12px;
  color: #7c929f;
  margin: 0 3px 4px;
}
.sheet-thumbnail {
  height: 140px;
  overflow: hidden;
  background: #e8eff1;
  border: 1px solid #e4eaed;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sheet-thumbnail canvas {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  background: #fff;
}
.sheet-thumbnail span {
  font-size: 12px;
  padding: 20px;
  color: #7992a0;
}
.intake-empty-visual {
  min-height: 430px;
  padding: 30px;
  text-align: center;
  background: #fff;
  border: 1px solid #d5e3e8;
  border-radius: 12px;
}
.intake-empty-visual svg {
  width: 100%;
  max-width: 480px;
  height: 300px;
}
.intake-empty-visual h2 {
  font-size: 22px;
  margin: 12px 0;
}
.intake-empty-visual p {
  font-size: 16px;
  color: #748c9b;
  max-width: 540px;
  margin: 12px auto;
}
.revision-controls {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 16px;
}
.revision-controls > div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 85px;
  gap: 12px;
}
.revision-controls label,
.revision-review label {
  font-size: 14px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: #678190;
}
.revision-body {
  display: grid;
  grid-template-columns: minmax(400px, 1fr) 290px;
  gap: 24px;
  margin-top: 20px;
  align-items: start;
}
.revision-visual {
  border: 1px solid #d1e0e7;
  background: #e7eef1;
  border-radius: 12px;
  overflow: hidden;
  min-width: 0;
}
.revision-legend {
  display: flex;
  gap: 24px;
  padding: 12px 18px;
  background: #172b3d;
  color: #ffc96b;
  font-size: 14px;
}
.revision-legend span:first-child {
  color: #ff9baf;
}
.revision-canvas {
  position: relative;
  line-height: 0;
  background: #fff;
  margin: 15px;
}
.revision-canvas canvas {
  width: 100%;
  height: auto;
}
.revision-canvas svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.revision-canvas rect {
  fill: #eda63109;
  stroke: #ecad53;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  cursor: pointer;
}
.revision-canvas rect:hover,
.revision-canvas rect.active {
  fill: #ffc36238;
  stroke-width: 3;
  filter: drop-shadow(0 0 3px #f6bd59);
}
.revision-blend {
  display: flex;
  gap: 20px;
  align-items: center;
  padding: 16px 20px;
  font-size: 14px;
}
.revision-blend [data-slot='slider'] {
  flex: 1;
}
.revision-review {
  display: flex;
  flex-direction: column;
  gap: 15px;
  position: sticky;
  top: 12px;
}
.revision-review h2 {
  font-size: 23px;
  line-height: 1.2;
  font-weight: 650;
}
.revision-review p {
  font-size: 14px;
  line-height: 1.5;
}
.revision-review small {
  display: flex;
  gap: 7px;
  color: #75929f;
  font-size: 12px;
}
.revision-review button {
  min-height: 44px;
}
.revision-empty {
  padding: 25px;
  text-align: center;
  color: #647f90;
}
.revision-empty svg {
  width: 100%;
  height: 350px;
}
.revision-workspace > .inline-actions {
  flex-wrap: wrap;
}
.intake-sets > button[disabled] {
  opacity: 0.5;
}
@media (max-width: 1100px) {
  .intake-body {
    grid-template-columns: 215px minmax(0, 1fr);
  }
  .intake-page-heading {
    flex-direction: column;
    gap: 10px;
  }
  .intake-page-heading label {
    width: 220px;
  }
  .intake-sheet-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .revision-body {
    grid-template-columns: minmax(350px, 1fr) 250px;
  }
  .intake-workspace,
  .revision-workspace {
    padding: 20px;
  }
}
@media (max-width: 800px) {
  .intake-heading {
    flex-direction: column;
    gap: 10px;
  }
  .intake-heading h1 {
    font-size: 24px;
  }
  .intake-drop {
    flex-wrap: wrap;
    padding: 17px;
    gap: 12px;
  }
  .intake-drop span {
    font-size: 12px;
  }
  .intake-body {
    grid-template-columns: 1fr;
  }
  .intake-sets {
    position: relative;
    top: 0;
    display: flex;
    flex-direction: row;
    overflow: auto;
    padding-bottom: 8px;
  }
  .intake-sets > button {
    min-width: 210px;
    max-width: 260px;
    flex-shrink: 0;
  }
  .intake-path {
    display: none;
  }
  .intake-preview {
    height: 370px;
  }
  .revision-body {
    grid-template-columns: 1fr;
  }
  .revision-review {
    position: relative;
    top: 0;
  }
  .revision-controls {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .revision-empty svg {
    height: 270px;
  }
  .intake-sheet-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sheet-thumbnail {
    height: 120px;
  }
  .intake-workspace,
  .revision-workspace {
    padding: 16px;
  }
}

.revision-review .fine-drawing-changes {
  flex-direction: row;
  align-items: start;
  font-size: 0.8125rem;
  line-height: 1.45;
}
.fine-drawing-changes input {
  margin-top: 4px;
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  accent-color: #227b83;
}
.native-reading-review{border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin:16px 0}.native-reading-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(200px,1fr);gap:16px;margin-top:16px}.native-reading-original{display:flex;flex-direction:column;height:480px;min-height:280px}.native-reading-captions{display:flex;flex-direction:column;gap:8px;max-height:480px;overflow:auto}.native-reading-captions button{white-space:normal;height:auto;min-height:44px;text-align:left}@media(max-width:850px){.native-reading-layout{grid-template-columns:minmax(0,1fr)}.native-reading-original{display:flex;flex-direction:column;height:400px}}
.plan-builder {
  flex: 1;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  display: grid;
  height: 100%;
  grid-template-columns: minmax(0, 1fr) 340px;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  background: #eff4f7;
  color: #263c4c;
}
.drawing-region-context {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 9px 18px;
  background: #fff6e2;
  border-block: 1px solid #e6c885;
  color: #745315;
  font-size: 13px;
}
.drawing-document-header {
  flex-wrap: wrap;
}
.drawing-document-header > div:first-child {
  flex: 1 1 300px;
  min-width: 0;
}
.drawing-document-header > .inline-actions {
  flex-wrap: wrap;
  max-width: 100%;
}
.cp-app:has(.plan-builder) {
  height: 100dvh;
  min-height: 0;
}
.cp-app:has(.plan-builder) .workspace-layout {
  min-height: 0;
  display: grid;
  grid-template-rows: minmax(0, 1fr);
}
.cp-app:has(.plan-builder) .main-workspace {
  height: 100%;
  min-height: 0;
  overflow: hidden;
}
.plan-build-heading {
  grid-area: 1 / 1 / 2 / -1;
  display: flex;
  align-items: center;
  gap: 22px;
  padding: 14px 20px;
  background: #fff;
  border-bottom: 1px solid #d3e0e7;
}
.plan-build-heading h2 {
  font-size: 23px;
  letter-spacing: -0.6px;
  font-weight: 600;
}
.plan-build-heading p,
.plan-build-controls p {
  color: #5c7486;
  font-size: 14px;
  line-height: 1.6;
}
.plan-build-status {
  margin-left: auto;
  color: #775721;
  background: #fff3d8;
  border: 1px solid #e5d0a7;
  border-radius: 24px;
  padding: 8px 14px;
  font-size: 14px;
}
.plan-build-steps {
  grid-area: 2 / 1 / 3 / -1;
  display: flex;
  gap: 10px;
  padding: 16px 24px;
  flex-wrap: wrap;
}
.plan-build-visuals {
  grid-area: 3 / 1 / 4 / 2;
  min-height: 0;
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 1px;
  background: #365264;
  margin: 0 0 0 16px;
  border: 1px solid #365264;
  border-radius: 18px;
  overflow: hidden;
  isolation: isolate;
}
.plan-build-drawing,
.plan-build-model {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: #142534;
  color: #dcebf3;
}
.plan-build-toolbar {
  flex: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 16px;
  min-height: 58px;
  font-size: 14px;
}
.plan-build-toolbar button {
  color: #e2edf5;
  border-color: #5c788b;
  flex-shrink: 0;
}
.plan-build-toolbar button:hover {
  background: #2e4d5f;
  color: #fff;
}
.plan-build-toolbar strong {
  font-weight: 500;
}
.plan-build-toolbar span {
  font-size: 14px;
  color: #bbceda;
}
.plan-build-drawing .pdf-container {
  height: 100%;
  min-height: 0;
  flex: 1;
  width: 100%;
  background: #d8e0e6;
}
.plan-build-drawing .pdf-scroller {
  height: 100%;
}
.plan-build-scene {
  position: relative;
  height: 100%;
  min-height: 0;
  flex: 1;
  overflow: hidden;
}
.plan-build-scene > .scene-host {
  height: 100%;
}
.plan-build-start {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 32px;
  gap: 12px;
}
.plan-build-start svg {
  max-width: 320px;
  width: 100%;
}
.plan-build-start h3 {
  font-size: 20px;
  font-weight: 550;
}
.plan-build-start p {
  max-width: 320px;
  font-size: 16px;
  line-height: 1.6;
  color: #a9c0cf;
}
.plan-build-message {
  grid-area: 4 / 1 / 5 / -1;
  margin: 10px 16px 0;
  max-height: 70px;
  overflow: auto;
  padding: 14px 18px;
  background: #fff5dc;
  border: 1px solid #e4c990;
  border-radius: 12px;
  font-size: 16px;
}
.plan-build-message.error {
  color: #883b37;
  background: #fff0ec;
  border-color: #dfb4aa;
}
.plan-build-controls {
  grid-area: 3 / 2 / 4 / 3;
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: auto;
  gap: 14px;
  padding: 0 16px;
}
.plan-build-controls > section {
  flex: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 14px;
  background: #fff;
  border: 1px solid #d5e0e8;
  border-radius: 16px;
  padding: 20px;
  min-width: 0;
}
.plan-build-controls h3 {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  font-weight: 600;
}
.plan-build-controls h3 svg {
  width: 20px;
  height: 20px;
  color: #167680;
}
.plan-build-controls label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
}
.plan-build-controls input {
  font-size: 16px;
  min-height: 44px;
  width: 100%;
}
.plan-build-controls button {
  min-height: 44px;
}
.plan-build-two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.plan-build-two > label {
  min-width: 0;
}
.plan-build-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.plan-build-controls label.plan-build-check {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.5;
}
.plan-build-check > button {
  min-height: 22px;
  margin-top: 2px;
  flex-shrink: 0;
}
.plan-build-active {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  border-radius: 10px;
  border: 1px solid #c1dae0;
  background: #ecf7f8;
  font-size: 14px;
}
.plan-build-limits {
  grid-area: 5 / 1 / 6 / -1;
  margin: 0 16px;
  padding: 10px 0;
  max-height: 120px;
  overflow: auto;
  font-size: 14px;
  color: #577181;
}
.plan-build-limits summary {
  cursor: pointer;
  font-weight: 600;
}
.plan-build-limits p {
  margin-top: 12px;
  max-width: 1000px;
  line-height: 1.6;
}
.plan-build-mobile-tabs {
  display: none;
}
@media (max-width: 1100px) {
  .plan-build-status {
    display: none;
  }
  .plan-build-heading h2 {
    font-size: 20px;
  }
}
@media (max-width: 1100px) {
  .plan-build-heading {
    display: none;
  }
  .plan-builder {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto minmax(240px, 1fr) auto minmax(
        155px,
        0.8fr
      ) auto;
  }
  .plan-build-heading {
    padding: 16px;
    gap: 10px;
    align-items: flex-start;
  }
  .plan-build-heading h2 {
    font-size: 16px;
  }
  .plan-build-heading .eyebrow {
    display: none;
  }
  .plan-build-heading > div {
    min-width: 0;
  }
  .plan-build-heading p {
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .plan-build-steps {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 12px;
    gap: 8px;
  }
  .plan-build-steps button {
    min-width: 0;
    padding-inline: 8px;
    gap: 6px;
    flex: 1;
    min-height: 48px;
    font-size: 14px;
  }
  .plan-build-steps button svg:not(:first-child) {
    display: none;
  }
  .plan-build-visuals {
    grid-area: 4 / 1 / 5 / 2;
    display: block;
    margin: 0 12px;
  }
  .plan-build-visuals.show-plan .plan-build-model,
  .plan-build-visuals.show-model .plan-build-drawing {
    display: none;
  }
  .plan-build-mobile-tabs {
    grid-area: 3 / 1 / 4 / 2;
    background: #eff4f7;
    display: flex;
    gap: 8px;
    padding: 0 12px 12px;
  }
  .plan-build-mobile-tabs button {
    flex: 1;
    min-height: 44px;
  }
  .plan-build-mobile-tabs button:first-child {
    flex: none;
    width: 44px;
  }
  .plan-build-drawing .pdf-container,
  .plan-build-scene {
    height: 100%;
    min-height: 0;
  }
  .plan-build-drawing,
  .plan-build-model {
    height: 100%;
  }
  .plan-build-controls {
    grid-area: 6 / 1 / 7 / 2;
    padding: 10px 12px;
    gap: 14px;
  }
  .plan-build-message {
    grid-area: 5 / 1 / 6 / 2;
    margin: 8px 12px 0;
    max-height: 55px;
    padding: 8px 12px;
    font-size: 14px;
  }
  .plan-build-toolbar {
    padding: 10px 12px;
    flex-wrap: wrap;
  }
  .plan-build-start {
    padding: 18px;
  }
  .plan-build-start svg {
    max-height: 130px;
  }
  .plan-build-limits {
    grid-area: 7 / 1 / 8 / 2;
    margin: 0 12px;
    max-height: 80px;
  }
}
.run-editor {
  width: min(1360px, calc(100vw - 32px));
  max-width: none;
  height: min(800px, calc(100dvh - 32px));
  max-height: none;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-radius: 20px;
  background: #f4f7f9;
}
.run-editor-heading {
  padding: 18px 48px 16px 22px;
  border-bottom: 1px solid #d5e0e7;
  background: white;
  flex: none;
}
.run-editor-heading h2 {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.5px;
}
.run-editor-heading p {
  color: #60788a;
  font-size: 14px;
  overflow-wrap: anywhere;
}
.run-editor-body {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 290px;
  flex: 1;
  min-height: 0;
}
.run-editor-visual-column {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  padding: 16px;
}
.run-editor-tabs {
  display: none;
}
.run-editor-visuals {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  flex: 1;
  min-height: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #547081;
  border: 1px solid #456477;
}
.run-model,
.run-source {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  background: #152736;
  color: #e4eef5;
}
.run-visual-toolbar {
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  font-size: 13px;
  min-height: 58px;
}
.run-visual-toolbar button,
.run-display-modes button,
.run-source-zoom button {
  color: #e7f0f7;
  background: #243e50;
  border-color: #68818e;
}
.run-display-modes {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 0 12px 10px;
}
.run-display-modes button {
  font-size: 13px;
}
.run-display-modes button[data-variant='default'] {
  background: #176b73;
}
.run-model-canvas {
  position: relative;
  flex: 1;
  min-height: 0;
}
.run-model-canvas > * {
  position: absolute;
  inset: 0;
}
.run-visual-caption {
  flex: none;
  padding: 12px;
  color: #bacdd8;
  font-size: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.run-before-dot,
.run-after-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  display: inline-block;
  background: #93a2b5;
}
.run-after-dot {
  background: #29b8b0;
}
.run-source .pdf-container {
  flex: 1;
  min-height: 0;
  background: #dce4ea;
}
.run-source-zoom {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px;
}
.run-source-zoom span {
  font-size: 12px;
  color: #b8cbd7;
}
.run-edit-controls {
  padding: 18px;
  overflow: auto;
  min-height: 0;
  border-left: 1px solid #d5e0e7;
  background: white;
}
.run-edit-controls h3 {
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 14px;
}
.run-dimension-input {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0 0 15px;
  font-size: 13px;
  font-weight: 500;
  color: #526b7e;
}
.run-dimension-input small {
  font-size: 12px;
  color: #73889a;
  font-weight: 400;
}
.run-dimension-input textarea {
  width: 100%;
  padding: 10px;
  resize: vertical;
  min-height: 74px;
  border: 1px solid #c9d8e2;
  border-radius: 8px;
  font: inherit;
  color: #294252;
}
.run-input-help,
.run-exclusion-note p {
  font-size: 13px;
  line-height: 1.5;
  color: #627d8d;
  margin: 8px 0 16px;
}
.run-change-summary {
  border-left: 3px solid #2da9a5;
  padding: 10px;
  background: #edf8f7;
  color: #1d696d;
  font-size: 13px;
  margin: 12px 0;
}
.run-exclude-button {
  width: 100%;
  border-color: #dea092;
  color: #a34d3f;
}
.run-correction-history {
  margin-top: 20px;
  font-size: 12px;
  color: #617e90;
}
.run-correction-history summary {
  cursor: pointer;
  padding: 9px 0;
}
.run-correction-history > div {
  padding: 12px 0;
  border-top: 1px solid #d7e2e9;
}
.run-editor-footer {
  flex: none;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: white;
  border-top: 1px solid #d5e0e7;
}
.run-editor-footer > span {
  margin-right: auto;
  font-size: 12px;
  color: #708694;
}
.run-inline-error,
.run-editor-error {
  color: #a64c3d;
  font-size: 13px;
}
.run-editor-error {
  padding: 12px 20px;
  background: #fff0ea;
  border-top: 1px solid #e5bcae;
}
.building-excluded {
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid #d5e0e7;
}
.building-excluded summary {
  cursor: pointer;
  font-size: 13px;
  color: #526f82;
}
.building-excluded button {
  display: block;
  width: 100%;
  padding: 12px 0;
  text-align: left;
  font-size: 13px;
  color: #59788c;
}
@media (max-width: 1100px) {
  .run-editor-visuals {
    display: flex;
  }
  .run-model,
  .run-source {
    flex: 1;
  }
  .run-editor-visuals .run-tab-hidden {
    display: none;
  }
  .run-editor-tabs {
    display: flex;
    gap: 8px;
    padding-bottom: 10px;
  }
}
@media (max-width: 700px) {
  .run-editor {
    width: calc(100vw - 16px);
    height: calc(100dvh - 16px);
    border-radius: 16px;
  }
  .run-editor-heading {
    padding: 14px 40px 12px 16px;
  }
  .run-editor-heading h2 {
    font-size: 19px;
  }
  .run-editor-heading p {
    font-size: 12px;
  }
  .run-editor-body {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: minmax(230px, 1.2fr) minmax(140px, 1fr);
  }
  .run-editor-visual-column {
    padding: 10px;
  }
  .run-edit-controls {
    border-left: none;
    border-top: 1px solid #d5e0e7;
    padding: 14px;
  }
  .run-editor-footer {
    flex-wrap: wrap;
    padding: 10px 14px;
    justify-content: flex-end;
  }
  .run-editor-footer > span {
    flex-basis: 100%;
    font-size: 11px;
  }
  .run-editor-tabs button,
  .run-editor-footer button {
    min-height: 42px;
  }
  .run-visual-toolbar {
    min-height: 46px;
    padding: 8px 10px;
  }
  .run-visual-caption {
    padding: 8px;
  }
  .run-display-modes {
    padding-bottom: 6px;
  }
}
/* Screen-size points remain round on any sheet aspect ratio or zoom level. */
.pdf-point {
  position: absolute;
  width: 16px;
  height: 16px;
  transform: translate(-50%, -50%);
  pointer-events: none;
  z-index: 1;
  display: grid;
  place-items: center;
  color: #d54a25;
}
.pdf-point::before,
.pdf-point::after {
  content: '';
  position: absolute;
  background: currentColor;
  box-shadow: 0 0 1px white;
}
.pdf-point::before {
  height: 1px;
  width: 16px;
}
.pdf-point::after {
  width: 1px;
  height: 16px;
}
.pdf-point i {
  width: 7px;
  height: 7px;
  border: 1.5px solid white;
  border-radius: 50%;
  background: #d54a25;
  box-shadow: 0 0 0 1px #d54a25;
  z-index: 1;
}
.pdf-point b {
  position: absolute;
  left: 11px;
  bottom: 9px;
  font: 600 11px/16px system-ui;
  background: white;
  color: #a32f10;
  border-radius: 4px;
  padding: 0 4px;
  box-shadow: 0 1px 3px #172b4333;
}
.scene-navigating .concern-pin-target {
  pointer-events: none;
}
.building-view {
  overflow-y: auto;
  scrollbar-gutter: stable;
  overscroll-behavior-y: contain;
}
.building-view::-webkit-scrollbar,
.building-navigation::-webkit-scrollbar,
.building-inspector::-webkit-scrollbar {
  width: 10px;
}
.building-view::-webkit-scrollbar-thumb {
  background: #648294;
  border: 2px solid #142234;
  border-radius: 8px;
}
@media (min-width: 1001px) {
  .building-canvas {
    min-height: 220px;
  }
  .building-basis {
    flex: none;
  }
}
.surface-color {
  padding: 14px 0;
  border-bottom: 1px solid #d8e3e9;
  font-size: 12px;
}
.surface-color summary {
  font-weight: 600;
  cursor: pointer;
  padding: 8px 0;
}
.surface-color p,
.surface-color small {
  color: #627b8b;
  line-height: 1.5;
  display: block;
  margin: 8px 0;
}
.surface-color-value {
  display: flex;
  gap: 12px;
  align-items: center;
}
.surface-color-value input {
  width: 58px;
  height: 40px;
  cursor: pointer;
}
.surface-swatches {
  display: flex;
  gap: 8px;
  margin: 12px 0;
}
.surface-swatches button {
  width: 38px;
  height: 38px;
  border: 1px solid #98a7b4;
  border-radius: 50%;
}
.surface-apply-all {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 14px 0;
}
.connection-library {
  width: min(1250px, calc(100vw - 32px));
  max-width: none;
  height: calc(100dvh - 40px);
  max-height: 820px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  gap: 12px;
  padding: 20px;
  border-radius: 20px;
}
.connection-library-tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  flex: none;
  padding-bottom: 4px;
}
.connection-library-tabs button {
  flex: none;
}
.connection-library-body {
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 16px;
  min-height: 0;
  flex: 1;
}
.connection-library-body > aside {
  overflow: auto;
  min-height: 0;
  padding-right: 6px;
}
.connection-choice {
  display: flex;
  flex-direction: column;
  text-align: left;
  width: 100%;
  padding: 15px 12px;
  border: 1px solid #d1dfe7;
  border-radius: 12px;
  margin-bottom: 9px;
  gap: 7px;
}
.connection-choice span {
  font-size: 12px;
  color: #6b8192;
}
.connection-choice.active {
  background: #e6f4f4;
  border-color: #439ca3;
  box-shadow: 0 0 10px #349da21a;
}
.connection-library-drawing {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #e6edf2;
}
.connection-library-drawing header {
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  background: #203647;
  color: white;
}
.connection-library-drawing header span {
  font-size: 12px;
  color: #c1d4df;
}
.connection-library-drawing footer {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  padding: 10px 14px;
  background: white;
}
.connection-library-note {
  font-size: 12px;
  padding: 10px 14px;
  color: #5c7485;
  background: white;
}
.connection-empty-visual {
  flex: 1;
  display: grid;
  place-items: center;
  color: #607989;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 29px,
    #b4c9d744 30px
  );
}
.connection-link-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.connection-link-form label {
  font-size: 12px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.connection-link-form select {
  max-width: 100%;
  padding: 8px;
  border: 1px solid #c6d5df;
  border-radius: 6px;
}
.connection-link-form p {
  font-size: 12px;
  color: #587082;
}
@media (max-width: 700px) {
  .connection-library {
    padding: 16px 10px;
    width: calc(100vw - 12px);
    height: calc(100dvh - 12px);
    max-height: none;
    border-radius: 16px;
  }
  .connection-library-body {
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .connection-library-body > aside {
    max-height: 32%;
    flex: none;
  }
  .connection-library-drawing {
    flex: 1;
    min-height: 230px;
  }
  .connection-choice {
    padding: 10px;
    margin-bottom: 6px;
  }
  .connection-library h2 {
    font-size: 18px;
    padding-right: 20px;
  }
  .connection-library-note {
    font-size: 11px;
  }
}

.workspace-recovery {
  min-height: 100dvh;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 20px;
  padding: 32px;
  text-align: center;
  background: #142534;
  color: #dcebf3;
}
.workspace-recovery h1 {
  font-size: 28px;
}
.workspace-recovery > div {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
}
.workspace-recovery small {
  color: #b8cbd7;
}
.workspace-recovery .recovery-light-button {
  color: #243b4b;
  background: #f4f7fa;
  border-color: #bbcbd5;
}
.workspace-recovery .recovery-light-button:hover {
  color: #152c3a;
  background: #dfebf2;
}
.workspace-recovery button:focus-visible {
  outline: 3px solid #9cd7eb;
  outline-offset: 4px;
}
.recovery-projects {
  max-width: 720px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}
.recovery-projects button {
  min-height: 56px;
  white-space: normal;
  text-align: left;
  justify-content: flex-start;
}
.recovery-projects button svg:last-child {
  margin-left: auto;
}
