/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-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}}}@layer theme{:root,:host{--color-white:#fff;--spacing:.25rem;--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:.375rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.isolate{isolation:isolate}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.table{display:table}.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-8{width:calc(var(--spacing) * 8);height:calc(var(--spacing) * 8)}.size-9{width:calc(var(--spacing) * 9);height:calc(var(--spacing) * 9)}.size-10{width:calc(var(--spacing) * 10);height:calc(var(--spacing) * 10)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-9{height:calc(var(--spacing) * 9)}.h-10{height:calc(var(--spacing) * 10)}.w-full{width:100%}.min-w-0{min-width:0}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.touch-none{touch-action:none}.resize{resize:both}.items-center{align-items:center}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:2147483647px}.rounded-md{border-radius:var(--radius-md)}.border{border-style:var(--tw-border-style);border-width:1px}.border-input{border-color:var(--line)}.border-primary{border-color:var(--accent)}.bg-background{background-color:var(--surface)}.bg-destructive{background-color:var(--err)}.bg-muted{background-color:var(--line)}.bg-primary{background-color:var(--accent)}.bg-secondary{background-color:var(--surface-2)}.bg-transparent{background-color:#0000}.bg-white{background-color:var(--color-white)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-1{padding-block:var(--spacing)}.py-2{padding-block:calc(var(--spacing) * 2)}.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))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.whitespace-nowrap{white-space:nowrap}.text-primary{color:var(--accent)}.text-primary-foreground{color:#fff}.text-secondary-foreground{color:var(--ink)}.text-white{color:var(--color-white)}.underline-offset-4{text-underline-offset:4px}.shadow-sm{--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)}.shadow-xs{--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-ring\/50{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.ring-ring\/50{--tw-ring-color:color-mix(in oklab, var(--accent) 50%, transparent)}}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.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))}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;user-select:none}.selection\:bg-primary ::selection{background-color:var(--accent)}.selection\:bg-primary::selection{background-color:var(--accent)}.selection\:text-primary-foreground ::selection{color:#fff}.selection\:text-primary-foreground::selection{color:#fff}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:calc(var(--spacing) * 7)}.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(--ink)}.placeholder\:text-muted-foreground::placeholder{color:var(--muted)}@media (hover:hover){.hover\:bg-accent:hover{background-color:var(--surface-2)}.hover\:bg-destructive\/90:hover{background-color:var(--err)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-destructive\/90:hover{background-color:color-mix(in oklab, var(--err) 90%, transparent)}}.hover\:bg-primary\/90:hover{background-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-primary\/90:hover{background-color:color-mix(in oklab, var(--accent) 90%, transparent)}}.hover\:bg-secondary\/80:hover{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.hover\:bg-secondary\/80:hover{background-color:color-mix(in oklab, var(--surface-2) 80%, transparent)}}.hover\:text-accent-foreground:hover{color:var(--ink)}.hover\:underline:hover{text-decoration-line:underline}.hover\:ring-4:hover{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + 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\:border-ring:focus-visible{border-color:var(--accent)}.focus-visible\:ring-4:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(4px + 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-\[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(--err)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color:color-mix(in oklab, var(--err) 20%, transparent)}}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:var(--accent)}@supports (color:color-mix(in lab, red, red)){.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color:color-mix(in oklab, var(--accent) 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}}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.has-\[\>svg\]\:px-1\.5:has(>svg){padding-inline:calc(var(--spacing) * 1.5)}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-inline:calc(var(--spacing) * 2.5)}.has-\[\>svg\]\:px-3:has(>svg){padding-inline:calc(var(--spacing) * 3)}.has-\[\>svg\]\:px-4:has(>svg){padding-inline:calc(var(--spacing) * 4)}.aria-invalid\:border-destructive[aria-invalid=true]{border-color:var(--err)}.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:var(--err)}@supports (color:color-mix(in lab, red, red)){.aria-invalid\:ring-destructive\/20[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--err) 20%, transparent)}}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:calc(var(--spacing) * 1.5)}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:calc(var(--spacing) * 44)}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:calc(var(--spacing) * 1.5)}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical]{flex-direction:column}@media (width>=48rem){.md\:text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--line)}.dark\:bg-destructive\/60{background-color:var(--err)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-destructive\/60{background-color:color-mix(in oklab, var(--err) 60%, transparent)}}.dark\:bg-input\/30{background-color:var(--line)}@supports (color:color-mix(in lab, red, red)){.dark\:bg-input\/30{background-color:color-mix(in oklab, var(--line) 30%, transparent)}}@media (hover:hover){.dark\:hover\:bg-accent\/50:hover{background-color:var(--surface-2)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-accent\/50:hover{background-color:color-mix(in oklab, var(--surface-2) 50%, transparent)}}.dark\:hover\:bg-input\/50:hover{background-color:var(--line)}@supports (color:color-mix(in lab, red, red)){.dark\:hover\:bg-input\/50:hover{background-color:color-mix(in oklab, var(--line) 50%, transparent)}}}.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:var(--err)}@supports (color:color-mix(in lab, red, red)){.dark\:focus-visible\:ring-destructive\/40:focus-visible{--tw-ring-color:color-mix(in oklab, var(--err) 40%, transparent)}}.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:var(--err)}@supports (color:color-mix(in lab, red, red)){.dark\:aria-invalid\:ring-destructive\/40[aria-invalid=true]{--tw-ring-color:color-mix(in oklab, var(--err) 40%, transparent)}}}.\[\&_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-4 svg:not([class*=size-]){width:calc(var(--spacing) * 4);height:calc(var(--spacing) * 4)}}:root{--bg:#f4f0e9;--surface:#fffdf9;--surface-2:#f8f4ed;--line:#e2dbcf;--ink:#1f1b18;--ink-soft:#4a433d;--muted:#8a8178;--accent:#b4532a;--accent-ink:#fff;--ok:#3f7a4a;--ok-bg:#e5f0e3;--warn:#9a6512;--warn-bg:#fbefd6;--err:#a33224;--err-bg:#f9e3df;--paper-piece:#fffdf9e6;--grid-minor:#efe9df;--grid-major:#e0d7c9;--radius:10px;--shadow:0 1px 2px #281e140f, 0 4px 16px #281e140d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--ink);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.45}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,h3{margin:0;line-height:1.2}h2{letter-spacing:-.01em;font-size:1.45rem}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px;font-size:.82rem;font-weight:650}button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:7px 12px}button:hover:not(:disabled){border-color:var(--muted)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button.primary:hover:not(:disabled){filter:brightness(1.07)}button.ghost-btn{background:0 0}button.danger{color:var(--err)}input,select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:7px;padding:6px 8px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.app{flex-direction:column;min-height:100vh;display:flex}.topbar{border-bottom:1px solid var(--line);background:var(--surface);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:10px 20px;display:flex;position:sticky;top:0}.brand{align-items:baseline;gap:10px;display:flex}.logo{color:var(--accent);align-self:center;display:inline-flex}.brand-name{letter-spacing:-.02em;font-size:1.2rem;font-weight:750}.brand-sub{color:var(--muted);font-size:.85rem}.profile-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.seg{border:1px solid var(--line);border-radius:8px;display:inline-flex;overflow:hidden}.seg button{background:0 0;border:0;border-radius:0;padding:6px 12px}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--ink);color:var(--surface)}.seg.wide{width:100%;display:flex}.seg.wide button{flex:1}.welcome{max-width:680px;margin:10vh auto;padding:0 20px}.welcome h1{letter-spacing:-.02em;margin-bottom:14px;font-size:2rem}.welcome p{color:var(--ink-soft)}.welcome-actions{flex-wrap:wrap;gap:10px;margin:24px 0;display:flex}.fine{color:var(--muted);font-size:.85rem}.workspace{flex:1;grid-template-columns:256px 1fr;min-height:0;display:grid}.sidenav{border-right:1px solid var(--line);background:var(--surface-2);flex-direction:column;gap:4px;padding:14px 10px;display:flex}.nav-item{text-align:left;background:0 0;border:1px solid #0000;align-items:center;gap:10px;padding:8px 10px;display:flex}.nav-item.active{background:var(--surface);border-color:var(--line);box-shadow:var(--shadow)}.nav-num{border:1px solid var(--line);width:22px;height:22px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:.75rem;display:grid}.nav-item.active .nav-num{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.nav-text{flex-direction:column;flex:1;min-width:0;display:flex}.nav-label{white-space:nowrap;font-size:.92rem;font-weight:600}.nav-hint{color:var(--muted);font-size:.75rem}.chip{white-space:nowrap;border:1px solid #0000;border-radius:99px;padding:2px 8px;font-size:.7rem}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.none{border-color:var(--line);color:var(--muted);background:0 0}.storage-note{color:var(--muted);border-top:1px solid var(--line);margin-top:auto;padding:10px;font-size:.75rem}.storage-actions{gap:6px;margin-top:6px;display:flex}.storage-actions button{padding:4px 8px;font-size:.75rem}.panel-head{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:16px;display:flex}.lede{color:var(--ink-soft);max-width:820px;margin:6px 0 0}.head-status{flex:none;padding-top:4px}.measure-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px;display:grid}.mgroup{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);margin:0;padding:6px 16px 14px}.mgroup legend{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 6px;font-size:.78rem;font-weight:650}.mfield{border-bottom:1px dashed var(--line);grid-template-columns:1fr 120px;gap:2px 12px;padding:9px 0;display:grid}.mfield:last-child{border-bottom:0}.mfield label{align-self:center;font-size:.92rem;font-weight:600}.mfield .how,.mfield .msg{grid-column:1/-1}.input-unit{border:1px solid var(--line);background:var(--surface);border-radius:7px;align-items:center;display:flex;overflow:hidden}.input-unit input{text-align:right;font-variant-numeric:tabular-nums;border:0;border-radius:0;width:100%}.input-unit span{color:var(--muted);padding:0 8px;font-size:.82rem}.has-error .input-unit{border-color:var(--err)}.has-warn .input-unit{border-color:var(--warn)}.how{color:var(--muted);margin:2px 0 0;font-size:.8rem}.msg{margin:3px 0 0;font-size:.8rem}.msg.err{color:var(--err)}.msg.warn{color:var(--warn)}.action-bar{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:18px;padding:12px 16px;display:flex;position:sticky;bottom:0}.action-info{flex-direction:column;gap:4px;font-size:.9rem;display:flex}.action-buttons{flex-wrap:wrap;gap:8px;display:flex}.inline-check{color:var(--ink-soft);align-items:center;gap:6px;font-size:.85rem;display:inline-flex}.two-col{grid-template-columns:300px 1fr;align-items:start;gap:22px;display:grid}.two-col.wide-main{grid-template-columns:1fr 320px}.side-form{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:4px;padding:4px 16px 16px;display:flex}.side-form h3:first-child{margin-top:12px}.lfield{flex-direction:column;gap:3px;padding:4px 0;display:flex}.lfield label{font-size:.86rem;font-weight:600}.block-btn{margin-top:14px;padding:10px}.main-col{flex-direction:column;gap:12px;min-width:0;display:flex}.empty{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;color:var(--muted);background:var(--surface);padding:40px}.view-tools{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.pattern-view{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.pattern-view>svg{touch-action:none;cursor:grab;width:100%;height:62vh;min-height:420px;display:block}.pattern-view>svg:active{cursor:grabbing}.pattern-view.is-stale>svg{opacity:.45;filter:grayscale(.7)}.pv-tools,.v3-tools{z-index:2;align-items:center;gap:6px;display:flex;position:absolute;top:10px;left:10px}.pv-tools button,.v3-tools button{background:var(--surface);padding:3px 10px}.pv-hint{color:var(--muted);background:var(--surface);border-radius:6px;padding:2px 6px;font-size:.75rem}.grid-minor{stroke:var(--grid-minor);stroke-width:.03px}.grid-major{stroke:var(--grid-major);stroke-width:.06px}.pv-text{fill:var(--ink);pointer-events:none;-webkit-user-select:none;user-select:none;font-family:inherit}.ghost{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:2 2;opacity:.6}.stale-ribbon{background:var(--warn-bg);color:var(--warn);z-index:2;border:1px solid;border-radius:6px;padding:4px 10px;font-size:.8rem;font-weight:600;position:absolute;top:10px;right:10px}.stale-banner{background:var(--warn-bg);color:var(--warn);border-radius:var(--radius);justify-content:space-between;align-items:center;gap:14px;padding:10px 14px;display:flex}.stale-banner ul{margin:4px 0 0;padding-left:18px;font-size:.86rem}.stale-banner button{flex:none}.error-box{background:var(--err-bg);color:var(--err);border-radius:8px;margin:8px 0;padding:10px 14px;font-size:.9rem}.error-box.global{margin:10px 20px 0}.warnings{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.warnings li{border-radius:8px;padding:8px 12px;font-size:.88rem}.warnings li.advice{background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line)}.warnings li.problem{background:var(--warn-bg);color:var(--warn)}.facts{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;display:grid}.facts>div{background:var(--surface);border:1px solid var(--line);border-radius:8px;flex-direction:column;padding:8px 12px;display:flex}.facts span{color:var(--muted);font-size:.75rem}.facts strong{font-variant-numeric:tabular-nums}.checks,.steps{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:10px 14px}.checks summary,.steps summary{cursor:pointer;font-size:.92rem}.checks .good{color:var(--ok)}.checks .bad{color:var(--err)}table{border-collapse:collapse;width:100%;font-size:.86rem}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:6px 8px}th{color:var(--muted);font-size:.78rem;font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}tr.fail td{color:var(--err)}.checks table{margin-top:10px}.ease-table{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.ease-table.compact{font-size:.82rem}.steps ol{color:var(--ink-soft);margin:8px 0 0;padding-left:20px;font-size:.88rem}.steps li{margin:4px 0}.viewer3d{background:radial-gradient(ellipse at 50% 35%, var(--surface) 0%, var(--surface-2) 75%);border:1px solid var(--line);border-radius:var(--radius);position:relative;overflow:hidden}.v3-canvas{width:100%;height:68vh;min-height:460px}.v3-canvas canvas{display:block}.fit-note{background:var(--surface-2);border-left:3px solid var(--accent);color:var(--ink-soft);border-radius:6px;margin-bottom:14px;padding:10px 14px;font-size:.88rem}.swatch{border:2px solid var(--surface);width:24px;height:24px;box-shadow:0 0 0 1px var(--line);border-radius:50%;padding:0}.swatch.on{box-shadow:0 0 0 2px var(--ink)}ul.plain{color:var(--ink-soft);margin:0;padding-left:18px;font-size:.84rem}ul.plain li{margin:3px 0}.tilemap{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);width:100%;max-height:60vh}.tile{fill:none;stroke:var(--muted);stroke-width:1px;stroke-dasharray:4 3}.tile.blank{fill:var(--surface-2)}.tile-label{fill:var(--muted);opacity:.45;font-weight:700}.tile-piece{fill:#b4532a14;stroke:var(--accent);stroke-width:1.2px}.tile-piece-label{fill:var(--ink);font-weight:600}.prose{max-width:820px}.prose p,.prose li{color:var(--ink-soft)}.prose h3{margin-top:26px}@media (width<=1000px){.workspace{grid-template-columns:1fr}.sidenav{border-right:0;border-bottom:1px solid var(--line);flex-direction:row;overflow-x:auto}.nav-hint,.storage-note{display:none}.two-col,.two-col.wide-main{grid-template-columns:1fr}.content{padding:16px}}:root{--bg:#eceef1;--surface:#fff;--surface-2:#f4f5f7;--line:#d7dce3;--ink:#202936;--ink-soft:#4c596c;--muted:#647184;--accent:#2463c4;--grid-minor:#e9edf2;--grid-major:#d7dfe9;--paper-piece:#fffffff0}.workspace{grid-template-columns:64px minmax(0,1fr)}.sidenav{background:#205ac0;border:0;flex-direction:column;align-items:center;gap:10px;height:calc(100vh - 61px);padding:16px 8px;position:sticky;top:61px}.nav-item{color:#fff;border:0;border-radius:10px;flex-shrink:0;justify-content:center;width:44px;height:44px;padding:10px}.nav-item.active{background:#ffffff38;border:0;box-shadow:inset 3px 0 #fff}.nav-item:hover:not(:disabled){background:#ffffff26}.nav-item:focus-visible{outline-offset:2px;outline:2px solid #fff}.nav-spacer{flex:1}.content{min-width:0;padding:24px}.panel{max-width:none}.panel-head{margin-bottom:18px}.lede{max-width:900px}.view-tools{flex-wrap:wrap;gap:16px;margin:12px 0}.view-tools label:not(.inline-check){align-items:center;gap:8px;font-size:.85rem;display:flex}.view-tools select{max-width:440px}.two-col{grid-template-columns:260px minmax(0,1fr);gap:22px}.side-form{border:1px solid var(--line);background:#f7f8fa;border-radius:12px;padding:18px}.pattern-view{min-height:500px}.brand-sub{display:none}@media (width<=800px){.workspace{grid-template-columns:56px minmax(0,1fr)}.sidenav{flex-direction:column;padding:12px 6px}.content{padding:14px}.two-col{grid-template-columns:1fr}.view-tools label:not(.inline-check){flex-wrap:wrap}.view-tools select{max-width:100%}.topbar{padding:10px 14px}}.design-tabs{margin:4px 0 20px}.viewer3d>.view-tools{z-index:1;border-bottom:1px solid var(--line);background:#f6f8fb;margin:0;padding:10px;position:relative}.v3-tools{position:relative}.camera-preset{justify-content:center;align-items:center;width:38px;height:36px;padding:6px;display:inline-flex}.camera-preset.on{color:#fff;background:var(--accent);border-color:var(--accent)}.fabric-swatch{border:1px solid var(--border);object-fit:cover;border-radius:7px}.rheo-button{white-space:normal;justify-content:center;align-items:center;gap:7px;height:auto;min-height:36px;display:inline-flex}.rheo-button>svg{pointer-events:none;flex:none;width:17px;height:17px}.rheo-button:focus-visible,[data-slot=slider-thumb]:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.seg .rheo-button{line-height:1.3}.seg:has(:focus-visible){overflow:visible}.seg .rheo-button:first-child{border-radius:7px 0 0 7px}.seg .rheo-button:last-child{border-radius:0 7px 7px 0}.sidenav .rheo-button>svg{width:23px;height:23px}.length-slider{grid-column:1/-1;min-width:0;margin-top:4px}.segmented-slider{touch-action:none;-webkit-user-select:none;user-select:none;align-items:center;width:100%;height:28px;display:flex;position:relative}.segmented-slider [data-slot=slider-track]{background:#d9e0eb;border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.segmented-slider [data-slot=slider-range]{background:var(--accent);height:100%;position:absolute}.segmented-slider [data-slot=slider-track]:after{content:"";background:repeating-linear-gradient(to right, transparent 0, transparent calc(10% - 2px), var(--surface) calc(10% - 2px), var(--surface) 10%);pointer-events:none;position:absolute;inset:0}.segmented-slider [data-slot=slider-thumb]{border:2px solid var(--accent);background:#fff;border-radius:50%;width:17px;height:17px;padding:0;display:block;box-shadow:0 1px 3px #132a4c30}.slider-scale{color:var(--muted);font-variant-numeric:tabular-nums;justify-content:space-between;margin-top:-1px;font-size:.68rem;display:flex}.mfield{padding:12px 0}.lfield .length-slider{margin-top:2px}.pattern-view>svg:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.pv-tools output{min-width:45px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.8rem}.view-tools label:not(.inline-check){white-space:nowrap}.view-tools [data-slot=input]{width:auto;min-width:160px;max-width:100%}.pv-tools{background:var(--surface);border-radius:8px;flex-wrap:wrap;padding:6px;right:10px}@supports (color:color-mix(in lab, red, red)){.pv-tools{background:color-mix(in srgb, var(--surface) 94%, transparent)}}.pv-tools{width:fit-content;max-width:calc(100% - 20px)}.pattern-view .pv-tools{border-bottom:1px solid var(--line);background:var(--surface);border-radius:0;width:100%;max-width:none;padding:8px;position:relative;inset:auto}button.swatch{height:24px;min-height:24px}.measure-studio{grid-template-columns:minmax(340px,1fr) minmax(340px,410px);align-items:start;gap:24px;max-width:1500px;margin:auto;display:grid;position:relative}.measurement-stage{background:radial-gradient(at 50% 45%,#fff 0%,#e8edf3 75%);border-radius:24px;min-width:0;min-height:780px;position:sticky;top:85px;overflow:hidden}.measure-stage-heading{z-index:1;pointer-events:none;position:absolute;top:26px;left:26px;right:24px}.eyebrow{letter-spacing:.15em;color:#64748b;font-size:10px;font-weight:750}.measure-stage-heading p{color:#64748b;max-width:300px;font-size:13px}.measure-camera{z-index:2;background:#ffffffd9;border:1px solid #d8dfe8;border-radius:10px;gap:3px;padding:4px;display:flex;position:absolute;top:136px;left:24px}.measure-camera button{text-transform:capitalize;color:#536277;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:7px 12px;font-size:12px}.measure-camera button[aria-pressed=true]{color:#fff;background:#2463c4}.measure-model{aspect-ratio:580/940;width:min(100%,580px);height:auto;margin:40px auto 0;position:relative}.measure-canvas,.measure-overlay{width:100%;height:100%;position:absolute;inset:0}.measure-canvas canvas{width:100%;height:100%;display:block}.measure-overlay{pointer-events:none;overflow:visible}.measure-path{pointer-events:stroke;cursor:pointer;outline:none}.measure-path:focus path:last-child{stroke-width:6px;filter:drop-shadow(0 0 3px #fff)}.measure-guide-card{pointer-events:none;background:#fffffff0;border:1px solid #dbe3ef;border-radius:14px;padding:18px 20px;position:absolute;bottom:55px;left:24px;right:24px;box-shadow:0 8px 30px #344b6c0a}.measure-guide-card h3{justify-content:space-between;gap:12px;margin:8px 0;font-size:17px;display:flex}.measure-guide-card h3 span{color:#2463c4;white-space:nowrap}.measure-guide-card p{color:#536277;margin:0;font-size:13px;line-height:1.6}.measure-model-note{color:#64748b;font-size:10px;line-height:1.4;position:absolute;bottom:10px;left:24px;right:24px}.measure-controls{background:#fff;border:1px solid #d8dfe8;border-radius:18px;overflow:hidden;box-shadow:0 12px 40px #2537520d}.measure-controls .panel-head{flex-wrap:wrap;gap:10px;margin:0;padding:22px 20px 12px}.measure-controls .panel-head h2{font-size:20px}.measure-controls .lede{margin:6px 0;font-size:12px;line-height:1.5}.measure-controls .view-tools{gap:10px;padding:12px 20px;display:grid}.measure-set-details{border-top:1px solid #edf0f4;font-size:12px}.measure-set-details summary{cursor:pointer;color:#536277;padding:12px 20px}.measure-tabs{z-index:2;background:#fff;border-block:1px solid #e3e8ef;gap:4px;padding:8px;display:flex;position:sticky;top:0}.measure-tabs button{color:#64748b;cursor:pointer;background:0 0;border:0;border-radius:9px;flex:1;justify-items:center;gap:5px;min-width:0;padding:9px 3px;font-size:11px;display:grid;position:relative}.measure-tabs button[aria-selected=true]{color:#2463c4;background:#eaf2ff}.measure-tabs svg{width:25px;height:25px}.tab-issue{color:#9a5800;background:#fff0db;border-radius:50%;width:12px;font-size:9px;font-weight:700;position:absolute;top:2px;right:4px}.measure-controls .measure-grid{margin:0;padding:0;display:block}.measure-controls .mgroup{background:0 0;border:0;border-radius:0;margin:0;padding:0}.measure-controls .mgroup[hidden],.measure-controls .mgroup legend{display:none}.measure-controls .mfield{border-bottom:1px solid #edf0f4;border-left:3px solid #0000;grid-template-columns:1fr 108px;margin:0;padding:18px 20px}.measure-controls .mfield.is-active{background:#f6f9ff;border-left-color:#2463c4}.measure-controls .mfield.has-error{border-left-color:#d52b3f}.measure-controls .mfield.has-warn{border-left-color:#c58a00}.measure-controls .mfield label{font-size:13px}.measure-controls .how{font-size:11px;line-height:1.6}.measure-controls .action-bar{background:#f8fafc;border:0;border-radius:0;gap:14px;margin:0;padding:18px;display:grid;position:static}.measure-controls .action-info{gap:10px;font-size:11px;display:grid}.measure-controls .action-buttons{flex-wrap:wrap;gap:8px;display:flex}.measure-controls .action-buttons button{flex:auto;font-size:11px}.measure-issues{border-top:1px solid #e3e8ef;max-height:240px;padding:15px 18px;overflow:auto}.measure-issues h3{margin:0 0 8px;font-size:12px}.measure-issues button{text-align:left;color:#ad2535;cursor:pointer;background:#fff7f7;border:1px solid #f0c8ce;border-radius:7px;gap:3px;width:100%;margin-bottom:6px;padding:9px;font-size:11px;display:grid}.measure-issues button.warning{color:#805700;background:#fffbed;border-color:#e6d296}@media (width>=1100px){.measure-controls{max-height:calc(100vh - 110px);position:sticky;top:85px;overflow:auto}}@media (width<=800px){.measure-studio{grid-template-columns:1fr;gap:16px}.measurement-stage{min-height:650px;position:relative;top:auto}.measure-model{max-width:460px;margin-top:65px}.measure-stage-heading h2{font-size:21px}.measure-guide-card{bottom:65px}.measure-model-note{bottom:14px}.measure-controls{max-height:none}.measure-tabs{top:60px}.measure-model{padding-bottom:50px}}.measurement-stage{height:calc(100vh - 110px);min-height:690px}.measure-stage-heading{top:22px}.measure-stage-heading h2{margin:6px 0;font-size:22px}.measure-stage-heading p{margin:4px 0}.measure-model{aspect-ratio:580/940;width:auto;max-width:100%;height:calc(100% - 320px);margin:0 auto;position:absolute;inset:146px 0 174px}.measure-guide-card{padding:14px 16px;bottom:55px}@media (width<=800px){.measurement-stage{height:760px;min-height:0}.measure-model{height:440px;padding:0}.measure-stage-heading h2{font-size:20px}.measure-guide-card{bottom:65px}.measure-camera{top:116px}}.measure-legend{z-index:1;gap:10px;font-size:9px;display:flex;position:absolute;top:160px;left:26px}.measure-legend span:first-child{color:#2463c4}.measure-legend span:nth-child(2){color:#d52b3f}.measure-legend span:nth-child(3){color:#9a7000}.tab-issue.error{color:#bd2438;background:#ffe8ed}.measure-guide-card h3{text-transform:none;letter-spacing:normal}.measure-framing{z-index:2;gap:4px;display:flex;position:absolute;top:162px;right:22px}.measure-framing button{color:#526278;cursor:pointer;background:#ffffffb8;border:1px solid #cfd9e6;border-radius:6px;padding:5px 8px;font-size:10px}.measure-framing button[aria-pressed=true]{color:#2055a3;background:#e6eefb;border-color:#acc4e7}.measure-camera button{padding:7px 10px}.measure-model{height:calc(100% - 386px);top:208px;bottom:178px}.measure-path:focus .measure-focus-ring{opacity:.8}.measure-path-caption{color:#486388;margin-top:8px;font-size:10px;line-height:1.5;display:block}.measurement-stage{min-height:810px}.measure-guide-card{bottom:63px}@media (width>=1100px){.measure-studio{grid-template-columns:minmax(400px,1fr) 370px}.measurement-stage{min-height:760px}}@media (width<=800px){.measurement-stage{height:810px;min-height:810px}.measure-model{height:424px;padding:0}}.measure-model{aspect-ratio:auto;width:100%;max-width:none;height:calc(100% - 332px);top:160px;bottom:172px}.measure-stage-heading{max-width:330px}.measure-framing{top:123px}@media (width>=1100px){.measure-stage-heading{max-width:280px}.measure-model{height:calc(100% - 220px);top:65px;bottom:155px}.measure-stage-heading,.measure-camera,.measure-legend{z-index:2}.measure-model,.measure-overlay{pointer-events:none}.measure-path{pointer-events:stroke}}@media (width<=800px){.measure-model{width:100%;height:calc(100% - 390px);top:208px}.measure-framing{top:160px}.measure-legend{top:192px}}.measure-camera{top:158px}@media (width<=1099px){.measure-model{height:calc(100% - 410px);top:230px}.measure-framing{top:159px;right:18px}.measure-camera{left:20px}.measure-camera button{padding:7px 6px}.measure-stage-heading{max-width:none}}@media (width<=800px){.measure-framing{top:196px}.measure-legend{top:231px}.measure-model{height:calc(100% - 440px);top:260px}}.measurement-stage{box-sizing:border-box;flex-direction:column;padding:220px 22px 64px;display:flex}.measure-model{aspect-ratio:auto;flex:1;width:100%;height:auto;min-height:0;margin:0;position:relative;inset:auto}.measure-guide-card{flex:none;margin-top:14px;position:relative;inset:auto}.measure-framing{top:196px;right:22px}.measure-legend{top:237px}@media (width>=1100px){.measurement-stage{padding-top:65px}.measure-framing{top:123px}.measure-legend{top:201px}}@media (width>=801px) and (width<=1099px){.measure-studio{grid-template-columns:minmax(340px,1fr) 350px}.measurement-stage{padding-top:265px}}@media (width<=800px){.measurement-stage{padding-top:265px}.measure-model{height:auto}}@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-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}
