/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before{box-sizing:border-box;border:0 solid;margin:0;padding:0}::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.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}.relative{position:relative}.static{position:static}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.contents{display:contents}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--canvas:#f4f7fa;--surface:#fff;--raised:#f8fafc;--border:#d9e1e8;--border-strong:#b8c7d6;--text:#17212b;--muted:#637282;--blue:#1e63d7;--blue-hover:#184fae;--blue-soft:#edf4ff;--green:#1e9a67;--green-soft:#ecf8f3;--red:#d94b45;--red-soft:#fff2f1;--amber:#f2a33a;--amber-soft:#fff7e8;--focus:#a9c5f6}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{background:var(--canvas);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:2px}button:disabled{cursor:not-allowed;opacity:.45}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-shell{background:var(--canvas);height:100vh;min-height:660px;overflow:hidden}.topbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#fffffff0;justify-content:space-between;align-items:center;height:64px;padding:0 20px;display:flex;position:relative}.brand{letter-spacing:-.025em;align-items:center;gap:10px;font-size:22px;font-weight:730;display:flex}.brand-mark{color:#fff;background:linear-gradient(145deg,#2c78eb,#1554bb);border-radius:9px;place-items:center;width:34px;height:34px;display:grid;box-shadow:0 5px 12px #1e63d72e}.beta-badge,.count-badge{text-transform:uppercase;letter-spacing:.06em;color:var(--blue);background:var(--blue-soft);border:1px solid #d5e4fb;border-radius:99px;padding:0 8px;font-size:11px;font-weight:700;line-height:20px}.topbar-actions{align-items:center;gap:18px;display:flex}.topbar-button{color:var(--blue);cursor:pointer;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;padding:8px 10px;font-weight:650;display:flex}.topbar-button:hover{background:var(--blue-soft)}.app-status{color:#344251;justify-content:flex-end;align-items:center;gap:8px;min-width:76px;font-size:13px;display:flex}.app-status>span{background:var(--green);border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #1e9a671a}.workbench-grid{grid-template-columns:280px minmax(540px,1fr) 340px;gap:14px;height:calc(100vh - 64px);padding:14px;display:grid}.panel,.viewport-panel{background:var(--surface);border:1px solid var(--border);border-radius:12px;min-width:0;box-shadow:0 1px 3px #17212b0a}.panel{scrollbar-width:thin;scrollbar-color:#c8d2dc transparent;padding:18px;overflow-y:auto}.panel-heading{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.panel-heading h1{letter-spacing:-.015em;margin:1px 0 0;font-size:18px;line-height:24px}.panel-heading>svg{color:var(--muted)}.eyebrow{color:var(--blue);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:10px;font-weight:750;line-height:15px}.panel-section+.panel-section{margin-top:16px}.drop-zone{background:var(--raised);border:1px dashed #a9bdd0;border-radius:11px;transition:all .12s ease-out;position:relative;overflow:hidden}.drop-zone:hover,.drop-zone.is-dragging{border-color:var(--blue);background:#f2f7ff;box-shadow:inset 0 0 0 1px #1e63d714}.drop-zone-button{cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;min-height:134px;padding:18px 12px 14px;display:flex}.drop-zone-button svg{color:#42566a}.drop-zone-button strong{font-size:14px;font-weight:680}.drop-zone-button span{color:var(--muted);font-size:11.5px}.model-list{border-top:1px dashed #c6d3df;display:grid}.model-row{background:#fff;border-top:1px solid #e5ebf0;align-items:center;min-width:0;padding:8px;transition:all .12s ease-out;display:flex}.drop-zone>.model-row{border-top:1px dashed #c6d3df}.model-list .model-row:first-child{border-top:0}.model-row.is-selected{background:var(--blue-soft);box-shadow:inset 3px 0 var(--blue)}.model-row-main{text-align:left;cursor:pointer;background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:2px;display:flex}.model-copy{flex-direction:column;min-width:0;display:flex}.model-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;font-weight:650;overflow:hidden}.model-copy small{color:var(--muted);font-size:9.5px;line-height:15px}.model-status{color:#fff;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;display:grid}.model-status.valid{background:var(--green)}.model-status.invalid{background:var(--red)}.model-status.neutral{background:#8291a0}.icon-button{cursor:pointer;border:0;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.icon-button.subtle{color:var(--muted);background:0 0}.icon-button.subtle:hover{color:var(--text);background:#eef2f6}.info-card{border:1px solid var(--border);color:#33475a;background:#f8fafc;border-radius:9px;align-items:flex-start;gap:10px;margin-top:18px;padding:12px;display:flex}.info-card svg{flex:none;margin-top:1px}.info-card p{flex-direction:column;gap:3px;margin:0;font-size:11px;line-height:16px;display:flex}.info-card p span{color:var(--muted)}.registration-card{color:#66410d;background:var(--amber-soft);border:1px solid #efd19f;border-radius:9px;margin-top:10px;padding:12px}.registration-title{align-items:center;gap:7px;display:flex}.registration-title strong{font-size:11.5px}.registration-card p{color:#85643b;margin:6px 0 10px;font-size:10px;line-height:15px}.coordinate-grid{background:#fff;border:1px solid #ecd5b1;border-radius:6px;grid-template-columns:repeat(3,1fr);display:grid;overflow:hidden}.coordinate-grid span{border-left:1px solid #eee0c9;flex-direction:column;gap:1px;padding:6px 7px;display:flex}.coordinate-grid span:first-child{border-left:0}.coordinate-grid small{color:#a17330;font-size:8px}.coordinate-grid strong{color:#5e3a08;font-variant-numeric:tabular-nums;font-size:10.5px}.normal-readout{color:#99713a;font-variant-numeric:tabular-nums;margin-top:7px;font-size:8.5px;display:block}.viewport-panel{background:#f8fafc;position:relative;overflow:hidden}.viewport-panel canvas{inset:0;position:absolute!important}.viewport-panel.index-mode canvas{cursor:crosshair}.empty-viewport{z-index:5;text-align:center;pointer-events:none;background:radial-gradient(circle,#f8fafcf2 0,#f8fafcc2 36%,#f8fafc00 70%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.empty-viewport>*{pointer-events:auto}.empty-icon{width:62px;height:62px;color:var(--blue);background:#fff;border:1px solid #d5e4fb;border-radius:17px;place-items:center;display:grid;box-shadow:0 8px 24px #1e63d71a}.empty-viewport h2{margin:18px 0 6px;font-size:20px}.empty-viewport p{max-width:350px;color:var(--muted);margin:0 0 18px;line-height:21px}.webgl-fallback{z-index:7;color:#7d3f12;background:#fff7e8f5;border:1px solid #f0c984;border-radius:10px;align-items:flex-start;gap:11px;width:min(420px,100% - 90px);padding:16px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 30px #5f3f101f}.webgl-fallback svg{flex:none}.webgl-fallback div{flex-direction:column;gap:3px;display:flex}.webgl-fallback strong{font-size:13px}.webgl-fallback span{color:#8c6748;font-size:11px;line-height:16px}.viewport-tools{z-index:10;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffeb;border-radius:9px;flex-direction:column;gap:3px;padding:5px;display:flex;position:absolute;top:14px;left:14px;box-shadow:0 4px 14px #1c2a3817}.viewport-tools button{color:#415365;cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:34px;height:34px;transition:all .12s ease-out;display:grid;position:relative}.viewport-tools button:hover:not(:disabled){color:var(--text);background:#edf2f7}.viewport-tools button.active{color:var(--blue);background:var(--blue-soft);box-shadow:inset 0 0 0 1px #c8dcfb}.viewport-tools button.active.amber{color:#a86000;background:var(--amber-soft);box-shadow:inset 0 0 0 1px #f7d69e}.viewport-tool-tooltip{z-index:30;color:#fff;text-align:left;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;background:#263544;border-radius:6px;width:max-content;max-width:230px;padding:7px 9px;font-size:10.5px;font-weight:620;line-height:15px;transition:opacity .11s ease-out,transform .11s ease-out,visibility .11s;position:absolute;top:50%;left:calc(100% + 11px);transform:translate(-3px,-50%);box-shadow:0 5px 16px #141f2a2e}.viewport-tool-tooltip:before{content:"";border-top:5px solid #0000;border-bottom:5px solid #0000;border-right:5px solid #263544;width:0;height:0;position:absolute;top:50%;right:100%;transform:translateY(-50%)}.viewport-tools button:hover .viewport-tool-tooltip,.viewport-tools button:focus-visible .viewport-tool-tooltip,.viewport-tools button:disabled:hover .viewport-tool-tooltip{opacity:1;visibility:visible;transform:translateY(-50%)}.tool-divider{background:var(--border);height:1px;margin:3px 4px}.viewport-help{z-index:10;color:#526475;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);white-space:nowrap;background:#ffffffe6;border-radius:8px;align-items:center;gap:12px;height:38px;padding:0 10px 0 14px;font-size:10.5px;display:flex;position:absolute;bottom:14px;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #17212b0f}.viewport-help span{align-items:center;gap:6px;display:flex}.viewport-help i{background:var(--border);width:1px;height:18px}.viewport-help button{width:24px;height:24px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:4px;place-items:center;padding:0;display:grid}.index-instruction{z-index:11;color:#7c4b06;background:#fff7e8f2;border:1px solid #f5cd8e;border-radius:8px;align-items:center;gap:8px;padding:9px 13px;font-size:12px;font-weight:650;display:flex;position:absolute;top:14px;left:50%;transform:translate(-50%);box-shadow:0 5px 18px #8e57091f}.index-chip{z-index:10;color:#69420a;background:#ffffffed;border:1px solid #f0d09c;border-radius:99px;align-items:center;gap:7px;padding:7px 8px 7px 10px;font-size:10.5px;display:flex;position:absolute;top:14px;right:118px}.index-chip>span{background:var(--amber);border-radius:50%;width:7px;height:7px}.index-chip button{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:20px;height:20px;padding:0;display:grid}.index-label{color:#8b5509;white-space:nowrap;background:#fffbf2f0;border:1px solid #f2cf95;border-radius:5px;padding:4px 7px;font:650 11px/15px Inter,sans-serif;display:block}.plane-badge{width:27px;height:27px;color:var(--blue);border:2px solid var(--blue);background:#fff;border-radius:50%;place-items:center;font:700 12px/1 Inter,sans-serif;display:grid;box-shadow:0 2px 6px #17212b1f}.plane-badge.active{color:#fff;background:var(--blue);transform:scale(1.08)}.inclusion-label{color:#8c1856;white-space:nowrap;background:#fff5fbf2;border:1px solid #e88bbb;border-radius:5px;padding:4px 7px;font:650 10.5px/15px Inter,sans-serif;display:block;box-shadow:0 2px 7px #8b15541a}.settings-section{border-bottom:1px solid var(--border);margin-bottom:18px;padding-bottom:18px}.section-label{font-size:13px;font-weight:680;display:block}.section-hint{color:var(--muted);margin:7px 0 0;font-size:10.5px;line-height:16px}.segmented{border:1px solid var(--border-strong);background:#f7f9fb;border-radius:8px;grid-template-columns:1fr 1fr;margin-top:9px;padding:3px;display:grid}.segmented.three-options{grid-template-columns:repeat(3,1fr)}.segmented button{color:#415365;cursor:pointer;background:0 0;border:0;border-radius:5px;height:36px;font-size:11.5px;font-weight:640;transition:all .12s ease-out}.segmented.three-options button{padding:0 5px;font-size:10.5px}.segmented button.active{color:#fff;background:var(--blue);box-shadow:0 2px 5px #1e63d733}.section-title-row{justify-content:space-between;align-items:center;display:flex}.section-title-row>div{flex-direction:column;gap:2px;min-width:0;display:flex}.section-title-row small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.color-dot{border:2px solid #fff;border-radius:50%;flex:none;width:12px;height:12px;box-shadow:0 0 0 1px #b8c7d6}.dimension-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;display:grid}.copy-size-hint{color:#3f638b;margin-top:9px}.copy-count-control{background:var(--blue-soft);border:1px solid #d4e3fa;border-radius:8px;grid-template-columns:1fr 1.35fr;align-items:end;gap:10px;margin-top:12px;padding:10px;display:grid}.copy-count-control>small{color:#527092;align-self:center;font-size:9.5px;line-height:14px}.number-field{color:#435365;flex-direction:column;gap:5px;min-width:0;font-size:10.5px;display:flex}.input-with-unit{display:block;position:relative}.input-with-unit input{width:100%;height:40px;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);font-variant-numeric:tabular-nums;border-radius:7px;padding:0 9px;font-size:12px}.input-with-unit input.has-unit{padding-right:40px}.input-with-unit input:hover{border-color:#8ea4b8}.input-with-unit small{color:var(--muted);pointer-events:none;font-size:9px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.compact-settings{gap:12px;display:grid}.compact-settings .number-field{grid-template-columns:1fr 102px;align-items:center;display:grid}.compact-settings .input-with-unit input{height:38px}.cut-settings-hint{margin:-3px 0 0}.collapsible-settings{gap:8px;display:grid}.settings-accordion{border:1px solid var(--border);background:#fbfcfd;border-radius:9px;overflow:hidden}.settings-accordion[open]{background:#fff;border-color:#c4d2df}.settings-accordion summary{cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;min-height:48px;padding:8px 10px 8px 12px;list-style:none;display:flex}.settings-accordion summary::-webkit-details-marker{display:none}.settings-accordion summary:hover{background:#f5f8fb}.settings-accordion summary:focus-visible{outline:3px solid var(--focus);outline-offset:-3px}.settings-accordion summary>span{flex-direction:column;gap:2px;min-width:0;display:flex}.settings-accordion summary strong{font-size:11.5px;font-weight:680}.settings-accordion summary small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;overflow:hidden}.settings-accordion summary>svg{color:var(--muted);flex:none;transition:transform .14s ease-out}.settings-accordion[open] summary>svg{transform:rotate(180deg)}.accordion-content{border-top:1px solid var(--border);padding:11px 12px 13px}.accordion-hint{margin:-2px 0 0}.inclusion-import-accordion{background:#fffafd;border-color:#e4bbcf}.inclusion-import-accordion[open]{border-color:#d8649c}.inclusion-import-accordion summary:hover{background:#fff4f9}.inclusion-settings{gap:11px;display:grid}.inclusion-toolbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.inclusion-toolbar>div{flex-direction:column;gap:2px;min-width:0;display:flex}.inclusion-toolbar strong{font-size:10.5px}.inclusion-toolbar small{color:#8f4b70;font-size:8.5px}.inclusion-toolbar button{color:#a51f66;cursor:pointer;background:#fff5fa;border:1px solid #e59abc;border-radius:6px;flex:none;min-height:30px;padding:0 9px;font-size:9.5px;font-weight:700}.inclusion-toolbar button:hover:not(:disabled){background:#fde5f1}.inclusion-empty{color:#765568;background:#fff8fb;border:1px dashed #e5b5cd;border-radius:7px;margin:0;padding:10px}.inclusion-list{scrollbar-width:thin;gap:4px;max-height:132px;display:grid;overflow-y:auto}.inclusion-list>div{border:1px solid var(--border);background:#fff;border-radius:7px;grid-template-columns:minmax(0,1fr) 26px 26px;align-items:center;min-width:0;display:grid}.inclusion-list>div.active{background:#fff6fa;border-color:#d8649c;box-shadow:inset 3px 0 #d72d82}.inclusion-list .icon-button{width:24px;height:24px}.inclusion-select{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:9px minmax(0,1fr);align-items:center;gap:7px;min-width:0;padding:7px 5px 7px 8px;display:grid}.inclusion-select>span:first-child{background:#d72d82;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 3px #d72d821f}.inclusion-select>span:last-child{flex-direction:column;gap:1px;min-width:0;display:flex}.inclusion-select strong,.inclusion-select small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.inclusion-select strong{font-size:9.5px}.inclusion-select small{color:var(--muted);font-size:8.5px}.inclusion-editor{border-top:1px solid #ead2df;gap:9px;padding-top:11px;display:grid}.text-field,.select-field{color:#435365;flex-direction:column;gap:5px;font-size:10.5px;display:flex}.text-field input,.select-field select{width:100%;height:36px;color:var(--text);border:1px solid var(--border-strong);background:#fff;border-radius:7px;padding:0 9px;font-size:11px}.mini-heading{color:#7c4562;text-transform:uppercase;letter-spacing:.055em;margin:2px 0 -5px;font-size:9px;font-weight:720}.inclusion-grid{gap:5px;margin-top:0}.inclusion-grid .number-field{gap:3px;font-size:8.5px}.inclusion-grid .input-with-unit input{height:34px;padding-left:6px;padding-right:28px;font-size:10px}.inclusion-options{background:#fbf7f9;border:1px solid #ead8e1;border-radius:7px;gap:6px;padding:8px;display:grid}.inclusion-options label{cursor:pointer;grid-template-columns:14px minmax(0,1fr);align-items:start;gap:7px;display:grid}.inclusion-options input{accent-color:#c52678;width:13px;height:13px;margin:2px 0 0}.inclusion-options span{flex-direction:column;gap:1px;display:flex}.inclusion-options strong{font-size:9.5px}.inclusion-options small{color:var(--muted);font-size:8.5px;line-height:12px}.action-stack{gap:9px;margin-bottom:14px;display:grid}.progress-status{color:#244d80;background:var(--blue-soft);border:1px solid #c6d9f5;border-radius:8px;gap:7px;padding:10px;display:grid}.progress-status-row{grid-template-columns:34px minmax(0,1fr);align-items:center;gap:7px;min-width:0;display:grid}.progress-status-row strong{font-variant-numeric:tabular-nums;font-size:11px}.progress-status-row span{text-overflow:ellipsis;white-space:nowrap;font-size:9.5px;line-height:13px;overflow:hidden}.progress-status>small{color:#587395;font-size:8.5px;line-height:12px}.progress-track{background:#dfe9f7;border-radius:99px;height:4px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--blue);height:100%;transition:width .14s ease-out;display:block}.primary,.secondary{cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:44px;font-weight:690;transition:all .12s ease-out;display:flex}.primary{color:#fff;background:linear-gradient(#2672e6,#1459c5);border:1px solid #1459c5;box-shadow:0 3px 8px #1e63d729}.primary:hover:not(:disabled){background:linear-gradient(#1f66d5,#104da9);box-shadow:0 5px 12px #1e63d738}.primary.compact{min-height:38px;padding:0 14px;font-size:12px}.secondary{color:var(--blue);border:1px solid var(--blue);background:#fff}.secondary:hover:not(:disabled){background:var(--blue-soft)}.validation-card{border:1px solid var(--border);background:var(--raised);border-radius:9px;align-items:flex-start;gap:10px;padding:13px;transition:all .18s ease-out;display:flex}.validation-card.success{color:#116a48;background:var(--green-soft);border-color:#7ac9a8}.validation-card.error{color:#a52721;background:var(--red-soft);border-color:#ef9d99}.validation-card.working{color:#174d9f;background:var(--blue-soft);border-color:#aac8f4}.validation-icon{flex:none;place-items:center;width:22px;height:22px;display:grid}.validation-card>div{min-width:0}.validation-card strong{font-size:12.5px;display:block}.validation-card p{color:var(--muted);margin:3px 0 0;font-size:10.5px;line-height:16px}.validation-card.success p{color:#397e64}.validation-card.error p{color:#a84d48}.validation-list{gap:6px;margin-top:8px;display:grid}.validation-list button{text-align:left;border:1px solid var(--border);cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:9px;width:100%;padding:8px 9px;display:flex}.validation-list button:hover{border-color:var(--border-strong);background:var(--raised)}.validation-list button>span{color:#fff;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;display:grid}.validation-list button.valid>span{background:var(--green)}.validation-list button.invalid>span{background:var(--red)}.validation-list button>div{flex-direction:column;gap:1px;min-width:0;display:flex}.validation-list strong{font-size:10.5px}.validation-list small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:9.5px;overflow:hidden}.volume-summary-stack{gap:8px;margin-top:12px;display:grid}.volume-summary-card{background:linear-gradient(145deg,#f6faff,#edf4ff);border:1px solid #bdd2ef;border-radius:9px;padding:13px}.volume-unit{color:#335f96;letter-spacing:.04em;background:#fff;border:1px solid #cadbf2;border-radius:99px;padding:3px 7px;font-size:9px;font-weight:750}.volume-total{color:#154e9b;font-variant-numeric:tabular-nums;letter-spacing:-.025em;margin-top:8px;font-size:24px;line-height:30px;display:block}.volume-summary-card>p{color:#57718e;margin:3px 0 0;font-size:9.5px;line-height:14px}.volume-summary-card.saw-loss{background:linear-gradient(145deg, #fff8f7, var(--red-soft));border-color:#efb0ac}.volume-summary-card.saw-loss .volume-unit{color:#a9342e;border-color:#f0c0bd}.volume-summary-card.saw-loss .volume-total{color:#b93630}.volume-summary-card.saw-loss>p{color:#9c5a56}.volume-summary-card.unallocated-volume{background:linear-gradient(145deg,#fffdf5,#fff5cf);border-color:#ecd092}.volume-summary-card.unallocated-volume .volume-unit{color:#8a5c08;border-color:#ecd7a9}.volume-summary-card.unallocated-volume .volume-total{color:#9a6707}.volume-summary-card.unallocated-volume>p{color:#84672e}.gem-volume-list{scrollbar-width:thin;gap:4px;max-height:150px;margin-top:10px;display:grid;overflow-y:auto}.gem-volume-list button{color:#30465d;text-align:left;cursor:pointer;background:#ffffffc2;border:1px solid #0000;border-radius:6px;grid-template-columns:12px minmax(0,1fr) auto;align-items:center;gap:8px;width:100%;min-width:0;padding:6px 7px;display:grid}.gem-volume-list button:hover,.gem-volume-list button.active{background:#fff;border-color:#a9c5ea}.gem-volume-list button>span:nth-child(2){flex-direction:column;gap:1px;min-width:0;display:flex}.gem-volume-list strong,.gem-volume-list small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.gem-volume-list strong{font-size:9.5px}.gem-volume-list small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:8.5px}.gem-volume-list b{color:#1f578f;font-variant-numeric:tabular-nums;font-size:9.5px}.spinner{border:2px solid #aac8f4;border-top-color:var(--blue);border-radius:50%;width:17px;height:17px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.saw-plan-section{margin-top:18px}.export-button{height:28px;color:var(--blue);cursor:pointer;background:#fff;border:1px solid #bcd1f1;border-radius:6px;align-items:center;gap:4px;padding:0 8px;font-size:9.5px;font-weight:650;display:flex}.export-button:hover{background:var(--blue-soft)}.saw-list{gap:6px;margin-top:9px;display:grid}.saw-list button{border:1px solid var(--border);text-align:left;cursor:pointer;background:#fff;border-radius:7px;align-items:center;gap:9px;width:100%;padding:8px;display:flex}.saw-list button:hover,.saw-list button.active{border-color:var(--blue);background:var(--blue-soft)}.saw-list button>span{width:24px;height:24px;color:var(--blue);border:1.5px solid var(--blue);border-radius:50%;place-items:center;font-size:10px;font-weight:700;display:grid}.saw-list button>div{flex-direction:column;gap:1px;display:flex}.saw-list strong{font-size:11px}.saw-list small{color:var(--muted);font-size:9.5px}.no-cuts-card{background:#f2fbf7;border:1px solid #b9e3cf;border-radius:8px;padding:11px}.no-cuts-card .section-title-row{margin-bottom:5px}.no-cuts-card p{color:#3f6654;margin:0;font-size:10.5px;line-height:16px}@media (max-width:1180px){.workbench-grid{grid-template-columns:240px minmax(440px,1fr) 300px;gap:10px;padding:10px}.panel{padding:14px}.drop-zone-button{min-height:118px}.brand{font-size:20px}.viewport-help span{gap:0;font-size:0}.viewport-help span svg{width:16px;height:16px}}@media (max-width:900px){.app-shell{height:auto;min-height:100vh;overflow:visible}.topbar{height:58px;padding:0 12px}.brand{font-size:18px}.brand-mark{width:31px;height:31px}.beta-badge{display:none}.topbar-button{font-size:0}.topbar-button svg{width:18px;height:18px}.workbench-grid{flex-direction:column;height:auto;min-height:calc(100vh - 58px);padding:10px;display:flex}.viewport-panel{order:1;height:58vh;min-height:440px}.input-panel{order:2;overflow:visible}.settings-panel{order:3;overflow:visible}.panel-section{vertical-align:top;width:calc(50% - 6px);display:inline-block}.panel-section+.panel-section{margin:0 0 0 8px}}@media (max-width:560px){.app-status{display:none}.panel-section{width:100%;display:block}.panel-section+.panel-section{margin:12px 0 0}.viewport-panel{height:52vh;min-height:390px}.viewport-help{display:none}.index-chip{top:auto;bottom:12px;right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@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}
