:root{--nd-bg: #171a1f;--nd-surface: #1e2228;--nd-surface-2: #262b33;--nd-surface-3: #2f353e;--nd-line: #363d47;--nd-line-strong: #4a525e;--nd-text: #e8ecf2;--nd-text-muted: #9aa4b2;--nd-text-faint: #6f7a88;--nd-text-invert: #14171b;--nd-accent: #4d8dff;--nd-accent-hover: #6ba0ff;--nd-accent-soft: #20304a;--nd-accent-line: #3a5f9e;--nd-ok: #4ade80;--nd-ok-soft: #1b3326;--nd-warn: #fbbf24;--nd-warn-soft: #3a2f14;--nd-danger: #f87171;--nd-danger-soft: #3a1e1e;--nd-fit-tight: #ff5d5d;--nd-fit-good: #4ade80;--nd-fit-loose: #57a6ff;--nd-pattern-bg: #14171c;--nd-pattern-grid: #1e232a;--nd-pattern-grid-strong: #2a313a;--nd-piece-fill: #272d36;--nd-piece-fill-hover: #2f4260;--nd-piece-line: #cdd6e2;--nd-piece-line-fold: #7b8797;--nd-seam-allowance: #d97c7c;--nd-notch: #cdd6e2;--nd-handle: #4d8dff;--nd-handle-active: #fbbf24;--nd-adjusted: #fbbf24;--nd-radius: 8px;--nd-radius-lg: 12px;--nd-shadow-1: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .25);--nd-shadow-2: 0 4px 16px rgba(0, 0, 0, .45);--nd-shadow-3: 0 18px 48px rgba(0, 0, 0, .6);--nd-font: "Pretendard", "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Malgun Gothic", "맑은 고딕", "Apple SD Gothic Neo", "Noto Sans KR", system-ui, sans-serif;--nd-font-num: "SF Mono", "Consolas", "D2Coding", ui-monospace, monospace;--nd-topbar-h: 56px;--nd-tray-h: 232px;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--nd-font);font-size:15px;line-height:1.5;color:var(--nd-text);background:var(--nd-bg);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--nd-accent);outline-offset:2px;border-radius:4px}.nd-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid var(--nd-line-strong);border-radius:var(--nd-radius);background:var(--nd-surface);color:var(--nd-text);cursor:pointer;white-space:nowrap;transition:background .12s ease,border-color .12s ease,color .12s ease}.nd-btn:hover:not(:disabled){background:var(--nd-surface-3)}.nd-btn:disabled{opacity:.45;cursor:not-allowed}.nd-btn--primary{background:var(--nd-accent);border-color:var(--nd-accent);color:var(--nd-text-invert);font-weight:600}.nd-btn--primary:hover:not(:disabled){background:var(--nd-accent-hover);border-color:var(--nd-accent-hover)}.nd-btn--ghost{border-color:transparent;background:transparent}.nd-btn--ghost:hover:not(:disabled){background:var(--nd-surface-3)}.nd-btn--icon{min-width:36px;padding:0 8px}.nd-btn[aria-pressed=true]{background:var(--nd-accent-soft);border-color:var(--nd-accent-line);color:var(--nd-accent-hover);font-weight:600}.nd-segment{display:inline-flex;padding:2px;gap:2px;background:var(--nd-surface-3);border-radius:var(--nd-radius);border:1px solid var(--nd-line)}.nd-segment button{min-height:30px;min-width:38px;padding:0 10px;border:0;border-radius:6px;background:transparent;color:#c3cbd6;cursor:pointer;font-weight:600}.nd-segment button[aria-pressed=true]{background:var(--nd-surface);color:var(--nd-text);box-shadow:var(--nd-shadow-1)}.nd-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12.5px;font-weight:600;letter-spacing:-.01em}.nd-badge--preview{background:#14171ce0;color:var(--nd-text-muted);border:1px solid var(--nd-line-strong)}.nd-badge--precise{background:var(--nd-ok-soft);color:var(--nd-ok);border:1px solid var(--nd-ok)}.nd-badge--warn{background:var(--nd-warn-soft);color:var(--nd-warn);border:1px solid var(--nd-warn)}.nd-app{display:flex;flex-direction:column;height:100%;overflow:hidden}.nd-topbar{display:flex;align-items:center;gap:10px;height:var(--nd-topbar-h);padding:0 14px;background:var(--nd-surface);border-bottom:1px solid var(--nd-line);flex:0 0 auto;z-index:20}.nd-topbar__brand{display:flex;align-items:baseline;gap:7px;font-weight:800;letter-spacing:-.02em;padding-right:6px}.nd-topbar__brand small{font-size:11.5px;font-weight:600;color:var(--nd-text-faint);letter-spacing:0}.nd-topbar__name{min-width:140px;max-width:280px;border:1px solid transparent;border-radius:6px;padding:6px 8px;background:transparent;font-weight:600}.nd-topbar__name:hover{border-color:var(--nd-line)}.nd-topbar__name:focus{border-color:var(--nd-accent-line);background:var(--nd-surface)}.nd-topbar__spacer{flex:1}.nd-divider-v{width:1px;height:24px;background:var(--nd-line);flex:0 0 auto}.nd-main{flex:1;display:flex;min-height:0}.nd-split{flex:1;display:flex;min-height:0;min-width:0}.nd-pane{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--nd-surface)}.nd-pane__head{display:flex;align-items:center;gap:8px;height:42px;padding:0 12px;border-bottom:1px solid var(--nd-line);flex:0 0 auto}.nd-pane__title{font-size:13px;font-weight:700;color:var(--nd-text-muted);letter-spacing:.01em}.nd-pane__body{flex:1;position:relative;min-height:0}.nd-resizer{flex:0 0 auto;width:6px;cursor:col-resize;background:var(--nd-line);transition:background .12s ease}.nd-resizer:hover,.nd-resizer[data-active=true]{background:var(--nd-accent-line)}.nd-tray{flex:0 0 auto;height:var(--nd-tray-h);display:flex;flex-direction:column;background:var(--nd-surface);border-top:1px solid var(--nd-line)}.nd-tray--collapsed{height:42px}.nd-tray__resizer{height:10px;margin-top:-5px;flex:0 0 auto;cursor:ns-resize;position:relative;z-index:2}.nd-tray__resizer:before{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:46px;height:4px;border-radius:2px;background:var(--nd-line-strong);transition:background .12s ease,width .12s ease}.nd-tray__resizer:hover:before,.nd-tray__resizer[data-active=true]:before{background:var(--nd-accent);width:72px}.nd-tray__tabs{display:flex;align-items:stretch;gap:2px;height:42px;padding:0 8px;border-bottom:1px solid var(--nd-line);flex:0 0 auto}.nd-tray__tab{border:0;background:transparent;padding:0 14px;cursor:pointer;color:var(--nd-text-muted);font-weight:600;border-bottom:2px solid transparent}.nd-tray__tab[aria-selected=true]{color:var(--nd-accent);border-bottom-color:var(--nd-accent)}.nd-tray__body{flex:1;overflow:auto;padding:12px 14px}.nd-grid{display:grid;gap:12px 20px;grid-template-columns:repeat(auto-fill,minmax(272px,1fr))}.nd-field{display:flex;flex-direction:column;gap:4px;min-width:0}.nd-field__label{font-size:13.5px;font-weight:600;color:var(--nd-text-muted);display:inline-flex;align-items:center;gap:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nd-field__control{display:flex;align-items:center;gap:6px;min-width:0}.nd-field--inline{flex-direction:row;align-items:center;gap:10px;min-height:36px}.nd-field--inline .nd-field__label{flex:0 0 96px}.nd-field--inline .nd-field__control{flex:1}.nd-num{width:82px;height:34px;padding:0 8px;border:1px solid var(--nd-line-strong);border-radius:6px;background:var(--nd-surface);font-family:var(--nd-font-num);font-size:15px;font-variant-numeric:tabular-nums;text-align:right}.nd-num:focus{border-color:var(--nd-accent)}.nd-num[data-adjusted=true]{border-color:var(--nd-adjusted);background:var(--nd-warn-soft)}.nd-stepper{display:inline-flex;flex-direction:column;gap:1px}.nd-stepper button{width:22px;height:16px;border:1px solid var(--nd-line-strong);background:var(--nd-surface);border-radius:4px;cursor:pointer;line-height:1;font-size:9px;color:var(--nd-text-muted);padding:0}.nd-stepper button:hover{background:var(--nd-surface-3)}.nd-range{flex:1;min-width:70px;accent-color:var(--nd-accent);height:20px}.nd-unit{font-size:12.5px;color:var(--nd-text-faint);width:20px}.nd-hint{font-size:12.5px;color:var(--nd-text-faint);margin:2px 0 10px}.nd-section-title{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--nd-text-faint);text-transform:uppercase;margin:4px 0 8px}.nd-swatches{display:flex;flex-wrap:wrap;gap:6px}.nd-swatch{width:30px;height:30px;border-radius:6px;border:1px solid rgba(0,0,0,.16);cursor:pointer;padding:0;position:relative}.nd-swatch[aria-pressed=true]:after{content:"";position:absolute;inset:-4px;border:2px solid var(--nd-accent);border-radius:9px}.nd-fabric-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px}.nd-fabric{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:8px 10px;border:1px solid var(--nd-line-strong);border-radius:var(--nd-radius);background:var(--nd-surface);cursor:pointer;text-align:left}.nd-fabric[aria-pressed=true]{border-color:var(--nd-accent);background:var(--nd-accent-soft)}.nd-fabric small{font-size:11.5px;color:var(--nd-text-faint)}.nd-fit-row{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--nd-surface-3)}.nd-fit-dot{width:10px;height:10px;border-radius:3px;flex:0 0 auto}.nd-fit-name{flex:1;font-size:14px}.nd-fit-value{font-family:var(--nd-font-num);font-variant-numeric:tabular-nums;font-size:14px}.nd-fit-level{width:42px;text-align:right;font-size:12.5px;font-weight:600}.nd-warnings{position:absolute;left:12px;bottom:12px;right:12px;display:flex;flex-direction:column;gap:6px;pointer-events:none;z-index:5}.nd-warning{display:flex;gap:8px;align-items:flex-start;padding:8px 11px;border-radius:var(--nd-radius);background:var(--nd-warn-soft);border:1px solid var(--nd-warn);color:var(--nd-warn);font-size:13.5px;box-shadow:var(--nd-shadow-1);pointer-events:auto}.nd-picker{height:100%;overflow:auto;background:var(--nd-bg)}.nd-picker__inner{max-width:1180px;margin:0 auto;padding:40px 24px 64px}.nd-picker h1{font-size:28px;letter-spacing:-.02em;margin:0 0 6px}.nd-picker p{color:var(--nd-text-muted);margin:0 0 22px}.nd-picker__filters{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}.nd-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(186px,1fr));gap:14px}.nd-card{display:flex;flex-direction:column;border:1px solid var(--nd-line);border-radius:var(--nd-radius-lg);background:var(--nd-surface);cursor:pointer;overflow:hidden;padding:0;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.nd-card:hover{border-color:var(--nd-accent-line);box-shadow:var(--nd-shadow-2);transform:translateY(-2px)}.nd-card__thumb{aspect-ratio:1 / 1;background:var(--nd-surface-2);border-bottom:1px solid var(--nd-line);display:grid;place-items:center;padding:14px}.nd-card__thumb img{width:100%;height:100%;object-fit:contain}.nd-card__body{padding:10px 12px 12px}.nd-card__name{font-weight:700;font-size:15px;margin-bottom:3px}.nd-card__dims{font-size:12px;color:var(--nd-text-faint);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.nd-perf{position:fixed;right:14px;bottom:14px;width:340px;background:#111821f2;color:var(--nd-text);border-radius:var(--nd-radius-lg);padding:12px 14px;font-family:var(--nd-font-num);font-size:12px;z-index:60;box-shadow:var(--nd-shadow-3)}.nd-perf table{width:100%;border-collapse:collapse}.nd-perf td{padding:3px 0;font-variant-numeric:tabular-nums}.nd-perf td:not(:first-child){text-align:right}.nd-perf__over{color:var(--nd-fit-tight)}.nd-perf__ok{color:var(--nd-fit-good)}.nd-modal-backdrop{position:fixed;inset:0;background:#11182166;display:grid;place-items:center;z-index:80}.nd-modal{width:min(420px,calc(100vw - 32px));background:var(--nd-surface);border-radius:var(--nd-radius-lg);box-shadow:var(--nd-shadow-3);padding:20px}.nd-modal h2{margin:0 0 6px;font-size:17px}.nd-modal p{margin:0 0 16px;color:var(--nd-text-muted);font-size:14px}.nd-modal__actions{display:flex;justify-content:flex-end;gap:8px}.nd-viewer{position:absolute;inset:0}.nd-viewer__overlay{position:absolute;inset:0;pointer-events:none;padding:12px;display:flex;flex-direction:column}.nd-viewer__top{display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.nd-viewer__bottom{margin-top:auto;display:flex;gap:6px;flex-wrap:wrap;align-items:center;pointer-events:auto}.nd-viewer__bottom .nd-btn,.nd-viewer__bottom .nd-segment,.nd-viewer__bottom select{background:#14171ce0;border-color:var(--nd-line-strong);color:var(--nd-text);backdrop-filter:blur(6px)}.nd-viewer__bottom .nd-segment button{color:#c3cbd6}.nd-viewer__bottom .nd-segment button[aria-pressed=true]{background:var(--nd-accent);color:#fff}.nd-select{height:36px;padding:0 8px;border:1px solid var(--nd-line-strong);border-radius:var(--nd-radius);background:var(--nd-surface);cursor:pointer}.nd-fit-legend{display:flex;gap:10px;align-items:center;padding:6px 10px;border-radius:var(--nd-radius);background:#14171ce6;border:1px solid var(--nd-line-strong);font-size:12.5px;pointer-events:auto}.nd-fit-legend span{display:inline-flex;align-items:center;gap:5px}.nd-editor{position:absolute;inset:0;background:var(--nd-pattern-bg);overflow:hidden;touch-action:none}.nd-editor svg{display:block;width:100%;height:100%;cursor:grab}.nd-editor svg[data-dragging=true]{cursor:grabbing}.nd-piece-label{font-size:3.1px;font-weight:700;fill:var(--nd-piece-line);letter-spacing:.02em}.nd-piece-sublabel{font-size:2.3px;fill:var(--nd-text-faint)}.nd-dim-label{font-size:2.8px;font-weight:700;fill:var(--nd-handle)}.nd-handle-hit{cursor:ew-resize}.nd-handle-hit[data-axis=y]{cursor:ns-resize}.nd-empty{display:grid;place-items:center;height:100%;color:var(--nd-text-faint)}.nd-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.nd-recommend{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(360px,1.15fr);gap:24px;align-items:start}.nd-recommend__search{width:100%;text-align:left;font-family:var(--nd-font);margin-bottom:10px}.nd-chiprow{display:flex;align-items:flex-start;gap:10px;margin-bottom:7px}.nd-chiprow__label{flex:0 0 52px;font-size:13px;font-weight:600;color:var(--nd-text-muted);padding-top:6px}.nd-chiprow__items{display:flex;flex-wrap:wrap;gap:5px;flex:1}.nd-chip{min-height:30px;padding:0 11px;border:1px solid var(--nd-line-strong);border-radius:999px;background:var(--nd-surface);color:var(--nd-text-muted);cursor:pointer;font-size:13.5px;transition:background .12s ease,border-color .12s ease,color .12s ease}.nd-chip:hover{background:var(--nd-surface-3)}.nd-chip[aria-pressed=true]{background:var(--nd-accent);border-color:var(--nd-accent);color:var(--nd-text-invert);font-weight:600}.nd-recommend__results{display:flex;flex-direction:column;gap:6px}.nd-reco{display:flex;align-items:center;gap:11px;padding:8px 11px;border:1px solid var(--nd-line);border-radius:var(--nd-radius);background:var(--nd-surface);cursor:pointer;text-align:left;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.nd-reco:hover:not(:disabled){border-color:var(--nd-accent-line);box-shadow:var(--nd-shadow-1);transform:translate(2px)}.nd-reco:disabled{opacity:.5;cursor:progress}.nd-reco__rank{flex:0 0 22px;height:22px;border-radius:50%;background:var(--nd-surface-3);color:var(--nd-text-muted);display:grid;place-items:center;font-size:12px;font-weight:700}.nd-reco:first-child .nd-reco__rank{background:var(--nd-accent);color:var(--nd-text-invert)}.nd-reco__thumb{flex:0 0 38px;width:38px;height:38px;object-fit:contain;background:var(--nd-surface-2);border-radius:6px}.nd-reco__body{flex:1;min-width:0}.nd-reco__name{display:block;font-weight:700;font-size:14.5px;margin-bottom:2px}.nd-reco__reasons{display:flex;flex-wrap:wrap;gap:4px 8px;font-size:12px}.nd-reco__reason{color:var(--nd-text-faint)}.nd-reco__reason[data-matched=true]{color:var(--nd-ok);font-weight:600}.nd-reco__score{flex:0 0 auto;font-family:var(--nd-font-num);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;color:var(--nd-accent)}.nd-dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}.nd-dot--ok{background:var(--nd-ok)}.nd-dot--muted{background:var(--nd-text-faint)}.nd-modal--wide{width:min(1180px,calc(100vw - 40px));height:min(88vh,980px);display:flex;flex-direction:column;padding:16px}.nd-workorder__head{display:flex;align-items:center;gap:8px;padding-bottom:12px;border-bottom:1px solid var(--nd-line);margin-bottom:12px}.nd-workorder{flex:1;display:grid;grid-template-columns:280px 1fr;gap:16px;min-height:0}.nd-workorder__form{overflow:auto;padding-right:6px}.nd-workorder__preview{background:var(--nd-surface-3);border:1px solid var(--nd-line);border-radius:var(--nd-radius);overflow:hidden;display:grid;place-items:center}.nd-workorder__preview iframe{width:100%;height:100%;border:0;background:var(--nd-surface)}.nd-save{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--nd-line);background:var(--nd-surface-2);color:var(--nd-text-muted);font-size:12px;white-space:nowrap}.nd-save:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.nd-save--saved{color:var(--nd-ok);background:var(--nd-ok-soft);border-color:transparent}.nd-save--saving,.nd-save--dirty{color:var(--nd-warn);background:var(--nd-warn-soft);border-color:transparent}.nd-save--error{color:var(--nd-danger);background:var(--nd-danger-soft);border-color:transparent;cursor:pointer;font-family:inherit}.nd-save--error:hover{background:#4a2626}.nd-error{margin:0 0 10px;padding:8px 12px;border-radius:8px;background:var(--nd-danger-soft);color:var(--nd-danger);font-size:13px}.nd-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--nd-text-muted);white-space:nowrap}.nd-btn--sm{height:26px;padding:0 8px;font-size:12px}.nd-btn--danger{color:var(--nd-danger);border-color:var(--nd-danger)}.nd-library{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:16px;min-height:0;flex:1}.nd-library__list,.nd-library__versions{display:flex;flex-direction:column;min-height:0;overflow:auto;padding-right:4px}.nd-library__search{display:flex;align-items:center;gap:10px;margin-bottom:10px}.nd-library__items{list-style:none;margin:0;padding:0}.nd-library__items li{display:flex;align-items:center;gap:6px;padding:6px 4px;border-bottom:1px solid var(--nd-line)}.nd-library__items li.is-current{background:var(--nd-accent-soft);border-radius:8px}.nd-library__star{border:0;background:none;cursor:pointer;font-size:16px;color:var(--nd-text-faint);padding:2px 4px}.nd-library__star[aria-pressed=true]{color:#e0a217}.nd-library__open{flex:1;display:flex;align-items:center;gap:10px;border:0;background:none;cursor:pointer;text-align:left;font-family:inherit;color:inherit;padding:2px;min-width:0}.nd-library__open img,.nd-library__noshot{width:48px;height:48px;border-radius:6px;object-fit:cover;background:var(--nd-surface-3);flex:none}.nd-library__meta{display:flex;flex-direction:column;min-width:0}.nd-library__meta strong{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nd-library__meta small{font-size:11px;color:var(--nd-text-faint)}.nd-library__actions{display:flex;gap:4px;flex:none}.nd-library__saveversion{display:flex;gap:8px;margin-bottom:10px}.nd-library__versionlist{list-style:none;margin:0 0 12px;padding:0}.nd-library__versionlist li{display:flex;align-items:center;gap:6px;border-bottom:1px solid var(--nd-line)}.nd-library__versionlist li.is-selected{background:var(--nd-accent-soft);border-radius:8px}.nd-library__versionlist li>button:first-child{flex:1;display:flex;align-items:baseline;gap:8px;border:0;background:none;cursor:pointer;text-align:left;font-family:inherit;color:inherit;padding:8px 6px;min-width:0}.nd-library__versionlist span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.nd-library__versionlist small{color:var(--nd-text-faint);font-size:11px}.nd-difftable{width:100%;border-collapse:collapse;font-size:12px}.nd-difftable th,.nd-difftable td{padding:5px 8px;border-bottom:1px solid var(--nd-line);text-align:right}.nd-difftable thead th{color:var(--nd-text-muted);font-weight:600}.nd-difftable tbody th{text-align:left;font-weight:500}.nd-difftable .is-up{color:var(--nd-fit-loose)}.nd-difftable .is-down{color:var(--nd-fit-tight)}.nd-app--booting{display:flex;align-items:center;justify-content:center;height:100vh}.nd-compare{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;min-height:0;flex:1}.nd-compare__stage{display:flex;gap:12px;min-height:0;align-items:stretch}.nd-compare__cell{flex:1;min-width:0;margin:0;display:flex;flex-direction:column;border:1px solid var(--nd-line);border-radius:10px;overflow:hidden;background:var(--nd-surface-2)}.nd-compare__cell header{display:flex;align-items:center;gap:8px;padding:6px 8px;border-bottom:1px solid var(--nd-line);background:var(--nd-surface)}.nd-compare__cell header strong{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nd-compare__canvas{flex:1;min-height:0;cursor:grab;touch-action:none}.nd-compare__canvas:active{cursor:grabbing}.nd-compare__canvas canvas{display:block;width:100%!important;height:100%!important}.nd-compare__side{display:flex;flex-direction:column;min-height:0;overflow:auto}.nd-compare__picklist{list-style:none;margin:0;padding:0}.nd-compare__picklist li{border-bottom:1px solid var(--nd-line)}.nd-compare__picklist button{width:100%;display:flex;flex-direction:column;gap:1px;align-items:flex-start;border:0;background:none;cursor:pointer;font-family:inherit;color:inherit;padding:7px 4px;text-align:left}.nd-compare__picklist button:hover:not(:disabled){background:var(--nd-accent-soft)}.nd-compare__picklist button:disabled{opacity:.45;cursor:default}.nd-compare__picklist strong{font-size:13px;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nd-compare__picklist small{font-size:11px;color:var(--nd-text-faint)}.nd-share__form{display:flex;flex-direction:column;gap:8px;margin-top:12px}.nd-share__list{list-style:none;margin:0;padding:0}.nd-share__list li{padding:8px 0;border-bottom:1px solid var(--nd-line)}.nd-share__url{display:flex;align-items:center;gap:8px}.nd-share__url code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;background:var(--nd-surface-3);padding:4px 8px;border-radius:6px;user-select:all}.nd-share__meta{display:block;margin-top:4px;font-size:11px;color:var(--nd-text-faint)}.nd-shared{display:flex;flex-direction:column;height:100vh;background:var(--nd-bg)}.nd-shared--message{align-items:center;justify-content:center;text-align:center}.nd-shared--message h1{font-size:20px;margin:0 0 8px}.nd-shared__pw{display:flex;gap:8px;justify-content:center;margin-top:12px}.nd-shared__head{display:flex;align-items:center;gap:14px;padding:10px 16px;background:var(--nd-surface);border-bottom:1px solid var(--nd-line)}.nd-shared__brand{font-weight:700;font-size:15px;display:flex;align-items:baseline;gap:8px}.nd-shared__brand small{font-weight:500;font-size:11px;color:var(--nd-text-faint)}.nd-shared__name{font-size:14px}.nd-shared__colors{display:flex;align-items:center;gap:6px}.nd-shared__colors>button[style]{border-color:transparent;width:24px;height:24px;border-radius:50%;border:2px solid transparent;box-shadow:0 0 0 1px var(--nd-line-strong);cursor:pointer;padding:0}.nd-shared__colors>button[aria-pressed=true]{border-color:var(--nd-accent)}.nd-shared__stage{flex:1;min-height:0;cursor:grab;touch-action:none}.nd-shared__stage:active{cursor:grabbing}.nd-shared__stage canvas{display:block;width:100%!important;height:100%!important}.nd-shared__foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 16px;background:var(--nd-surface);border-top:1px solid var(--nd-line)}.nd-shared__spec{display:flex;gap:18px;margin:0;flex-wrap:wrap}.nd-shared__spec>div{display:flex;align-items:baseline;gap:6px}.nd-shared__spec dt{font-size:11px;color:var(--nd-text-faint);margin:0}.nd-shared__spec dd{margin:0;font-size:13px;font-weight:600}@media(max-width:560px){.nd-shared__head{flex-wrap:wrap;gap:8px}.nd-shared__colors{width:100%}}.nd-picker__examples{margin:18px 0 22px}.nd-picker__examplerow{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.nd-example{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border:1px solid var(--nd-line);border-radius:10px;background:var(--nd-surface);cursor:pointer;font-family:inherit;font-size:13px;color:inherit}.nd-example:hover{border-color:var(--nd-accent-line);background:var(--nd-accent-soft)}.nd-example img{width:44px;height:44px;object-fit:contain}.nd-card-wrap{position:relative;display:flex}.nd-card-wrap>.nd-card{flex:1}.nd-card__example{position:absolute;right:8px;bottom:8px;border:1px solid var(--nd-line);border-radius:999px;background:var(--nd-surface);font-family:inherit;font-size:11px;padding:3px 9px;cursor:pointer;color:var(--nd-text-muted);opacity:0;transition:opacity .12s}.nd-card-wrap:hover .nd-card__example,.nd-card__example:focus-visible{opacity:1}.nd-card__example:hover{border-color:var(--nd-accent);color:var(--nd-accent)}.nd-tour{position:fixed;right:20px;top:112px;z-index:60;width:320px;padding:14px 16px;border-radius:12px;background:var(--nd-surface);border:1px solid var(--nd-accent-line);box-shadow:var(--nd-shadow-2)}.nd-tour strong{display:block;font-size:14px;margin-bottom:4px}.nd-tour p{margin:0;font-size:12.5px;color:var(--nd-text-muted);line-height:1.55}.nd-tour__dots{display:flex;gap:5px;margin-bottom:8px}.nd-tour__dots span{width:18px;height:3px;border-radius:2px;background:var(--nd-line-strong)}.nd-tour__dots span.is-on{background:var(--nd-accent)}.nd-tour__skip{margin-top:10px;border:0;background:none;padding:0;font-family:inherit;font-size:12px;color:#a8b2bf;cursor:pointer;text-decoration:underline}.nd-tour--done{border-color:var(--nd-ok)}.nd-tour--done .nd-btn{margin-top:10px}.nd-versionpanel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;min-height:0;overflow:auto}.nd-consent{position:fixed;left:20px;bottom:20px;z-index:70;display:flex;align-items:flex-end;gap:16px;max-width:560px;padding:14px 16px;border-radius:12px;background:var(--nd-surface);border:1px solid var(--nd-line-strong);box-shadow:var(--nd-shadow-2)}.nd-consent__text{flex:1;min-width:0}.nd-consent__text strong{display:block;font-size:14px;margin-bottom:5px}.nd-consent__text p{margin:0 0 4px;font-size:12.5px;color:var(--nd-text-muted);line-height:1.55}.nd-consent__never{color:var(--nd-ok)!important}.nd-consent__actions{display:flex;gap:8px;flex:none}@media(max-width:620px){.nd-consent{left:12px;right:12px;flex-direction:column;align-items:stretch}}.nd-realistic{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:20px;min-height:0;overflow:auto;align-items:start}.nd-realistic__controls{display:flex;flex-direction:column}.nd-realistic__spec{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:5px}.nd-realistic__spec li{font-size:11.5px;padding:2px 8px;border-radius:999px;background:var(--nd-surface-3);color:var(--nd-text-muted)}.nd-realistic__result{display:flex;align-items:flex-start;justify-content:center}.nd-realistic__result figure{margin:0;max-width:420px}.nd-realistic__frame{position:relative}.nd-realistic__frame img{width:100%;border-radius:10px;display:block;border:1px solid var(--nd-line)}.nd-badge--ai{position:absolute;left:10px;top:10px;background:#000000b8;color:#fff;border:0}.nd-realistic__result figcaption{display:flex;align-items:center;gap:10px;margin-top:8px}.nd-swatch-row{display:flex;align-items:center;gap:3px;margin-bottom:3px}.nd-swatch-row__label{width:62px;flex:none;font-size:11px;color:var(--nd-text-muted);text-align:right;padding-right:6px}.nd-steps{display:flex;align-items:center;gap:2px;padding:0 4px}.nd-steps__item{display:flex;align-items:center;gap:7px;border:0;background:none;cursor:pointer;font-family:inherit;font-size:13px;color:#d2d9e2;padding:7px 12px;border-radius:8px;white-space:nowrap}.nd-steps__item:hover{background:var(--nd-surface-3)}.nd-steps__item[aria-current=step]{background:var(--nd-accent-soft);color:var(--nd-accent);font-weight:600}.nd-steps__num{width:20px;height:20px;flex:none;border-radius:50%;background:var(--nd-line);color:var(--nd-text-muted);font-size:11px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}.nd-steps__item[aria-current=step] .nd-steps__num{background:var(--nd-accent);color:#fff}.nd-steps__item[data-done] .nd-steps__num{background:var(--nd-ok);color:#fff}.nd-autofit{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto}.nd-autofit__head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.nd-realistic__frame.is-stale img{opacity:.55}.nd-badge--stale{position:absolute;right:10px;top:10px;background:var(--nd-warn);color:#fff;border:0}.nd-viewer-tools,.nd-pane__tools{background:#14171ce0;border:1px solid var(--nd-line);border-radius:10px;backdrop-filter:blur(6px)}.nd-viewer-tools .nd-btn,.nd-viewer-tools select,.nd-pane__tools .nd-btn,.nd-pane__tools select{background:transparent;border-color:transparent;color:var(--nd-text)}.nd-viewer-tools .nd-btn:hover,.nd-pane__tools .nd-btn:hover{background:var(--nd-surface-3)}.nd-viewer-tools .nd-btn[aria-pressed=true],.nd-pane__tools .nd-btn[aria-pressed=true]{background:var(--nd-accent);color:#fff}.nd-measure-step{display:flex;flex-direction:column;gap:14px;min-height:0;overflow:auto}.nd-measure-step>*{flex:0 0 auto}.nd-btn--accent{background:linear-gradient(180deg,#7c5cff,#6b46ff);border-color:#8b6fff;color:#fff;font-weight:600}.nd-btn--accent:hover{background:linear-gradient(180deg,#8b6fff,#7c5cff)}.nd-photo{display:grid;grid-template-columns:300px minmax(0,1fr);gap:18px;min-height:0;flex:1}.nd-photo__side{display:flex;flex-direction:column;min-height:0;overflow:auto}.nd-photo__scenes{display:flex;flex-direction:column;gap:6px}.nd-photo__scenes .nd-btn{justify-content:flex-start}.nd-photo__scenes .nd-btn[aria-pressed=true]{background:var(--nd-accent-soft);border-color:var(--nd-accent);color:var(--nd-accent)}.nd-photo__stage{display:flex;align-items:center;justify-content:center;min-height:0;background:var(--nd-surface-2);border:1px solid var(--nd-line);border-radius:12px}.nd-photo__frame{position:relative;margin:0;max-height:100%}.nd-photo__frame img{display:block;max-width:100%;max-height:62vh;border-radius:10px}.nd-photo__busy{text-align:center;color:var(--nd-text-muted)}.nd-photo__busy p{margin:8px 0 0}.nd-photo__spinner{width:34px;height:34px;margin:0 auto;border:3px solid var(--nd-line);border-top-color:var(--nd-accent);border-radius:50%;animation:nd-spin .9s linear infinite}@keyframes nd-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.nd-photo{grid-template-columns:minmax(0,1fr)}}.nd-export{list-style:none;margin:12px 0 0;padding:0}.nd-export li{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--nd-line)}.nd-export__text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.nd-export__text strong{font-size:14px}.nd-export__text small{font-size:12px;color:var(--nd-text-muted);line-height:1.5}.nd-btn--ok{background:var(--nd-ok);border-color:var(--nd-ok);color:#fff}.nd-preset-list{list-style:none;margin:6px 0 0;padding:0}.nd-linklike{border:0;background:none;padding:0;font:inherit;color:var(--nd-text);text-align:left;cursor:pointer;display:flex;align-items:center;gap:8px}.nd-linklike:hover{color:var(--nd-accent);text-decoration:underline}.nd-badge--soft{background:var(--nd-surface-3);color:var(--nd-text-muted);border-radius:4px;padding:1px 6px;font-size:11.5px;letter-spacing:.02em}.nd-shared__body{flex:1;min-height:0;display:flex}.nd-shared__comments{width:320px;flex:0 0 320px;border-left:1px solid var(--nd-surface-3);background:var(--nd-surface-1);padding:14px 16px;overflow-y:auto}@media(max-width:860px){.nd-shared__body{flex-direction:column}.nd-shared__comments{width:auto;flex:0 0 auto;max-height:45vh;border-left:0;border-top:1px solid var(--nd-surface-3)}}.nd-approval{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 12px;border:1px solid var(--nd-surface-3);border-radius:8px;background:var(--nd-surface-2)}.nd-approval--on{border-color:var(--nd-ok);background:color-mix(in srgb,var(--nd-ok) 12%,var(--nd-surface-2))}.nd-approval small{display:block;color:var(--nd-text-muted);font-size:12px;margin-top:2px}.nd-textarea{width:100%;margin-top:8px;padding:8px 10px;border-radius:6px;border:1px solid var(--nd-surface-3);background:var(--nd-surface-2);color:var(--nd-text);font:inherit;resize:vertical}.nd-comment-list{list-style:none;margin:14px 0 0;padding:0}.nd-comment{padding:8px 0;border-bottom:1px solid var(--nd-surface-3)}.nd-comment--done{opacity:.55}.nd-comment p{margin:4px 0 0;white-space:pre-wrap;word-break:break-word}.nd-comment__head{display:flex;align-items:center;gap:8px}.nd-comment__head small{color:var(--nd-text-faint);font-size:12px;margin-left:auto}.nd-comment__pin{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:10px;background:#e5a33c;color:#1b1408;font-size:12px;font-weight:600}.nd-share__approved{color:var(--nd-ok)}.nd-picker__import{margin:10px 0 4px}.nd-import__drop{display:block;margin-top:10px;padding:18px;border:1px dashed var(--nd-surface-3);border-radius:8px;text-align:center;cursor:pointer;color:var(--nd-text-muted)}.nd-import__drop:hover{border-color:var(--nd-accent);color:var(--nd-text)}.nd-import__drop input{display:none}.nd-import__pieces{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.nd-import__pieces figure{margin:0;width:84px;text-align:center}.nd-import__pieces svg{width:100%;height:90px;background:var(--nd-surface-2);border-radius:6px}.nd-import__pieces figcaption{font-size:11.5px;color:var(--nd-text-muted);margin-top:3px;overflow-wrap:anywhere}.nd-import__pieces figcaption small{display:block;color:var(--nd-text-faint)}.nd-import__candidates{list-style:none;margin:6px 0 0;padding:0}.nd-import__candidates li{padding:6px 0;border-bottom:1px solid var(--nd-surface-3)}.nd-import__candidates label{display:flex;align-items:center;gap:8px;cursor:pointer}.nd-import__candidates small{display:block;margin-left:24px;color:var(--nd-text-muted);font-size:12px}.nd-import__score{margin-left:auto;color:var(--nd-text-muted);font-variant-numeric:tabular-nums}.nd-import__mapping{margin-top:12px;color:var(--nd-text-muted);font-size:13px}.nd-import__mapping ul{margin:6px 0 0;padding-left:18px}.nd-usage{list-style:none;margin:6px 0 0;padding:0}.nd-usage li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--nd-surface-3)}.nd-usage__over{color:var(--nd-warn)}.nd-admin{max-width:1040px;margin:0 auto;padding:24px 20px 48px}.nd-admin header{display:flex;align-items:center;gap:12px;margin-bottom:18px}.nd-admin h1{font-size:20px;margin:0}.nd-admin section{margin-top:26px}.nd-admin__kpi{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin-top:8px}.nd-admin__kpi>div{padding:14px;border:1px solid var(--nd-surface-3);border-radius:8px;background:var(--nd-surface-2)}.nd-admin__kpi strong{display:block;font-size:26px;font-variant-numeric:tabular-nums}.nd-admin__kpi strong small{font-size:14px;color:var(--nd-text-muted);margin-left:4px}.nd-admin__kpi span{display:block;margin-top:4px;color:var(--nd-text-muted);font-size:12.5px}.nd-admin__table{width:100%;border-collapse:collapse;margin-top:8px}.nd-admin__table th,.nd-admin__table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--nd-surface-3)}.nd-admin__table th{color:var(--nd-text-muted);font-weight:500;font-size:13px}.nd-notice{display:flex;align-items:center;gap:10px;padding:7px 14px;background:var(--nd-surface-2);border-bottom:1px solid var(--nd-surface-3);font-size:13.5px}.nd-notice span{flex:1}.nd-notice--warn{background:color-mix(in srgb,var(--nd-warn) 16%,var(--nd-surface-2))}.nd-segment--wrap{flex-wrap:wrap}
