:root{--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-size-2xs: 10px;--font-size-xs: 11px;--font-size-xs-plus: 11.5px;--font-size-sm: 12px;--font-size-base: 13px;--font-size-base-plus: 13.5px;--font-size-md: 14px;--font-size-lg: 15px;--font-size-xl: 16px;--font-size-2xl: 17px;--font-size-3xl: 18px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--leading-none: 1;--leading-tight: 1.4;--leading-normal: 1.5;--leading-relaxed: 1.6;--space-2: 2px;--space-3: 3px;--space-4: 4px;--space-5: 5px;--space-6: 6px;--space-7: 7px;--space-8: 8px;--space-9: 9px;--space-10: 10px;--space-11: 11px;--space-12: 12px;--space-13: 13px;--space-14: 14px;--space-16: 16px;--space-18: 18px;--space-20: 20px;--space-22: 22px;--space-24: 24px;--space-40: 40px;--radius-3: 3px;--radius-4: 4px;--radius-5: 5px;--radius-6: 6px;--radius-7: 7px;--radius-8: 8px;--radius-10: 10px;--radius-12: 12px;--radius-16: 16px;--radius-24: 24px;--radius-pill: 99px;--radius-pill-lg: 999px;--radius-circle: 50%;--color-bg: #f5f5f7;--color-surface: #ffffff;--color-surface-muted: #fbfbfd;--color-surface-sunken: #f0f0f2;--color-surface-dark: #1d1d1f;--color-surface-dark-hover: #343438;--color-surface-dark-active: #111113;--color-card-glass: rgba(255, 255, 255, .7);--color-card-glass-focus: rgba(255, 255, 255, .96);--color-card-glass-border: rgba(255, 255, 255, .72);--color-card-glass-border-focus: rgba(210, 210, 215, .95);--color-mask-bg: #1e1e1e;--color-text: #424245;--color-text-strong: #1d1d1f;--color-text-emphasis: #343438;--color-text-secondary: #515154;--color-text-muted: #6e6e73;--color-text-subtle: #86868b;--color-text-faint: #6e6e73;--color-text-on-dark: #ffffff;--color-border: #d2d2d7;--color-border-strong: #a1a1a6;--color-border-light: #e5e5ea;--color-border-subtle: #f0f0f2;--color-border-muted: #e5e5ea;--color-border-input: #c2cad8;--color-border-popover: #d7dde8;--color-border-dashed: #d4dae3;--color-border-dots: #b6bdc8;--color-border-fine: #eef1f6;--color-primary: #0071e3;--color-primary-hover: #0077ed;--color-primary-active: #0068d1;--color-primary-tint: #eef6ff;--color-primary-tint-alt: #f1f6fd;--color-primary-border-soft: #b9dafb;--color-primary-ring: rgba(0, 113, 227, .12);--color-primary-outline-soft: #0071e366;--color-primary-soft: rgba(0, 113, 227, .08);--color-primary-soft-strong: rgba(0, 113, 227, .12);--color-primary-inset: rgba(0, 113, 227, .22);--color-primary-focus-ring: rgba(0, 113, 227, .45);--color-exposure-ring: rgba(255, 30, 90, .16);--color-danger: #ef4444;--color-danger-strong: #dc2626;--color-danger-hover: #b91c1c;--color-danger-text-hover: #991b1b;--color-danger-border: #fca5a5;--color-danger-bg-hover: #fef2f2;--color-danger-bg-soft: #fef3f2;--color-danger-tint: rgba(220, 38, 38, .07);--color-success: #22c55e;--color-success-text: #166534;--color-success-border: #86efac;--color-success-bg: #f0fdf4;--color-warn-text: #92400e;--color-warn-bg: #fef3c7;--color-warn-border: #fcd34d;--color-warn-bg-overlay: rgba(254, 243, 199, .94);--color-info-text: #1e40af;--color-info-border: #93c5fd;--color-info-bg: #eff6ff;--color-info-bg-overlay: rgba(219, 234, 254, .94);--color-cat-wet-bg: #e8f4ea;--color-cat-wet-text: #2d6a3e;--color-cat-vapor-bg: #e0ecff;--color-cat-vapor-text: #2f6fed;--color-cat-dry-bg: #f0eef8;--color-cat-dry-text: #5b4d8a;--color-cut-neon: #00e5ff;--color-cut-end: #0b1020;--color-cut-handle-bg: rgba(0, 229, 255, .18);--color-side-bg: rgba(255, 255, 255, .94);--color-side-back-text: #b45309;--color-side-back-border: #fcd34d;--color-side-back-bg: rgba(255, 251, 235, .96);--color-side-front-text: #1d4ed8;--color-side-front-border: #bfdbfe;--color-side-front-bg: rgba(239, 246, 255, .96);--color-exposure: #ff1e5a;--color-thermal: #f97316;--color-mask-busy-bg: rgba(30, 30, 30, .78);--color-mask-busy-text: #e2e8f0;--color-swatch-exposure: linear-gradient(to bottom, rgba(255, 30, 90, .55), rgba(255, 30, 90, 0));--color-swatch-thermal: linear-gradient(135deg, rgba(249, 115, 22, .35), rgba(251, 146, 60, .2));--color-swatch-anneal: linear-gradient(135deg, rgba(239, 68, 68, .42), rgba(220, 38, 38, .24));--color-swatch-clean: linear-gradient(135deg, rgba(14, 165, 233, .38), rgba(34, 211, 238, .18));--color-schematic-fill: #cdd8e6;--color-schematic-film: #9db8e6;--color-schematic-oxide: #cfe3ea;--color-schematic-oxide-stroke: #4a8295;--color-scrollthumb: rgba(120, 120, 128, .35);--color-scrollthumb-mid: rgba(120, 120, 128, .4);--color-scrollthumb-strong: rgba(120, 120, 128, .58);--color-hairline: #0003;--color-hairline-soft: #0002;--color-modal-scrim: rgba(15, 23, 42, .4);--color-tour-scrim: rgba(15, 23, 42, .55);--color-toast-bg: rgba(255, 255, 255, .98);--color-surface-glass: rgba(255, 255, 255, .7);--color-surface-label: rgba(255, 255, 255, .85);--color-text-primary: var(--color-text);--radius-sm: var(--radius-6);--shadow-header: 0 1px 0 rgba(29, 29, 31, .04);--shadow-xs: 0 1px 2px 0 rgba(29, 29, 31, .04);--shadow-btn-primary: 0 1px 2px 0 rgba(47, 111, 237, .25);--shadow-btn-primary-md: 0 4px 12px rgba(47, 111, 237, .14);--shadow-btn-primary-lg: 0 6px 16px rgba(47, 111, 237, .28);--shadow-btn-primary-xl: 0 8px 20px rgba(47, 111, 237, .34);--shadow-btn-primary-soft: 0 6px 16px rgba(47, 111, 237, .2);--shadow-btn-primary-tint: 0 6px 16px rgba(47, 111, 237, .16);--shadow-card: 0 1px 2px rgba(29, 29, 31, .03), 0 8px 22px rgba(29, 29, 31, .035);--shadow-card-focus: 0 12px 32px rgba(29, 29, 31, .08), 0 2px 6px rgba(29, 29, 31, .04);--shadow-menu: 0 10px 25px -5px rgba(15, 23, 42, .1), 0 8px 10px -6px rgba(15, 23, 42, .05);--shadow-lg: var(--shadow-menu);--shadow-modal: 0 25px 50px -12px rgba(15, 23, 42, .25);--shadow-modal-strong: 0 25px 50px -12px rgba(15, 23, 42, .3);--shadow-xl: 0 24px 60px rgba(15, 23, 42, .22);--shadow-fab: 0 6px 16px rgba(0, 113, 227, .22);--shadow-fab-hover: 0 8px 20px rgba(0, 113, 227, .28);--shadow-rates-fab: 0 2px 8px rgba(15, 23, 42, .08);--shadow-rates-fab-hover: 0 4px 12px rgba(15, 23, 42, .12);--shadow-switch: 0 1px 2px rgba(15, 23, 42, .25);--shadow-side-badge: 0 1px 2px rgba(15, 23, 42, .06);--shadow-preview-warn: 0 1px 4px rgba(15, 23, 42, .08);--shadow-step-item-hover: 0 4px 6px -1px rgba(0, 0, 0, .05);--shadow-pop: 0 14px 34px #1f2a4433;--shadow-chip: 0 1px 2px #0002;--shadow-focus: 0 0 0 3px rgba(47, 111, 237, .12);--shadow-focus-sm: 0 0 0 2px rgba(47, 111, 237, .12);--shadow-tour-spot: 0 0 0 9999px var(--color-tour-scrim), 0 0 0 2px var(--color-primary), 0 0 0 6px var(--color-primary-ring);--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-deck: cubic-bezier(.22, .61, .36, 1);--z-base: 1;--z-raised: 2;--z-overlay-badge: 3;--z-overlay: 5;--z-fab: 50;--z-popover: 50;--z-menu: 60;--z-step-scroll: 80;--z-modal: 100;--z-tour: 120;--card-width: 520px;--size-logo: 36px;--size-icon: 22px;--size-icon-sm: 16px}header{position:relative;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-12);padding:var(--space-12) var(--space-24);background:var(--color-surface);color:var(--color-text);border-bottom:1px solid var(--color-border-muted);box-shadow:var(--shadow-header)}.head-brand{display:flex;align-items:center;gap:var(--space-24);flex-wrap:wrap;min-width:0}header h1{font-size:var(--font-size-lg);margin:0;font-weight:var(--font-weight-semibold);letter-spacing:-.1px;display:flex;align-items:center;gap:var(--space-10);color:var(--color-text-strong);line-height:var(--leading-none)}.logo{width:44px;height:40px;flex-shrink:0;display:block;object-fit:contain;align-self:center}.head-file{display:flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}.head-file-critical{display:flex;align-items:center;gap:var(--space-5)}.head-actions{display:flex;gap:var(--space-8);flex-wrap:wrap;justify-content:flex-end;align-items:center;margin-left:auto}main{flex:1;display:flex;min-height:0}.pane-split{flex:none;width:0;padding:0;border:0;background:transparent;position:relative;z-index:var(--z-overlay);align-self:stretch;cursor:col-resize;touch-action:none}.pane-split:before{content:"";position:absolute;top:0;bottom:0;left:-5px;width:10px}.pane-split:after{content:"";position:absolute;top:18%;bottom:18%;left:-1px;width:2px;border-radius:1px;background:var(--color-primary);opacity:0}.pane-split:hover:after,.pane-split:focus-visible:after,body.pane-dragging .pane-split:after{opacity:1}body.pane-dragging{cursor:col-resize;-webkit-user-select:none;user-select:none}@media(min-width:921px){.studio main.panes-split #flow{flex:0 0 var(--flow-w);max-width:none}}#flow{flex:1;position:relative;overflow:hidden;container-type:inline-size;container-name:flow}.flow-top-controls{position:absolute;top:var(--space-14);left:var(--space-14);z-index:var(--z-overlay-badge);display:flex;align-items:center;gap:var(--space-8)}.head-history{position:absolute;left:50%;top:var(--space-14);transform:translate(-50%);display:flex;align-items:center;gap:var(--space-8);z-index:var(--z-overlay-badge)}.flow-top-controls .process-view-toggle{box-shadow:var(--shadow-xs)}.flow-meta{position:absolute;top:calc(var(--space-14) + 36px);left:var(--space-14);right:var(--space-20);z-index:var(--z-overlay-badge);max-width:21rem;pointer-events:none}.privacy-note{margin:0;font-size:var(--font-size-xs);color:var(--color-text-muted);line-height:var(--leading-relaxed);text-align:justify;-webkit-hyphens:auto;hyphens:auto}a.btn{text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-6);border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-emphasis);padding:var(--space-6) var(--space-14);border-radius:var(--radius-8);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);transition:all .15s var(--ease-standard);box-shadow:var(--shadow-xs);-webkit-user-select:none;user-select:none}.btn:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-text-strong)}.btn:active{background:var(--color-surface-sunken)}.btn:disabled{opacity:.48;cursor:not-allowed;box-shadow:none}.btn:disabled:hover{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-emphasis)}.btn.primary{background:var(--color-primary);color:var(--color-text-on-dark);border-color:var(--color-primary);box-shadow:var(--shadow-btn-primary)}.btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-on-dark)}.btn.primary:active{background:var(--color-primary-active);border-color:var(--color-primary-active)}header .btn,.head-history .btn{min-height:36px;padding:var(--space-8) var(--space-14);white-space:nowrap}.head-history .history-btn{width:36px;height:36px;padding:0;color:var(--color-text-strong)}.history-btn svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.head-history .history-btn:disabled{opacity:.62}.head-history .history-btn:disabled:hover{color:var(--color-text-strong)}.file-action{min-height:36px;padding:var(--space-8) var(--space-14);border-width:1.5px;font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-btn-primary-md)}.file-action svg{flex:none;width:15px;height:15px}.file-action-save{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-dark);box-shadow:var(--shadow-btn-primary-lg)}.file-action-save:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-text-on-dark);box-shadow:var(--shadow-btn-primary-xl);transform:translateY(-1px)}.file-action-save:active{background:var(--color-primary-active);border-color:var(--color-primary-active);transform:translateY(0)}.file-action-load{background:var(--color-primary-tint);border-color:var(--color-primary-border-soft);color:var(--color-primary-hover)}.file-action-load:hover{background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary-active);box-shadow:var(--shadow-btn-primary-soft);transform:translateY(-1px)}.file-action-load:active{background:var(--color-primary-tint);transform:translateY(0)}.mini{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-6);padding:var(--space-4) var(--space-10);cursor:pointer;font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all .15s ease}.mini:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-text-strong)}.mini.danger{color:var(--color-danger-strong);border-color:var(--color-danger-border)}.mini.danger:hover{background:var(--color-danger-bg-hover);border-color:var(--color-danger);color:var(--color-danger-text-hover)}#tutorialBtn{color:var(--color-primary);border-color:var(--color-primary-border-soft);font-weight:var(--font-weight-semibold)}#tutorialBtn:hover{background:var(--color-primary-tint);border-color:var(--color-primary);color:var(--color-primary-hover)}#tutorialBtn svg,.flow-fab svg{flex:none;width:14px;height:14px}.flow-bottom-bar{position:absolute;bottom:var(--space-24);left:0;right:0;padding:0 var(--space-16);display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:var(--space-12);z-index:var(--z-fab);pointer-events:none}.flow-bottom-bar>*{pointer-events:auto}.flow-bottom-left{grid-column:1;grid-row:1;justify-self:start;display:flex;flex-direction:row;align-items:flex-end;gap:var(--space-8);min-width:0;max-width:100%}.feedback-stack{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4)}.feedback-note{font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-primary);line-height:var(--leading-tight);pointer-events:none;white-space:nowrap}.flow-fab{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-6);min-height:36px;min-width:7.75rem;padding:var(--space-9) var(--space-16);border:1px solid var(--color-border);border-radius:var(--radius-24);background:var(--color-surface-muted);color:var(--color-text-secondary);font:var(--font-weight-medium) var(--font-size-sm)/var(--leading-tight) var(--font-sans);cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:var(--shadow-rates-fab);transition:background .2s var(--ease-standard),border-color .2s var(--ease-standard),color .2s var(--ease-standard),box-shadow .2s var(--ease-standard),transform .2s var(--ease-standard)}button.flow-fab{margin:0;appearance:none;-webkit-appearance:none}.flow-bottom-left .flow-fab{width:7.75rem}.flow-fab:hover{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text-strong);box-shadow:var(--shadow-rates-fab-hover);transform:translateY(-1px)}.flow-fab:active{background:var(--color-surface-sunken);transform:translateY(0)}.add-fab{grid-column:2;grid-row:1;justify-self:center;background:var(--color-primary);color:var(--color-text-on-dark);border:none;border-radius:var(--radius-24);padding:var(--space-10) var(--space-22);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);cursor:pointer;box-shadow:var(--shadow-fab);transition:all .2s var(--ease-standard);display:flex;align-items:center;gap:var(--space-6);white-space:nowrap}.add-fab:hover{background:var(--color-primary-hover);box-shadow:var(--shadow-fab-hover);transform:translateY(-2px)}.add-fab:active{background:var(--color-primary-active);transform:translateY(0)}.cite-btn{grid-column:3;grid-row:1;justify-self:end;box-sizing:border-box;min-height:35.5px;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-24);padding:var(--space-10) var(--space-22);font:var(--font-weight-medium) var(--font-size-base)/var(--leading-tight) var(--font-sans);color:var(--color-text-secondary);cursor:pointer;box-shadow:var(--shadow-rates-fab);white-space:nowrap;transition:background .2s var(--ease-standard),border-color .2s var(--ease-standard),color .2s var(--ease-standard),box-shadow .2s var(--ease-standard),transform .2s var(--ease-standard)}.cite-btn:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-text-strong);box-shadow:var(--shadow-rates-fab-hover);transform:translateY(-1px)}.cite-btn:active{background:var(--color-surface-sunken);transform:translateY(0)}.row{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto;gap:var(--space-8);align-items:center;margin:var(--space-8) 0}.row>label{min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.row input,.row select{width:100%;min-width:0;padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);font-size:var(--font-size-base);color:var(--color-text);background:var(--color-surface);transition:all .15s ease-in-out}.row input:focus,.row select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.row .unit{color:var(--color-text-muted);font-size:var(--font-size-sm)}.row>select,.row>.litho-outcome{grid-column:2 / -1}.row-control{display:flex;align-items:center;gap:var(--space-8);min-width:0;grid-column:2 / -1}.row-control .mat-select{flex:1;min-width:0}.etch-time-row{grid-template-columns:7.5rem minmax(0,1fr) auto auto auto}.etch-conversion-arrow{color:var(--color-text-subtle);padding-left:var(--space-2)}.etch-derived-wrap{min-width:0}.etch-derived{appearance:none;border:0;border-bottom:1px dashed transparent;border-radius:0;padding:var(--space-6) 0;background:transparent;color:var(--color-primary);font:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);white-space:nowrap;cursor:pointer}.etch-derived:hover,.etch-derived:focus-visible{border-bottom-color:currentColor;outline:none}.etch-derived-editor{width:5.4rem!important;min-width:0;padding:var(--space-5) var(--space-7)!important;color:var(--color-primary)!important;font-weight:var(--font-weight-semibold)}.row>.switch{grid-column:2;justify-self:start}.list-row{display:flex;gap:var(--space-8);align-items:center;margin:var(--space-6) 0}.mat-select{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:var(--space-8);padding:var(--space-6) var(--space-12);border:1px solid var(--color-border);border-radius:var(--radius-8);background:var(--color-surface);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text);transition:all .15s ease}.mat-select:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted)}.mat-select .mat-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-select .caret{color:var(--color-text-muted);font-size:var(--font-size-xs);flex:none}.mat-menu{position:fixed;z-index:calc(var(--z-modal) + 20);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-12);box-shadow:var(--shadow-menu);padding:var(--space-5);min-width:260px;max-width:min(360px,calc(100vw - 16px))}.mat-search{padding:var(--space-4) var(--space-4) var(--space-6);border-bottom:1px solid var(--color-surface-sunken);margin-bottom:var(--space-2)}.mat-search-in{width:100%;padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-sm);transition:all .15s ease}.mat-search-in:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.mat-search-in::placeholder{color:var(--color-text-subtle)}.mat-list{max-height:124px;overflow-y:auto}.mat-empty{padding:var(--space-10) var(--space-11);font-size:var(--font-size-sm);color:var(--color-text-subtle);text-align:center}.mat-group-label{font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-subtle);padding:var(--space-8) var(--space-11) var(--space-3);-webkit-user-select:none;user-select:none}.mat-group-label:first-child{padding-top:var(--space-3)}.mat-opt{display:flex;align-items:center;gap:var(--space-9);padding:var(--space-7) var(--space-11);border-radius:var(--radius-8);cursor:pointer;font-size:var(--font-size-base);color:var(--color-text-emphasis);transition:all .1s ease}.mat-opt:hover{background:var(--color-surface-sunken);color:var(--color-text-strong)}.mat-opt.sel{background:var(--color-border-light);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.mat-opt.add{color:var(--color-primary);border-top:1px solid var(--color-surface-sunken);margin-top:var(--space-3);font-weight:var(--font-weight-medium)}.mat-opt .plus{font-weight:var(--font-weight-bold);width:18px;text-align:center}.color-chip.sm{width:18px;height:14px}.mat-addrow{padding:var(--space-6)}.mat-newin{width:100%;padding:var(--space-7) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base);transition:all .15s ease}.mat-newin:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.mat-newin::placeholder{color:var(--color-text-subtle)}.swatch{width:16px;height:16px;border-radius:var(--radius-4);border:1px solid var(--color-hairline);flex:none}.mini-switch{position:relative;width:22px;height:12px;border-radius:var(--radius-6);background:var(--color-border-muted);transition:background .15s ease}.mini-switch:after{content:"";position:absolute;top:2px;left:2px;width:8px;height:8px;border-radius:50%;background:var(--color-surface);transition:left .15s ease,transform .15s ease}input:checked+.mini-switch{background:var(--color-primary)}input:checked+.mini-switch:after{left:12px}.addline{margin-top:var(--space-10)}.del{border:0;background:transparent;color:var(--color-danger);cursor:pointer;padding:0 var(--space-6);font:inherit;font-weight:700;transition:color .15s ease}.del:hover{color:var(--color-danger-hover)}.row .pattern-button{grid-column:2 / -1;display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-base);text-align:left;cursor:pointer;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}.row .pattern-button:after{content:">";flex:none;margin-left:var(--space-8);color:var(--color-text-subtle);font-weight:var(--font-weight-semibold)}.row .pattern-button-value{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .pattern-button[data-pattern-mode=none] .pattern-button-value{color:var(--color-text-secondary)}.row .pattern-button:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong)}.row .pattern-button:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.pattern-view-list{display:flex;flex-direction:column;gap:var(--space-4)}.pattern-gds-hint{font-size:var(--font-size-sm);line-height:1.35}.pattern-source-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-border-light);border-radius:var(--radius-8);background:var(--color-surface-sunken)}.pattern-source-picker .pattern-source-option{min-width:0;min-height:34px;margin:0;padding:var(--space-6) var(--space-8);border-color:transparent;background:transparent;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pattern-source-picker .pattern-source-option:hover{border-color:transparent;background:var(--color-surface-glass);color:var(--color-text-strong)}.pattern-source-picker .pattern-source-option.active{border-color:var(--color-border-light);background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-xs);font-weight:var(--font-weight-semibold)}.pattern-source-content{margin-top:var(--space-16)}.pattern-state{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-16) var(--space-4);border-top:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle)}.pattern-state strong{color:var(--color-text-strong);font-size:var(--font-size-base-plus)}.pattern-state span{color:var(--color-text-muted);font-size:var(--font-size-sm)}.pattern-actions{display:flex;align-items:center;gap:var(--space-8);flex-wrap:wrap;margin:var(--space-12) 0 var(--space-8)}.pattern-gds-source{display:grid;grid-template-columns:78px minmax(0,1fr) auto;align-items:center;gap:var(--space-8)}.pattern-gds-source.empty{display:flex;justify-content:flex-start}.pattern-gds-source label{color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium)}.pattern-gds-source select{min-width:0;width:100%;padding:var(--space-7) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text);font-size:var(--font-size-base)}.pattern-gds-source select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.pattern-gds-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);margin-top:var(--space-12);padding:var(--space-10) 0;border-top:1px solid var(--color-border-subtle);border-bottom:1px solid var(--color-border-subtle)}.pattern-gds-status-copy{min-width:0;display:flex;align-items:baseline;gap:var(--space-8)}.pattern-gds-status-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--color-text-strong);font-size:var(--font-size-base)}.pattern-gds-status-copy span,.pattern-gds-state{flex:none;color:var(--color-text-muted);font-size:var(--font-size-xs-plus)}.pattern-gds-status.missing .pattern-gds-state{color:var(--color-warn-text)}.pattern-cross-section{margin-top:var(--space-16);padding-top:var(--space-12);border-top:1px solid var(--color-border-subtle)}.pattern-section-label{color:var(--color-text-muted);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);text-transform:uppercase}.gds-layer-row{padding-bottom:var(--space-6);border-bottom:1px solid var(--color-border-subtle)}.cut-layer-select{min-width:140px;padding:2px 6px;border:1px solid var(--color-border-light);border-radius:var(--radius-6);background:var(--color-surface);color:var(--color-text-strong);font-size:var(--font-size-xs-plus)}.newmat{display:flex;gap:var(--space-8);align-items:center;margin:var(--space-6) 0}.newmat .newmat-name{flex:1;min-width:0;padding:var(--space-6) var(--space-8);border:1px solid var(--color-border-input);border-radius:var(--radius-6);font-size:var(--font-size-base)}.color-pick{position:relative;display:inline-flex;align-items:center;gap:var(--space-7);padding:var(--space-5) var(--space-10) var(--space-5) var(--space-7);border:1px solid var(--color-border-input);border-radius:var(--radius-7);cursor:pointer;background:var(--color-surface);-webkit-user-select:none;user-select:none}.color-pick:hover{background:var(--color-primary-tint-alt);border-color:var(--color-primary)}.color-pick input[type=color]{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer;border:none;padding:0}.color-dot{width:18px;height:18px;border-radius:var(--radius-5);border:1px solid var(--color-hairline);box-shadow:var(--shadow-chip)}.color-txt{font-size:var(--font-size-sm);color:var(--color-text-faint)}.color-pick:hover .color-txt{color:var(--color-primary)}.color-chip{width:24px;height:16px;border-radius:var(--radius-4);border:1px solid var(--color-hairline);box-shadow:var(--shadow-chip);cursor:pointer;flex:none;display:inline-block;vertical-align:-2px}.color-chip:hover{outline:2px solid var(--color-primary-outline-soft);outline-offset:1px}.row-control>.color-chip,.list-row>.color-chip{align-self:stretch;height:auto;width:28px;border-radius:var(--radius-6)}.color-pop{position:fixed;z-index:calc(var(--z-modal) + 50);background:var(--color-surface);border:1px solid var(--color-border-popover);border-radius:var(--radius-10);box-shadow:var(--shadow-pop);padding:var(--space-12)}.color-grid{display:grid;grid-template-columns:repeat(5,24px);gap:var(--space-7)}.color-cell{width:24px;height:24px;border-radius:var(--radius-6);border:1px solid var(--color-hairline-soft);cursor:pointer;padding:0;transition:transform .08s}.color-cell:hover{transform:scale(1.14)}.color-cell.sel{outline:2px solid var(--color-primary);outline-offset:1px}.color-fine{display:flex;align-items:center;gap:var(--space-8);margin-top:var(--space-11);padding-top:var(--space-10);border-top:1px solid var(--color-border-fine)}.color-fine .hex{width:84px;padding:var(--space-5) var(--space-7);border:1px solid var(--color-border-input);border-radius:var(--radius-6);font-size:var(--font-size-sm)}.color-actions{display:flex;gap:var(--space-8);margin-top:var(--space-12)}.color-actions .btn{flex:1;justify-content:center;padding:var(--space-5) var(--space-8);font-size:var(--font-size-sm)}.recipe-metadata input{grid-column:2 / -1}.recipe-metadata input::placeholder{color:var(--color-text-muted);opacity:1}.spin-status{font-weight:var(--font-weight-semibold)}.spin-warning{color:var(--color-text-secondary)}.spin-recipe-readout[data-status=extrapolated]{border-left:3px solid #b77c24;padding-left:var(--space-10)}.card{--font-size-base: 12px;--font-size-base-plus: 12px;--font-size-3xl: 15px;position:absolute;left:50%;top:50%;width:var(--card-width);max-width:calc(100% - var(--space-16));box-sizing:border-box;transform-origin:center center;transform-style:preserve-3d;transition:transform .34s var(--ease-deck),height .34s var(--ease-deck),top .34s var(--ease-deck),opacity .28s ease,background .28s ease;cursor:pointer}.card-surface{position:relative;box-sizing:border-box;width:100%;height:100%;min-width:0;overflow:hidden;background:var(--color-card-glass);border:1px solid var(--color-card-glass-border);border-radius:18px;box-shadow:var(--shadow-card);padding:var(--space-20) var(--space-24);backface-visibility:hidden;-webkit-backface-visibility:hidden}.card.focus{cursor:default;transform-style:flat}.card.focus .card-surface{display:flex;flex-direction:column;background:var(--color-card-glass-focus);box-shadow:var(--shadow-card-focus);border-color:var(--color-card-glass-border-focus);backface-visibility:visible;-webkit-backface-visibility:visible}.card-kind{display:flex;align-items:center;gap:var(--space-5);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.8px;color:var(--color-text-muted);font-weight:var(--font-weight-medium)}.card-step{color:var(--color-text-subtle);font-variant-numeric:tabular-nums;font-weight:var(--font-weight-semibold);letter-spacing:.06em}.card-kind-separator{color:var(--color-border-strong)}.card .card-remove{position:absolute;top:var(--space-8);right:var(--space-8);margin:0;padding:var(--space-4);line-height:1}.card.before .card-surface,.card.after .card-surface{background:color-mix(in srgb,var(--color-card-glass) 88%,transparent);box-shadow:0 18px 42px #0f172a14,0 4px 12px #0f172a0a}.card h2{display:flex;align-items:baseline;gap:var(--space-8);font-size:var(--font-size-3xl);margin:var(--space-4) 0 var(--space-10);color:var(--color-text-strong);font-weight:var(--font-weight-semibold);line-height:1.2}.card h2 .title-expand{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);color:var(--color-text-muted);margin-left:0;line-height:1.2}.card-title{flex:1;min-width:0;width:100%;margin:0;padding:0;height:1.2em;min-height:0;border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;box-shadow:none;line-height:inherit;appearance:none;-webkit-appearance:none}.card-title:focus{outline:none}.card-title::placeholder{color:var(--color-text-muted)}.card input[type=number]{-moz-appearance:textfield}.card input[type=number]::-webkit-inner-spin-button,.card input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.card:not(.focus) .card-title{pointer-events:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card .summary{color:var(--color-text-secondary);font-size:var(--font-size-base)}.card .row{margin:var(--space-6) 0}.card.focus .summary,.card .body{display:none}.card.focus .card-kind,.card.focus h2{flex-shrink:0}.card.focus .body{display:block;flex:1 1 auto;min-width:0;min-height:0;overflow:auto;padding-bottom:var(--space-8)}.card:not(.focus):not(.measuring) h2,.card:not(.focus):not(.measuring) .summary{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.card.measuring{height:auto!important}.card.measuring .card-surface{display:flex;flex-direction:column}.card.measuring .summary{display:none}.card.measuring .body{display:block;flex:none;overflow:visible}.stack-area{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8);margin:0 0 var(--space-16);padding:var(--space-10) var(--space-12);border:1px solid var(--color-border-subtle);border-radius:var(--radius-10);background:color-mix(in srgb,var(--color-surface) 58%,transparent);color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--leading-tight)}.stack-area-title{color:var(--color-text-emphasis);font-weight:var(--font-weight-medium)}.stack-area>label{display:flex;align-items:center;gap:var(--space-5);min-width:0}.stack-area-field{display:inline-flex;align-items:center;gap:var(--space-5)}.stack-area-field small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.stack-area input{width:7em;min-width:0;max-width:100%;height:var(--stack-cell, 36px);box-sizing:border-box;padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);color:var(--color-text);background:var(--color-surface);font:inherit}.stack-area input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.stack-fit{flex:0 0 auto;margin-left:auto;min-height:var(--stack-cell, 36px);white-space:nowrap}.stack-hint{margin-bottom:var(--space-8);font-size:var(--font-size-sm);line-height:var(--leading-tight)}.stack-add{display:inline-flex;align-items:center;justify-content:center;height:32px;margin:var(--space-14) 0;padding:0 var(--space-12);border-radius:var(--radius-8);font-size:var(--font-size-sm);line-height:var(--leading-tight)}.stack-layers{display:flex;flex-direction:column-reverse;gap:var(--space-8)}.stack-layers .stack-row{--stack-cell: 36px;display:grid;grid-template-columns:var(--stack-cell) minmax(6em,1fr) minmax(5.6em,6.4em) 22px minmax(4.4em,6em) minmax(0,max-content) 16px;grid-template-areas:"chip mat thick unit ori tag del";align-items:center;margin:0;min-width:0;min-height:var(--stack-cell);gap:var(--space-8);font-size:var(--font-size-base);line-height:var(--leading-tight)}.stack-layers .stack-row>:nth-child(1){grid-area:chip}.stack-layers .stack-row>:nth-child(2){grid-area:mat}.stack-layers .stack-row>:nth-child(3){grid-area:thick}.stack-layers .stack-row>:nth-child(4){grid-area:unit}.stack-layers .stack-row>:nth-child(5){grid-area:ori}.stack-layers .stack-row>:nth-child(6){grid-area:tag}.stack-layers .stack-row>:nth-child(7){grid-area:del}.stack-layers .stack-row>.color-chip{width:var(--stack-cell);height:var(--stack-cell);max-width:36px;max-height:36px;align-self:center;border-radius:var(--radius-8)}.stack-layers .stack-row .mat-select,.stack-layers .stack-row .stack-thickness,.stack-layers .stack-row .stack-orientation{width:100%;height:var(--stack-cell);min-height:var(--stack-cell);box-sizing:border-box;font-size:var(--font-size-base)}.stack-layers .stack-row .stack-thickness,.stack-layers .stack-row .stack-orientation{min-width:0;padding:var(--space-6) var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-8);color:var(--color-text);background:var(--color-surface)}.stack-layers .stack-row .mat-select{padding:var(--space-6) var(--space-12);display:flex;align-items:center;min-width:0;overflow:hidden}.stack-layers .stack-row .mat-select .mat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stack-layers .stack-row .unit{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:var(--leading-tight)}@container flow (max-width: 520px){.stack-layers .stack-row,.stack-layers .stack-row.stack-row-substrate{grid-template-columns:var(--stack-cell) minmax(6em,1fr) minmax(5.6em,6.4em) 22px 16px;grid-template-areas:"chip mat thick unit del" "chip ori ori tag tag"}.card-surface{padding:var(--space-16) var(--space-14)}}.stack-orientation-spacer{min-width:0}.stack-layers .stack-row .stack-orientation{max-width:100%;padding-inline:var(--space-6);overflow:hidden;cursor:pointer;transition:all .15s ease}.stack-layers .stack-row .stack-orientation:hover{border-color:var(--color-border-strong);background:var(--color-surface-muted)}.stack-layers .stack-row .stack-orientation:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.stack-tag{font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);min-width:0;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}.backside-section{margin-top:var(--space-14)}.backside-divider{display:flex;align-items:center;justify-content:center;gap:var(--space-10);margin:var(--space-6) 0 var(--space-12);color:var(--color-text-subtle);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:.06em}.backside-divider:before,.backside-divider:after{content:"";flex:1 1 auto;height:0;border-top:2px dashed var(--color-border-dashed)}.backside-divider .dots{letter-spacing:2px;color:var(--color-border-dots);font-size:var(--font-size-base);line-height:var(--leading-none)}.backside-divider .lbl{white-space:nowrap}.backside-layers{margin-top:var(--space-4);flex-direction:column}.rate-tbl{margin:var(--space-8) 0;max-width:100%;overflow-x:auto}.rate-tbl .list-row{display:grid;grid-template-columns:minmax(0,1fr) 60px auto;gap:var(--space-6) var(--space-8);align-items:center}.rate-tbl.aniso .list-row{grid-template-columns:minmax(0,1fr) 52px 44px 58px 40px 54px 16px}.rate-tbl.aniso.ion .list-row{grid-template-columns:minmax(0,1fr) 60px 48px 60px 48px}.rate-tbl .list-row label{min-width:0;color:var(--color-text-secondary);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--space-6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rate-tbl input{width:100%;min-width:0;padding:var(--space-6) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-8);transition:all .15s ease}.rate-tbl input:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.rate-tbl input:disabled{background:var(--color-surface-sunken);color:var(--color-text-subtle);cursor:not-allowed}.rate-tbl .unit{color:var(--color-text-muted);font-size:var(--font-size-sm);white-space:nowrap}.rate-tbl .rate-hint{display:flex;align-items:center;gap:var(--space-8);margin:var(--space-2) 0 var(--space-6)}.rate-tbl .rate-hint .muted{flex:1;min-width:0}.rate-tbl .sw-schematic{width:60px;height:26px;flex:none}.rate-tbl .rate-head{font-size:var(--font-size-xs);color:var(--color-text-muted);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2)}.rate-tbl .rate-head .h2,.rate-tbl .rate-head .h3{text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.rate-tbl .rate-head .h2{grid-column:2 / 4}.rate-tbl .rate-head .h3{grid-column:4 / 6}.rate-tbl .rate-head.sw-pick .sw-pick-group{grid-column:4 / -1;display:flex;align-items:center;gap:var(--space-4);min-width:0}.rate-tbl .rate-head.sw-pick .h-or{flex:none;white-space:nowrap;font-style:italic;text-transform:lowercase;color:var(--color-text-subtle)}.rate-tbl .rate-head.sw-pick .sw-opt{flex:1 1 0;min-width:0;box-sizing:border-box;appearance:none;-webkit-appearance:none;display:inline-flex;align-items:center;justify-content:center;font:inherit;font-size:var(--font-size-2xs);line-height:1.25;cursor:pointer;padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-6);background:var(--color-surface);color:var(--color-text-muted);font-weight:var(--font-weight-medium);text-align:center;white-space:nowrap;transition:color .12s ease,border-color .12s ease,background .12s ease}.rate-tbl .rate-head.sw-pick .sw-opt:hover{color:var(--color-text-strong);border-color:var(--color-border-strong)}.rate-tbl .rate-head.sw-pick .sw-opt.active{color:var(--color-primary);font-weight:var(--font-weight-semibold);border-color:var(--color-primary);background:var(--color-primary-tint)}.hint-line{margin:var(--space-4) 0;line-height:1.35}.card-opt{margin:var(--space-4) 0 0;border-top:1px solid var(--color-border-subtle);padding-top:var(--space-4)}.card-opt>summary{cursor:pointer;color:var(--color-text-muted);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);list-style:none}.card-opt>summary::-webkit-details-marker{display:none}.card-opt>summary:before{content:"";display:inline-block;width:.45em;height:.45em;margin-right:var(--space-8);border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);vertical-align:.15em}.card-opt[open]>summary:before{transform:rotate(45deg)}.card-opt>summary+*{margin-top:var(--space-6)}.card-notes textarea{width:100%;box-sizing:border-box;padding:var(--space-6) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-8);color:var(--color-text);background:var(--color-surface);font:inherit;font-size:var(--font-size-base);resize:vertical;min-height:3.2em}.card-notes textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.sw-toggle-row{display:flex;align-items:center;gap:var(--space-10);margin:var(--space-12) 0 var(--space-8)}.switch{position:relative;flex:none;width:38px;height:22px;padding:0;border:none;cursor:pointer;border-radius:var(--radius-pill);background:var(--color-border);transition:background .15s ease}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:var(--radius-circle);background:var(--color-surface);box-shadow:var(--shadow-switch);transition:transform .15s ease}.switch.on{background:var(--color-primary)}.switch.on:after{transform:translate(16px)}.sw-toggle-label{font-size:var(--font-size-base);color:var(--color-text-emphasis);font-weight:var(--font-weight-medium)}.litho-outcome-row{align-items:stretch}.litho-outcome-row>label{padding-top:var(--space-8)}.litho-outcome{flex:1;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-8);background:var(--color-surface-muted)}.litho-outcome-btn{min-width:0;padding:var(--space-7) var(--space-10);border:1px solid transparent;border-radius:var(--radius-6);background:transparent;color:var(--color-text-secondary);cursor:pointer;text-align:left;transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease}.litho-outcome-btn:hover{background:var(--color-surface);color:var(--color-text-strong)}.litho-outcome-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-sm)}.litho-outcome-btn.active{background:var(--color-surface);border-color:var(--color-primary-border-soft);color:var(--color-primary);box-shadow:var(--shadow-xs)}.litho-outcome-label{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:var(--leading-tight)}.litho-outcome-context{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:var(--space-2);font-size:var(--font-size-2xs);color:var(--color-text-muted);line-height:var(--leading-tight)}.litho-outcome-btn.active .litho-outcome-context{color:var(--color-text-secondary)}.mask-draw-wrap{margin-top:var(--space-12)}.mask-draw-help{margin-bottom:var(--space-6);font-size:var(--font-size-2xs);line-height:var(--leading-normal)}.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.mask-draw-tools{display:flex;flex-wrap:wrap;gap:var(--space-4);margin-bottom:var(--space-6);justify-content:flex-end}.ltool{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-6);padding:var(--space-4) var(--space-10);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.ltool:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-text-strong)}.ltool.primary{background:var(--color-surface-dark);border-color:var(--color-surface-dark);color:var(--color-text-on-dark)}.ltool.primary:hover{background:var(--color-surface-dark-hover);border-color:var(--color-surface-dark-hover);color:var(--color-text-on-dark)}.ltool.danger{color:var(--color-danger-strong);border-color:var(--color-danger-border)}.ltool.danger:hover{background:var(--color-danger-bg-hover);border-color:var(--color-danger);color:var(--color-danger-text-hover)}.ltool:disabled{cursor:not-allowed;opacity:.45}.ltool:disabled:hover{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary)}.mask-draw{position:relative;width:100%;height:84px;background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-8);overflow:hidden;cursor:crosshair;touch-action:none;user-select:none;-webkit-user-select:none}.mask-draw.readonly{cursor:default;opacity:.96}.mask-draw.readonly:focus-within{box-shadow:none;border-color:var(--color-border-light)}.mask-draw:focus-within{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-sm)}.mask-draw canvas{display:block;width:100%;height:100%}.dim-popover{position:fixed;z-index:calc(var(--z-modal) + 20);width:200px;padding:var(--space-12);border:1px solid var(--color-border-light);border-radius:var(--radius-12);background:var(--color-surface);box-shadow:var(--shadow-modal)}.dim-popover-title{margin-bottom:var(--space-8);color:var(--color-text-strong);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold)}.dim-popover-field{display:flex;align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-8);border:1px solid var(--color-border-light);border-radius:var(--radius-8);background:var(--color-surface-muted)}.dim-popover-field+.dim-popover-field{margin-top:var(--space-6)}.dim-popover-field input{width:100%;border:0;outline:0;background:transparent;color:var(--color-text-strong);font-size:var(--font-size-base);font-weight:var(--font-weight-medium)}.dim-popover-field span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.dim-popover-actions{display:flex;justify-content:flex-end;gap:var(--space-6);margin-top:var(--space-10)}.dim-popover-error{margin-top:var(--space-6);color:var(--color-danger);font-size:var(--font-size-xs);line-height:var(--leading-tight)}#carousel{position:absolute;inset:0 32px 0 0;perspective:1100px;perspective-origin:50% 50%;transform-origin:center center}#carousel .card{max-width:calc(100% - 48px)}#carousel.no-anim,#carousel.no-anim .card{transition:none!important}#carousel.drag-armed,#carousel.drag-armed *{user-select:none;-webkit-user-select:none}#carousel.dragging,#carousel.dragging .card{cursor:grabbing;transition:none!important;will-change:transform,opacity}#carousel.dragging .card .body{display:none}#carousel.dragging .card h2,#carousel.dragging .card .summary{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.step-scroll{position:absolute;right:var(--space-12);top:50%;transform:translateY(-50%);z-index:var(--z-step-scroll);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-8);max-height:min(62%,440px);padding:var(--space-8) var(--space-4);opacity:.68;transition:opacity .25s ease}.step-scroll.visible{opacity:1}.step-scroll-dot{appearance:none;-webkit-appearance:none;width:7px;height:7px;min-width:7px;min-height:7px;padding:0;border:0;border-radius:var(--radius-circle);background:var(--color-border-strong);box-shadow:none;cursor:pointer;transition:transform .2s var(--ease-standard),background .2s ease,opacity .2s ease}.step-scroll-dot:hover{background:var(--color-border-strong)}.step-scroll-dot.active{transform:scale(1.43);background:var(--color-primary)}.step-scroll-dot:focus-visible{outline:2px solid var(--color-primary-focus-ring);outline-offset:3px}#preview{width:clamp(400px,40%,560px);background:var(--color-surface);border-left:1px solid var(--color-border-muted);box-shadow:-14px 0 32px #1d1d1f06;padding:var(--space-20) var(--space-24) var(--space-16);display:flex;flex-direction:column;align-items:stretch;overflow:hidden;min-height:0;min-width:0;container-type:inline-size;container-name:preview}#preview:has(.preview-rail[data-view-count="2"]),#preview:has(.preview-rail[data-view-count="3"]){width:min(70%,1000px);max-width:calc(100% - 420px)}body:has(#maskModal:not(.hidden)) #preview,body:has(#maskModal:not(.hidden)) #preview:has(.preview-rail[data-view-count="2"]),body:has(#maskModal:not(.hidden)) #preview:has(.preview-rail[data-view-count="3"]){width:min(48%,720px);max-width:calc(100% - 560px)}.preview-rail{flex:1 1 auto;min-height:0;min-width:0;display:flex;gap:var(--space-10);overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:var(--color-scrollthumb-mid) transparent}.preview-panel{flex:1 0 300px;min-width:300px;min-height:0;display:flex;flex-direction:column;border:1px solid var(--color-border-muted);border-top-width:2px;border-radius:var(--radius-10, 10px);background:var(--color-surface);overflow:hidden;background-clip:padding-box;isolation:isolate;contain:layout style;scroll-snap-align:start;transition:border-color .15s ease}.preview-rail[data-view-count="1"] .preview-panel{flex-basis:100%;min-width:0;border-color:var(--color-surface)}.preview-panel.active{border-color:color-mix(in srgb,var(--view-color, var(--color-primary)) 40%,var(--color-border-muted));border-top-color:var(--view-color, var(--color-primary))}.preview-rail[data-view-count="1"] .preview-panel.active{border-color:var(--color-surface);border-top-color:var(--view-color, var(--color-primary))}@container preview (max-width: 660px){.preview-rail[data-view-count="2"],.preview-rail[data-view-count="3"]{flex-direction:column;overflow:hidden}.preview-rail[data-view-count="2"] .preview-panel,.preview-rail[data-view-count="3"] .preview-panel{flex:1 1 0;width:auto;min-width:0;min-height:0;max-width:none}}.preview-panel:not(.active) .preview-dims{pointer-events:none!important}.preview-panel-head{flex:0 0 auto;min-height:42px;display:flex;align-items:center;gap:var(--space-6);padding:var(--space-6) var(--space-8);border-bottom:1px solid var(--color-border-muted);border-radius:calc(var(--radius-10, 10px) - 2px) calc(var(--radius-10, 10px) - 2px) 0 0;background:var(--color-surface-muted);background-clip:padding-box}.preview-view-badge{display:inline-grid;place-items:center;width:22px;height:22px;flex:none;border-radius:50%;background:var(--view-color);color:var(--color-text-on-dark);font-size:var(--font-size-xs);font-weight:750}.preview-view-width{flex:none;display:inline-flex;align-items:center;border:1px solid var(--color-border-muted);border-radius:var(--radius-6);background:var(--color-surface);overflow:hidden}.preview-view-width input{width:54px;border:0;outline:0;padding:4px 3px 4px 6px;color:var(--color-text-primary);font-size:var(--font-size-xs);text-align:right;background:transparent}.preview-view-width select{width:42px;border:0;border-left:1px solid var(--color-border-light);outline:0;padding:4px 2px;color:var(--color-text-secondary);font-size:var(--font-size-xs);background:var(--color-surface-muted)}.preview-panel-edit{flex:none;border:0;background:transparent;color:var(--color-text-secondary);cursor:pointer;padding:4px 6px;border-radius:var(--radius-6, 6px);font-size:var(--font-size-xs);line-height:1.2;white-space:nowrap}.preview-panel-edit:hover{color:var(--color-text-strong);background:var(--color-surface-muted)}.preview-panel-remove{flex:none;border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;width:22px;height:22px;padding:0;border-radius:50%;font-size:var(--font-size-2xl);line-height:1}.preview-panel-remove:hover{color:var(--color-danger-strong);background:var(--color-danger-tint)}.preview-rail[data-view-count="1"] .preview-panel-remove{visibility:hidden}.preview-panel .preview-plot{padding:10px 42px 8px}.preview-panel [data-preview-image]{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;display:block;background:var(--color-surface)}.preview-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--color-text-muted);font-size:var(--font-size-xs);pointer-events:none}.preview-panel.has-image .preview-empty{display:none}.preview-panel .preview-legend{min-height:54px;max-height:72px;margin:0 var(--space-8);padding-top:var(--space-6);gap:var(--space-4)}.preview-panel .preview-legend-row{gap:var(--space-4) var(--space-8)}.preview-panel .preview-legend-item{font-size:var(--font-size-2xs)}.preview-view-actions{margin-left:auto}.manual-cut-box{width:min(520px,calc(100vw - 28px));border:1px solid var(--color-border-muted);border-radius:var(--radius-12);background:var(--color-surface);box-shadow:var(--shadow-xl);overflow:hidden}.manual-cut-box>header,.manual-cut-box>footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-12);padding:var(--space-14) var(--space-18)}.manual-cut-box>header{border-bottom:1px solid var(--color-border-muted)}.manual-cut-box>footer{justify-content:flex-end;border-top:1px solid var(--color-border-muted)}.manual-cut-box h3{margin:2px 0 0;font-size:var(--font-size-base)}.manual-cut-kicker{color:var(--color-primary);font-size:var(--font-size-2xs);font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase}.manual-cut-body{padding:var(--space-18)}.manual-cut-context{display:grid;gap:var(--space-6);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.manual-cut-context select,.manual-cut-grid input{min-width:0;border:1px solid var(--color-border-muted);border-radius:var(--radius-6);background:var(--color-surface);color:var(--color-text-primary);padding:7px 8px}.manual-cut-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-12);margin-top:var(--space-14)}.manual-cut-grid label{display:grid;gap:var(--space-5);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.manual-cut-grid label>span{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-6);color:var(--color-text-muted)}.manual-cut-body p{margin:var(--space-14) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs);line-height:1.45}@media(max-width:560px){.manual-cut-grid{grid-template-columns:1fr}}.preview-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-8);flex-wrap:wrap;row-gap:var(--space-6);padding-bottom:var(--space-8);flex:0 0 auto}.toolbar-views{display:inline-flex;align-items:center;gap:var(--space-6);flex-wrap:wrap}.segmented-control{position:relative;display:inline-flex;align-items:center;padding:2px;border:1px solid var(--color-border-muted);border-radius:var(--radius-8);background:var(--color-surface-muted)}.segmented-control-option{position:relative;z-index:1;min-width:42px;padding:var(--space-4) var(--space-8);border:0;border-radius:var(--radius-6);background:transparent;color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer;white-space:nowrap}.segmented-control:before{content:"";position:absolute;z-index:0;top:2px;bottom:2px;left:var(--segment-left, 2px);width:var(--segment-width, 0px);border-radius:var(--radius-8);background:var(--color-surface);box-shadow:inset 0 0 0 1px var(--color-primary-inset);pointer-events:none;transition:left .18s cubic-bezier(.2,.8,.2,1),width .18s cubic-bezier(.2,.8,.2,1)}.segmented-control-option:hover{color:var(--color-primary)}.segmented-control-option.active{background:transparent;color:var(--color-primary)}.segmented-control-option:focus-visible{outline:2px solid var(--color-primary-focus-ring);outline-offset:2px}.preview-toolbar .cross-width{margin-left:auto;display:inline-flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-xs);color:var(--color-text-secondary);white-space:nowrap}.preview-toolbar .cross-width>span:first-child{color:var(--color-text-muted)}.preview-toolbar .cross-width input{width:64px;padding:var(--space-4) var(--space-6);border:1px solid var(--color-border-muted);border-radius:var(--radius-6);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-xs);text-align:right}.preview-toolbar .cross-width .unit{opacity:.7}.preview-plot{position:relative;flex:1 1 auto;min-height:0;display:flex;align-items:flex-start;justify-content:flex-start;overflow:auto;overscroll-behavior:contain;padding:12px 96px 8px 36px}.preview-stage{position:relative;flex:0 0 auto;width:100%;height:auto;aspect-ratio:var(--preview-frame-aspect, 2 / 1);min-width:0;min-height:0;margin:auto;display:flex;align-items:center;justify-content:center}.preview-dims{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:var(--z-raised)}#preview.measure-active .preview-dims{pointer-events:auto;cursor:crosshair}.preview-dims .dim-label{cursor:pointer}.preview-dims .dim-group{pointer-events:auto;cursor:move}.preview-dims .dim-group .move-glyph{opacity:0;transition:opacity .12s ease;pointer-events:none}.preview-dims .dim-group:hover .move-glyph{opacity:1}.measure-options{flex:0 0 22px;padding:0 0 var(--space-6) var(--space-2);visibility:hidden;pointer-events:none}#preview.measure-active .measure-options{visibility:visible;pointer-events:auto}.measure-options label{display:inline-flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-2xs);color:var(--color-text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none}.measure-options input{display:none}.measure-hint{position:absolute;top:var(--space-8);left:50%;transform:translate(-50%);padding:var(--space-4) var(--space-10);border-radius:var(--radius-pill-lg);background:var(--color-primary-soft);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);white-space:nowrap;pointer-events:none;z-index:var(--z-raised);transition:opacity .5s ease}.measure-hint.fade{opacity:0}.dims-toggle{display:inline-flex;align-items:center;gap:var(--space-6);padding:var(--space-4) var(--space-10);border:1px solid var(--color-border-muted);border-radius:var(--radius-pill-lg);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);cursor:pointer}.dims-toggle:hover{border-color:var(--color-primary);color:var(--color-primary)}.dims-toggle.active{border-color:var(--color-primary);background:var(--color-primary-soft-strong);color:var(--color-primary)}.dims-scope{margin-left:var(--space-2);padding-left:var(--space-10);font-size:var(--font-size-2xs);color:var(--color-text-muted);border-style:dashed;position:relative}.dims-scope:before{content:"";position:absolute;left:calc(var(--space-6) * -1);top:50%;transform:translateY(-50%);width:1px;height:14px;background:var(--color-border-muted)}.dims-scope.active{border-style:solid}.dims-toggle-glyph{width:14px;height:10px;border-left:1.5px solid currentColor;border-right:1.5px solid currentColor;position:relative}.dims-toggle-glyph:before{content:"";position:absolute;top:50%;left:0;right:0;border-top:1.5px solid currentColor}#previewImg{width:100%;height:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;display:block;background:var(--color-surface)}.preview-side{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--space-6);margin:0 0 var(--space-6) var(--space-2);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);line-height:var(--leading-tight);white-space:nowrap;color:var(--color-text-muted)}.preview-side:before{content:"";flex:none;width:7px;height:7px;border-radius:var(--radius-circle);background:var(--color-text-subtle)}.preview-side.back:before{background:var(--color-side-back-text)}.preview-side.front:before{background:var(--color-side-front-text)}.flip-anim{animation:waferFlip .5s var(--ease-standard) both;transform-origin:center center}@keyframes waferFlip{0%{transform:perspective(900px) rotateX(0)}45%{transform:perspective(900px) rotateX(90deg);opacity:.55}55%{transform:perspective(900px) rotateX(90deg);opacity:.55}to{transform:perspective(900px) rotateX(0);opacity:1}}#preview.loading [data-preview-image]{opacity:.88}#preview.loading.loading-refresh [data-preview-image]{opacity:1}#preview.loading.loading-empty [data-preview-image],#preview.loading.loading-empty .preview-dims{opacity:0}#preview.loading .preview-plot:after{content:"";position:absolute;top:50%;left:50%;width:22px;height:22px;margin:-11px 0 0 -11px;border:2px solid var(--color-border-input);border-top-color:var(--color-primary);border-radius:var(--radius-circle);animation:preview-spin .7s linear infinite;pointer-events:none;z-index:var(--z-raised)}#preview.loading.loading-refresh .preview-plot:after{top:auto;left:auto;bottom:var(--space-10);right:var(--space-10);width:14px;height:14px;margin:0;border-width:1.5px}@keyframes preview-spin{to{transform:rotate(360deg)}}.preview-legend{flex:0 0 auto;min-height:76px;max-height:88px;margin-top:var(--space-10);padding-top:var(--space-10);border-top:1px solid var(--color-border-muted);display:flex;flex-direction:column;justify-content:center;gap:var(--space-8);overflow:hidden}.preview-legend-row{display:flex;flex-wrap:wrap;gap:var(--space-8) var(--space-14);justify-content:center;align-items:center;min-height:22px}.preview-legend-item{display:inline-flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-xs);font-weight:var(--font-weight-medium);color:var(--color-text-emphasis);white-space:nowrap}.preview-legend-item .swatch{width:14px;height:14px;border:none;border-radius:var(--radius-3);flex-shrink:0}.preview-legend-item .swatch.exposure-swatch{background:var(--color-swatch-exposure)}.preview-legend-item .swatch.thermal-swatch{background:var(--color-swatch-thermal)}.preview-legend-item .swatch.thermal-swatch.anneal{background:var(--color-swatch-anneal)}.preview-legend-item .swatch.clean-swatch{background:var(--color-swatch-clean)}.modal{position:fixed;inset:0;background:var(--color-modal-scrim);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal)}.modal.hidden{display:none}.chooser-box{background:var(--color-surface);border-radius:var(--radius-16);width:680px;max-width:94vw;overflow:hidden;box-shadow:var(--shadow-modal);border:1px solid var(--color-border-light)}.chooser-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-18) var(--space-24);border-bottom:1px solid var(--color-border-subtle)}.chooser-head h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.chooser-cols{display:flex;height:420px}.fam-list{width:190px;border-right:1px solid var(--color-border-subtle);background:var(--color-surface-muted);padding:var(--space-12) var(--space-8);overflow:auto}.fam-item{display:flex;align-items:center;gap:var(--space-10);padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-base);font-weight:var(--font-weight-medium);transition:all .15s ease}.fam-item:hover{background:var(--color-surface-sunken);color:var(--color-text-strong)}.fam-item.active{background:var(--color-surface-dark);color:var(--color-text-on-dark)}.fam-item.active .ic{color:var(--color-text-on-dark)}.step-list{flex:1;padding:var(--space-16);overflow:auto;display:flex;flex-direction:column;gap:var(--space-10);background:var(--color-surface)}.step-item{display:flex;align-items:flex-start;gap:var(--space-12);padding:var(--space-12) var(--space-14);border:1px solid var(--color-border-light);border-radius:var(--radius-10);cursor:pointer;background:var(--color-surface);transition:all .15s ease}.step-item:hover{border-color:var(--color-primary);background:var(--color-surface-muted);transform:translateY(-1px);box-shadow:var(--shadow-step-item-hover)}.step-item .ic{margin-top:1px}.step-item .t{font-weight:var(--font-weight-semibold);color:var(--color-text-strong);font-size:var(--font-size-base-plus)}.step-item .d{color:var(--color-text-muted);font-size:var(--font-size-xs-plus);margin-top:var(--space-2)}.chooser-note{padding:var(--space-8) var(--space-12);border-radius:var(--radius-8);background:var(--color-surface-muted);line-height:1.4}.pattern-picker-box{background:var(--color-surface);border-radius:var(--radius-16);width:min(720px,94vw);max-height:86vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-modal);border:1px solid var(--color-border-light)}.pattern-picker-head{display:flex;align-items:center;gap:var(--space-16);padding:var(--space-18) var(--space-24);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface)}.pattern-picker-head h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.pattern-picker-subtitle{margin:var(--space-2) 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs-plus);line-height:var(--leading-tight)}.pattern-picker-body{padding:var(--space-18) var(--space-24) var(--space-24);overflow:auto}.pattern-picker-body .pattern-panel{margin-top:0;padding-top:0;border-top:0}.pattern-picker-body .mask-draw-wrap{margin-top:var(--space-12)}.pattern-confirm-box{width:min(440px,92vw);padding:var(--space-22) var(--space-24) var(--space-20);border:1px solid var(--color-border-light);border-radius:var(--radius-12);background:var(--color-surface);box-shadow:var(--shadow-modal)}.pattern-confirm-copy h3{margin:0;color:var(--color-text-strong);font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold)}.pattern-confirm-copy p{margin:var(--space-8) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-base);line-height:var(--leading-normal)}.pattern-confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-20)}#maskModal{z-index:calc(var(--z-modal) + 10)}.mask-box{background:var(--color-surface);border-radius:var(--radius-16);width:90vw;height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-modal);border:1px solid var(--color-border-light)}.mask-head{display:flex;align-items:center;gap:var(--space-12);padding:var(--space-12) var(--space-18);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border-light)}.mask-head>span{font-weight:var(--font-weight-semibold);color:var(--color-text-strong);font-size:var(--font-size-md)}.mask-tools{display:flex;align-items:center;gap:var(--space-8);flex:1;min-width:0;flex-wrap:wrap}#maskHint{line-height:1.35}.mtool{border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-8);padding:var(--space-6) var(--space-14);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);transition:all .15s ease}.mtool:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong);color:var(--color-text-strong)}.mtool.active{background:var(--color-surface-dark);color:var(--color-text-on-dark);border-color:var(--color-surface-dark)}.mtool.active:hover{background:var(--color-surface-dark-hover);border-color:var(--color-surface-dark-hover);color:var(--color-text-on-dark)}#drawCutBtn{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-text-on-dark);font-weight:var(--font-weight-semibold);box-shadow:var(--shadow-btn-primary-lg)}#drawCutBtn:before{content:"";display:inline-block;width:8px;height:8px;margin-right:var(--space-6);border-radius:var(--radius-circle);background:var(--color-exposure);box-shadow:0 0 0 3px var(--color-exposure-ring);vertical-align:-1px}#drawCutBtn:hover{border-color:var(--color-primary-hover);background:var(--color-primary-hover);color:var(--color-text-on-dark);box-shadow:var(--shadow-btn-primary-xl);transform:translateY(-1px)}#drawCutBtn:active{background:var(--color-primary-active);transform:translateY(0)}#drawCutBtn:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-primary-ring),var(--shadow-btn-primary-lg)}.close{margin-left:auto}#maskViewer{position:relative;flex:1;background:var(--color-mask-bg);overflow:hidden}#maskFrame{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}.cut-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5;overflow:visible;display:none}.cut-overlay .cut-glow{stroke-width:8;stroke-linecap:round;opacity:.35;filter:blur(3px)}.cut-overlay .cut-core{stroke-width:2.5;stroke-linecap:round}.cut-overlay .cut-end{fill:var(--color-cut-end);stroke-width:2.5;transition:r .08s ease}.cut-overlay .cut-handle-bg{fill:var(--color-cut-handle-bg);stroke-width:1.5}.cut-overlay .cut-handle-icon{stroke:none}.mask-busy{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--color-mask-busy-bg);color:var(--color-mask-busy-text);font-size:var(--font-size-md);font-weight:var(--font-weight-medium);z-index:var(--z-overlay);letter-spacing:.02em}.mask-busy[hidden]{display:none}.mask-foot{display:flex;gap:var(--space-16);padding:var(--space-12) var(--space-18);border-top:1px solid var(--color-border-light);max-height:130px;overflow:auto;background:var(--color-surface-muted)}#maskLayers{display:flex;flex-wrap:wrap;gap:var(--space-8);flex:1}#maskLayers label{display:flex;align-items:center;gap:var(--space-6);font-size:var(--font-size-sm);color:var(--color-text-secondary);font-weight:var(--font-weight-medium)}#cutList{display:flex;flex-direction:column;gap:var(--space-6);min-width:320px;flex:1}.cutitem{display:flex;align-items:center;gap:var(--space-8);font-size:var(--font-size-sm);color:var(--color-text-secondary)}.cutitem .dot{width:12px;height:12px;border-radius:var(--radius-circle);flex:none}.cutitem .cutname{font-weight:var(--font-weight-medium);white-space:nowrap}.cut-empty{font-size:var(--font-size-sm)}.cutcoords{display:flex;align-items:center;gap:var(--space-4)}.cutcoords .cutnum{width:58px;padding:2px 4px;font-size:var(--font-size-xs);border:1px solid var(--color-border-light);border-radius:var(--radius-6);background:var(--color-surface);color:var(--color-text-strong);text-align:right;-moz-appearance:textfield}.cutcoords .cutnum:focus{outline:none;border-color:var(--color-border-strong)}.cutcoords .cutarrow{color:var(--color-text-muted);margin:0 2px}.cutcoords .cutunit{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-left:2px}.result-box{background:var(--color-surface);border-radius:var(--radius-16);max-width:92vw;max-height:90vh;overflow:auto;box-shadow:var(--shadow-modal)}#resultImg{display:block;max-width:100%}#maskModal{z-index:calc(var(--z-modal) + 10);inset:auto;padding:12px;align-items:stretch;justify-content:stretch}.pattern-workspace{width:100%;height:100%;min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--color-border-light);border-radius:var(--radius-16);background:var(--color-surface);box-shadow:var(--shadow-modal);color:var(--color-text-strong);container-type:inline-size;container-name:pattern}.pattern-workspace-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8) var(--space-12);padding:var(--space-10) var(--space-16);border-bottom:1px solid var(--color-border-light);background:var(--color-surface-muted)}.pattern-workspace-who{min-width:0;margin-right:auto}.pattern-workspace-kicker{display:block;color:var(--color-text-muted);font-size:10px;font-weight:var(--font-weight-semibold);letter-spacing:.08em;text-transform:uppercase}.pattern-workspace-who strong{display:block;overflow:hidden;font-size:var(--font-size-md);text-overflow:ellipsis;white-space:nowrap}.pattern-workspace-tools,.pattern-workspace-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8)}.pattern-workspace-tools>button,.pattern-reset-cut{min-height:34px;padding:var(--space-6) var(--space-12);border:1px solid var(--color-border-light);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}.pattern-workspace-tools>button:disabled{cursor:default;opacity:.38}.pattern-segmented{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--color-border-light);border-radius:var(--radius-8);background:var(--color-surface-sunken)}.pattern-segmented button{min-height:28px;padding:var(--space-4) var(--space-12);border:0;border-radius:var(--radius-6);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}.pattern-segmented button[aria-pressed=true]{background:var(--color-surface);color:var(--color-primary);box-shadow:var(--shadow-xs)}.pattern-pick-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-8) var(--space-10);min-height:48px;padding:var(--space-8) var(--space-16);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface)}.pattern-pick-row>strong{flex:0 0 6.75rem;width:auto;min-width:0;font-size:var(--font-size-sm)}.pattern-pills{display:flex;align-items:center;gap:var(--space-6);min-width:0;flex:1 1 10rem;flex-wrap:wrap}.pattern-workspace [hidden]{display:none}.pattern-asset-chip,.pattern-layer-chip,.pattern-cut-chip{display:inline-flex;align-items:stretch;overflow:hidden;border:1px solid var(--color-border-light);border-radius:999px;background:var(--color-surface)}.pattern-pills button{min-height:32px;padding:var(--space-6) var(--space-12);border:0;background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}.pattern-pills button[aria-pressed=true]{background:var(--color-primary);color:var(--color-text-on-dark)}.pattern-layer-chip button[aria-pressed=true]{background:var(--layer-color)}.pattern-cut-chip button[aria-pressed=true]{background:var(--cut-color)}.pattern-cut-chip>button:first-child{color:var(--cut-color)}.pattern-cut-chip>button:first-child[aria-pressed=true]{color:var(--color-text-on-dark)}.pattern-pills .pattern-chip-remove{min-width:30px;padding:0 8px;border-left:1px solid color-mix(in srgb,currentColor 16%,transparent);color:var(--color-text-muted);font-size:16px}.pattern-pills .pattern-chip-remove:hover{background:var(--color-danger-tint);color:var(--color-danger-strong)}.pattern-add{min-height:32px;flex:none;padding:var(--space-6) var(--space-12);border:1px dashed var(--color-border);border-radius:999px;background:var(--color-surface);color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer}.pattern-add:hover{border-color:var(--color-primary);color:var(--color-primary)}.pattern-add:disabled{cursor:default;opacity:.4}#patternGdsLayer{min-width:min(180px,100%);min-height:34px;padding:var(--space-6) var(--space-10);border:1px solid var(--color-border-light);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text-strong);font:inherit;font-weight:var(--font-weight-semibold)}.pattern-kind{margin-left:auto}.pattern-reset-cut{margin-left:0;white-space:nowrap}#maskHint{flex:1 1 100%;max-width:32rem;line-height:1.3}.pattern-stage{position:relative;min-height:200px;flex:1;background:var(--color-mask-bg)}.pattern-pane{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--color-surface)}.pattern-pane[hidden]{display:none}#maskViewer{position:relative;min-height:0;flex:1;background:var(--color-mask-bg);overflow:hidden}.pattern-drop{position:absolute;inset:0;z-index:6;display:grid;place-content:center;gap:var(--space-6);border:0;background:var(--color-mask-bg);color:var(--color-mask-busy-text);text-align:center;cursor:pointer}.pattern-drop[hidden]{display:none}.pattern-drop strong{font-size:var(--font-size-lg)}.pattern-drop span{color:var(--color-mask-busy-text);font-size:var(--font-size-sm)}#patternGdsPane.dragging .pattern-drop{outline:2px dashed var(--color-info-border);outline-offset:-12px}#patternSketchCanvas{width:100%;min-height:0;flex:1;display:block;cursor:crosshair;touch-action:none}#patternSketchHint{margin:0;padding:var(--space-6) var(--space-12);border-top:1px solid var(--color-border-light);color:var(--color-text-muted);font-size:var(--font-size-xs)}.pattern-coordinates{flex:none;border-top:1px solid var(--color-border-light);background:var(--color-surface-muted)}.pattern-coordinates summary{padding:var(--space-6) var(--space-16);color:var(--color-text-secondary);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);cursor:pointer}.pattern-coordinates #cutList{padding:0 var(--space-16) var(--space-10)}.pattern-choice-dialog{width:min(380px,calc(100vw - 32px));padding:0;border:1px solid var(--color-border-light);border-radius:var(--radius-12);background:var(--color-surface);color:var(--color-text-strong);box-shadow:var(--shadow-modal)}.pattern-choice-dialog::backdrop{background:#0f172a6b}.pattern-choice-dialog form{padding:var(--space-20)}.pattern-choice-dialog h2,.pattern-choice-dialog p{margin-top:0}.pattern-choice-dialog label{display:block;margin-bottom:var(--space-6);font-weight:var(--font-weight-semibold)}.pattern-choice-dialog select{width:100%;padding:var(--space-8)}.pattern-choice-dialog form>div{display:flex;justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-18)}.pattern-workspace :focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@container pattern (max-width: 820px){#maskHint{display:none}}@container pattern (max-width: 700px){.pattern-workspace-head{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who actions" "tools tools";align-items:center}.pattern-workspace-who{grid-area:who;margin-right:0}.pattern-workspace-tools{grid-area:tools}.pattern-workspace-actions{grid-area:actions}.pattern-pick-row>strong{flex-basis:5.75rem}}@container pattern (max-width: 600px){.pattern-reset-cut{flex-basis:100%;width:auto;max-width:max-content}}@container pattern (max-width: 520px){.pattern-kind{flex-basis:100%;margin-left:0}}@container pattern (max-width: 420px){.pattern-workspace-head{grid-template-columns:minmax(0,1fr);grid-template-areas:"who" "tools" "actions"}.pattern-workspace-actions{justify-content:flex-start}.pattern-pick-row>strong{flex-basis:100%}#patternGdsLayer{min-width:0;width:100%}}@media(prefers-reduced-motion:reduce){.pattern-workspace *{scroll-behavior:auto!important;transition:none!important}}.rates-box{background:var(--color-surface);border-radius:var(--radius-16);width:min(880px,94vw);max-width:calc(100vw - 32px);height:min(720px,88vh);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-modal);border:1px solid var(--color-border-light)}.rates-head{display:flex;align-items:center;justify-content:space-between;padding:var(--space-18) var(--space-24);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-muted);flex:none}.rates-head h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.rates-actions{display:flex;align-items:center;gap:var(--space-8)}.rates-body{flex:1;min-height:0;overflow:hidden;padding:var(--space-20) var(--space-24) var(--space-12);background:var(--color-surface);display:flex;flex-direction:column}#ratesPanel{flex:1;min-height:0;display:flex;flex-direction:column}.rates-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:0 0 var(--space-16) 0;line-height:var(--leading-relaxed);flex:none}.sources-section-title{font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-top:var(--space-4)}.sources-section-title:first-child{margin-top:0}.rates-split{flex:1;min-height:0;display:flex;border:1px solid var(--color-border-light);border-radius:var(--radius-12);overflow:hidden}.rates-mats{width:220px;flex:none;display:flex;flex-direction:column;border-right:1px solid var(--color-border-subtle);background:var(--color-surface-muted)}.rates-mat-search{padding:var(--space-8);flex:none}.rates-mat-list{flex:1;min-height:0;overflow:auto;padding:var(--space-4) var(--space-8) var(--space-8)}.rates-mat-item{display:flex;align-items:center;gap:var(--space-10);width:100%;padding:var(--space-8) var(--space-12);border:0;border-radius:var(--radius-8);background:transparent;color:var(--color-text-secondary);font:inherit;font-size:var(--font-size-base);font-weight:var(--font-weight-medium);text-align:left;cursor:pointer}.rates-mat-item:hover{background:var(--color-surface-sunken);color:var(--color-text-strong)}.rates-mat-item.active{background:var(--color-surface-dark);color:var(--color-text-on-dark)}.rates-mat-item .color-chip{flex:none}.rates-detail{flex:1;min-width:0;display:flex;flex-direction:column;padding:var(--space-16) var(--space-18)}.rates-detail-head{display:flex;align-items:center;gap:var(--space-8);flex:none}.rates-detail-name{flex:1;min-width:0;font-size:var(--font-size-base-plus);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.rates-detail-edit{font-size:var(--font-size-xs);padding:var(--space-4) var(--space-10)}.rates-detail .rates-hint{margin:var(--space-8) 0 var(--space-12)}.rates-rate-list{flex:1;min-height:0;overflow:auto;display:flex;flex-direction:column;gap:var(--space-4)}.rates-rate-list .sources-section-title{margin-top:var(--space-10)}.rates-rate-list .sources-section-title:first-child{margin-top:0}.rates-empty{font-size:var(--font-size-sm);color:var(--color-text-muted);margin:var(--space-8) 0}.rate-line{display:flex;align-items:center;gap:var(--space-10);width:100%;padding:var(--space-8) var(--space-10);border:1px solid var(--color-border-light);border-radius:var(--radius-8);background:var(--color-surface);color:var(--color-text);font:inherit;font-size:var(--font-size-sm);text-align:left;cursor:pointer}.rate-line:hover{background:var(--color-surface-muted);border-color:var(--color-border)}.rate-line-name{flex:1;min-width:0;font-weight:var(--font-weight-medium)}.rate-line-val{flex:none;font-variant-numeric:tabular-nums;color:var(--color-text-secondary)}.rate-act{flex:none;border:1px solid var(--color-border);background:var(--color-surface);border-radius:var(--radius-4);font-size:var(--font-size-2xs);padding:1px var(--space-5);cursor:pointer;color:var(--color-text-secondary)}.rate-act:hover{border-color:var(--color-primary);color:var(--color-primary)}.rate-act.info{font-style:italic;font-weight:var(--font-weight-semibold);min-width:18px}.rates-add-rate{align-self:flex-start;margin-top:var(--space-12);font-size:var(--font-size-sm)}.material-views{display:flex;flex-wrap:wrap;gap:4px;margin:14px 0 10px;flex:none}.material-views button{border:0;border-radius:var(--radius-6);padding:7px 10px;background:transparent;color:var(--color-text-muted);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.material-views button[aria-pressed=true]{background:var(--color-surface-sunken);color:var(--color-text-strong);font-weight:var(--font-weight-semibold)}.material-views button:hover{color:var(--color-text-strong)}.deposition-entry{border:1px solid var(--color-border-light);border-radius:var(--radius-8)}.deposition-entry summary{display:flex;align-items:center;gap:10px;padding:12px 10px;cursor:pointer;font-size:var(--font-size-sm);list-style:none}.deposition-entry summary::-webkit-details-marker{display:none}.deposition-entry summary:before{content:"›";color:var(--color-text-muted)}.deposition-entry[open] summary:before{transform:rotate(90deg)}.deposition-entry summary>span:first-of-type{flex:1;min-width:0}.deposition-info{padding:0 12px 12px;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:1.5}.deposition-info p{margin:0 0 8px}.deposition-info a{display:block;margin-bottom:12px;overflow-wrap:anywhere}.deposition-edit{width:min(390px,calc(100vw - 24px))}.deposition-edit input{min-width:0}.rates-rate-list>.spin-curve-panel{flex:none}.spin-curve-panel table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums}.spin-curve-panel th,.spin-curve-panel td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--color-border-subtle)}.spin-curve-panel th{color:var(--color-text-secondary);font-weight:var(--font-weight-semibold)}@media(max-width:650px){.rates-head{padding:12px;gap:8px;flex-wrap:wrap}.rates-body{padding:10px}.rates-mats{width:135px}.rates-mat-item{font-size:12px;padding:8px 5px;gap:5px}.rates-detail{padding:12px 8px}.material-views button{padding:7px 6px;font-size:11px}.deposition-entry summary{flex-wrap:wrap;gap:6px}.deposition-entry .rate-line-val{margin-left:14px}}.add-rate-pop{position:fixed;z-index:calc(var(--z-modal) + 30);background:var(--color-surface);border:1px solid var(--color-border-popover);border-radius:var(--radius-10);box-shadow:var(--shadow-modal);padding:var(--space-10) var(--space-12);min-width:240px;max-width:320px;max-height:min(360px,70vh);overflow:auto}.add-rate-pop .sources-section-title{margin:var(--space-8) 0 var(--space-4)}.add-rate-pop .sources-section-title:first-child{margin-top:0}.add-rate-opt{display:block;width:100%;text-align:left;border:0;border-radius:var(--radius-6);padding:var(--space-6) var(--space-8);background:transparent;color:var(--color-text);font:inherit;font-size:var(--font-size-sm);cursor:pointer}.add-rate-opt:hover{background:var(--color-surface-sunken)}.rates-foot{flex:none;display:flex;align-items:center;justify-content:flex-start;padding:var(--space-12) var(--space-24);border-top:1px solid var(--color-border-subtle);background:var(--color-surface-muted)}.add-mat-pop{position:fixed;z-index:calc(var(--z-modal) + 30);background:var(--color-surface);border:1px solid var(--color-border-popover);border-radius:var(--radius-10);box-shadow:var(--shadow-modal);padding:var(--space-14) var(--space-16);min-width:380px;max-width:480px;max-height:calc(100vh - 16px);overflow-y:auto}.add-mat-pop-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-strong);margin-bottom:var(--space-12)}.add-mat-row{display:flex;align-items:center;gap:var(--space-10);margin-bottom:var(--space-10);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.add-mat-row-stack{align-items:flex-start}.add-mat-row-stack span{padding-top:var(--space-6)}.add-mat-row span{flex:none;width:72px}.add-mat-row input,.add-mat-row select,.add-mat-row textarea{flex:1;padding:var(--space-5) var(--space-8);border:1px solid var(--color-border);border-radius:var(--radius-6);font-size:var(--font-size-sm);background:var(--color-surface);font-family:inherit;line-height:var(--leading-relaxed)}.add-mat-row textarea{resize:vertical;min-height:88px}.add-mat-row input:focus,.add-mat-row select:focus,.add-mat-row textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.add-mat-color{width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-6);cursor:pointer;padding:0}.add-mat-new-src{margin:calc(-1 * var(--space-4)) 0 var(--space-10);padding:var(--space-10) var(--space-10) var(--space-2);border:1px dashed var(--color-border);border-radius:var(--radius-6);background:var(--color-surface-muted)}.add-mat-actions{display:flex;gap:var(--space-8);margin-top:var(--space-4)}.add-mat-save{flex:1}.add-mat-del{color:var(--color-danger);border-color:var(--color-danger);background:var(--color-surface)}.add-mat-del:hover{background:var(--color-danger-bg-soft)}.rate-pop{position:fixed;z-index:calc(var(--z-modal) + 30);background:var(--color-surface);border:1px solid var(--color-border-popover);border-radius:var(--radius-10);box-shadow:var(--shadow-modal);padding:var(--space-12) var(--space-14);min-width:220px;max-width:360px}.rate-info-label{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-strong);margin-bottom:var(--space-6)}.rate-info-link{display:block;font-size:var(--font-size-xs);color:var(--color-primary);text-decoration:none;margin-bottom:var(--space-6);word-break:break-all}.rate-info-link:hover{text-decoration:underline}.rate-info-cite{font-size:var(--font-size-xs);color:var(--color-text);line-height:var(--leading-relaxed);margin:0 0 var(--space-6)}.rate-info-note,.rate-info-src-note{font-size:var(--font-size-2xs);color:var(--color-text-muted);line-height:var(--leading-relaxed);margin:0 0 var(--space-5)}.rate-info-src-note:last-child,.rate-info-note:last-child{margin-bottom:0}.rate-edit-title{font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);color:var(--color-text-strong);margin-bottom:var(--space-10)}.rate-edit-section{margin-top:var(--space-12);padding-top:var(--space-12);border-top:1px solid var(--color-border-subtle)}.rate-edit-section-head{font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-text-strong);margin-bottom:var(--space-8)}.rate-edit-opt{font-weight:var(--font-weight-normal);color:var(--color-text-muted)}.rate-edit-row{display:flex;align-items:center;gap:var(--space-8);margin-bottom:var(--space-8);font-size:var(--font-size-xs);color:var(--color-text-secondary)}.rate-edit-row-stack{align-items:flex-start}.rate-edit-row-stack span{padding-top:var(--space-5)}.rate-edit-row span{flex:none;min-width:90px}.rate-edit-row .rate-in,.rate-edit-row .rate-src-sel,.rate-edit-row select,.rate-edit-row input,.rate-edit-row textarea{flex:1;padding:var(--space-4) var(--space-7);border:1px solid var(--color-border);border-radius:var(--radius-6);font-size:var(--font-size-sm);background:var(--color-surface);font-family:inherit;line-height:var(--leading-relaxed)}.rate-edit-row textarea{resize:vertical;min-height:52px}.rate-edit-row .rate-in{text-align:right;-moz-appearance:textfield}.rate-edit-row .rate-in::-webkit-inner-spin-button,.rate-edit-row .rate-in::-webkit-outer-spin-button{-webkit-appearance:none}.rate-pop.rate-edit{max-height:calc(100vh - 16px);overflow-y:auto;min-width:280px}.rate-edit-save{width:100%;margin-top:var(--space-6)}.rate-edit-unit{flex:none;min-width:42px;font-size:var(--font-size-2xs);color:var(--color-text-muted)}.rate-sidewall{margin-top:var(--space-10)}.rate-side-pick{display:flex;align-items:center;gap:var(--space-8);margin:0 0 var(--space-10)}.rate-side-opt{font:inherit;cursor:pointer;padding:var(--space-4) var(--space-10);border:1px solid var(--color-border);border-radius:var(--radius-6);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-xs)}.rate-side-opt:hover{border-color:var(--color-border-strong);color:var(--color-text-strong)}.rate-side-opt.active{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-tint);font-weight:var(--font-weight-semibold)}.rate-side-or{font-size:var(--font-size-2xs);font-style:italic;color:var(--color-text-subtle);text-transform:lowercase}.rate-side-field.derived .rate-in{color:var(--color-text-muted);background:var(--color-surface-muted)}.rate-sidewall-derived{margin:0 0 var(--space-6);font-size:var(--font-size-2xs);color:var(--color-primary);font-variant-numeric:tabular-nums}.rate-sidewall-hint{margin:0;font-size:var(--font-size-2xs);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.rates-hint strong{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary)}.examples-pop{min-width:320px;max-width:420px;padding:var(--space-12)}.examples-item{display:block;width:100%;text-align:left;border:1px solid var(--color-border-light);border-radius:var(--radius-8);padding:var(--space-10) var(--space-12);margin-bottom:var(--space-8);background:var(--color-surface);cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-strong)}.examples-item:hover{background:var(--color-surface-muted);border-color:var(--color-border)}.examples-domain{display:block;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted);margin-bottom:var(--space-4)}.cite-box{background:var(--color-surface);border-radius:var(--radius-16);width:560px;max-width:94vw;overflow:hidden;box-shadow:var(--shadow-modal);border:1px solid var(--color-border-light)}.cite-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-16);padding:var(--space-18) var(--space-24);border-bottom:1px solid var(--color-border-subtle);background:var(--color-surface-muted)}.cite-head h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.cite-body{padding:var(--space-20) var(--space-24);display:flex;flex-direction:column;gap:var(--space-12)}.cite-hint{margin:0;font-size:var(--font-size-sm);color:var(--color-text-muted);line-height:var(--leading-relaxed)}.cite-text{width:100%;box-sizing:border-box;padding:var(--space-12) var(--space-14);border:1px solid var(--color-border);border-radius:var(--radius-8);font:var(--font-weight-normal) var(--font-size-sm)/var(--leading-relaxed) var(--font-sans);color:var(--color-text);background:var(--color-surface-muted);resize:vertical}.cite-bibtex summary{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);cursor:pointer}.cite-bibtex[open] summary{margin-bottom:var(--space-10)}.toast-root{position:fixed;top:var(--space-16);right:var(--space-16);z-index:calc(var(--z-modal) + 10);display:flex;flex-direction:column;gap:var(--space-8);width:min(480px,calc(100vw - 32px));pointer-events:none}.toast{display:grid;grid-template-columns:22px 1fr auto;align-items:start;gap:var(--space-8);padding:var(--space-10) var(--space-11);border:1px solid var(--color-border-light);border-radius:var(--radius-10);background:var(--color-toast-bg);color:var(--color-text);box-shadow:var(--shadow-menu);font-size:var(--font-size-sm);line-height:var(--leading-tight);pointer-events:auto;animation:toast-in .16s var(--ease-standard)}.toast.leaving{animation:toast-out .16s var(--ease-standard) forwards}.toast-icon{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:var(--radius-circle);font-size:var(--font-size-2xs);font-weight:var(--font-weight-bold);margin-top:1px}.toast-message{min-width:0;overflow-wrap:anywhere;white-space:normal}.toast-close{border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;font-size:var(--font-size-xl);line-height:1;padding:0 var(--space-2)}.toast-close:hover{color:var(--color-text-strong)}.toast.warn{color:var(--color-warn-text);border-color:var(--color-warn-border);background:var(--color-warn-bg)}.toast.warn .toast-icon{background:var(--color-warn-border);color:var(--color-warn-text)}.toast.info{color:var(--color-info-text);border-color:var(--color-info-border);background:var(--color-info-bg)}.toast.info .toast-icon{background:var(--color-info-border);color:var(--color-info-text)}.toast.error{color:var(--color-danger-hover);border-color:var(--color-danger-border);background:var(--color-danger-bg-hover)}.toast.error .toast-icon{background:var(--color-danger);color:var(--color-text-on-dark)}.toast.success{color:var(--color-success-text);border-color:var(--color-success-border);background:var(--color-success-bg)}.toast.success .toast-icon{background:var(--color-success);color:var(--color-text-on-dark)}@keyframes toast-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-out{to{opacity:0;transform:translateY(-4px) scale(.98)}}.develop-warn{margin-top:var(--space-6);padding:var(--space-7) var(--space-10);border-radius:var(--radius-8);font-size:var(--font-size-xs);line-height:var(--leading-tight);color:var(--color-warn-text);background:var(--color-warn-bg);border:0;box-shadow:inset 0 0 0 1px var(--color-warn-border);overflow:hidden;clip-path:inset(0 round var(--radius-8))}.preview-warnings{position:absolute;top:var(--space-6);left:var(--space-6);right:var(--space-6);z-index:var(--z-overlay);display:flex;flex-direction:column;gap:var(--space-6);max-height:40%;overflow:auto;pointer-events:none}.preview-warnings:empty{display:none}.preview-warn{padding:var(--space-7) var(--space-10);border-radius:var(--radius-8);font-size:var(--font-size-xs);line-height:var(--leading-tight);color:var(--color-warn-text);background:var(--color-warn-bg);border:0;box-shadow:inset 0 0 0 1px var(--color-warn-border);overflow:visible;overflow-wrap:anywhere;white-space:normal}.preview-warn.info{color:var(--color-info-text);background:var(--color-info-bg);box-shadow:inset 0 0 0 1px var(--color-info-border)}.confirm-box{background:var(--color-surface);border-radius:var(--radius-16);width:440px;max-width:94vw;padding:var(--space-22) var(--space-24);box-shadow:var(--shadow-modal-strong);border:1px solid var(--color-border-light)}.confirm-box h3{margin:0;font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text-strong)}.confirm-msg{margin:var(--space-10) 0 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.confirm-actions{display:flex;justify-content:flex-end;gap:var(--space-8);margin-top:var(--space-20)}.tour-overlay{position:fixed;inset:0;z-index:var(--z-tour)}.tour-overlay.hidden{display:none}.tour-blocker{position:absolute;inset:0;pointer-events:auto;background:transparent}.tour-blocker.dim{background:var(--color-tour-scrim)}.tour-spot{position:absolute;pointer-events:none;border-radius:var(--radius-10);box-shadow:var(--shadow-tour-spot);transition:left .2s var(--ease-standard),top .2s var(--ease-standard),width .2s var(--ease-standard),height .2s var(--ease-standard)}.tour-spot[hidden]{display:none}.tour-pop{position:absolute;width:320px;max-width:calc(100vw - 24px);background:var(--color-surface);border:1px solid var(--color-border-light);border-radius:var(--radius-12);box-shadow:var(--shadow-modal);padding:var(--space-16) var(--space-18) var(--space-14)}.tour-x{position:absolute;top:var(--space-8);right:var(--space-10);background:none;border:0;cursor:pointer;font-size:20px;line-height:1;color:var(--color-text-subtle);padding:2px}.tour-x:hover{color:var(--color-text-strong)}.tour-schematic{display:flex;justify-content:center;align-items:center;background:var(--color-surface-muted);border:1px solid var(--color-border-subtle);border-radius:var(--radius-8);padding:var(--space-10);margin-bottom:var(--space-12)}.tour-schematic svg{display:block;width:100%;height:auto;max-height:96px}.tour-title{font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);color:var(--color-text-strong);padding-right:var(--space-16)}.tour-body{margin-top:var(--space-6);font-size:var(--font-size-sm);color:var(--color-text-secondary);line-height:var(--leading-normal)}.tour-body b{color:var(--color-text-strong);font-weight:var(--font-weight-semibold)}.tour-body code{font-size:.92em;background:var(--color-surface-sunken);border-radius:var(--radius-4);padding:1px 4px;color:var(--color-text-strong)}.tour-cue{display:flex;align-items:center;gap:var(--space-6);margin-top:var(--space-10);padding:var(--space-6) var(--space-10);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);color:var(--color-primary);background:var(--color-primary-tint);border:1px solid var(--color-primary-border-soft);border-radius:var(--radius-8)}.tour-cue:before{content:"";width:8px;height:8px;border-radius:var(--radius-circle);background:var(--color-primary);flex:none;animation:tourBlink 1.1s var(--ease-standard) infinite}.tour-cue[hidden]{display:none}.tour-nav{display:flex;align-items:center;gap:var(--space-8);margin-top:var(--space-14)}.tour-count{font-size:var(--font-size-xs);color:var(--color-text-subtle);font-variant-numeric:tabular-nums}.tour-spacer{flex:1}.tour-btn{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-emphasis);padding:var(--space-6) var(--space-14);border-radius:var(--radius-8);cursor:pointer;font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);transition:all .15s var(--ease-standard)}.tour-btn:hover{background:var(--color-surface-muted);border-color:var(--color-border-strong)}.tour-btn.primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-on-dark);box-shadow:var(--shadow-btn-primary)}.tour-btn.primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.tour-arrow{position:absolute;width:12px;height:12px;background:var(--color-surface);transform:rotate(45deg)}.tour-arrow.bottom{top:-6px;border-left:1px solid var(--color-border-light);border-top:1px solid var(--color-border-light)}.tour-arrow.top{bottom:-6px;border-right:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.tour-arrow.right{left:-6px;border-left:1px solid var(--color-border-light);border-bottom:1px solid var(--color-border-light)}.tour-arrow.left{right:-6px;border-right:1px solid var(--color-border-light);border-top:1px solid var(--color-border-light)}.tour-overlay.interactive{pointer-events:none}.tour-overlay.interactive .tour-pop{pointer-events:auto}.tour-overlay.interactive .tour-blocker{pointer-events:none}.tour-overlay.interactive .tour-spot{box-shadow:var(--shadow-tour-spot);animation:tourPulse 1.6s var(--ease-standard) infinite}@keyframes tourPulse{0%,to{box-shadow:0 0 0 9999px var(--color-tour-scrim),0 0 0 2px var(--color-primary),0 0 0 5px var(--color-primary-ring)}50%{box-shadow:0 0 0 9999px var(--color-tour-scrim),0 0 0 2px var(--color-primary),0 0 0 11px var(--color-primary-ring)}}@keyframes tourBlink{0%,to{opacity:1}50%{opacity:.3}}@media(prefers-reduced-motion:reduce){.tour-spot{transition:none;animation:none}.tour-cue:before{animation:none}}@container flow (max-width: 520px){.flow-bottom-bar{grid-template-columns:1fr;gap:var(--space-10)}.add-fab{grid-column:1;grid-row:1;justify-self:center}.flow-bottom-left{grid-column:1;grid-row:2;justify-self:start}.flow-bottom-bar .cite-btn{grid-column:1;grid-row:1;justify-self:end}}@media(max-width:920px){.pane-split{display:none}main{width:100%;min-width:0;flex-direction:column;overflow:hidden}#flow{width:100%;min-width:0;min-height:0;flex:3 1 0}#preview,#preview:has(.preview-rail[data-view-count="2"]),#preview:has(.preview-rail[data-view-count="3"]),body:has(#maskModal:not(.hidden)) #preview,body:has(#maskModal:not(.hidden)) #preview:has(.preview-rail[data-view-count="2"]),body:has(#maskModal:not(.hidden)) #preview:has(.preview-rail[data-view-count="3"]){width:100%;max-width:100%;min-width:0;min-height:0;flex:2 1 0;max-height:none;border-left:none;border-top:1px solid var(--color-border-muted);padding:var(--space-16) var(--space-18) var(--space-14)}.preview-plot{padding-left:48px;padding-right:48px}.preview-toolbar{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin}.toolbar-views{flex-wrap:nowrap;flex:none}.preview-view-actions{margin-left:0;flex:none}.measure-options{flex-basis:0;height:0;padding:0}#preview.measure-active .measure-options{flex-basis:22px;height:auto;padding-bottom:var(--space-6)}.preview-panel .preview-legend{display:none}.preview-rail{width:100%;max-width:100%;min-width:0;scroll-snap-type:x mandatory}.preview-rail[data-view-count="2"],.preview-rail[data-view-count="3"]{flex-direction:row;overflow-x:auto;overflow-y:hidden}.preview-panel,.preview-rail[data-view-count="1"] .preview-panel,.preview-rail[data-view-count="2"] .preview-panel,.preview-rail[data-view-count="3"] .preview-panel{flex:0 0 calc(100vw - 36px);width:calc(100vw - 36px);max-width:calc(100vw - 36px);min-width:calc(100vw - 36px);min-height:0}.flow-bottom-bar{bottom:var(--space-16);gap:var(--space-10)}#maskModal{padding:8px}.pattern-workspace{width:100%;height:100%}}@media(max-width:560px){header{padding:var(--space-10) var(--space-14);gap:var(--space-8)}.head-brand{gap:var(--space-14)}.studio header .logo{width:38px;height:35px}.head-actions{width:100%;justify-content:flex-start;margin-left:0;order:2}.preview-plot{padding-left:28px;padding-right:28px}.preview-rail[data-view-count="2"],.preview-rail[data-view-count="3"]{flex-direction:row;overflow-x:auto;overflow-y:hidden}.preview-panel,.preview-rail[data-view-count="1"] .preview-panel,.preview-rail[data-view-count="2"] .preview-panel,.preview-rail[data-view-count="3"] .preview-panel{flex:0 0 calc(100vw - 36px);width:calc(100vw - 36px);max-width:calc(100vw - 36px);min-width:calc(100vw - 36px);min-height:0}.preview-panel-head{gap:var(--space-4)}.step-scroll{right:var(--space-6);gap:var(--space-6)}.pattern-picker-box{width:calc(100vw - 20px);max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);border-radius:var(--radius-12)}.pattern-picker-head,.pattern-picker-body{padding-left:var(--space-14);padding-right:var(--space-14)}.pattern-source-picker{grid-template-columns:repeat(2,minmax(0,1fr))}.pattern-gds-source{grid-template-columns:minmax(0,1fr) auto}.pattern-gds-source label{grid-column:1 / -1}.pattern-gds-status,.pattern-gds-status-copy{align-items:flex-start;flex-direction:column;gap:var(--space-4)}.litho-outcome-row{align-items:flex-start;flex-direction:column}.litho-outcome-row>label{width:auto;padding-top:0}.litho-outcome{width:100%}.mask-box{width:calc(100vw - 12px);height:calc(100vh - 12px);height:calc(100dvh - 12px)}.mask-head{align-items:flex-start;flex-wrap:wrap}.mask-tools{width:100%}.mask-head #maskHint{display:block;font-size:var(--font-size-2xs);line-height:var(--leading-tight)}.mask-foot{flex-direction:column;gap:var(--space-8);max-height:40vh}#cutList{width:100%;min-width:0}.cutitem{flex-wrap:wrap}.cutcoords{flex:1 1 100%;min-width:0;flex-wrap:wrap}.cutcoords .cutnum{width:calc(50% - var(--space-4));flex:1 1 42%}.cutcoords .cutarrow{display:none}.cutcoords .cutunit{width:100%;text-align:right}#maskModal{padding:0}.pattern-workspace{width:100%;height:100%;border:0;border-radius:0}.pattern-workspace-head{padding:var(--space-8) var(--space-10)}.pattern-workspace-actions button,.pattern-workspace-tools>button,.pattern-segmented button,.pattern-add,.pattern-pills button{min-height:44px}.pattern-pick-row{min-height:48px;padding:var(--space-4) var(--space-10)}.pattern-kind{margin-left:0}.pattern-stage{min-height:180px}.pattern-coordinates[open]{max-height:34dvh;overflow:auto}}.studio-content{display:flex;flex:1;min-height:0;min-width:0}#placement-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;touch-action:none;z-index:2}#placement-overlay g path{fill:var(--color-primary);fill-opacity:.12;stroke:var(--color-primary);stroke-width:1;pointer-events:all;cursor:move}#placement-overlay g.selected path{fill:var(--color-primary);fill-opacity:.22;stroke:var(--color-primary-active);stroke-width:2}#placement-overlay g.reference path{stroke:var(--color-schematic-oxide-stroke);stroke-dasharray:4 3}.position-inspector{position:absolute;bottom:30px;right:12px;z-index:8;width:290px;max-width:calc(100% - 24px);flex-shrink:0;padding:8px;background:var(--color-side-bg);border:1px solid var(--color-border);border-radius:var(--radius-12);color:var(--color-text-secondary);font-size:var(--font-size-sm)}.position-title{display:flex;gap:10px;align-items:center;margin-bottom:8px}.position-title span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.position-fields,.alignment-fields{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-top:6px}.position-fields label,.alignment-fields label{display:grid;gap:4px;flex:1;min-width:80px}.position-inspector input,.position-inspector select{box-sizing:border-box;width:100%;min-width:0;padding:5px 7px;border:1px solid var(--color-border);border-radius:var(--radius-5);font:var(--font-size-sm) var(--font-sans);color:var(--color-text);background:var(--color-surface)}#position-error{color:var(--color-warn-text)}.top-view .world-caption{bottom:8px}#preview .draw-toolbar{z-index:5}.replacement-dialog{width:440px;max-width:calc(100vw - 30px)}.replacement-dialog form{padding:24px}.replacement-dialog svg{width:100%;height:200px;fill:var(--color-text-muted)}.replacement-dialog p{font-size:var(--font-size-sm);line-height:1.5}#replacement-layers{margin:14px 0;display:flex;flex-wrap:wrap;gap:12px}#replacement-layers input{width:auto}.dimension-overlay .dimension-leader{stroke:var(--color-border);stroke-dasharray:2 3}.position-inspector:not(.expanded)>:not(.position-toggle){display:none}.position-toggle{width:100%}#preview.top-view:not(.pattern-expanded) .studio-workspace{flex-direction:column-reverse}#preview.top-view:not(.pattern-expanded) .probe-pane{flex:0 0 38%;min-height:190px;margin:0 16px;border:0}#preview.top-view:not(.pattern-expanded) .probe-title{padding:7px 12px}#preview.top-view:not(.pattern-expanded) #probe-legend{padding:4px 12px}#preview.top-view:not(.pattern-expanded) .probe-caption{padding:4px 12px}.pattern-library{position:absolute;top:64px;right:16px;z-index:25;display:flex;flex-direction:column;width:360px;max-width:calc(100% - 32px);max-height:calc(100% - 88px);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-16);box-shadow:var(--shadow-menu);font:var(--font-size-sm)/var(--leading-normal) var(--font-sans)}.pattern-library[hidden],.pattern-library [hidden]{display:none!important}.pattern-library>header{display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0;flex-wrap:nowrap;padding:18px 18px 8px;border:0;background:transparent;box-shadow:none}.pattern-library h2{margin:0;font:var(--font-weight-semibold) var(--font-size-md)/1.4 var(--font-sans);letter-spacing:-.2px;color:var(--color-text-strong)}#library-context{margin:4px 0 0;color:var(--color-text-muted);font-size:var(--font-size-xs)}#library-context:empty{display:none}.pattern-library .btn{border:1px solid var(--color-border);border-radius:var(--radius-7);padding:7px 12px;font:var(--font-size-sm) var(--font-sans);color:var(--color-text-secondary);background:var(--color-surface);cursor:pointer;box-shadow:none}.pattern-library .btn:hover{background:var(--color-surface-muted)}.pattern-library .library-icon{border:0;background:transparent;border-radius:var(--radius-6);flex-shrink:0;padding:6px;width:28px;height:28px;line-height:16px}#library-close{margin:-4px -6px 0 0;font-size:20px;font-weight:300;color:var(--color-text-muted)}.library-actions{display:flex;align-items:center;gap:8px;padding:0 18px 8px;flex-shrink:0}.library-actions .btn{border:0;padding:6px 8px;color:var(--color-text-muted)}.library-search{display:flex;align-items:center;gap:8px;margin:0 18px 10px;padding:8px 10px;border-radius:var(--radius-7);background:var(--color-surface-muted);flex-shrink:0}.library-search svg{width:14px;height:14px;fill:none;stroke:var(--color-text-muted);stroke-width:1.4;flex-shrink:0}.library-search input{border:0;outline:0;padding:0;background:transparent;min-width:0;width:100%;color:var(--color-text);font:var(--font-size-sm) var(--font-sans)}.library-search:focus-within{outline:1px solid var(--color-primary-border-soft)}.library-search input::placeholder{color:var(--color-text-muted)}.library-list{overflow:auto;overscroll-behavior:contain;min-height:0;padding:0 10px 14px;scrollbar-width:thin;scrollbar-color:var(--color-scrollthumb) transparent}.library-instance{padding:0}.library-instance-head{display:flex;align-items:center;gap:2px;padding:6px;border-radius:12px}.library-item{display:flex;align-items:center;gap:14px;flex:1;min-width:0;padding:0;border:0;background:transparent;text-align:left;color:inherit;font:inherit;cursor:pointer}.library-thumbnail{display:flex;align-items:center;justify-content:center;width:72px;height:72px;flex-shrink:0;border-radius:10px;background:var(--color-surface-muted);color:var(--color-text-subtle)}.library-thumbnail svg{width:52px;height:52px;fill:var(--color-text-subtle)}.library-item-copy{display:grid;gap:4px;min-width:0;flex:1}.library-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--font-weight-medium);color:var(--color-text-strong)}.library-item small{color:var(--color-text-muted);font-size:var(--font-size-xs)}.library-instance-head:hover,.library-instance.selected .library-instance-head{background:var(--color-surface-muted)}.library-hover{position:absolute;right:calc(100% + 12px);width:240px;height:240px;padding:20px;box-sizing:border-box;display:flex;align-items:center;justify-content:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-16);box-shadow:var(--shadow-menu);pointer-events:none;z-index:3}.library-hover svg{width:100%;height:100%;fill:var(--color-text-subtle)}.library-layer-panel{margin:4px 8px 8px 92px;padding-top:2px}.library-layer-heading{color:var(--color-text-muted);font-size:10px;margin:0 0 6px}.library-layer{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px}.library-layer>label:first-child{display:flex;align-items:center;gap:8px;min-width:0;cursor:pointer}.library-layer>label:first-child span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-layer input[data-use]{appearance:auto;margin:0;width:13px;height:13px;accent-color:var(--color-primary);flex-shrink:0;cursor:pointer}.library-visibility{display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-6);color:var(--color-text-subtle);cursor:pointer}.library-visibility:hover{background:var(--color-surface-muted)}.library-visibility input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}.library-visibility svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.2;pointer-events:none}.library-visibility input:not(:checked)+svg{opacity:.3}.library-visibility:has(input:not(:checked)):after{content:"";position:absolute;width:19px;height:1px;background:currentColor;transform:rotate(-45deg);pointer-events:none}.library-copy-select{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px;color:var(--color-text-muted);font-size:11px}.library-copy-select select{min-width:0;max-width:165px;font:11px var(--font-sans);color:var(--color-text);border:1px solid var(--color-border);background:var(--color-surface);padding:4px;border-radius:var(--radius-5)}.library-more{position:absolute;right:12px;width:218px;max-width:calc(100% - 24px);max-height:calc(100% - 16px);overflow:auto;display:grid;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-10);box-shadow:var(--shadow-menu);z-index:2}.pattern-library .library-more .btn{justify-content:flex-start;text-align:left;border:0;padding:9px 10px}.pattern-library .library-more .library-destructive{color:var(--color-danger);border-top:1px solid var(--color-border-muted);border-radius:0;margin-top:4px;padding-top:12px}.library-empty{padding:32px 12px 40px;text-align:center;color:var(--color-text-muted);border-top:1px solid var(--color-border-muted)}.library-empty strong{font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);color:var(--color-text)}.library-empty p{font-size:var(--font-size-xs);line-height:1.8;margin:8px 0 0}#library-error{margin:0;padding:0 20px 16px;font-size:var(--font-size-xs);color:var(--color-warn-text);flex-shrink:0}#library-error:empty{display:none}.pattern-library button:focus-visible,.library-visibility:has(input:focus-visible),.library-copy-select select:focus-visible{outline:2px solid var(--color-primary-focus-ring);outline-offset:2px}@media(max-width:600px){.pattern-library{left:8px;right:8px;width:auto;max-width:none;top:64px;max-height:calc(100% - 76px)}.library-hover{display:none!important}}#preview.reconstructing:after,#preview.loading:after,html.is-waiting #preview:after{content:"";position:absolute;top:0;left:22%;right:22%;height:2px;border-radius:2px;background:var(--color-primary);pointer-events:none;z-index:12;transform:scaleX(.24);transform-origin:center;animation:wait-soft 1.05s ease-in-out infinite}@keyframes wait-soft{0%,to{transform:scaleX(.2);opacity:.18}50%{transform:scaleX(.92);opacity:.5}}.studio{background:var(--color-bg);font-family:var(--font-sans)}.studio>header{height:68px;min-height:68px;padding:0 30px;box-sizing:border-box;border-bottom:1px solid var(--color-border-light);box-shadow:none;background:var(--color-surface)}.studio .head-brand{gap:15px}.studio header h1{gap:10px;font-family:"Arial Rounded MT Bold","Arial Rounded MT","Avenir Next",var(--font-sans);font-size:24px;font-weight:900;letter-spacing:-1.6px}.studio header .logo{width:44px;height:40px}.studio header .wordmark-chip,.studio header .wordmark-cake{display:inline-block;line-height:.9}.studio header .wordmark-chip{color:#202630;text-shadow:0 1px 0 rgba(255,255,255,.8),0 2px 4px rgba(32,38,48,.18)}.studio header .wordmark-cake{margin-left:-10px;color:#ff4138;text-shadow:0 1px 0 rgba(255,255,255,.65),0 2px 4px rgba(255,65,56,.24)}.studio-label{margin:0;font-size:var(--font-size-2xs);letter-spacing:.02em;color:var(--color-text-subtle);border-left:1px solid var(--color-border-light);padding-left:14px;white-space:nowrap;line-height:1.25}.studio .head-file{margin-left:22px;gap:4px}.studio .head-file .btn{border:0;box-shadow:none;background:transparent;font-size:var(--font-size-sm);padding:7px 10px}.studio .head-file .file-action-save{color:var(--color-text-strong)}.studio .head-file svg{display:none}.studio .head-actions{gap:8px}.studio #tutorialBtn,.studio .feedback-stack,.studio #citeBtn{display:none}.studio main{overflow:hidden}.studio #flow{flex:0 0 45%;max-width:610px}.studio #preview{position:relative;flex:1;width:auto;min-width:0;max-width:none;margin:18px 18px 18px 0;padding:0;border:1px solid var(--color-border-light);border-radius:20px;background:var(--color-surface);box-shadow:var(--shadow-card);overflow:hidden;display:flex;flex-direction:column}.studio #preview>.preview-toolbar,.studio #preview>#previewSide,.studio #preview>#previewRail{display:none!important}.studio .flow-top-controls{top:23px}.studio .head-history{top:23px;left:auto;right:24px;transform:none}.studio .flow-meta{top:67px;max-width:320px}.studio .privacy-note{font-size:var(--font-size-2xs);color:var(--color-text-subtle);text-align:left;line-height:1.6}.studio .flow-bottom-bar{padding-bottom:12px}.studio-toolbar{height:65px;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-shrink:0}.studio .segmented-control{font-size:var(--font-size-sm)}.studio .segmented-control-option{font:var(--font-weight-medium) var(--font-size-sm) var(--font-sans);padding:8px 16px}#studio-add{font-size:var(--font-size-xs);color:var(--color-primary);border-color:var(--color-primary-border-soft);background:var(--color-primary-tint);padding:8px 12px}.studio-dim-toggle{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:var(--font-size-xs);color:var(--color-text-muted);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.studio-dim-toggle input{position:absolute;opacity:0;pointer-events:none}.studio-dim-toggle:focus-within .mini-switch{outline:2px solid var(--color-primary-border-soft);outline-offset:2px}.studio-viewbar{display:flex;align-items:center;justify-content:space-between;padding:0 24px 8px;gap:8px;flex-shrink:0;min-height:40px}#studio-probes{display:flex;gap:6px;overflow-x:auto;min-width:0;padding:3px 0}.probe-chip{display:flex;align-items:center;white-space:nowrap;background:var(--color-surface-muted);border:1px solid var(--color-border-muted);border-radius:var(--radius-8)}.probe-chip.active{border-color:var(--color-primary-border-soft);background:var(--color-primary-tint)}.probe-chip button{display:flex;align-items:center;gap:7px;min-height:30px;font:var(--font-weight-medium) var(--font-size-xs) var(--font-sans);color:var(--color-text-secondary);background:none;border:0;padding:5px 9px;cursor:pointer}.probe-chip .probe-remove{font-size:17px;color:var(--color-text-subtle);padding:3px 9px 3px 5px;border-radius:0 7px 7px 0}.probe-chip .probe-remove:hover{color:var(--color-danger-strong);background:var(--color-danger-tint)}i{display:inline-block;flex-shrink:0}.probe-chip i{width:6px;height:6px;border-radius:50%}.view-count{font-size:var(--font-size-2xs);color:var(--color-text-subtle);white-space:nowrap}.studio-workspace{flex:1;display:flex;min-height:0;position:relative}.world{position:relative;flex:1;min-width:0;background:var(--color-surface)}#device-stage,#probe-overlay{position:absolute;inset:0;width:100%;height:100%}#device-stage>canvas,#region-stage>canvas{width:100%;height:100%;display:block;outline:none}#probe-overlay{touch-action:none}#probe-overlay circle{cursor:grab}.world-legend{position:absolute;bottom:16px;left:16px;right:auto;display:flex;justify-content:flex-start;gap:8px;flex-wrap:wrap;padding:0;pointer-events:none;z-index:4}.world-legend .preview-legend-row{justify-content:flex-start}.world-legend[hidden]{display:none}.stage-chrome{position:absolute;inset:0;pointer-events:none;z-index:4}.stage-chrome[hidden]{display:none}.stage-chrome .stage-cube{position:absolute;top:6px;right:6px;width:120px;height:120px;pointer-events:auto}.stage-tools{position:absolute;top:124px;right:22px;display:flex;flex-direction:column;gap:1px}.stage-tools button{width:28px;height:28px;padding:0;border:0;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer;pointer-events:auto;display:grid;place-items:center}.stage-tools button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linejoin:round;stroke-linecap:round}.stage-tools button:hover{color:var(--color-text);background:var(--color-surface-muted)}.stage-tools button[aria-pressed=true]{color:var(--color-primary-hover);background:var(--color-primary-tint);box-shadow:inset 0 0 0 1px var(--color-primary-border-soft),0 1px 3px color-mix(in srgb,var(--color-primary) 18%,transparent)}.stage-scale{position:absolute;right:16px;bottom:16px;display:flex;align-items:center;gap:8px;color:var(--color-text-muted);font:var(--font-weight-medium) var(--font-size-xs) var(--font-sans)}.stage-scale[hidden]{display:none}.stage-scale i{display:block;height:7px;border:solid currentColor;border-width:1.5px 1.5px 0;box-sizing:border-box}.pattern-expanded .stage-chrome{display:none}.draw-toolbar{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-10);padding:4px;box-shadow:var(--shadow-xs);z-index:2;white-space:nowrap}.draw-toolbar[hidden]{display:none}.draw-toolbar button{padding:7px 9px;border:0;background:none;font:var(--font-weight-medium) var(--font-size-xs) var(--font-sans);color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-6)}.draw-toolbar button.active{background:var(--color-primary-tint);color:var(--color-primary)}.draw-toolbar #draw-done{border-left:1px solid var(--color-border-muted);border-radius:0;color:var(--color-text-subtle)}.cut-menu{position:absolute;z-index:3;border:1px solid var(--color-border);color:var(--color-primary);background:var(--color-surface);padding:2px 6px;font-size:var(--font-size-sm);line-height:1.3;letter-spacing:1px}.probe-pane{display:none;flex:0 0 36%;min-width:210px;border-right:1px solid var(--color-border-subtle);position:relative;flex-direction:column;background:var(--color-surface);margin:16px 0;overflow:hidden}.export-editing .probe-pane,.preview-mode .probe-pane{display:flex}.preview-mode .world{display:none}.preview-mode .probe-pane{flex:1;border:0;margin:8px 24px 0}.probe-title{display:flex;align-items:center;justify-content:space-between;padding:8px 0 12px;font-size:var(--font-size-base);color:var(--color-text-strong);gap:12px}.probe-title .btn{border:0;color:var(--color-text-secondary);background:transparent;padding:7px 9px;letter-spacing:0;font-size:var(--font-size-xs)}.probe-content{flex:1;position:relative;min-height:0;display:flex;align-items:center;justify-content:center}#section-image{display:block;width:100%;height:100%;object-fit:contain}#section-image[hidden],#region-stage[hidden]{display:none}#region-stage{position:absolute;inset:0}.probe-empty{display:flex;flex-direction:column;gap:8px;font-size:var(--font-size-sm);line-height:1.9;color:var(--color-text-muted);padding:20px;text-align:center}.probe-empty[hidden]{display:none}.probe-empty strong{font-size:17px;font-weight:var(--font-weight-medium);color:var(--color-text-strong)}.probe-caption{font-size:var(--font-size-xs);color:var(--color-text-subtle);text-align:center;padding:12px 12px 20px}.probe-caption:empty{display:none}.preview-mode .probe-caption{font-size:var(--font-size-xs)}#section-dimensions{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;pointer-events:none;touch-action:none}#section-dimensions .section-dimension{pointer-events:auto;cursor:ew-resize;outline:none}#section-dimensions .section-dimension:focus-visible{filter:drop-shadow(0 0 3px var(--color-primary-ring))}#section-dimensions .section-dimension-move{opacity:0;transition:opacity .12s}#section-dimensions .section-dimension:hover .section-dimension-move,#section-dimensions .section-dimension:focus .section-dimension-move{opacity:1}#probe-legend.preview-legend{min-height:0;max-height:none;margin:0;padding:10px 16px 16px;border:0;flex-shrink:0}#probe-legend[hidden]{display:none}.probe-pane:has(#region-stage:not([hidden])) #probe-legend.preview-legend{position:absolute;left:16px;bottom:16px;z-index:4;padding:0;pointer-events:none}.probe-pane:has(#region-stage:not([hidden])) #probe-legend .preview-legend-row{justify-content:flex-start}.probe-pane:has(#region-stage:not([hidden])) .probe-caption{display:none}.studio-status{min-height:15px;font-size:var(--font-size-2xs);color:var(--color-text-subtle);text-align:center;padding:0 15px 15px;letter-spacing:.02em}.studio-status:empty{display:none}.reconstructing .studio-status{color:var(--color-text-muted)}.studio-error{position:absolute;top:110px;left:24px;right:24px;padding:17px;border:1px solid var(--color-warn-border);background:var(--color-warn-bg);border-radius:var(--radius-12);color:var(--color-warn-text);font-size:var(--font-size-sm);line-height:1.6;z-index:8}.studio-warnings{padding:10px 18px;color:var(--color-warn-text);background:var(--color-warn-bg);font-size:var(--font-size-xs);line-height:1.5}.export-menu{position:relative}.export-menu summary{list-style:none;cursor:pointer;font-size:var(--font-size-sm);color:var(--color-text-secondary);background:var(--color-surface-muted);border-color:var(--color-border);padding:7px 14px}.export-menu summary::-webkit-details-marker{display:none}.export-menu summary span{padding-left:12px;color:var(--color-text-subtle)}.export-menu>div{position:absolute;right:0;top:40px;display:grid;gap:4px;background:var(--color-surface);padding:7px;border:1px solid var(--color-border);box-shadow:var(--shadow-menu);border-radius:var(--radius-10);z-index:500;min-width:130px}.export-menu>div button{text-align:left;border:0;font-size:var(--font-size-xs)}.studio dialog{border:1px solid var(--color-border);border-radius:20px;padding:0;color:var(--color-text);box-shadow:var(--shadow-modal);font-family:var(--font-sans)}.studio dialog::backdrop{background:var(--color-modal-scrim);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.studio dialog input,.studio dialog select{font:var(--font-size-sm) var(--font-sans);border:1px solid var(--color-border);padding:9px;border-radius:var(--radius-7);width:100%;box-sizing:border-box;background:var(--color-surface);color:var(--color-text)}.studio dialog label{font-size:var(--font-size-xs);display:flex;flex-wrap:wrap;gap:7px;color:var(--color-text-muted)}.studio dialog label>span{margin-left:auto;color:var(--color-text-subtle);font-size:var(--font-size-2xs)}.studio dialog h2{font-size:20px;font-weight:var(--font-weight-medium);letter-spacing:-.6px;color:var(--color-text-strong);margin:7px 0 0}.eyebrow{font-size:var(--font-size-2xs);letter-spacing:.15em;color:var(--color-text-subtle)}.geometry-dialog{width:min(920px,calc(100vw - 32px))}.geometry-head{padding:24px 28px 20px;display:flex;align-items:center;justify-content:space-between}.geometry-body{display:grid;grid-template-columns:1fr 225px;padding:0 28px;gap:25px}.placement-map{background:var(--color-surface-muted);border-radius:var(--radius-12);display:flex;flex-direction:column;justify-content:center;border:1px solid var(--color-border-muted);overflow:hidden}.placement-map svg{width:100%;touch-action:none;cursor:move}.placement-map p{font-size:var(--font-size-2xs);color:var(--color-text-subtle);text-align:center;padding:0 10px 10px}.geometry-fields{display:grid;gap:13px}.placement-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.geometry-divider{border-bottom:1px solid var(--color-border-muted)}.import-layout{justify-content:center;padding:8px;cursor:pointer;border:1px dashed var(--color-border);color:var(--color-text-muted)!important}.geometry-bottom{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:22px 28px}.geometry-bottom span{font-size:var(--font-size-xs);color:var(--color-text-subtle)}.studio dialog .primary{background:var(--color-primary);color:var(--color-text-on-dark);border:0}.precision-dialog{width:500px;max-width:calc(100vw - 32px)}.precision-dialog form{padding:30px}.precision-dialog p,.precision-dialog li{font-size:var(--font-size-sm);line-height:1.8;color:var(--color-text-muted)}.precision-dialog ul{padding-left:16px}.cut-dialog{width:330px}.cut-dialog form{padding:25px}.cut-dialog h3{font-size:17px;font-weight:var(--font-weight-medium);color:var(--color-text)}.cut-dialog p{font-size:var(--font-size-2xs);color:var(--color-text-subtle);margin-top:24px}.cut-choices{display:flex;gap:5px}.cut-dialog button{font:var(--font-size-xs) var(--font-sans);padding:9px 11px;background:var(--color-surface-muted);border:0;border-radius:var(--radius-7);color:var(--color-text-secondary);cursor:pointer}.cut-bottom{display:flex;justify-content:space-between;margin-top:25px}.cut-bottom .danger{background:none;color:var(--color-danger)}.studio [hidden]{display:none!important}.studio .world-caption{color:var(--color-text-subtle)}#preview.export-editing:not(.pattern-expanded) .probe-pane{display:none}#preview.export-editing:not(.pattern-expanded) .studio-workspace{flex-direction:row}.pattern-expanded .export-guide{display:none}.add-view-menu{position:relative;flex-shrink:0}.add-view-menu summary{list-style:none;cursor:pointer}.add-view-menu summary::-webkit-details-marker{display:none}.add-view-menu>div{position:absolute;right:0;top:40px;z-index:30;width:235px;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-12);box-shadow:var(--shadow-menu)}.add-view-menu button{display:flex;flex-direction:column;gap:4px;width:100%;text-align:left;border:0;border-radius:var(--radius-8);padding:12px;background:none;color:var(--color-text);cursor:pointer;font:var(--font-size-sm) var(--font-sans)}.add-view-menu button:hover{background:var(--color-surface-muted)}.add-view-menu strong{font-weight:550}.add-view-menu button span{color:var(--color-text-muted);font-size:var(--font-size-xs)}.export-guide{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 24px 8px;padding:10px 12px;background:var(--color-surface-muted);border-radius:var(--radius-8);font-size:var(--font-size-xs);line-height:1.5;color:var(--color-text-secondary)}.export-guide .btn{font-size:var(--font-size-xs);padding:5px 9px;flex-shrink:0}.piece-cut-controls{display:flex;align-items:center;gap:4px;margin-left:auto;white-space:nowrap}.piece-cut-controls>span{font-size:var(--font-size-2xs);color:var(--color-text-subtle);margin-right:3px}.probe-actions{display:flex;gap:5px}.preview-mode .probe-title #probe-name{display:none}.view-type{display:flex;align-items:center}.view-type-icon{width:16px;height:16px;flex-shrink:0}.view-count:empty{display:none}.is-drawing #probe-overlay{cursor:crosshair}#probe-overlay .cut-endpoint,#probe-overlay .piece-corner,#probe-overlay .piece-control{cursor:grab;outline:none}#probe-overlay .piece-corner:active,#probe-overlay .piece-control:active{cursor:grabbing}#probe-overlay .piece-corner:hover rect,#probe-overlay .piece-corner:focus rect,#probe-overlay .piece-control:hover circle:not(:first-child),#probe-overlay .piece-control:focus circle:not(:first-child){stroke-width:3;filter:drop-shadow(0 0 4px var(--color-primary-ring))}#probe-overlay .piece-control text{pointer-events:none;font-family:var(--font-sans);font-weight:600}#probe-overlay .piece-cut-line{filter:drop-shadow(0 0 2px var(--color-surface))}#probe-overlay .cut-endpoint:active{cursor:grabbing}.cut-endpoint:hover .cut-endpoint-dot,.cut-endpoint:focus .cut-endpoint-dot{stroke-width:3;filter:drop-shadow(0 0 4px var(--color-primary-ring))}.cut-endpoint text{pointer-events:none;font-family:var(--font-sans);font-weight:600}.cut-snap-label{pointer-events:none}.cut-snap-label rect{fill:var(--color-surface);stroke:var(--color-border);filter:drop-shadow(0 2px 5px var(--color-primary-ring))}.cut-snap-label text{fill:var(--color-text-secondary);font:var(--font-size-xs) var(--font-sans)}.probe-chip button[hidden]{display:none}.probe-rename{width:150px;min-width:80px;margin:2px 5px;padding:4px 6px;border:1px solid var(--color-primary-border-soft);border-radius:var(--radius-5);font:var(--font-weight-medium) var(--font-size-xs) var(--font-sans);color:var(--color-text-secondary);background:var(--color-surface);outline-offset:2px}.probe-item{position:relative;flex-shrink:0;padding-bottom:25px}.probe-hover-edit{position:absolute;bottom:0;left:50%;transform:translate(-50%);display:grid;place-items:center;width:28px;height:24px;padding:0;border:0;border-radius:var(--radius-6);background:transparent;color:var(--color-text-muted);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .12s,background .12s}.probe-item:hover .probe-hover-edit,.probe-item:focus-within .probe-hover-edit,.probe-item.menu-open .probe-hover-edit{opacity:1;pointer-events:auto}.probe-hover-edit:hover,.probe-hover-edit:focus-visible,.probe-item.menu-open .probe-hover-edit{background:var(--color-primary-tint);color:var(--color-primary)}.probe-view-menu{position:fixed;inset:auto;margin:0;width:168px;padding:4px;border:1px solid var(--color-border);border-radius:var(--radius-10);background:var(--color-surface);box-shadow:var(--shadow-menu);color:var(--color-text-secondary)}.probe-view-menu::backdrop{background:transparent}.probe-view-menu button{display:block;width:100%;padding:9px 11px;text-align:left;font:var(--font-weight-medium) var(--font-size-sm) var(--font-sans);border:0;border-radius:var(--radius-6);background:transparent;color:inherit;cursor:pointer}.probe-view-menu button:hover,.probe-view-menu button:focus-visible{background:var(--color-surface-muted)}@media(hover:none){.probe-hover-edit{opacity:1;pointer-events:auto}}@media(max-width:1100px){.studio #flow{flex-basis:46%}.studio .head-brand{gap:12px}.studio .head-file{margin-left:5px}.studio #preview{margin:12px 12px 12px 0}.studio-toolbar{padding:0 15px}.studio .segmented-control-option{padding:8px 12px}.studio-viewbar{padding:0 15px 8px}.probe-pane{flex-basis:42%;min-width:150px}.studio .flow-meta{max-width:260px}}@media(max-width:760px){.studio>header{height:auto;min-height:66px;padding:14px 16px;gap:10px}.studio .head-brand{gap:9px;flex:1}.studio .head-brand h1{font-size:17px}.studio .head-file{order:3;width:100%;margin-left:0;gap:2px}.studio .head-file .btn{font-size:var(--font-size-xs);padding:5px 8px}.studio .head-actions{align-self:flex-start}.studio main{display:flex;flex-direction:column-reverse;overflow:auto}.studio #preview{flex:none;min-height:430px;height:52vh;margin:10px;border-radius:16px}.studio #flow{flex:none;min-height:620px;width:100%;max-width:none}.studio .head-history{right:20px}.studio .studio-label{font-size:8px;padding-left:9px}.studio-toolbar{height:55px}.studio-workspace{min-height:220px}.studio-status{padding-bottom:8px}.studio .flow-meta{display:none}.geometry-body{grid-template-columns:1fr!important}.placement-map{min-height:180px;max-height:280px}.geometry-fields{grid-template-columns:1fr 1fr}.placement-fields{grid-column:1 / -1}.geometry-dialog{max-height:90vh;overflow:auto}.geometry-head{padding:18px!important}.geometry-body{padding:0 18px!important}.geometry-bottom{padding:18px!important}.geometry-fields .geometry-divider{display:none}.geometry-bottom span{max-width:60%}.probe-pane{min-width:130px}.export-guide{margin:0 15px 6px;font-size:var(--font-size-2xs);flex-wrap:wrap}.piece-cut-controls{order:3;width:100%;margin-left:0;overflow-x:auto}.view-count{display:none}.studio-viewbar{padding-bottom:5px}.preview-mode .probe-pane{margin:5px 15px 0}.probe-title{flex-wrap:wrap;gap:2px;font-size:var(--font-size-xs)}.probe-actions{margin-left:auto}.probe-title .btn{padding:5px;font-size:var(--font-size-2xs)}.probe-chip button{font-size:var(--font-size-2xs)}.probe-caption,#probe-legend{font-size:var(--font-size-2xs);padding:6px 8px}}@media(prefers-reduced-motion:reduce){.studio *{scroll-behavior:auto!important;transition:none!important}}.dimension-overlay{position:absolute;inset:0;pointer-events:none;z-index:3}.dimension-overlay>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;z-index:0}.dimension-overlay>.dimension-label,.dimension-overlay>.dimension-editor{z-index:2}.dimension-overlay path{fill:none;stroke:var(--color-text-muted);stroke-width:1}.dimension-label{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;border:0;padding:3px 6px;background:var(--color-side-bg);border-radius:var(--radius-4);color:var(--color-text-secondary);font:var(--font-size-xs) var(--font-sans);cursor:text;white-space:nowrap}.dimension-label:hover,.dimension-label:focus-visible{background:var(--color-surface-muted);color:var(--color-text-strong);outline:1px solid var(--color-border)}.dimension-editor{position:absolute;pointer-events:auto;width:174px;padding:10px;box-sizing:border-box;background:var(--color-surface);border:1px solid var(--color-border);box-shadow:var(--shadow-menu);border-radius:var(--radius-10);color:var(--color-text-secondary);font:var(--font-size-xs) var(--font-sans);z-index:5}.dimension-editor label{display:block}.dimension-editor label>div{display:flex;align-items:center;gap:5px;margin-top:7px}.dimension-editor input{width:110px;min-width:0;padding:5px;font:var(--font-size-base) var(--font-sans);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-4)}.dimension-editor button{border:0;background:var(--color-surface-muted);color:var(--color-text-secondary);padding:5px;border-radius:var(--radius-4);cursor:pointer}.dimension-editor small{display:block;color:var(--color-warn-text);line-height:1.5;margin-top:5px}.dimension-overlay path[data-active=true]{stroke:var(--color-primary);stroke-width:1.5}.dimension-label[data-active=true]{color:var(--color-primary);background:var(--color-primary-tint);font-weight:600}.pattern-native-stage .dimension-overlay path{opacity:.28;stroke:var(--color-text-muted);stroke-width:1;transition:opacity .12s}.pattern-native-stage .dimension-label{opacity:.45;color:var(--color-text-muted);background:transparent;font-weight:400}.pattern-native-stage .dimension-overlay path[data-active=true],.pattern-native-stage .dimension-label[data-active=true]{opacity:1;color:var(--color-text);stroke:var(--color-text-muted);background:color-mix(in srgb,var(--color-surface) 90%,transparent)}.pattern-native-stage .dimension-label:hover,.pattern-native-stage .dimension-label:focus-visible{opacity:1;background:var(--color-side-bg)}.pattern-native-stage .dimension-overlay path[data-emphasized=true]{opacity:1}.pattern-native-stage .dimension-overlay .dimension-extension{stroke-dasharray:2 3;stroke-width:.75}.pattern-native-stage .dimension-overlay>svg{overflow:hidden}.pattern-native-stage .dimension-label[data-dimension=measure-preview]{pointer-events:none}.pattern-native-stage.measuring .dimension-label:not([data-dimension^=measure-]){pointer-events:none}.dimension-origin{fill:var(--color-text);opacity:.45;font:var(--font-size-2xs) var(--font-sans)}#device-stage>.dimension-overlay path{stroke:var(--color-text-muted);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 1px var(--color-surface)) drop-shadow(0 0 1px var(--color-surface));transition:stroke .16s ease}#device-stage>.dimension-overlay .dimension-extension{stroke:var(--color-text-muted);stroke-width:.75}#device-stage>.dimension-overlay .dimension-label{color:var(--color-text-secondary);background:transparent;border-radius:var(--radius-6);font-weight:500;isolation:isolate;outline:none;transition:color .3s ease}#device-stage>.dimension-overlay path[data-emphasized=true]{stroke:var(--color-text)}#device-stage>.dimension-overlay .dimension-label:before{content:"";position:absolute;inset:-4px -8px;z-index:-1;pointer-events:none;border-radius:7px;background:var(--color-side-bg);box-shadow:none;opacity:.9;mask-image:linear-gradient(to right,transparent 0%,black 20%,black 80%,transparent 100%),linear-gradient(to bottom,transparent 0%,black 28%,black 72%,transparent 100%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent 0%,black 20%,black 80%,transparent 100%),linear-gradient(to bottom,transparent 0%,black 28%,black 72%,transparent 100%);-webkit-mask-composite:source-in;transition:opacity .35s cubic-bezier(.22,1,.36,1)}#device-stage>.dimension-overlay .dimension-label:hover,#device-stage>.dimension-overlay .dimension-label:focus-visible{background:transparent;outline:none}#device-stage>.dimension-overlay .dimension-label:hover:before,#device-stage>.dimension-overlay .dimension-label:focus-visible:before{opacity:1}#device-stage>.dimension-overlay .dimension-label:focus-visible{outline:1px solid var(--color-border-strong)}@media(prefers-reduced-motion:reduce){#device-stage>.dimension-overlay .dimension-label:before{transition:none}}.pattern-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border-muted);min-width:0}.pattern-section .row{margin-bottom:9px}.pattern-section .pattern-button{gap:8px;min-height:34px}.pattern-thumbnail{width:24px;height:24px;flex:none;color:var(--color-primary)}.pattern-outcome-options{grid-column:2/-1;display:flex;min-width:0}.pattern-outcome-options .segmented-control-option{flex:1;padding:6px 12px;font:inherit;font-size:12px}.pattern-idle .pattern-button{color:var(--color-text-secondary);background:var(--color-surface-muted);border-style:dashed}.pattern-idle .pattern-button:after{content:"+"}.pattern-idle .pattern-button:hover{color:var(--color-primary);border-color:var(--color-primary)}.pattern-outcome-pending .segmented-control-option.active{color:var(--color-text-secondary)}.pattern-outcome-pending .segmented-control:before{box-shadow:inset 0 0 0 1px var(--color-border)}.pattern-inherited-note{display:flex;align-items:flex-start;gap:9px;padding:10px 12px;margin:3px 0 8px;border-radius:8px;background:var(--color-surface-muted)}.pattern-inherited-icon{color:var(--color-primary);font-size:18px;line-height:20px}.pattern-inherited-note strong{display:block;font-size:12px;font-weight:500;color:var(--color-text);line-height:20px}.pattern-inherited-note span:not(.pattern-inherited-icon){display:block;font-size:11px;color:var(--color-text-secondary);line-height:17px}.pattern-extra.card-opt{border-top:0}.pattern-extra[open]>summary{margin-bottom:9px}.pattern-lithography-detail{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0;font-size:11px;color:var(--color-text-secondary)}.pattern-lithography-detail strong{font-weight:500}#pattern-context{display:flex;align-items:center;flex-wrap:wrap;gap:8px 20px;padding:9px 16px;border-bottom:1px solid var(--color-border-muted)}#pattern-context .row{margin:0;display:flex;align-items:center;gap:8px}#pattern-context .row>label{width:auto;flex:none;white-space:nowrap;font-size:11px;color:var(--color-text-muted);padding:0}#pattern-context select{min-height:32px;max-width:190px;padding:5px 8px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text);font:12px var(--font-sans)}#pattern-context .pattern-outcome{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px}#pattern-context .pattern-outcome-options button{white-space:nowrap}.pattern-view-side{display:flex;gap:6px;align-items:center;font-size:11px;color:var(--color-text-muted)}.pattern-editor-tools{flex-wrap:wrap}@media(max-width:650px){#pattern-context{gap:8px;padding:8px 12px}#pattern-context .pattern-outcome{width:100%}.pattern-editor-tools{gap:5px;padding:8px 12px}#pattern-owner{min-width:60px}#patternEditor .btn{padding:7px 8px}.pattern-section .pattern-outcome-row{display:block}.pattern-section .pattern-outcome-row>label{display:block;margin-bottom:5px}}.gds-cell-dialog{width:440px;max-width:calc(100vw - 32px)}.gds-cell-dialog form{padding:25px}.gds-cell-dialog p{color:var(--color-text-muted);font-size:12px;line-height:1.7}.gds-cell-dialog form>div{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.substrate-adapt-dialog{box-sizing:border-box;width:min(480px,calc(100vw - 40px));max-width:calc(100vw - 40px);margin:auto;padding:0!important;overflow:hidden;border:1px solid var(--color-border-light);border-radius:var(--radius-16);color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-modal);font-family:var(--font-sans)}.substrate-adapt-dialog::backdrop{background:#0f172a57;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.substrate-adapt-dialog form{margin:0;padding:0}.substrate-adapt-dialog header{display:block;padding:26px 28px 12px}.substrate-adapt-dialog h2{margin:6px 0;color:var(--color-text-strong);font:var(--font-weight-semibold) 22px/1.2 var(--font-sans);letter-spacing:-.55px}.substrate-adapt-dialog header p{margin:0;color:var(--color-text-muted);font:13px/1.55 var(--font-sans)}.substrate-size-summary{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;margin:4px 28px 16px;padding:14px 16px;border:1px solid var(--color-border-subtle);border-radius:var(--radius-12);background:var(--color-surface-muted)}.substrate-size-summary div{display:grid;gap:3px;min-width:0}.substrate-size-summary div:last-child{text-align:right}.substrate-size-summary span:not(.substrate-size-arrow){color:var(--color-text-subtle);font:var(--font-weight-medium) 10px/1.2 var(--font-sans);letter-spacing:.08em;text-transform:uppercase}.substrate-size-summary strong{overflow:hidden;color:var(--color-text-strong);font:var(--font-weight-semibold) 13px/1.35 var(--font-sans);text-overflow:ellipsis;white-space:nowrap}.substrate-size-arrow{color:var(--color-text-subtle);font-size:16px}.substrate-adapt-dialog .scope-note{margin:0 28px 20px;color:var(--color-text-muted);font:12px/1.5 var(--font-sans)}.substrate-adapt-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin:0;padding:18px 28px 26px;border-top:1px solid var(--color-border-subtle)}.substrate-adapt-dialog .btn{min-height:38px;padding:8px 13px;border:1px solid var(--color-border);border-radius:var(--radius-7);color:var(--color-text-secondary);background:var(--color-surface);font:var(--font-weight-medium) 13px var(--font-sans);cursor:pointer}.substrate-adapt-dialog .btn:hover{background:var(--color-surface-muted)}.substrate-adapt-dialog .primary{border-color:var(--color-primary);color:var(--color-text-on-dark);background:var(--color-primary)}.substrate-adapt-dialog .primary:hover{background:var(--color-primary-active)}@media(max-width:500px){.substrate-adapt-dialog{width:calc(100vw - 24px);max-width:calc(100vw - 24px)}.substrate-adapt-dialog header{padding:22px 20px 10px}.substrate-size-summary{margin:4px 20px 14px;padding:12px}.substrate-adapt-dialog .scope-note{margin:0 20px 18px}.substrate-adapt-dialog footer{padding:16px 20px 20px}}#patternEditor{flex:none;position:relative;z-index:10;background:var(--color-surface);color:var(--color-text)}#patternEditor[hidden],.pattern-native-stage[hidden]{display:none}.pattern-editor-tools{display:flex;align-items:center;gap:8px;padding:12px 16px;min-height:58px;border-bottom:1px solid var(--color-border-muted)}#pattern-owner{margin-right:auto;font-size:12px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#patternEditor .btn{font:12px var(--font-sans);padding:8px 11px;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:7px;white-space:nowrap;cursor:pointer}#patternEditor .primary{color:var(--color-text-on-dark);background:var(--color-primary)}#patternEditor .studio-toggle button{font-size:12px;padding:8px 11px}#pattern-feedback{font-size:11px;padding:0 16px}#pattern-feedback:not(:empty){padding:5px 16px}#pattern-feedback.error{color:var(--color-warn-text)}.pattern-native-stage{position:absolute;inset:0;z-index:3;pointer-events:none}#pattern-canvas{position:absolute;inset:0;width:100%;height:100%;background:transparent;touch-action:none;outline:none}.pattern-expanded .studio-toolbar,.pattern-expanded .studio-viewbar,.pattern-expanded .draw-toolbar,.pattern-expanded #probe-menu{display:none!important}.pattern-expanded .studio-workspace{flex-direction:row!important;min-height:0}.pattern-expanded .world{flex:1;min-width:0;min-height:0;display:block!important}.pattern-expanded .probe-pane{flex:0 0 28%;min-width:240px;min-height:0;margin:0;border-right:1px solid var(--color-border-muted);display:flex!important}.pattern-expanded .world-caption{pointer-events:none}.pattern-expanded #patternEditor,.pattern-expanded .probe-pane{opacity:var(--pattern-reveal,1)}.pattern-transition .world,.pattern-transition .world *{pointer-events:none!important}.pattern-transition #patternEditor{pointer-events:none}.pattern-transition #pattern-done{pointer-events:auto}.pattern-section-views{display:none}.pattern-expanded .pattern-section-views{display:flex;gap:6px;overflow-x:auto;min-width:0;flex:1;padding:3px 0}.pattern-expanded #probe-name,.pattern-expanded .pattern-stage-label,.pattern-section-collapsed .probe-content,.pattern-section-collapsed #probe-legend,.pattern-section-collapsed .probe-caption{display:none}.pattern-live-label{font-size:12px;color:var(--color-text-muted)}.pattern-live-note{font-size:10px;color:var(--color-text-subtle)}@media(max-width:899px){.pattern-expanded .studio-workspace{flex-direction:column-reverse!important}.pattern-expanded .probe-pane{flex:0 0 25%;min-width:0;min-height:100px;border-right:0;border-top:1px solid var(--color-border-muted)}.pattern-expanded.pattern-section-collapsed .probe-pane{flex:0 0 40px;min-height:40px}.pattern-editor-tools{gap:4px;padding:8px;flex-wrap:wrap}#pattern-owner{width:100%}#patternEditor .btn,#patternEditor .studio-toggle button{font-size:11px;padding:8px}}@media(prefers-reduced-motion:reduce){.pattern-expanded *{transition:none!important;animation:none!important}}.pattern-expanded #patternEditor{max-height:none}.pattern-transition #patternEditor{overflow:hidden}.pattern-expanded .probe-title{gap:8px;padding:8px 12px;justify-content:flex-start}.pattern-expanded.reconstructing #device-stage,.pattern-expanded.reconstructing .probe-content{opacity:1}.pattern-expanded .position-inspector{display:none!important}.pattern-expanded .studio-workspace{position:relative;justify-content:flex-end}.pattern-expanded .world{order:0}.pattern-expanded .probe-pane{order:1;border-right:0;border-left:1px solid var(--color-border-muted);transform:translate(calc((1 - var(--pattern-progress,1)) * 100%))}.pattern-menu{position:relative;flex:none}.pattern-menu>summary{list-style:none;cursor:pointer}.pattern-menu>summary::-webkit-details-marker{display:none}.pattern-menu>div{position:absolute;top:calc(100% + 5px);right:0;min-width:160px;padding:6px;border:1px solid var(--color-border);border-radius:9px;background:var(--color-surface);box-shadow:var(--shadow-menu);z-index:30}#pattern-drawing>div{left:0;right:auto}.pattern-menu button,.pattern-menu div summary{display:block;width:100%;border:0;background:var(--color-surface);text-align:left;color:var(--color-text-secondary);padding:8px;font:12px var(--font-sans);border-radius:5px;cursor:pointer}.pattern-menu button:hover,.pattern-menu div summary:hover{background:var(--color-surface-muted)}.pattern-menu button:disabled{color:var(--color-text-subtle);cursor:default}.pattern-menu button[aria-pressed=true]{background:var(--color-primary-tint)}.pattern-menu button[hidden],.pattern-menu details[hidden]{display:none}.pattern-center{display:flex;align-items:center;gap:5px;padding:4px 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:7px;font:12px var(--font-sans);color:var(--color-text-secondary)}.pattern-center input{width:56px;min-width:0;border:1px solid var(--color-border);border-radius:5px;padding:5px 6px;font:12px var(--font-sans);color:var(--color-text);background:var(--color-surface);appearance:textfield}.pattern-center input::-webkit-outer-spin-button,.pattern-center input::-webkit-inner-spin-button{appearance:none}#patternEditor button:focus-visible,#patternEditor summary:focus-visible{outline:2px solid var(--color-primary-focus-ring);outline-offset:2px}@media(max-width:899px){.pattern-expanded .studio-workspace{flex-direction:column!important}.pattern-expanded .probe-pane{border-left:0;transform:translateY(calc((1 - var(--pattern-progress,1)) * 100%))}.pattern-editor-tools{flex-wrap:wrap}#pattern-owner{width:auto}}@media(max-width:600px){#pattern-owner{display:block;flex:1 0 100%;width:100%;font-weight:600}.pattern-center input{width:58px}.pattern-editor-tools{justify-content:space-between;gap:3px;padding:8px 6px}#patternEditor .btn{font-size:11px;padding:8px 7px}}#pattern-drawing>summary:after{content:"⌄";display:inline-block;margin-left:8px;font-size:13px}.pattern-expanded .studio-error{position:absolute;inset:auto 16px 16px;z-index:20;max-height:72px;overflow:auto}.substrate-break-note{padding:6px 16px 10px;text-align:center;color:var(--color-text-subtle);font-size:10px;cursor:help}.substrate-break-note[hidden]{display:none}.pattern-expanded .probe-caption:empty,.pattern-section-collapsed .substrate-break-note{display:none}@media(max-width:899px){.pattern-expanded.has-substrate-break:not(.pattern-section-collapsed) .probe-pane{flex:0 0 34%;min-height:210px}}.pattern-selection-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.pattern-selection-tools[hidden],#pattern-boolean[hidden],#pattern-repeat[hidden]{display:none}.pattern-expanded .pattern-selection-tools:not([hidden]){position:fixed;z-index:40;transform:translateY(-50%);padding:6px;border:1px solid var(--color-border);border-radius:9px;background:color-mix(in srgb,var(--color-surface) 94%,transparent);box-shadow:var(--shadow-menu);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.pattern-expanded .pattern-selection-tools:not([hidden]):before{content:"";position:absolute;left:-7px;top:50%;width:12px;height:12px;border-left:1px solid var(--color-border);border-bottom:1px solid var(--color-border);background:var(--color-surface);transform:translateY(-50%) rotate(45deg)}#pattern-drawing>div{display:grid;grid-template-columns:1fr 1fr;min-width:300px;max-width:calc(100vw - 30px)}#pattern-drawing button{display:flex;align-items:center;gap:8px;min-height:38px}#pattern-drawing button>span{width:23px;text-align:center;font:23px sans-serif;color:var(--color-text-muted)}.boolean-hint{display:block;padding:6px 8px;width:190px;color:var(--color-text-muted);font-size:10px;line-height:1.4}.pattern-repeat-popover{position:absolute;right:16px;top:100%;margin-top:8px;width:300px;max-width:calc(100% - 24px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:var(--shadow-menu);padding:16px;pointer-events:auto;z-index:30;color:var(--color-text);font:12px var(--font-sans)}.repeat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}.repeat-grid label{display:grid;gap:5px}.repeat-grid input{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--color-border);border-radius:5px;padding:7px;font:12px var(--font-sans);color:var(--color-text)}.pattern-repeat-popover small{display:block;color:var(--color-text-muted);line-height:1.5}.pattern-repeat-popover [role=alert]{color:var(--color-warn-text);font-size:11px}.pattern-repeat-popover footer,.pattern-scope-dialog footer{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}.pattern-repeat-popover .btn,.pattern-scope-dialog .btn{padding:7px 11px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);color:var(--color-text-secondary);cursor:pointer}.pattern-repeat-popover .primary,.pattern-scope-dialog .primary{background:var(--color-primary);color:var(--color-text-on-dark)}.pattern-scope-dialog{width:400px;max-width:calc(100vw - 40px);padding:24px;border:1px solid var(--color-border);border-radius:14px;color:var(--color-text);font:13px var(--font-sans)}.pattern-scope-dialog::backdrop{background:var(--color-modal-scrim)}.pattern-scope-dialog h3{margin-top:0}.pattern-scope-dialog label{display:flex;align-items:center;gap:8px;padding:8px 0}.pattern-scope-dialog ul{max-height:150px;overflow:auto}.pattern-scope-dialog .scope-note{font-size:11px;line-height:1.5;color:var(--color-text-muted)}@media(max-width:600px){#pattern-drawing>div{min-width:290px}.pattern-repeat-popover{right:8px}}
